Address Provider
Addresses register of the protocol for a particular market. This contract is immutable and the address will never change. Whenever a LendingPool
contract is needed, we recommended you fetch the correct address from the AddressProvider
smart contract.
Methods
getMarketId()
function getMarketId()
Return values
string
A string representation of the market
getLendingPool()
function getLendingPool()
Return values
address
The address of the associated LendingPool
getConfigurator()
function getConfigurator()
The Configurator
is used for configuration methods for each market, e.g.initialising a reserve or updating fTokens.
Return values
address
The address of the associated Configurator
getCollateralManager()
function getCollateralManager()
The CollateralManager
is used for management of collateral in the protocol, the main one being for liquidation auctions. The contract should never be called directly, only via the LendingPool
.
Return values
address
The address of the associated CollateralManager
getExecutionDelegate()
function getExecutionDelegate()
The ExecutionDelegate
is used for managing token transfers across the protocol.
Return values
address
The address of the associated ExecutionDelegate
getExecutionManager()
function getExecutionManager()
The ExecutionManager
can be used to optimise calls to the lending pool via multiCall
.
Return values
address
The address of the associated ExecutionManager
getObligationReceipt()
function getObligationReceipt()
The ObligationReceipt
is used to enable the transfer and sale of NFTs held as collateral, as well as the transfer of rights delegation.
Return values
address
The address of the associated ObligationReceipt
getTreasury()
function getTreasury()
Return values
address
The address of the protocol treasury
getPoolAdmin()
function getPoolAdmin()
Return values
address
The address of the market / pool's admin
getEmergencyAdmin()
function getEmergencyAdmin()
Return values
address
The address of the market / pool's emergency admin
getNFTPriceOralce()
function getNFTPriceOracle()
The NFTPriceOracle
is to fetch NFT prices at the collection, trait and token level.
Return values
address
The address of the NFTPriceOracle
getPriceConsumerV3()
function getPriceConsumerV3()
The PriceConsumerV3
is used to fetch asset prices.
Return values
address
The address of the Chainlink price consumer
getLendingRateManager()
function getLendingRateOracle()
The LendingRateManager
is used to fetch borrow interest rates and LTVs.
Return values
address
The address of the LendingRateManager
getDelegationRegistry()
function getDelegationRegistry()
The DelegationRegistry
is used to enable the persistence and transferability of NFT rights delegation while an NFT is held as collateral, e.g. to claim airdrops or access token-gated events.
Return values
address
The address of the associated DelegationRegistry
getWETH()
function getWETH()
The WETH
contract is used to wrap ETH for WETH.
Return values
address
The address of the associated WETH contract
getWETHGateWay()
function getWETHGateway()
The WETHGateway
contract is used to enable ETH / native token operations.
Return values
address
The address of the associated WETHGateway
getAddress()
function getAddress(bytes32 id)
Return values
address
The address associated with the bytes32
id used
ABI
Address Provider ABI
{
"abi": [
{
"inputs": [
{
"internalType": "string",
"name": "marketId",
"type": "string"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bytes32",
"name": "id",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "newAddress",
"type": "address"
},
{
"indexed": false,
"internalType": "bool",
"name": "hasProxy",
"type": "bool"
}
],
"name": "AddressSet",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "newAddress",
"type": "address"
}
],
"name": "CollateralManagerUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "newAddress",
"type": "address"
}
],
"name": "ConfiguratorUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "newAddress",
"type": "address"
}
],
"name": "DebtTokenImplUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "newAddress",
"type": "address"
}
],
"name": "DelegationRegistryUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "newAddress",
"type": "address"
}
],
"name": "EmergencyAdminUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "newAddress",
"type": "address"
}
],
"name": "ExecutionDelegateUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "newAddress",
"type": "address"
}
],
"name": "ExecutionManagerUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "newAddress",
"type": "address"
}
],
"name": "FTokenImplUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "newAddress",
"type": "address"
}
],
"name": "FluidTokenUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "newAddress",
"type": "address"
}
],
"name": "LendingPoolUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "newAddress",
"type": "address"
}
],
"name": "LendingRateManagerUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "newAddress",
"type": "address"
}
],
"name": "LendingUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "newMarketId",
"type": "string"
}
],
"name": "MarketIdSet",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "newAddress",
"type": "address"
}
],
"name": "NFTPriceOracleUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "newAddress",
"type": "address"
}
],
"name": "ObligationReceiptBundleUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "newAddress",
"type": "address"
}
],
"name": "ObligationReceiptUpdated",
"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"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "newAddress",
"type": "address"
}
],
"name": "PeerAdminUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "newAddress",
"type": "address"
}
],
"name": "PeerIncentivesControllerUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "newAddress",
"type": "address"
}
],
"name": "PoolAdminUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "newAddress",
"type": "address"
}
],
"name": "PoolIncentivesControllerUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "newAddress",
"type": "address"
}
],
"name": "PriceConsumerUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "newAddress",
"type": "address"
}
],
"name": "PromissoryNoteBundleUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "newAddress",
"type": "address"
}
],
"name": "PromissoryNoteUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bytes32",
"name": "id",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "newAddress",
"type": "address"
}
],
"name": "ProxyCreated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "newAddress",
"type": "address"
}
],
"name": "ReferralManagerUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "newAddress",
"type": "address"
}
],
"name": "TreasuryUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "newAddress",
"type": "address"
}
],
"name": "WETHGatewayUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "newAddress",
"type": "address"
}
],
"name": "WETHUpdated",
"type": "event"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "id",
"type": "bytes32"
}
],
"name": "getAddress",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getCollateralManager",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getConfigurator",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getDebtTokenImpl",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getDelegationRegistry",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getEmergencyAdmin",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getExecutionDelegate",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getExecutionManager",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getFTokenImpl",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getFluidToken",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getLending",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getLendingPool",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getLendingRateManager",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getMarketId",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getNFTPriceOracle",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getObligationReceipt",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getObligationReceiptBundle",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getPeerAdmin",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getPeerIncentivesController",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getPoolAdmin",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getPoolIncentivesController",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getPriceConsumerV3",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getPromissoryNote",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getPromissoryNoteBundle",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getReferralManager",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getTreasury",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getWETH",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getWETHGateway",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "id",
"type": "bytes32"
},
{
"internalType": "address",
"name": "newAddress",
"type": "address"
}
],
"name": "setAddress",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "id",
"type": "bytes32"
},
{
"internalType": "address",
"name": "implementationAddress",
"type": "address"
}
],
"name": "setAddressAsProxy",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "manager",
"type": "address"
}
],
"name": "setCollateralManager",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "configurator",
"type": "address"
}
],
"name": "setConfigurator",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "configurator",
"type": "address"
}
],
"name": "setConfiguratorImpl",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "debtTokenImpl",
"type": "address"
}
],
"name": "setDebtTokenImpl",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "delegationRegistry",
"type": "address"
}
],
"name": "setDelegationRegistry",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "emergencyAdmin",
"type": "address"
}
],
"name": "setEmergencyAdmin",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "executionDelegate",
"type": "address"
}
],
"name": "setExecutionDelegate",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "executionManager",
"type": "address"
}
],
"name": "setExecutionManager",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "fTokenImpl",
"type": "address"
}
],
"name": "setFTokenImpl",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "fluidToken",
"type": "address"
}
],
"name": "setFluidToken",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "lending",
"type": "address"
}
],
"name": "setLending",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "pool",
"type": "address"
}
],
"name": "setLendingPool",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "lendingRateManager",
"type": "address"
}
],
"name": "setLendingRateManager",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "marketId",
"type": "string"
}
],
"name": "setMarketId",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "nftPriceOracle",
"type": "address"
}
],
"name": "setNFTPriceOracle",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "obligationReceipt",
"type": "address"
}
],
"name": "setObligationReceipt",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "obligationReceipt",
"type": "address"
}
],
"name": "setObligationReceiptBundle",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "admin",
"type": "address"
}
],
"name": "setPeerAdmin",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "controller",
"type": "address"
}
],
"name": "setPeerIncentivesController",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "admin",
"type": "address"
}
],
"name": "setPoolAdmin",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "controller",
"type": "address"
}
],
"name": "setPoolIncentivesController",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "priceConsumerV3",
"type": "address"
}
],
"name": "setPriceConsumerV3",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "promissoryNote",
"type": "address"
}
],
"name": "setPromissoryNote",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "promissoryNote",
"type": "address"
}
],
"name": "setPromissoryNoteBundle",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "referralManager",
"type": "address"
}
],
"name": "setReferralManager",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "treasury",
"type": "address"
}
],
"name": "setTreasury",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "weth",
"type": "address"
}
],
"name": "setWETH",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "wethGateway",
"type": "address"
}
],
"name": "setWETHGateway",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": {
"object": "0x60806040523480156200001157600080fd5b50604051620034e6380380620034e6833981016040819052620000349162000128565b6200003f3362000051565b6200004a81620000a1565b5062000370565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001620000af82826200026f565b507f5e667c32fd847cf8bce48ab3400175cbf107bdc82b2dea62e3364909dfaee79981604051620000e191906200033b565b60405180910390a150565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200011f57818101518382015260200162000105565b50506000910152565b6000602082840312156200013b57600080fd5b81516001600160401b03808211156200015357600080fd5b818401915084601f8301126200016857600080fd5b8151818111156200017d576200017d620000ec565b604051601f8201601f19908116603f01168101908382118183101715620001a857620001a8620000ec565b81604052828152876020848701011115620001c257600080fd5b620001d583602083016020880162000102565b979650505050505050565b600181811c90821680620001f557607f821691505b6020821081036200021657634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200026a57600081815260208120601f850160051c81016020861015620002455750805b601f850160051c820191505b81811015620002665782815560010162000251565b5050505b505050565b81516001600160401b038111156200028b576200028b620000ec565b620002a3816200029c8454620001e0565b846200021c565b602080601f831160018114620002db5760008415620002c25750858301515b600019600386901b1c1916600185901b17855562000266565b600085815260208120601f198616915b828110156200030c57888601518255948401946001909101908401620002eb565b50858210156200032b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60208152600082518060208401526200035c81604085016020870162000102565b601f01601f19169190910160400192915050565b61316680620003806000396000f3fe60806040523480156200001157600080fd5b5060043610620003fc5760003560e01c806369acea5f116200021d578063a01246e31162000131578063de3c6e0411620000bb578063f0f442601162000086578063f0f4426014620007dd578063f2fde38b14620007f4578063f66e398f146200080b578063f67b1847146200082257600080fd5b8063de3c6e0414620007a8578063dfa441be14620007b2578063e4a2544d14620007bc578063ea34b96114620007c657600080fd5b8063c5f3a4c411620000fc578063c5f3a4c41462000766578063ca446dd9146200077d578063cae5f11e1462000794578063ddcaa9ea146200079e57600080fd5b8063a01246e31462000717578063ad1f9944146200072e578063aecda3781462000745578063c13e754b146200074f57600080fd5b8063842a05d411620001b357806398875827116200017e5780639887582714620006d55780639b7ae5ec14620006ec5780639f5f86ae14620006f65780639fd192b8146200070d57600080fd5b8063842a05d41462000698578063862beee114620006af5780638da5cb5b14620006b957806390313e8e14620006cb57600080fd5b806373aa9e9411620001f457806373aa9e94146200065657806374eb5a62146200066d57806377532ed914620006845780637dd83ac5146200068e57600080fd5b806369acea5f146200062b5780636c6f33a51462000635578063715018a6146200064c57600080fd5b8063283d62ad11620003155780634d82964c11620002ab5780635dcc528c11620002765780635dcc528c14620005e9578063617e0605146200060057806363ede0fc146200060a578063673adf43146200062157600080fd5b80634d82964c1462000598578063568ef47014620005af57806357d600a114620005c85780635b769f3c14620005d257600080fd5b80633b19e84a11620002ec5780633b19e84a14620005705780633fa01431146200057a57806347d2c534146200058457806347f872f1146200058e57600080fd5b8063283d62ad146200052b5780632fedd807146200054257806335da3394146200055957600080fd5b8063146b9ae311620003975780631e34764c11620003625780631e34764c14620004dc57806321da583714620004f357806321f8a721146200050a57806322e35383146200052157600080fd5b8063146b9ae314620004a7578063180fde0714620004b157806319ef926814620004c85780631a8b1fbc14620004d257600080fd5b80630c71b70111620003d85780630c71b701146200044b578063113aa8b11462000462578063135dc14714620004795780631381ba4d146200049057600080fd5b806292604714620004015780630261bf8b1462000428578063037c9be21462000432575b600080fd5b6200040b62000839565b6040516001600160a01b0390911681526020015b60405180910390f35b6200040b6200085f565b620004496200044336600462001f26565b6200087b565b005b620004496200045c36600462001f26565b6200090d565b620004496200047336600462001f26565b62000969565b620004496200048a36600462001f26565b620009f5565b62000449620004a136600462001f26565b62000a84565b6200040b62000b15565b62000449620004c236600462001f26565b62000b2f565b6200040b62000bb6565b6200040b62000be3565b62000449620004ed36600462001f26565b62000bfe565b620004496200050436600462001f26565b62000c8e565b6200040b6200051b36600462001f4b565b62000d1a565b6200040b62000d35565b620004496200053c36600462001f26565b62000d62565b620004496200055336600462001f26565b62000dec565b620004496200056a36600462001f26565b62000e7b565b6200040b62000f0a565b6200040b62000f22565b6200040b62000f44565b6200040b62000f63565b62000449620005a936600462001f26565b62000f85565b620005b962001019565b6040516200041f919062001fad565b6200040b620010b3565b62000449620005e336600462001f26565b620010d6565b62000449620005fa36600462001fc2565b6200115a565b6200040b620011b9565b620004496200061b36600462001f26565b620011dd565b6200040b6200126f565b6200040b6200128f565b620004496200064636600462001f26565b620012a6565b6200044962001343565b620004496200066736600462001f26565b6200135b565b620004496200067e36600462001f26565b620013ee565b6200040b62001479565b6200040b62001495565b62000449620006a936600462001f26565b620014be565b6200040b62001550565b6000546001600160a01b03166200040b565b6200040b62001571565b62000449620006e636600462001f26565b62001590565b6200040b6200161a565b620004496200070736600462001f26565b62001636565b6200040b620016c2565b620004496200072836600462001f26565b620016de565b620004496200073f36600462001f26565b6200176f565b6200040b62001808565b620004496200076036600462001f26565b62001822565b620004496200077736600462001f26565b620018bf565b620004496200078e36600462001fc2565b6200194f565b6200040b620019bb565b6200040b620019cf565b6200040b620019ee565b6200040b62001a0e565b6200040b62001a30565b62000449620007d736600462001f26565b62001a56565b62000449620007ee36600462001f26565b62001aec565b620004496200080536600462001f26565b62001b74565b620004496200081c36600462001f26565b62001bf7565b620004496200083336600462002007565b62001c83565b60006200085a7050524943455f434f4e53554d45525f563360781b62000d1a565b905090565b60006200085a6b13115391125391d7d413d3d360a21b62000d1a565b6200088562001c98565b71455845435554494f4e5f44454c454741544560701b600090815260026020527f20a83204e1bdb5e559f53f33519c56a69bd7bf634f98b1785b0af67f73c0025980546001600160a01b0319166001600160a01b03841690811790915560405190917f27b088f74c2a2d700056533df4dc5e9cd62f37caa25ac8934288444227638e5891a250565b6200091762001c98565b620009326b21a7a72324a3aaa920aa27a960a11b8262001cf4565b6040516001600160a01b038216907fc3236f1070213eaeaa9c639ef4afe370db8d568bff09d4a58cfb99a85e288f1e90600090a250565b6200097362001c98565b6b13115391125391d7d413d3d360a21b600090815260026020527fe5bdb40dea1fe80924bcdf7c070aa283f3cb94408a3870bba2d2fbfbae6b6df780546001600160a01b0319166001600160a01b03841690811790915560405190917fc4e6c6cdf28d0edbd8bcf071d724d33cc2e7a30be7d06443925656e9cb492aa491a250565b620009ff62001c98565b6e1111509517d513d2d15397d2535413608a1b600090815260026020527f6036d855f21afe7dfb8131b849ea29ba72dd2a065449193d6b1d9454ebcb9fa780546001600160a01b0319166001600160a01b03841690811790915560405190917f3cf954087af08d2fe2174f52171dd00643537359806f333023c728b6b443e5c091a250565b62000a8e62001c98565b7022ac22a1aaaa24a7a72fa6a0a720a3a2a960791b600090815260026020527fa33379d18b1e75d1dd776786d0e44221a6db3be8eb65c514d5c38e319119a26880546001600160a01b0319166001600160a01b03841690811790915560405190917f5eae3f21f5abac4a9e5366b214d23ec32700884bea3cfbc7502b49a9677573be91a250565b60006200085a692822a2a92fa0a226a4a760b11b62000d1a565b62000b3962001c98565b664c454e44494e4760c81b600090815260026020527f5feb06125a85fb98b540bee21269c9be1fda767db983db133357f1c77ae3dade80546001600160a01b0319166001600160a01b03841690811790915560405190917f535075f3058ab321c7ef90c69527c8440ff729fe1bf89ab1db1c0c1c3fb06a7c91a250565b60006200085a7f504f4f4c5f494e43454e54495645535f434f4e54524f4c4c455200000000000062000d1a565b60006200085a6a23262aa4a22faa27a5a2a760a91b62000d1a565b62000c0862001c98565b6f4e46545f50524943455f4f5241434c4560801b600090815260026020527fa7f3afca83ac2ad9556e7c271c326c0a0afe124cd9d3f845d316f7c11ae7b3ce80546001600160a01b0319166001600160a01b03841690811790915560405190917f9b25a87beb9b0c944472a974a70f2b8801d148aea9658ccc0b5fb8c11cf9473e91a250565b62000c9862001c98565b6b574554485f4741544557415960a01b600090815260026020527f936557deb1f2e2280930d0cea62c19c7f77ebcef5be3417aa6a4bf3196e8968b80546001600160a01b0319166001600160a01b03841690811790915560405190917f1c04adf41189ea89c3aed4d2b48952e6430bf6aed5df45f9fb5e83e5d8ea284291a250565b6000908152600260205260409020546001600160a01b031690565b60006200085a7f504545525f494e43454e54495645535f434f4e54524f4c4c455200000000000062000d1a565b62000d6c62001c98565b692827a7a62fa0a226a4a760b11b600090815260026020527f8625fbc469bac10fd11de1d783dcd446542784dbcc535ef64a1da61860fda74c80546001600160a01b0319166001600160a01b03841690811790915560405190917f8fdf777cb99daeede7a5dac227611bc42564ad910eb32dc9c0e9c9c81bed049891a250565b62000df662001c98565b6e50524f4d4953534f52595f4e4f544560881b600090815260026020527f441d10c82b253a6cf958c66adfbd60fbb8b35d06d72a10514381807fc19d3e6280546001600160a01b0319166001600160a01b03841690811790915560405190917fe0fa630ae43a2a48ce43d1b4f77f6e6a5410b1cf7caf3fcb1462b434d07f423691a250565b62000e8562001c98565b6e22a6a2a923a2a721acafa0a226a4a760891b600090815260026020527f767aa9c986e1d88108b2558f00fbd21b689a0397581446e2e868cd70421026cc80546001600160a01b0319166001600160a01b03841690811790915560405190917fe19673fc861bfeb894cf2d6b7662505497ef31c0f489b742db24ee331082691691a250565b60006200085a67545245415355525960c01b62000d1a565b60006200085a7113d0931251d0551253d397d49150d152541560721b62000d1a565b60006200085a6e1111509517d513d2d15397d2535413608a1b62000d1a565b60006200085a71455845435554494f4e5f44454c454741544560701b62000d1a565b62000f8f62001c98565b732622a72224a723afa920aa22afa6a0a720a3a2a960611b600090815260026020527f647865363de3647f266c90358eeae238843f9f3e0dd6270fea5aae19b16ebe6b80546001600160a01b0319166001600160a01b03841690811790915560405190917ff4080c1b3e5e445a25830f29277e0839af214d30054cd9d7cf05fd5f64653e6c91a250565b6060600180546200102a90620020c2565b80601f01602080910402602001604051908101604052809291908181526020018280546200105890620020c2565b8015620010a95780601f106200107d57610100808354040283529160200191620010a9565b820191906000526020600020905b8154815290600101906020018083116200108b57829003601f168201915b5050505050905090565b60006200085a7244454c45474154494f4e5f524547495354525960681b62000d1a565b620010e062001c98565b630ae8aa8960e31b600090815260026020527f9d079330cab48a13979924dfd7e87d65711257c575e853d3b075acf5fc8707c780546001600160a01b0319166001600160a01b03841690811790915560405190917f5f85e7e522385144040f94bcb1eeaeb07da5e11d6384c124c09f53986d0ed8bc91a250565b6200116462001c98565b62001170828262001cf4565b60408051838152600160208201526001600160a01b038316917ff2689d5d5cd0c639e137642cae5d40afced201a1a0327e7ac9358461dc9fff3191015b60405180910390a25050565b60006200085a732622a72224a723afa920aa22afa6a0a720a3a2a960611b62000d1a565b620011e762001c98565b7113d0931251d0551253d397d49150d152541560721b600090815260026020527f45ce244d16288f104b86e763e4270ce7b1fea9f31d2bd62b759d6dd2aa9cf00180546001600160a01b0319166001600160a01b03841690811790915560405190917f4630fffeacf5795620d8ce87474e0777773b2554a9f9b63ffd2efa16438c7c2591a250565b60006200085a6f4e46545f50524943455f4f5241434c4560801b62000d1a565b60006200085a664c454e44494e4760c81b62000d1a565b620012b062001c98565b7f504f4f4c5f494e43454e54495645535f434f4e54524f4c4c4552000000000000600090815260026020527f681bd2c3eabba7ef1f50d33af51f68b9f0cc238375aa1fdd54416dad5e3c5e0480546001600160a01b0319166001600160a01b03841690811790915560405190917f9d0aa5b8e4a2abcbfa162b696f9b38f7814029081df049c5f3b0339413636f5b91a250565b6200134d62001c98565b62001359600062001e60565b565b6200136562001c98565b7244454c45474154494f4e5f524547495354525960681b600090815260026020527fc3ab2dc989fcce615b917de19205c7c4905523d3b4cab155938e3f9cce9432ec80546001600160a01b0319166001600160a01b03841690811790915560405190917f836360d1b094a7de3c3eab3d1185f3a5939467c23d4a12709dbdbf8c8d7e2f3b91a250565b620013f862001c98565b6a23262aa4a22faa27a5a2a760a91b600090815260026020527f461c7a93a11c3461073c15abe808ff376806912495f0a37c68839a7ae672217480546001600160a01b0319166001600160a01b03841690811790915560405190917f0945294ba66186875367ce57fc808f1e792363363d0bc22ac2b939be433caa4591a250565b60006200085a6b574554485f4741544557415960a01b62000d1a565b60006200085a784f424c49474154494f4e5f524543454950545f42554e444c4560381b62000d1a565b620014c862001c98565b7121a7a62620aa22a920a62fa6a0a720a3a2a960711b600090815260026020527f65e3f3080e9127c1765503a54b8dbb495249e66169f096dfc87ee63bed17e22c80546001600160a01b0319166001600160a01b03841690811790915560405190917f507e88d0e3541203c8e7dba038a3e807ac9121f0872ed9ed895cd7f3358334eb91a250565b60006200085a7022ac22a1aaaa24a7a72fa6a0a720a3a2a960791b62000d1a565b60006200085a6e50524f4d4953534f52595f4e4f544560881b62000d1a565b6200159a62001c98565b692822a2a92fa0a226a4a760b11b600090815260026020527f761fec31aef551bbe2a4dbed4a5afc93837edb1f6ece59e999f2405cd37bfe2080546001600160a01b0319166001600160a01b03841690811790915560405190917f940c07f3aef7002b63f184f53785de5f70c9ea2a604a398c85a53f86a40831f991a250565b60006200085a6b21a7a72324a3aaa920aa27a960a11b62000d1a565b6200164062001c98565b6b21a7a72324a3aaa920aa27a960a11b600090815260026020527f3fa205ee9910fcb2a7ef96f64c2fc6dd4511448c7127832ef9ce8e435357004280546001600160a01b0319166001600160a01b03841690811790915560405190917fc3236f1070213eaeaa9c639ef4afe370db8d568bff09d4a58cfb99a85e288f1e91a250565b60006200085a6b1197d513d2d15397d253541360a21b62000d1a565b620016e862001c98565b7050524943455f434f4e53554d45525f563360781b600090815260026020527ff2c2dabbccecadca3696e7cc70a368d413205a30f0fed44bc44c4473f192f15080546001600160a01b0319166001600160a01b03841690811790915560405190917fae7da98cf481089371a92501a2fb4ae6214e6601161b9e5fceef423e3693a27791a250565b6200177962001c98565b784f424c49474154494f4e5f524543454950545f42554e444c4560381b600090815260026020527ff283f72577744e5c4dec038fe0b0adff07e8e3f3b3c55c3b795e5665c4cc808880546001600160a01b0319166001600160a01b03841690811790915560405190917ffc803fe618ff3f9bc429edbd26465851bcf005a44ee917e9c202176a538b0db391a250565b60006200085a692827a7a62fa0a226a4a760b11b62000d1a565b6200182c62001c98565b7f504545525f494e43454e54495645535f434f4e54524f4c4c4552000000000000600090815260026020527f08f417d940f24df5fa0ac39234112114f240ae4af3330d6dc7f388a3f98bf1ea80546001600160a01b0319166001600160a01b03841690811790915560405190917f3f6849575a3e5eecf847f1c0a02e060ba837f565b4a596ce5a17e6bba7e3773991a250565b620018c962001c98565b6f2922a322a92920a62fa6a0a720a3a2a960811b600090815260026020527f85f5a61f33a30cc60152b937aae1ed8fa7fb474eec304cf8cc5c3f438f8ccf1d80546001600160a01b0319166001600160a01b03841690811790915560405190917f739851f3389798a82c255c8e3f652456e404fd26f5052589eb31fe53d0a8d44891a250565b6200195962001c98565b600082815260026020908152604080832080546001600160a01b0319166001600160a01b0386169081179091558151868152928301939093527ff2689d5d5cd0c639e137642cae5d40afced201a1a0327e7ac9358461dc9fff319101620011ad565b60006200085a630ae8aa8960e31b62000d1a565b60006200085a6e22a6a2a923a2a721acafa0a226a4a760891b62000d1a565b60006200085a6f2922a322a92920a62fa6a0a720a3a2a960811b62000d1a565b60006200085a7121a7a62620aa22a920a62fa6a0a720a3a2a960711b62000d1a565b60006200085a7550524f4d4953534f52595f4e4f54455f42554e444c4560501b62000d1a565b62001a6062001c98565b7550524f4d4953534f52595f4e4f54455f42554e444c4560501b600090815260026020527fce8eac61e1d43ca1af1837c3921fc57cd7571854338e12b63de044b236391c8e80546001600160a01b0319166001600160a01b03841690811790915560405190917fa5edba971437973a01c462c05f365032801891cff2fd61211c90e8981d887ad491a250565b62001af662001c98565b67545245415355525960c01b600090815260026020527f15646afdb5940053544b11eff1ab1b5439f2fa07023995e39a0986ce3cd8da1d80546001600160a01b0319166001600160a01b03841690811790915560405190917f7dae230f18360d76a040c81f050aa14eb9d6dc7901b20fc5d855e2a20fe814d191a250565b62001b7e62001c98565b6001600160a01b03811662001be95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b62001bf48162001e60565b50565b62001c0162001c98565b6b1197d513d2d15397d253541360a21b600090815260026020527f1a2ef1ab1c0098b15595f9534710a3d371d4bfbca7705fcc085230ad838dca2c80546001600160a01b0319166001600160a01b03841690811790915560405190917fd2ad7e284a866571e2b6e8568b596974a07cb89fa93122eeb5cb02a63e3e90ab91a250565b62001c8d62001c98565b62001bf48162001eb0565b6000546001600160a01b03163314620013595760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162001be0565b6000828152600260205260409020546001600160a01b03168062001df95760405130602482015260009060440160408051601f198184030181529181526020820180516001600160e01b031663189acdbd60e31b1790525190915060009084903090849062001d639062001efb565b62001d7193929190620020fe565b604051809103906000f08015801562001d8e573d6000803e3d6000fd5b5060008681526002602090815260409182902080546001600160a01b0319166001600160a01b038516908117909155915188815292935090917f1eb35cb4b5bbb23d152f3b4016a5a46c37a07ae930ed0956aba951e231142438910160405180910390a25050505050565b604051631b2ce7f360e11b81526001600160a01b038381166004830152829190821690633659cfe690602401600060405180830381600087803b15801562001e4057600080fd5b505af115801562001e55573d6000803e3d6000fd5b50505050505b505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600162001ebe828262002187565b507f5e667c32fd847cf8bce48ab3400175cbf107bdc82b2dea62e3364909dfaee7998160405162001ef0919062001fad565b60405180910390a150565b610edc806200225583390190565b80356001600160a01b038116811462001f2157600080fd5b919050565b60006020828403121562001f3957600080fd5b62001f448262001f09565b9392505050565b60006020828403121562001f5e57600080fd5b5035919050565b6000815180845260005b8181101562001f8d5760208185018101518683018201520162001f6f565b506000602082860101526020601f19601f83011685010191505092915050565b60208152600062001f44602083018462001f65565b6000806040838503121562001fd657600080fd5b8235915062001fe86020840162001f09565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156200201a57600080fd5b813567ffffffffffffffff808211156200203357600080fd5b818401915084601f8301126200204857600080fd5b8135818111156200205d576200205d62001ff1565b604051601f8201601f19908116603f0116810190838211818310171562002088576200208862001ff1565b81604052828152876020848701011115620020a257600080fd5b826020860160208301376000928101602001929092525095945050505050565b600181811c90821680620020d757607f821691505b602082108103620020f857634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b038481168252831660208201526060604082018190526000906200212c9083018462001f65565b95945050505050565b601f82111562001e5b57600081815260208120601f850160051c810160208610156200215e5750805b601f850160051c820191505b818110156200217f578281556001016200216a565b505050505050565b815167ffffffffffffffff811115620021a457620021a462001ff1565b620021bc81620021b58454620020c2565b8462002135565b602080601f831160018114620021f45760008415620021db5750858301515b600019600386901b1c1916600185901b1785556200217f565b600085815260208120601f198616915b82811015620022255788860151825594840194600190910190840162002204565b5085821015620022445787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fe608060405260405162000edc38038062000edc83398101604081905262000026916200049d565b8282828281620000398282600062000053565b506200004790508262000090565b505050505050620005d0565b6200005e83620000eb565b6000825111806200006c5750805b156200008b576200008983836200012d60201b620002b81760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000bb6200015c565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000e88162000195565b50565b620000f6816200024a565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606062000155838360405180606001604052806027815260200162000eb560279139620002fe565b9392505050565b60006200018660008051602062000e9583398151915260001b6200037d60201b6200020a1760201c565b546001600160a01b0316919050565b6001600160a01b038116620002005760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200022960008051602062000e9583398151915260001b6200037d60201b6200020a1760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b62000260816200038060201b620002e41760201c565b620002c45760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001f7565b80620002297f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6200037d60201b6200020a1760201c565b6060600080856001600160a01b0316856040516200031d91906200057d565b600060405180830381855af49150503d80600081146200035a576040519150601f19603f3d011682016040523d82523d6000602084013e6200035f565b606091505b50909250905062000373868383876200038f565b9695505050505050565b90565b6001600160a01b03163b151590565b6060831562000403578251600003620003fb576001600160a01b0385163b620003fb5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620001f7565b50816200040f565b6200040f838362000417565b949350505050565b815115620004285781518083602001fd5b8060405162461bcd60e51b8152600401620001f791906200059b565b80516001600160a01b03811681146200045c57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620004945781810151838201526020016200047a565b50506000910152565b600080600060608486031215620004b357600080fd5b620004be8462000444565b9250620004ce6020850162000444565b60408501519092506001600160401b0380821115620004ec57600080fd5b818601915086601f8301126200050157600080fd5b81518181111562000516576200051662000461565b604051601f8201601f19908116603f0116810190838211818310171562000541576200054162000461565b816040528281528960208487010111156200055b57600080fd5b6200056e83602083016020880162000477565b80955050505050509250925092565b600082516200059181846020870162000477565b9190910192915050565b6020815260008251806020840152620005bc81604085016020870162000477565b601f01601f19169190910160400192915050565b6108b580620005e06000396000f3fe6080604052600436106100595760003560e01c80633659cfe6146100705780634f1ef286146100905780635c60da1b146100a35780638f283970146100d4578063aaf10f42146100f4578063f851a4401461010957610068565b366100685761006661011e565b005b61006661011e565b34801561007c57600080fd5b5061006661008b366004610747565b610138565b61006661009e366004610762565b610175565b3480156100af57600080fd5b506100b86101dc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e057600080fd5b506100666100ef366004610747565b61020d565b34801561010057600080fd5b506100b861022d565b34801561011557600080fd5b506100b8610297565b6101266102f3565b610136610131610383565b61038d565b565b6101406103b1565b6001600160a01b0316330361016d5761016a816040518060200160405280600081525060006103e4565b50565b61016a61011e565b61017d6103b1565b6001600160a01b031633036101d4576101cf8383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250600192506103e4915050565b505050565b6101cf61011e565b60006101e66103b1565b6001600160a01b03163303610202576101fd610383565b905090565b61020a61011e565b90565b6102156103b1565b6001600160a01b0316330361016d5761016a8161040f565b60006102376103b1565b6001600160a01b0316336001600160a01b0316146040518060400160405280600381526020016203130360ec1b8152509061028e5760405162461bcd60e51b81526004016102859190610809565b60405180910390fd5b506101fd610463565b60006102a16103b1565b6001600160a01b03163303610202576101fd6103b1565b60606102dd83836040518060600160405280602781526020016108596027913961048b565b9392505050565b6001600160a01b03163b151590565b6102fb6103b1565b6001600160a01b031633036101365760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a401610285565b60006101fd610463565b3660008037600080366000845af43d6000803e8080156103ac573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b6103ed83610503565b6000825111806103fa5750805b156101cf5761040983836102b8565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6104386103b1565b604080516001600160a01b03928316815291841660208301520160405180910390a161016a81610543565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6103d5565b6060600080856001600160a01b0316856040516104a8919061083c565b600060405180830381855af49150503d80600081146104e3576040519150601f19603f3d011682016040523d82523d6000602084013e6104e8565b606091505b50915091506104f9868383876105ec565b9695505050505050565b61050c8161066d565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b0381166105a85760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152608401610285565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060831561065b578251600003610654576001600160a01b0385163b6106545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610285565b5081610665565b6106658383610701565b949350505050565b6001600160a01b0381163b6106da5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610285565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6105cb565b8151156107115781518083602001fd5b8060405162461bcd60e51b81526004016102859190610809565b80356001600160a01b038116811461074257600080fd5b919050565b60006020828403121561075957600080fd5b6102dd8261072b565b60008060006040848603121561077757600080fd5b6107808461072b565b9250602084013567ffffffffffffffff8082111561079d57600080fd5b818601915086601f8301126107b157600080fd5b8135818111156107c057600080fd5b8760208285010111156107d257600080fd5b6020830194508093505050509250925092565b60005b838110156108005781810151838201526020016107e8565b50506000910152565b60208152600082518060208401526108288160408501602087016107e5565b601f01601f19169190910160400192915050565b6000825161084e8184602087016107e5565b919091019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220eaa9a4e34e6339207f9f4ee73803a16882cd2365f69bed76331cc1683744028e64736f6c63430008100033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d6de7042bd25751a8072b1fde58ce4223d86347c723b9bfe33e92e9f74861ac964736f6c63430008100033",
"sourceMap": "670:18286:118:-:0;;;2573:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;936:32:41;719:10:65;936:18:41;:32::i;:::-;2619:22:118;2632:8;2619:12;:22::i;:::-;2573:75;670:18286;;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;18826:128:118:-;18891:9;:20;18903:8;18891:9;:20;:::i;:::-;;18926:21;18938:8;18926:21;;;;;;:::i;:::-;;;;;;;;18826:128;:::o;14:127:176:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:250;231:1;241:113;255:6;252:1;249:13;241:113;;;331:11;;;325:18;312:11;;;305:39;277:2;270:10;241:113;;;-1:-1:-1;;388:1:176;370:16;;363:27;146:250::o;401:897::-;481:6;534:2;522:9;513:7;509:23;505:32;502:52;;;550:1;547;540:12;502:52;577:16;;-1:-1:-1;;;;;642:14:176;;;639:34;;;669:1;666;659:12;639:34;707:6;696:9;692:22;682:32;;752:7;745:4;741:2;737:13;733:27;723:55;;774:1;771;764:12;723:55;803:2;797:9;825:2;821;818:10;815:36;;;831:18;;:::i;:::-;906:2;900:9;874:2;960:13;;-1:-1:-1;;956:22:176;;;980:2;952:31;948:40;936:53;;;1004:18;;;1024:22;;;1001:46;998:72;;;1050:18;;:::i;:::-;1090:10;1086:2;1079:22;1125:2;1117:6;1110:18;1165:7;1160:2;1155;1151;1147:11;1143:20;1140:33;1137:53;;;1186:1;1183;1176:12;1137:53;1199:68;1264:2;1259;1251:6;1247:15;1242:2;1238;1234:11;1199:68;:::i;:::-;1286:6;401:897;-1:-1:-1;;;;;;;401:897:176:o;1303:380::-;1382:1;1378:12;;;;1425;;;1446:61;;1500:4;1492:6;1488:17;1478:27;;1446:61;1553:2;1545:6;1542:14;1522:18;1519:38;1516:161;;1599:10;1594:3;1590:20;1587:1;1580:31;1634:4;1631:1;1624:15;1662:4;1659:1;1652:15;1516:161;;1303:380;;;:::o;1814:545::-;1916:2;1911:3;1908:11;1905:448;;;1952:1;1977:5;1973:2;1966:17;2022:4;2018:2;2008:19;2092:2;2080:10;2076:19;2073:1;2069:27;2063:4;2059:38;2128:4;2116:10;2113:20;2110:47;;;-1:-1:-1;2151:4:176;2110:47;2206:2;2201:3;2197:12;2194:1;2190:20;2184:4;2180:31;2170:41;;2261:82;2279:2;2272:5;2269:13;2261:82;;;2324:17;;;2305:1;2294:13;2261:82;;;2265:3;;;1905:448;1814:545;;;:::o;2535:1352::-;2655:10;;-1:-1:-1;;;;;2677:30:176;;2674:56;;;2710:18;;:::i;:::-;2739:97;2829:6;2789:38;2821:4;2815:11;2789:38;:::i;:::-;2783:4;2739:97;:::i;:::-;2891:4;;2955:2;2944:14;;2972:1;2967:663;;;;3674:1;3691:6;3688:89;;;-1:-1:-1;3743:19:176;;;3737:26;3688:89;-1:-1:-1;;2492:1:176;2488:11;;;2484:24;2480:29;2470:40;2516:1;2512:11;;;2467:57;3790:81;;2937:944;;2967:663;1761:1;1754:14;;;1798:4;1785:18;;-1:-1:-1;;3003:20:176;;;3121:236;3135:7;3132:1;3129:14;3121:236;;;3224:19;;;3218:26;3203:42;;3316:27;;;;3284:1;3272:14;;;;3151:19;;3121:236;;;3125:3;3385:6;3376:7;3373:19;3370:201;;;3446:19;;;3440:26;-1:-1:-1;;3529:1:176;3525:14;;;3541:3;3521:24;3517:37;3513:42;3498:58;3483:74;;3370:201;-1:-1:-1;;;;;3617:1:176;3601:14;;;3597:22;3584:36;;-1:-1:-1;2535:1352:176:o;3892:396::-;4041:2;4030:9;4023:21;4004:4;4073:6;4067:13;4116:6;4111:2;4100:9;4096:18;4089:34;4132:79;4204:6;4199:2;4188:9;4184:18;4179:2;4171:6;4167:15;4132:79;:::i;:::-;4272:2;4251:15;-1:-1:-1;;4247:29:176;4232:45;;;;4279:2;4228:54;;3892:396;-1:-1:-1;;3892:396:176:o;:::-;670:18286:118;;;;;;",
"linkReferences": {}
},
"deployedBytecode": {
"object": "0x60806040523480156200001157600080fd5b5060043610620003fc5760003560e01c806369acea5f116200021d578063a01246e31162000131578063de3c6e0411620000bb578063f0f442601162000086578063f0f4426014620007dd578063f2fde38b14620007f4578063f66e398f146200080b578063f67b1847146200082257600080fd5b8063de3c6e0414620007a8578063dfa441be14620007b2578063e4a2544d14620007bc578063ea34b96114620007c657600080fd5b8063c5f3a4c411620000fc578063c5f3a4c41462000766578063ca446dd9146200077d578063cae5f11e1462000794578063ddcaa9ea146200079e57600080fd5b8063a01246e31462000717578063ad1f9944146200072e578063aecda3781462000745578063c13e754b146200074f57600080fd5b8063842a05d411620001b357806398875827116200017e5780639887582714620006d55780639b7ae5ec14620006ec5780639f5f86ae14620006f65780639fd192b8146200070d57600080fd5b8063842a05d41462000698578063862beee114620006af5780638da5cb5b14620006b957806390313e8e14620006cb57600080fd5b806373aa9e9411620001f457806373aa9e94146200065657806374eb5a62146200066d57806377532ed914620006845780637dd83ac5146200068e57600080fd5b806369acea5f146200062b5780636c6f33a51462000635578063715018a6146200064c57600080fd5b8063283d62ad11620003155780634d82964c11620002ab5780635dcc528c11620002765780635dcc528c14620005e9578063617e0605146200060057806363ede0fc146200060a578063673adf43146200062157600080fd5b80634d82964c1462000598578063568ef47014620005af57806357d600a114620005c85780635b769f3c14620005d257600080fd5b80633b19e84a11620002ec5780633b19e84a14620005705780633fa01431146200057a57806347d2c534146200058457806347f872f1146200058e57600080fd5b8063283d62ad146200052b5780632fedd807146200054257806335da3394146200055957600080fd5b8063146b9ae311620003975780631e34764c11620003625780631e34764c14620004dc57806321da583714620004f357806321f8a721146200050a57806322e35383146200052157600080fd5b8063146b9ae314620004a7578063180fde0714620004b157806319ef926814620004c85780631a8b1fbc14620004d257600080fd5b80630c71b70111620003d85780630c71b701146200044b578063113aa8b11462000462578063135dc14714620004795780631381ba4d146200049057600080fd5b806292604714620004015780630261bf8b1462000428578063037c9be21462000432575b600080fd5b6200040b62000839565b6040516001600160a01b0390911681526020015b60405180910390f35b6200040b6200085f565b620004496200044336600462001f26565b6200087b565b005b620004496200045c36600462001f26565b6200090d565b620004496200047336600462001f26565b62000969565b620004496200048a36600462001f26565b620009f5565b62000449620004a136600462001f26565b62000a84565b6200040b62000b15565b62000449620004c236600462001f26565b62000b2f565b6200040b62000bb6565b6200040b62000be3565b62000449620004ed36600462001f26565b62000bfe565b620004496200050436600462001f26565b62000c8e565b6200040b6200051b36600462001f4b565b62000d1a565b6200040b62000d35565b620004496200053c36600462001f26565b62000d62565b620004496200055336600462001f26565b62000dec565b620004496200056a36600462001f26565b62000e7b565b6200040b62000f0a565b6200040b62000f22565b6200040b62000f44565b6200040b62000f63565b62000449620005a936600462001f26565b62000f85565b620005b962001019565b6040516200041f919062001fad565b6200040b620010b3565b62000449620005e336600462001f26565b620010d6565b62000449620005fa36600462001fc2565b6200115a565b6200040b620011b9565b620004496200061b36600462001f26565b620011dd565b6200040b6200126f565b6200040b6200128f565b620004496200064636600462001f26565b620012a6565b6200044962001343565b620004496200066736600462001f26565b6200135b565b620004496200067e36600462001f26565b620013ee565b6200040b62001479565b6200040b62001495565b62000449620006a936600462001f26565b620014be565b6200040b62001550565b6000546001600160a01b03166200040b565b6200040b62001571565b62000449620006e636600462001f26565b62001590565b6200040b6200161a565b620004496200070736600462001f26565b62001636565b6200040b620016c2565b620004496200072836600462001f26565b620016de565b620004496200073f36600462001f26565b6200176f565b6200040b62001808565b620004496200076036600462001f26565b62001822565b620004496200077736600462001f26565b620018bf565b620004496200078e36600462001fc2565b6200194f565b6200040b620019bb565b6200040b620019cf565b6200040b620019ee565b6200040b62001a0e565b6200040b62001a30565b62000449620007d736600462001f26565b62001a56565b62000449620007ee36600462001f26565b62001aec565b620004496200080536600462001f26565b62001b74565b620004496200081c36600462001f26565b62001bf7565b620004496200083336600462002007565b62001c83565b60006200085a7050524943455f434f4e53554d45525f563360781b62000d1a565b905090565b60006200085a6b13115391125391d7d413d3d360a21b62000d1a565b6200088562001c98565b71455845435554494f4e5f44454c454741544560701b600090815260026020527f20a83204e1bdb5e559f53f33519c56a69bd7bf634f98b1785b0af67f73c0025980546001600160a01b0319166001600160a01b03841690811790915560405190917f27b088f74c2a2d700056533df4dc5e9cd62f37caa25ac8934288444227638e5891a250565b6200091762001c98565b620009326b21a7a72324a3aaa920aa27a960a11b8262001cf4565b6040516001600160a01b038216907fc3236f1070213eaeaa9c639ef4afe370db8d568bff09d4a58cfb99a85e288f1e90600090a250565b6200097362001c98565b6b13115391125391d7d413d3d360a21b600090815260026020527fe5bdb40dea1fe80924bcdf7c070aa283f3cb94408a3870bba2d2fbfbae6b6df780546001600160a01b0319166001600160a01b03841690811790915560405190917fc4e6c6cdf28d0edbd8bcf071d724d33cc2e7a30be7d06443925656e9cb492aa491a250565b620009ff62001c98565b6e1111509517d513d2d15397d2535413608a1b600090815260026020527f6036d855f21afe7dfb8131b849ea29ba72dd2a065449193d6b1d9454ebcb9fa780546001600160a01b0319166001600160a01b03841690811790915560405190917f3cf954087af08d2fe2174f52171dd00643537359806f333023c728b6b443e5c091a250565b62000a8e62001c98565b7022ac22a1aaaa24a7a72fa6a0a720a3a2a960791b600090815260026020527fa33379d18b1e75d1dd776786d0e44221a6db3be8eb65c514d5c38e319119a26880546001600160a01b0319166001600160a01b03841690811790915560405190917f5eae3f21f5abac4a9e5366b214d23ec32700884bea3cfbc7502b49a9677573be91a250565b60006200085a692822a2a92fa0a226a4a760b11b62000d1a565b62000b3962001c98565b664c454e44494e4760c81b600090815260026020527f5feb06125a85fb98b540bee21269c9be1fda767db983db133357f1c77ae3dade80546001600160a01b0319166001600160a01b03841690811790915560405190917f535075f3058ab321c7ef90c69527c8440ff729fe1bf89ab1db1c0c1c3fb06a7c91a250565b60006200085a7f504f4f4c5f494e43454e54495645535f434f4e54524f4c4c455200000000000062000d1a565b60006200085a6a23262aa4a22faa27a5a2a760a91b62000d1a565b62000c0862001c98565b6f4e46545f50524943455f4f5241434c4560801b600090815260026020527fa7f3afca83ac2ad9556e7c271c326c0a0afe124cd9d3f845d316f7c11ae7b3ce80546001600160a01b0319166001600160a01b03841690811790915560405190917f9b25a87beb9b0c944472a974a70f2b8801d148aea9658ccc0b5fb8c11cf9473e91a250565b62000c9862001c98565b6b574554485f4741544557415960a01b600090815260026020527f936557deb1f2e2280930d0cea62c19c7f77ebcef5be3417aa6a4bf3196e8968b80546001600160a01b0319166001600160a01b03841690811790915560405190917f1c04adf41189ea89c3aed4d2b48952e6430bf6aed5df45f9fb5e83e5d8ea284291a250565b6000908152600260205260409020546001600160a01b031690565b60006200085a7f504545525f494e43454e54495645535f434f4e54524f4c4c455200000000000062000d1a565b62000d6c62001c98565b692827a7a62fa0a226a4a760b11b600090815260026020527f8625fbc469bac10fd11de1d783dcd446542784dbcc535ef64a1da61860fda74c80546001600160a01b0319166001600160a01b03841690811790915560405190917f8fdf777cb99daeede7a5dac227611bc42564ad910eb32dc9c0e9c9c81bed049891a250565b62000df662001c98565b6e50524f4d4953534f52595f4e4f544560881b600090815260026020527f441d10c82b253a6cf958c66adfbd60fbb8b35d06d72a10514381807fc19d3e6280546001600160a01b0319166001600160a01b03841690811790915560405190917fe0fa630ae43a2a48ce43d1b4f77f6e6a5410b1cf7caf3fcb1462b434d07f423691a250565b62000e8562001c98565b6e22a6a2a923a2a721acafa0a226a4a760891b600090815260026020527f767aa9c986e1d88108b2558f00fbd21b689a0397581446e2e868cd70421026cc80546001600160a01b0319166001600160a01b03841690811790915560405190917fe19673fc861bfeb894cf2d6b7662505497ef31c0f489b742db24ee331082691691a250565b60006200085a67545245415355525960c01b62000d1a565b60006200085a7113d0931251d0551253d397d49150d152541560721b62000d1a565b60006200085a6e1111509517d513d2d15397d2535413608a1b62000d1a565b60006200085a71455845435554494f4e5f44454c454741544560701b62000d1a565b62000f8f62001c98565b732622a72224a723afa920aa22afa6a0a720a3a2a960611b600090815260026020527f647865363de3647f266c90358eeae238843f9f3e0dd6270fea5aae19b16ebe6b80546001600160a01b0319166001600160a01b03841690811790915560405190917ff4080c1b3e5e445a25830f29277e0839af214d30054cd9d7cf05fd5f64653e6c91a250565b6060600180546200102a90620020c2565b80601f01602080910402602001604051908101604052809291908181526020018280546200105890620020c2565b8015620010a95780601f106200107d57610100808354040283529160200191620010a9565b820191906000526020600020905b8154815290600101906020018083116200108b57829003601f168201915b5050505050905090565b60006200085a7244454c45474154494f4e5f524547495354525960681b62000d1a565b620010e062001c98565b630ae8aa8960e31b600090815260026020527f9d079330cab48a13979924dfd7e87d65711257c575e853d3b075acf5fc8707c780546001600160a01b0319166001600160a01b03841690811790915560405190917f5f85e7e522385144040f94bcb1eeaeb07da5e11d6384c124c09f53986d0ed8bc91a250565b6200116462001c98565b62001170828262001cf4565b60408051838152600160208201526001600160a01b038316917ff2689d5d5cd0c639e137642cae5d40afced201a1a0327e7ac9358461dc9fff3191015b60405180910390a25050565b60006200085a732622a72224a723afa920aa22afa6a0a720a3a2a960611b62000d1a565b620011e762001c98565b7113d0931251d0551253d397d49150d152541560721b600090815260026020527f45ce244d16288f104b86e763e4270ce7b1fea9f31d2bd62b759d6dd2aa9cf00180546001600160a01b0319166001600160a01b03841690811790915560405190917f4630fffeacf5795620d8ce87474e0777773b2554a9f9b63ffd2efa16438c7c2591a250565b60006200085a6f4e46545f50524943455f4f5241434c4560801b62000d1a565b60006200085a664c454e44494e4760c81b62000d1a565b620012b062001c98565b7f504f4f4c5f494e43454e54495645535f434f4e54524f4c4c4552000000000000600090815260026020527f681bd2c3eabba7ef1f50d33af51f68b9f0cc238375aa1fdd54416dad5e3c5e0480546001600160a01b0319166001600160a01b03841690811790915560405190917f9d0aa5b8e4a2abcbfa162b696f9b38f7814029081df049c5f3b0339413636f5b91a250565b6200134d62001c98565b62001359600062001e60565b565b6200136562001c98565b7244454c45474154494f4e5f524547495354525960681b600090815260026020527fc3ab2dc989fcce615b917de19205c7c4905523d3b4cab155938e3f9cce9432ec80546001600160a01b0319166001600160a01b03841690811790915560405190917f836360d1b094a7de3c3eab3d1185f3a5939467c23d4a12709dbdbf8c8d7e2f3b91a250565b620013f862001c98565b6a23262aa4a22faa27a5a2a760a91b600090815260026020527f461c7a93a11c3461073c15abe808ff376806912495f0a37c68839a7ae672217480546001600160a01b0319166001600160a01b03841690811790915560405190917f0945294ba66186875367ce57fc808f1e792363363d0bc22ac2b939be433caa4591a250565b60006200085a6b574554485f4741544557415960a01b62000d1a565b60006200085a784f424c49474154494f4e5f524543454950545f42554e444c4560381b62000d1a565b620014c862001c98565b7121a7a62620aa22a920a62fa6a0a720a3a2a960711b600090815260026020527f65e3f3080e9127c1765503a54b8dbb495249e66169f096dfc87ee63bed17e22c80546001600160a01b0319166001600160a01b03841690811790915560405190917f507e88d0e3541203c8e7dba038a3e807ac9121f0872ed9ed895cd7f3358334eb91a250565b60006200085a7022ac22a1aaaa24a7a72fa6a0a720a3a2a960791b62000d1a565b60006200085a6e50524f4d4953534f52595f4e4f544560881b62000d1a565b6200159a62001c98565b692822a2a92fa0a226a4a760b11b600090815260026020527f761fec31aef551bbe2a4dbed4a5afc93837edb1f6ece59e999f2405cd37bfe2080546001600160a01b0319166001600160a01b03841690811790915560405190917f940c07f3aef7002b63f184f53785de5f70c9ea2a604a398c85a53f86a40831f991a250565b60006200085a6b21a7a72324a3aaa920aa27a960a11b62000d1a565b6200164062001c98565b6b21a7a72324a3aaa920aa27a960a11b600090815260026020527f3fa205ee9910fcb2a7ef96f64c2fc6dd4511448c7127832ef9ce8e435357004280546001600160a01b0319166001600160a01b03841690811790915560405190917fc3236f1070213eaeaa9c639ef4afe370db8d568bff09d4a58cfb99a85e288f1e91a250565b60006200085a6b1197d513d2d15397d253541360a21b62000d1a565b620016e862001c98565b7050524943455f434f4e53554d45525f563360781b600090815260026020527ff2c2dabbccecadca3696e7cc70a368d413205a30f0fed44bc44c4473f192f15080546001600160a01b0319166001600160a01b03841690811790915560405190917fae7da98cf481089371a92501a2fb4ae6214e6601161b9e5fceef423e3693a27791a250565b6200177962001c98565b784f424c49474154494f4e5f524543454950545f42554e444c4560381b600090815260026020527ff283f72577744e5c4dec038fe0b0adff07e8e3f3b3c55c3b795e5665c4cc808880546001600160a01b0319166001600160a01b03841690811790915560405190917ffc803fe618ff3f9bc429edbd26465851bcf005a44ee917e9c202176a538b0db391a250565b60006200085a692827a7a62fa0a226a4a760b11b62000d1a565b6200182c62001c98565b7f504545525f494e43454e54495645535f434f4e54524f4c4c4552000000000000600090815260026020527f08f417d940f24df5fa0ac39234112114f240ae4af3330d6dc7f388a3f98bf1ea80546001600160a01b0319166001600160a01b03841690811790915560405190917f3f6849575a3e5eecf847f1c0a02e060ba837f565b4a596ce5a17e6bba7e3773991a250565b620018c962001c98565b6f2922a322a92920a62fa6a0a720a3a2a960811b600090815260026020527f85f5a61f33a30cc60152b937aae1ed8fa7fb474eec304cf8cc5c3f438f8ccf1d80546001600160a01b0319166001600160a01b03841690811790915560405190917f739851f3389798a82c255c8e3f652456e404fd26f5052589eb31fe53d0a8d44891a250565b6200195962001c98565b600082815260026020908152604080832080546001600160a01b0319166001600160a01b0386169081179091558151868152928301939093527ff2689d5d5cd0c639e137642cae5d40afced201a1a0327e7ac9358461dc9fff319101620011ad565b60006200085a630ae8aa8960e31b62000d1a565b60006200085a6e22a6a2a923a2a721acafa0a226a4a760891b62000d1a565b60006200085a6f2922a322a92920a62fa6a0a720a3a2a960811b62000d1a565b60006200085a7121a7a62620aa22a920a62fa6a0a720a3a2a960711b62000d1a565b60006200085a7550524f4d4953534f52595f4e4f54455f42554e444c4560501b62000d1a565b62001a6062001c98565b7550524f4d4953534f52595f4e4f54455f42554e444c4560501b600090815260026020527fce8eac61e1d43ca1af1837c3921fc57cd7571854338e12b63de044b236391c8e80546001600160a01b0319166001600160a01b03841690811790915560405190917fa5edba971437973a01c462c05f365032801891cff2fd61211c90e8981d887ad491a250565b62001af662001c98565b67545245415355525960c01b600090815260026020527f15646afdb5940053544b11eff1ab1b5439f2fa07023995e39a0986ce3cd8da1d80546001600160a01b0319166001600160a01b03841690811790915560405190917f7dae230f18360d76a040c81f050aa14eb9d6dc7901b20fc5d855e2a20fe814d191a250565b62001b7e62001c98565b6001600160a01b03811662001be95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b62001bf48162001e60565b50565b62001c0162001c98565b6b1197d513d2d15397d253541360a21b600090815260026020527f1a2ef1ab1c0098b15595f9534710a3d371d4bfbca7705fcc085230ad838dca2c80546001600160a01b0319166001600160a01b03841690811790915560405190917fd2ad7e284a866571e2b6e8568b596974a07cb89fa93122eeb5cb02a63e3e90ab91a250565b62001c8d62001c98565b62001bf48162001eb0565b6000546001600160a01b03163314620013595760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162001be0565b6000828152600260205260409020546001600160a01b03168062001df95760405130602482015260009060440160408051601f198184030181529181526020820180516001600160e01b031663189acdbd60e31b1790525190915060009084903090849062001d639062001efb565b62001d7193929190620020fe565b604051809103906000f08015801562001d8e573d6000803e3d6000fd5b5060008681526002602090815260409182902080546001600160a01b0319166001600160a01b038516908117909155915188815292935090917f1eb35cb4b5bbb23d152f3b4016a5a46c37a07ae930ed0956aba951e231142438910160405180910390a25050505050565b604051631b2ce7f360e11b81526001600160a01b038381166004830152829190821690633659cfe690602401600060405180830381600087803b15801562001e4057600080fd5b505af115801562001e55573d6000803e3d6000fd5b50505050505b505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600162001ebe828262002187565b507f5e667c32fd847cf8bce48ab3400175cbf107bdc82b2dea62e3364909dfaee7998160405162001ef0919062001fad565b60405180910390a150565b610edc806200225583390190565b80356001600160a01b038116811462001f2157600080fd5b919050565b60006020828403121562001f3957600080fd5b62001f448262001f09565b9392505050565b60006020828403121562001f5e57600080fd5b5035919050565b6000815180845260005b8181101562001f8d5760208185018101518683018201520162001f6f565b506000602082860101526020601f19601f83011685010191505092915050565b60208152600062001f44602083018462001f65565b6000806040838503121562001fd657600080fd5b8235915062001fe86020840162001f09565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156200201a57600080fd5b813567ffffffffffffffff808211156200203357600080fd5b818401915084601f8301126200204857600080fd5b8135818111156200205d576200205d62001ff1565b604051601f8201601f19908116603f0116810190838211818310171562002088576200208862001ff1565b81604052828152876020848701011115620020a257600080fd5b826020860160208301376000928101602001929092525095945050505050565b600181811c90821680620020d757607f821691505b602082108103620020f857634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b038481168252831660208201526060604082018190526000906200212c9083018462001f65565b95945050505050565b601f82111562001e5b57600081815260208120601f850160051c810160208610156200215e5750805b601f850160051c820191505b818110156200217f578281556001016200216a565b505050505050565b815167ffffffffffffffff811115620021a457620021a462001ff1565b620021bc81620021b58454620020c2565b8462002135565b602080601f831160018114620021f45760008415620021db5750858301515b600019600386901b1c1916600185901b1785556200217f565b600085815260208120601f198616915b82811015620022255788860151825594840194600190910190840162002204565b5085821015620022445787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fe608060405260405162000edc38038062000edc83398101604081905262000026916200049d565b8282828281620000398282600062000053565b506200004790508262000090565b505050505050620005d0565b6200005e83620000eb565b6000825111806200006c5750805b156200008b576200008983836200012d60201b620002b81760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000bb6200015c565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000e88162000195565b50565b620000f6816200024a565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606062000155838360405180606001604052806027815260200162000eb560279139620002fe565b9392505050565b60006200018660008051602062000e9583398151915260001b6200037d60201b6200020a1760201c565b546001600160a01b0316919050565b6001600160a01b038116620002005760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200022960008051602062000e9583398151915260001b6200037d60201b6200020a1760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b62000260816200038060201b620002e41760201c565b620002c45760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001f7565b80620002297f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6200037d60201b6200020a1760201c565b6060600080856001600160a01b0316856040516200031d91906200057d565b600060405180830381855af49150503d80600081146200035a576040519150601f19603f3d011682016040523d82523d6000602084013e6200035f565b606091505b50909250905062000373868383876200038f565b9695505050505050565b90565b6001600160a01b03163b151590565b6060831562000403578251600003620003fb576001600160a01b0385163b620003fb5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620001f7565b50816200040f565b6200040f838362000417565b949350505050565b815115620004285781518083602001fd5b8060405162461bcd60e51b8152600401620001f791906200059b565b80516001600160a01b03811681146200045c57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620004945781810151838201526020016200047a565b50506000910152565b600080600060608486031215620004b357600080fd5b620004be8462000444565b9250620004ce6020850162000444565b60408501519092506001600160401b0380821115620004ec57600080fd5b818601915086601f8301126200050157600080fd5b81518181111562000516576200051662000461565b604051601f8201601f19908116603f0116810190838211818310171562000541576200054162000461565b816040528281528960208487010111156200055b57600080fd5b6200056e83602083016020880162000477565b80955050505050509250925092565b600082516200059181846020870162000477565b9190910192915050565b6020815260008251806020840152620005bc81604085016020870162000477565b601f01601f19169190910160400192915050565b6108b580620005e06000396000f3fe6080604052600436106100595760003560e01c80633659cfe6146100705780634f1ef286146100905780635c60da1b146100a35780638f283970146100d4578063aaf10f42146100f4578063f851a4401461010957610068565b366100685761006661011e565b005b61006661011e565b34801561007c57600080fd5b5061006661008b366004610747565b610138565b61006661009e366004610762565b610175565b3480156100af57600080fd5b506100b86101dc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e057600080fd5b506100666100ef366004610747565b61020d565b34801561010057600080fd5b506100b861022d565b34801561011557600080fd5b506100b8610297565b6101266102f3565b610136610131610383565b61038d565b565b6101406103b1565b6001600160a01b0316330361016d5761016a816040518060200160405280600081525060006103e4565b50565b61016a61011e565b61017d6103b1565b6001600160a01b031633036101d4576101cf8383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250600192506103e4915050565b505050565b6101cf61011e565b60006101e66103b1565b6001600160a01b03163303610202576101fd610383565b905090565b61020a61011e565b90565b6102156103b1565b6001600160a01b0316330361016d5761016a8161040f565b60006102376103b1565b6001600160a01b0316336001600160a01b0316146040518060400160405280600381526020016203130360ec1b8152509061028e5760405162461bcd60e51b81526004016102859190610809565b60405180910390fd5b506101fd610463565b60006102a16103b1565b6001600160a01b03163303610202576101fd6103b1565b60606102dd83836040518060600160405280602781526020016108596027913961048b565b9392505050565b6001600160a01b03163b151590565b6102fb6103b1565b6001600160a01b031633036101365760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a401610285565b60006101fd610463565b3660008037600080366000845af43d6000803e8080156103ac573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b6103ed83610503565b6000825111806103fa5750805b156101cf5761040983836102b8565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6104386103b1565b604080516001600160a01b03928316815291841660208301520160405180910390a161016a81610543565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6103d5565b6060600080856001600160a01b0316856040516104a8919061083c565b600060405180830381855af49150503d80600081146104e3576040519150601f19603f3d011682016040523d82523d6000602084013e6104e8565b606091505b50915091506104f9868383876105ec565b9695505050505050565b61050c8161066d565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b0381166105a85760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152608401610285565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060831561065b578251600003610654576001600160a01b0385163b6106545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610285565b5081610665565b6106658383610701565b949350505050565b6001600160a01b0381163b6106da5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610285565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6105cb565b8151156107115781518083602001fd5b8060405162461bcd60e51b81526004016102859190610809565b80356001600160a01b038116811461074257600080fd5b919050565b60006020828403121561075957600080fd5b6102dd8261072b565b60008060006040848603121561077757600080fd5b6107808461072b565b9250602084013567ffffffffffffffff8082111561079d57600080fd5b818601915086601f8301126107b157600080fd5b8135818111156107c057600080fd5b8760208285010111156107d257600080fd5b6020830194508093505050509250925092565b60005b838110156108005781810151838201526020016107e8565b50506000910152565b60208152600082518060208401526108288160408501602087016107e5565b601f01601f19169190910160400192915050565b6000825161084e8184602087016107e5565b919091019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220eaa9a4e34e6339207f9f4ee73803a16882cd2365f69bed76331cc1683744028e64736f6c63430008100033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d6de7042bd25751a8072b1fde58ce4223d86347c723b9bfe33e92e9f74861ac964736f6c63430008100033",
"sourceMap": "670:18286:118:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14017:124;;;:::i;:::-;;;-1:-1:-1;;;;;178:32:176;;;160:51;;148:2;133:18;14017:124:118;;;;;;;;9723:115;;;:::i;5033:210::-;;;;;;:::i;:::-;;:::i;:::-;;11142:183;;;;;;:::i;:::-;;:::i;10069:153::-;;;;;;:::i;:::-;;:::i;16762:187::-;;;;;;:::i;:::-;;:::i;5772:204::-;;;;;;:::i;:::-;;:::i;12279:111::-;;;:::i;6428:149::-;;;;;;:::i;:::-;;:::i;14646:142::-;;;:::i;14350:113::-;;;:::i;13459:193::-;;;;;;:::i;:::-;;:::i;17319:174::-;;;;;;:::i;:::-;;:::i;3221:109::-;;;;;;:::i;:::-;;:::i;15011:142::-;;;:::i;12850:150::-;;;;;;:::i;:::-;;:::i;7086:192::-;;;;;;:::i;:::-;;:::i;13133:::-;;;;;;:::i;:::-;;:::i;15709:108::-;;;:::i;8182:127::-;;;:::i;16636:120::-;;;:::i;4635:127::-;;;:::i;13794:217::-;;;;;;:::i;:::-;;:::i;2784:103::-;;;:::i;:::-;;;;;;;:::i;15984:129::-;;;:::i;17061:131::-;;;;;;:::i;:::-;;:::i;4257:239::-;;;;;;:::i;:::-;;:::i;13658:130::-;;;:::i;8580:210::-;;;;;;:::i;:::-;;:::i;13331:122::-;;;:::i;6093:106::-;;;:::i;14794:211::-;;;;;;:::i;:::-;;:::i;1831:101:41:-;;;:::i;16119:216:118:-;;;;;;:::i;:::-;;:::i;14469:168::-;;;;;;:::i;:::-;;:::i;17198:115::-;;;:::i;8943:140::-;;;:::i;11912:180::-;;;;;;:::i;:::-;;:::i;5380:125::-;;;:::i;1201:85:41:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:41;1201:85;;6708:121:118;;;:::i;12396:150::-;;;;;;:::i;:::-;;:::i;10349:116::-;;;:::i;10714:179::-;;;;;;:::i;:::-;;:::i;16341:114::-;;;:::i;14147:197::-;;;;;;:::i;:::-;;:::i;9369:229::-;;;;;;:::i;:::-;;:::i;12733:111::-;;;:::i;15159:211::-;;;;;;:::i;:::-;;:::i;15505:198::-;;;;;;:::i;:::-;;:::i;3587:172::-;;;;;;:::i;:::-;;:::i;16955:100::-;;;:::i;13006:121::-;;;:::i;15376:123::-;;;:::i;11649:127::-;;;:::i;7422:134::-;;;:::i;7832:211::-;;;;;;:::i;:::-;;:::i;15823:155::-;;;;;;:::i;:::-;;:::i;2081:198:41:-;;;;;;:::i;:::-;;:::i;16461:169:118:-;;;;;;:::i;:::-;;:::i;3022:112::-;;;;;;:::i;:::-;;:::i;14017:124::-;14079:7;14105:29;-1:-1:-1;;;14105:10:118;:29::i;:::-;14098:36;;14017:124;:::o;9723:115::-;9781:7;9807:24;-1:-1:-1;;;9807:10:118;:24::i;5033:210::-;1094:13:41;:11;:13::i;:::-;-1:-1:-1;;;5128:30:118::1;::::0;;;:10:::1;:30;::::0;;:50;;-1:-1:-1;;;;;;5128:50:118::1;-1:-1:-1::0;;;;;5128:50:118;::::1;::::0;;::::1;::::0;;;:30;5193:43;5128:50;;5193:43:::1;::::0;::::1;5033:210:::0;:::o;11142:183::-;1094:13:41;:11;:13::i;:::-;11231:39:118::1;-1:-1:-1::0;;;11257:12:118::1;11231:11;:39::i;:::-;11285:33;::::0;-1:-1:-1;;;;;11285:33:118;::::1;::::0;::::1;::::0;;;::::1;11142:183:::0;:::o;10069:153::-;1094:13:41;:11;:13::i;:::-;-1:-1:-1;;;10145:24:118::1;::::0;;;:10:::1;:24;::::0;;:31;;-1:-1:-1;;;;;;10145:31:118::1;-1:-1:-1::0;;;;;10145:31:118;::::1;::::0;;::::1;::::0;;;:24;10191;10145:31;;10191:24:::1;::::0;::::1;10069:153:::0;:::o;16762:187::-;1094:13:41;:11;:13::i;:::-;-1:-1:-1;;;16849:27:118::1;::::0;;;:10:::1;:27;::::0;;:43;;-1:-1:-1;;;;;;16849:43:118::1;-1:-1:-1::0;;;;;16849:43:118;::::1;::::0;;::::1;::::0;;;:27;16907:35;16849:43;;16907:35:::1;::::0;::::1;16762:187:::0;:::o;5772:204::-;1094:13:41;:11;:13::i;:::-;-1:-1:-1;;;5865:29:118::1;::::0;;;:10:::1;:29;::::0;;:48;;-1:-1:-1;;;;;;5865:48:118::1;-1:-1:-1::0;;;;;5865:48:118;::::1;::::0;;::::1;::::0;;;:29;5928:41;5865:48;;5928:41:::1;::::0;::::1;5772:204:::0;:::o;12279:111::-;12335:7;12361:22;-1:-1:-1;;;12361:10:118;:22::i;6428:149::-;1094:13:41;:11;:13::i;:::-;-1:-1:-1;;;6503:19:118::1;::::0;;;:10:::1;:19;::::0;;:29;;-1:-1:-1;;;;;;6503:29:118::1;-1:-1:-1::0;;;;;6503:29:118;::::1;::::0;;::::1;::::0;;;:19;6547:23;6503:29;;6547:23:::1;::::0;::::1;6428:149:::0;:::o;14646:142::-;14717:7;14743:38;14754:26;14743:10;:38::i;14350:113::-;14407:7;14433:23;-1:-1:-1;;;14433:10:118;:23::i;13459:193::-;1094:13:41;:11;:13::i;:::-;-1:-1:-1;;;13548:28:118::1;::::0;;;:10:::1;:28;::::0;;:45;;-1:-1:-1;;;;;;13548:45:118::1;-1:-1:-1::0;;;;;13548:45:118;::::1;::::0;;::::1;::::0;;;:28;13608:37;13548:45;;13608:37:::1;::::0;::::1;13459:193:::0;:::o;17319:174::-;1094:13:41;:11;:13::i;:::-;-1:-1:-1;;;17402:24:118::1;::::0;;;:10:::1;:24;::::0;;:38;;-1:-1:-1;;;;;;17402:38:118::1;-1:-1:-1::0;;;;;17402:38:118;::::1;::::0;;::::1;::::0;;;:24;17455:31;17402:38;;17455:31:::1;::::0;::::1;17319:174:::0;:::o;3221:109::-;3283:7;3309:14;;;:10;:14;;;;;;-1:-1:-1;;;;;3309:14:118;;3221:109::o;15011:142::-;15082:7;15108:38;15119:26;15108:10;:38::i;12850:150::-;1094:13:41;:11;:13::i;:::-;-1:-1:-1;;;12925:22:118::1;::::0;;;:10:::1;:22;::::0;;:30;;-1:-1:-1;;;;;;12925:30:118::1;-1:-1:-1::0;;;;;12925:30:118;::::1;::::0;;::::1;::::0;;;:22;12970:23;12925:30;;12970:23:::1;::::0;::::1;12850:150:::0;:::o;7086:192::-;1094:13:41;:11;:13::i;:::-;-1:-1:-1;;;7175:27:118::1;::::0;;;:10:::1;:27;::::0;;:44;;-1:-1:-1;;;;;;7175:44:118::1;-1:-1:-1::0;;;;;7175:44:118;::::1;::::0;;::::1;::::0;;;:27;7234:37;7175:44;;7234:37:::1;::::0;::::1;7086:192:::0;:::o;13133:::-;1094:13:41;:11;:13::i;:::-;-1:-1:-1;;;13222:27:118::1;::::0;;;:10:::1;:27;::::0;;:44;;-1:-1:-1;;;;;;13222:44:118::1;-1:-1:-1::0;;;;;13222:44:118;::::1;::::0;;::::1;::::0;;;:27;13281:37;13222:44;;13281:37:::1;::::0;::::1;13133:192:::0;:::o;15709:108::-;15764:7;15790:20;-1:-1:-1;;;15790:10:118;:20::i;8182:127::-;8246:7;8272:30;-1:-1:-1;;;8272:10:118;:30::i;16636:120::-;16696:7;16722:27;-1:-1:-1;;;16722:10:118;:27::i;4635:127::-;4699:7;4725:30;-1:-1:-1;;;4725:10:118;:30::i;13794:217::-;1094:13:41;:11;:13::i;:::-;-1:-1:-1;;;13891:32:118::1;::::0;;;:10:::1;:32;::::0;;:53;;-1:-1:-1;;;;;;13891:53:118::1;-1:-1:-1::0;;;;;13891:53:118;::::1;::::0;;::::1;::::0;;;:32;13959:45;13891:53;;13959:45:::1;::::0;::::1;13794:217:::0;:::o;2784:103::-;2839:13;2871:9;2864:16;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2784:103;:::o;15984:129::-;16049:7;16075:31;-1:-1:-1;;;16075:10:118;:31::i;17061:131::-;1094:13:41;:11;:13::i;:::-;-1:-1:-1;;;17130:16:118::1;::::0;;;:10:::1;:16;::::0;;:23;;-1:-1:-1;;;;;;17130:23:118::1;-1:-1:-1::0;;;;;17130:23:118;::::1;::::0;;::::1;::::0;;;:16;17168:17;17130:23;;17168:17:::1;::::0;::::1;17061:131:::0;:::o;4257:239::-;1094:13:41;:11;:13::i;:::-;4393:38:118::1;4405:2;4409:21;4393:11;:38::i;:::-;4446:43;::::0;;3300:25:176;;;4484:4:118::1;3356:2:176::0;3341:18;;3334:50;-1:-1:-1;;;;;4446:43:118;::::1;::::0;::::1;::::0;3273:18:176;4446:43:118::1;;;;;;;;4257:239:::0;;:::o;13658:130::-;13723:7;13749:32;-1:-1:-1;;;13749:10:118;:32::i;8580:210::-;1094:13:41;:11;:13::i;:::-;-1:-1:-1;;;8675:30:118::1;::::0;;;:10:::1;:30;::::0;;:50;;-1:-1:-1;;;;;;8675:50:118::1;-1:-1:-1::0;;;;;8675:50:118;::::1;::::0;;::::1;::::0;;;:30;8740:43;8675:50;;8740:43:::1;::::0;::::1;8580:210:::0;:::o;13331:122::-;13392:7;13418:28;-1:-1:-1;;;13418:10:118;:28::i;6093:106::-;6147:7;6173:19;-1:-1:-1;;;6173:10:118;:19::i;14794:211::-;1094:13:41;:11;:13::i;:::-;14900:26:118::1;14889:38;::::0;;;:10:::1;:38;::::0;;:51;;-1:-1:-1;;;;;;14889:51:118::1;-1:-1:-1::0;;;;;14889:51:118;::::1;::::0;;::::1;::::0;;;:38;14955:43;14889:51;;14955:43:::1;::::0;::::1;14794:211:::0;:::o;1831:101:41:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;16119:216:118:-;1094:13:41;:11;:13::i;:::-;-1:-1:-1;;;16216:31:118::1;::::0;;;:10:::1;:31;::::0;;:52;;-1:-1:-1;;;;;;16216:52:118::1;-1:-1:-1::0;;;;;16216:52:118;::::1;::::0;;::::1;::::0;;;:31;16283:45;16216:52;;16283:45:::1;::::0;::::1;16119:216:::0;:::o;14469:168::-;1094:13:41;:11;:13::i;:::-;-1:-1:-1;;;14550:23:118::1;::::0;;;:10:::1;:23;::::0;;:36;;-1:-1:-1;;;;;;14550:36:118::1;-1:-1:-1::0;;;;;14550:36:118;::::1;::::0;;::::1;::::0;;;:23;14601:29;14550:36;;14601:29:::1;::::0;::::1;14469:168:::0;:::o;17198:115::-;17256:7;17282:24;-1:-1:-1;;;17282:10:118;:24::i;8943:140::-;9013:7;9039:37;-1:-1:-1;;;9039:10:118;:37::i;11912:180::-;1094:13:41;:11;:13::i;:::-;-1:-1:-1;;;11997:30:118::1;::::0;;;:10:::1;:30;::::0;;:40;;-1:-1:-1;;;;;;11997:40:118::1;-1:-1:-1::0;;;;;11997:40:118;::::1;::::0;;::::1;::::0;;;:30;12052:33;11997:40;;12052:33:::1;::::0;::::1;11912:180:::0;:::o;5380:125::-;5443:7;5469:29;-1:-1:-1;;;5469:10:118;:29::i;6708:121::-;6769:7;6795:27;-1:-1:-1;;;6795:10:118;:27::i;12396:150::-;1094:13:41;:11;:13::i;:::-;-1:-1:-1;;;12471:22:118::1;::::0;;;:10:::1;:22;::::0;;:30;;-1:-1:-1;;;;;;12471:30:118::1;-1:-1:-1::0;;;;;12471:30:118;::::1;::::0;;::::1;::::0;;;:22;12516:23;12471:30;;12516:23:::1;::::0;::::1;12396:150:::0;:::o;10349:116::-;10408:7;10434:24;-1:-1:-1;;;10434:10:118;:24::i;10714:179::-;1094:13:41;:11;:13::i;:::-;-1:-1:-1;;;10799:24:118::1;::::0;;;:10:::1;:24;::::0;;:39;;-1:-1:-1;;;;;;10799:39:118::1;-1:-1:-1::0;;;;;10799:39:118;::::1;::::0;;::::1;::::0;;;:24;10853:33;10799:39;;10853:33:::1;::::0;::::1;10714:179:::0;:::o;16341:114::-;16398:7;16424:24;-1:-1:-1;;;16424:10:118;:24::i;14147:197::-;1094:13:41;:11;:13::i;:::-;-1:-1:-1;;;14238:29:118::1;::::0;;;:10:::1;:29;::::0;;:47;;-1:-1:-1;;;;;;14238:47:118::1;-1:-1:-1::0;;;;;14238:47:118;::::1;::::0;;::::1;::::0;;;:29;14300:37;14238:47;;14300:37:::1;::::0;::::1;14147:197:::0;:::o;9369:229::-;1094:13:41;:11;:13::i;:::-;-1:-1:-1;;;9470:37:118::1;::::0;;;:10:::1;:37;::::0;;:57;;-1:-1:-1;;;;;;9470:57:118::1;-1:-1:-1::0;;;;;9470:57:118;::::1;::::0;;::::1;::::0;;;:37;9542:49;9470:57;;9542:49:::1;::::0;::::1;9369:229:::0;:::o;12733:111::-;12789:7;12815:22;-1:-1:-1;;;12815:10:118;:22::i;15159:211::-;1094:13:41;:11;:13::i;:::-;15265:26:118::1;15254:38;::::0;;;:10:::1;:38;::::0;;:51;;-1:-1:-1;;;;;;15254:51:118::1;-1:-1:-1::0;;;;;15254:51:118;::::1;::::0;;::::1;::::0;;;:38;15320:43;15254:51;;15320:43:::1;::::0;::::1;15159:211:::0;:::o;15505:198::-;1094:13:41;:11;:13::i;:::-;-1:-1:-1;;;15596:28:118::1;::::0;;;:10:::1;:28;::::0;;:46;;-1:-1:-1;;;;;;15596:46:118::1;-1:-1:-1::0;;;;;15596:46:118;::::1;::::0;;::::1;::::0;;;:28;15657:39;15596:46;;15657:39:::1;::::0;::::1;15505:198:::0;:::o;3587:172::-;1094:13:41;:11;:13::i;:::-;3677:14:118::1;::::0;;;:10:::1;:14;::::0;;;;;;;:27;;-1:-1:-1;;;;;;3677:27:118::1;-1:-1:-1::0;;;;;3677:27:118;::::1;::::0;;::::1;::::0;;;3719:33;;3300:25:176;;;3341:18;;;3334:50;;;;3719:33:118::1;::::0;3273:18:176;3719:33:118::1;3132:258:176::0;16955:100:118;17006:7;17032:16;-1:-1:-1;;;17032:10:118;:16::i;13006:121::-;13067:7;13093:27;-1:-1:-1;;;13093:10:118;:27::i;15376:123::-;15438:7;15464:28;-1:-1:-1;;;15464:10:118;:28::i;11649:127::-;11713:7;11739:30;-1:-1:-1;;;11739:10:118;:30::i;7422:134::-;7489:7;7515:34;-1:-1:-1;;;7515:10:118;:34::i;7832:211::-;1094:13:41;:11;:13::i;:::-;-1:-1:-1;;;7927:34:118::1;::::0;;;:10:::1;:34;::::0;;:51;;-1:-1:-1;;;;;;7927:51:118::1;-1:-1:-1::0;;;;;7927:51:118;::::1;::::0;;::::1;::::0;;;:34;7993:43;7927:51;;7993:43:::1;::::0;::::1;7832:211:::0;:::o;15823:155::-;1094:13:41;:11;:13::i;:::-;-1:-1:-1;;;15900:20:118::1;::::0;;;:10:::1;:20;::::0;;:31;;-1:-1:-1;;;;;;15900:31:118::1;-1:-1:-1::0;;;;;15900:31:118;::::1;::::0;;::::1;::::0;;;:20;15946:25;15900:31;;15946:25:::1;::::0;::::1;15823:155:::0;:::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;;3597:2:176;2161:73:41::1;::::0;::::1;3579:21:176::0;3636:2;3616:18;;;3609:30;3675:34;3655:18;;;3648:62;-1:-1:-1;;;3726:18:176;;;3719:36;3772:19;;2161:73:41::1;;;;;;;;;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;16461:169:118:-;1094:13:41;:11;:13::i;:::-;-1:-1:-1;;;16542:24:118::1;::::0;;;:10:::1;:24;::::0;;:37;;-1:-1:-1;;;;;;16542:37:118::1;-1:-1:-1::0;;;;;16542:37:118;::::1;::::0;;::::1;::::0;;;:24;16594:29;16542:37;;16594:29:::1;::::0;::::1;16461:169:::0;:::o;3022:112::-;1094:13:41;:11;:13::i;:::-;3105:22:118::1;3118:8;3105:12;:22::i;1359:130:41:-:0;1247:7;1273:6;-1:-1:-1;;;;;1273:6:41;719:10:65;1422:23:41;1414:68;;;;-1:-1:-1;;;1414:68:41;;4004:2:176;1414:68:41;;;3986:21:176;;;4023:18;;;4016:30;4082:34;4062:18;;;4055:62;4134:18;;1414:68:41;3802:356:176;18097:723:118;18169:28;18208:14;;;:10;:14;;;;;;-1:-1:-1;;;;;18208:14:118;;18234:580;;18302:61;;18357:4;18302:61;;;160:51:176;18280:19:118;;133:18:176;;18302:61:118;;;-1:-1:-1;;18302:61:118;;;;;;;;;;;;;;-1:-1:-1;;;;;18302:61:118;-1:-1:-1;;;18302:61:118;;;18470:60;18302:61;;-1:-1:-1;;;18496:10:118;;18516:4;;18302:61;;18470:60;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18545:14:118;;;;:10;:14;;;;;;;;;:31;;-1:-1:-1;;;;;;18545:31:118;-1:-1:-1;;;;;18545:31:118;;;;;;;;18595:32;;4730:25:176;;;18545:31:118;;-1:-1:-1;18545:31:118;;18595:32;;4703:18:176;18595:32:118;;;;;;;18266:372;;18159:661;18097:723;;:::o;18234:580::-;18776:27;;-1:-1:-1;;;18776:27:118;;-1:-1:-1;;;;;178:32:176;;;18776:27:118;;;160:51:176;18748:12:118;;18776:15;;;;;;133:18:176;;18776:27:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18644:170;18234:580;18159:661;18097:723;;:::o;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;18826:128:118:-;18891:9;:20;18903:8;18891:9;:20;:::i;:::-;;18926:21;18938:8;18926:21;;;;;;:::i;:::-;;;;;;;;18826:128;:::o;-1:-1:-1:-;;;;;;;;:::o;222:173:176:-;290:20;;-1:-1:-1;;;;;339:31:176;;329:42;;319:70;;385:1;382;375:12;319:70;222:173;;;:::o;400:186::-;459:6;512:2;500:9;491:7;487:23;483:32;480:52;;;528:1;525;518:12;480:52;551:29;570:9;551:29;:::i;:::-;541:39;400:186;-1:-1:-1;;;400:186:176:o;591:180::-;650:6;703:2;691:9;682:7;678:23;674:32;671:52;;;719:1;716;709:12;671:52;-1:-1:-1;742:23:176;;591:180;-1:-1:-1;591:180:176:o;776:423::-;818:3;856:5;850:12;883:6;878:3;871:19;908:1;918:162;932:6;929:1;926:13;918:162;;;994:4;1050:13;;;1046:22;;1040:29;1022:11;;;1018:20;;1011:59;947:12;918:162;;;922:3;1125:1;1118:4;1109:6;1104:3;1100:16;1096:27;1089:38;1188:4;1181:2;1177:7;1172:2;1164:6;1160:15;1156:29;1151:3;1147:39;1143:50;1136:57;;;776:423;;;;:::o;1204:220::-;1353:2;1342:9;1335:21;1316:4;1373:45;1414:2;1403:9;1399:18;1391:6;1373:45;:::i;1429:254::-;1497:6;1505;1558:2;1546:9;1537:7;1533:23;1529:32;1526:52;;;1574:1;1571;1564:12;1526:52;1610:9;1597:23;1587:33;;1639:38;1673:2;1662:9;1658:18;1639:38;:::i;:::-;1629:48;;1429:254;;;;;:::o;1688:127::-;1749:10;1744:3;1740:20;1737:1;1730:31;1780:4;1777:1;1770:15;1804:4;1801:1;1794:15;1820:922;1889:6;1942:2;1930:9;1921:7;1917:23;1913:32;1910:52;;;1958:1;1955;1948:12;1910:52;1998:9;1985:23;2027:18;2068:2;2060:6;2057:14;2054:34;;;2084:1;2081;2074:12;2054:34;2122:6;2111:9;2107:22;2097:32;;2167:7;2160:4;2156:2;2152:13;2148:27;2138:55;;2189:1;2186;2179:12;2138:55;2225:2;2212:16;2247:2;2243;2240:10;2237:36;;;2253:18;;:::i;:::-;2328:2;2322:9;2296:2;2382:13;;-1:-1:-1;;2378:22:176;;;2402:2;2374:31;2370:40;2358:53;;;2426:18;;;2446:22;;;2423:46;2420:72;;;2472:18;;:::i;:::-;2512:10;2508:2;2501:22;2547:2;2539:6;2532:18;2587:7;2582:2;2577;2573;2569:11;2565:20;2562:33;2559:53;;;2608:1;2605;2598:12;2559:53;2664:2;2659;2655;2651:11;2646:2;2638:6;2634:15;2621:46;2709:1;2687:15;;;2704:2;2683:24;2676:35;;;;-1:-1:-1;2691:6:176;1820:922;-1:-1:-1;;;;;1820:922:176:o;2747:380::-;2826:1;2822:12;;;;2869;;;2890:61;;2944:4;2936:6;2932:17;2922:27;;2890:61;2997:2;2989:6;2986:14;2966:18;2963:38;2960:161;;3043:10;3038:3;3034:20;3031:1;3024:31;3078:4;3075:1;3068:15;3106:4;3103:1;3096:15;2960:161;;2747:380;;;:::o;4163:416::-;-1:-1:-1;;;;;4404:15:176;;;4386:34;;4456:15;;4451:2;4436:18;;4429:43;4508:2;4503;4488:18;;4481:30;;;4329:4;;4528:45;;4554:18;;4546:6;4528:45;:::i;:::-;4520:53;4163:416;-1:-1:-1;;;;;4163:416:176:o;4892:545::-;4994:2;4989:3;4986:11;4983:448;;;5030:1;5055:5;5051:2;5044:17;5100:4;5096:2;5086:19;5170:2;5158:10;5154:19;5151:1;5147:27;5141:4;5137:38;5206:4;5194:10;5191:20;5188:47;;;-1:-1:-1;5229:4:176;5188:47;5284:2;5279:3;5275:12;5272:1;5268:20;5262:4;5258:31;5248:41;;5339:82;5357:2;5350:5;5347:13;5339:82;;;5402:17;;;5383:1;5372:13;5339:82;;;5343:3;;;4892:545;;;:::o;5613:1352::-;5739:3;5733:10;5766:18;5758:6;5755:30;5752:56;;;5788:18;;:::i;:::-;5817:97;5907:6;5867:38;5899:4;5893:11;5867:38;:::i;:::-;5861:4;5817:97;:::i;:::-;5969:4;;6033:2;6022:14;;6050:1;6045:663;;;;6752:1;6769:6;6766:89;;;-1:-1:-1;6821:19:176;;;6815:26;6766:89;-1:-1:-1;;5570:1:176;5566:11;;;5562:24;5558:29;5548:40;5594:1;5590:11;;;5545:57;6868:81;;6015:944;;6045:663;4839:1;4832:14;;;4876:4;4863:18;;-1:-1:-1;;6081:20:176;;;6199:236;6213:7;6210:1;6207:14;6199:236;;;6302:19;;;6296:26;6281:42;;6394:27;;;;6362:1;6350:14;;;;6229:19;;6199:236;;;6203:3;6463:6;6454:7;6451:19;6448:201;;;6524:19;;;6518:26;-1:-1:-1;;6607:1:176;6603:14;;;6619:3;6599:24;6595:37;6591:42;6576:58;6561:74;;6448:201;-1:-1:-1;;;;;6695:1:176;6679:14;;;6675:22;6662:36;;-1:-1:-1;5613:1352:176:o",
"linkReferences": {}
},
"methodIdentifiers": {
"getAddress(bytes32)": "21f8a721",
"getCollateralManager()": "dfa441be",
"getConfigurator()": "9b7ae5ec",
"getDebtTokenImpl()": "47d2c534",
"getDelegationRegistry()": "57d600a1",
"getEmergencyAdmin()": "ddcaa9ea",
"getExecutionDelegate()": "47f872f1",
"getExecutionManager()": "862beee1",
"getFTokenImpl()": "9fd192b8",
"getFluidToken()": "1a8b1fbc",
"getLending()": "69acea5f",
"getLendingPool()": "0261bf8b",
"getLendingRateManager()": "617e0605",
"getMarketId()": "568ef470",
"getNFTPriceOracle()": "673adf43",
"getObligationReceipt()": "3fa01431",
"getObligationReceiptBundle()": "7dd83ac5",
"getPeerAdmin()": "146b9ae3",
"getPeerIncentivesController()": "22e35383",
"getPoolAdmin()": "aecda378",
"getPoolIncentivesController()": "19ef9268",
"getPriceConsumerV3()": "00926047",
"getPromissoryNote()": "90313e8e",
"getPromissoryNoteBundle()": "e4a2544d",
"getReferralManager()": "de3c6e04",
"getTreasury()": "3b19e84a",
"getWETH()": "cae5f11e",
"getWETHGateway()": "77532ed9",
"owner()": "8da5cb5b",
"renounceOwnership()": "715018a6",
"setAddress(bytes32,address)": "ca446dd9",
"setAddressAsProxy(bytes32,address)": "5dcc528c",
"setCollateralManager(address)": "842a05d4",
"setConfigurator(address)": "9f5f86ae",
"setConfiguratorImpl(address)": "0c71b701",
"setDebtTokenImpl(address)": "135dc147",
"setDelegationRegistry(address)": "73aa9e94",
"setEmergencyAdmin(address)": "35da3394",
"setExecutionDelegate(address)": "037c9be2",
"setExecutionManager(address)": "1381ba4d",
"setFTokenImpl(address)": "f66e398f",
"setFluidToken(address)": "74eb5a62",
"setLending(address)": "180fde07",
"setLendingPool(address)": "113aa8b1",
"setLendingRateManager(address)": "4d82964c",
"setMarketId(string)": "f67b1847",
"setNFTPriceOracle(address)": "1e34764c",
"setObligationReceipt(address)": "63ede0fc",
"setObligationReceiptBundle(address)": "ad1f9944",
"setPeerAdmin(address)": "98875827",
"setPeerIncentivesController(address)": "c13e754b",
"setPoolAdmin(address)": "283d62ad",
"setPoolIncentivesController(address)": "6c6f33a5",
"setPriceConsumerV3(address)": "a01246e3",
"setPromissoryNote(address)": "2fedd807",
"setPromissoryNoteBundle(address)": "ea34b961",
"setReferralManager(address)": "c5f3a4c4",
"setTreasury(address)": "f0f44260",
"setWETH(address)": "5b769f3c",
"setWETHGateway(address)": "21da5837",
"transferOwnership(address)": "f2fde38b"
},
"rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"marketId\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"hasProxy\",\"type\":\"bool\"}],\"name\":\"AddressSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"CollateralManagerUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"ConfiguratorUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"DebtTokenImplUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"DelegationRegistryUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"EmergencyAdminUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"ExecutionDelegateUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"ExecutionManagerUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"FTokenImplUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"FluidTokenUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"LendingPoolUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"LendingRateManagerUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"LendingUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"newMarketId\",\"type\":\"string\"}],\"name\":\"MarketIdSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"NFTPriceOracleUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"ObligationReceiptBundleUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"ObligationReceiptUpdated\",\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"PeerAdminUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"PeerIncentivesControllerUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"PoolAdminUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"PoolIncentivesControllerUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"PriceConsumerUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"PromissoryNoteBundleUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"PromissoryNoteUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"ProxyCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"ReferralManagerUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"TreasuryUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"WETHGatewayUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"WETHUpdated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"getAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCollateralManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getConfigurator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDebtTokenImpl\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDelegationRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getEmergencyAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getExecutionDelegate\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getExecutionManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFTokenImpl\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFluidToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLending\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLendingPool\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLendingRateManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMarketId\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNFTPriceOracle\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getObligationReceipt\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getObligationReceiptBundle\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPeerAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPeerIncentivesController\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPoolAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPoolIncentivesController\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPriceConsumerV3\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPromissoryNote\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPromissoryNoteBundle\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getReferralManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTreasury\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getWETH\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getWETHGateway\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"setAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"implementationAddress\",\"type\":\"address\"}],\"name\":\"setAddressAsProxy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"manager\",\"type\":\"address\"}],\"name\":\"setCollateralManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"configurator\",\"type\":\"address\"}],\"name\":\"setConfigurator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"configurator\",\"type\":\"address\"}],\"name\":\"setConfiguratorImpl\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"debtTokenImpl\",\"type\":\"address\"}],\"name\":\"setDebtTokenImpl\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegationRegistry\",\"type\":\"address\"}],\"name\":\"setDelegationRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"emergencyAdmin\",\"type\":\"address\"}],\"name\":\"setEmergencyAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"executionDelegate\",\"type\":\"address\"}],\"name\":\"setExecutionDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"executionManager\",\"type\":\"address\"}],\"name\":\"setExecutionManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"fTokenImpl\",\"type\":\"address\"}],\"name\":\"setFTokenImpl\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"fluidToken\",\"type\":\"address\"}],\"name\":\"setFluidToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"lending\",\"type\":\"address\"}],\"name\":\"setLending\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"setLendingPool\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"lendingRateManager\",\"type\":\"address\"}],\"name\":\"setLendingRateManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"marketId\",\"type\":\"string\"}],\"name\":\"setMarketId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"nftPriceOracle\",\"type\":\"address\"}],\"name\":\"setNFTPriceOracle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"obligationReceipt\",\"type\":\"address\"}],\"name\":\"setObligationReceipt\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"obligationReceipt\",\"type\":\"address\"}],\"name\":\"setObligationReceiptBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"setPeerAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\"}],\"name\":\"setPeerIncentivesController\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"setPoolAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\"}],\"name\":\"setPoolIncentivesController\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"priceConsumerV3\",\"type\":\"address\"}],\"name\":\"setPriceConsumerV3\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"promissoryNote\",\"type\":\"address\"}],\"name\":\"setPromissoryNote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"promissoryNote\",\"type\":\"address\"}],\"name\":\"setPromissoryNoteBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"referralManager\",\"type\":\"address\"}],\"name\":\"setReferralManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"treasury\",\"type\":\"address\"}],\"name\":\"setTreasury\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"weth\",\"type\":\"address\"}],\"name\":\"setWETH\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"wethGateway\",\"type\":\"address\"}],\"name\":\"setWETHGateway\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"FluidNFT*\",\"details\":\"Main registry of addresses part of or connected to the protocol, including permissioned roles - Acting also as factory of proxies and admin of those, so with right to change its implementations - Owned by the FluidNFT Governance\",\"kind\":\"dev\",\"methods\":{\"getAddress(bytes32)\":{\"details\":\"Returns an address by id\",\"returns\":{\"_0\":\"The address*\"}},\"getCollateralManager()\":{\"details\":\"Returns the address of the CollateralManager. Since the manager is used through delegateCall within the CollateralManager contract, the proxy contract pattern does not work properly hence the addresses are changed directly\",\"returns\":{\"_0\":\"The address of the CollateralManager*\"}},\"getConfigurator()\":{\"details\":\"Returns the address of the Configurator proxy\",\"returns\":{\"_0\":\"The Configurator proxy address*\"}},\"getExecutionDelegate()\":{\"details\":\"Returns the address of the Execution Delegate proxy\",\"returns\":{\"_0\":\"The Execution Delegate proxy address*\"}},\"getExecutionManager()\":{\"details\":\"Returns the address of the Execution Manager proxy\",\"returns\":{\"_0\":\"The Execution Manager proxy address*\"}},\"getLending()\":{\"details\":\"Returns the address of the Lending proxy\",\"returns\":{\"_0\":\"The Lending proxy address*\"}},\"getLendingPool()\":{\"details\":\"Returns the address of the LendingPool proxy\",\"returns\":{\"_0\":\"The LendingPool proxy address*\"}},\"getMarketId()\":{\"details\":\"Returns the id of the FluidNFT market to which this contracts points to\",\"returns\":{\"_0\":\"The market id*\"}},\"getObligationReceipt()\":{\"details\":\"Returns the address of the Obligation Receipt proxy\",\"returns\":{\"_0\":\"The Obligation Receipt proxy address*\"}},\"getObligationReceiptBundle()\":{\"details\":\"Returns the address of the Obligation Receipt Bundle proxy\",\"returns\":{\"_0\":\"The Obligation Receipt Bundle proxy address*\"}},\"getPeerAdmin()\":{\"details\":\"The functions below are getters/setters of addresses that are outside the context of the protocol hence the upgradable proxy pattern is not used*\"},\"getPoolAdmin()\":{\"details\":\"The functions below are getters/setters of addresses that are outside the context of the protocol hence the upgradable proxy pattern is not used*\"},\"getPromissoryNote()\":{\"details\":\"Returns the address of the PromissoryNote proxy\",\"returns\":{\"_0\":\"The PromissoryNote proxy address*\"}},\"getPromissoryNoteBundle()\":{\"details\":\"Returns the address of the PromissoryNoteBundle proxy\",\"returns\":{\"_0\":\"The PromissoryNote Bundle proxy address*\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"setAddress(bytes32,address)\":{\"details\":\"Sets an address for an id replacing the address saved in the addresses map IMPORTANT Use this function carefully, as it will do a hard replacement\",\"params\":{\"id\":\"The id\",\"newAddress\":\"The address to set*\"}},\"setAddressAsProxy(bytes32,address)\":{\"details\":\"General function to update the implementation of a proxy registered with certain `id`. If there is no proxy registered, it will instantiate one and set as implementation the `implementationAddress` IMPORTANT Use this function carefully, only for ids that don't have an explicit setter function, in order to avoid unexpected consequences\",\"params\":{\"id\":\"The id\",\"implementationAddress\":\"The address of the new implementation*\"}},\"setCollateralManager(address)\":{\"details\":\"Updates the address of the CollateralManager\",\"params\":{\"manager\":\"The new CollateralManager address*\"}},\"setConfigurator(address)\":{\"details\":\"Updates the implementation of the Configurator, or creates the proxy setting the new `configurator` implementation on the first time calling it\",\"params\":{\"configurator\":\"The new Configurator implementation*\"}},\"setConfiguratorImpl(address)\":{\"details\":\"Updates the implementation of the Configurator, or creates the proxy setting the new `configurator` implementation on the first time calling it\",\"params\":{\"configurator\":\"The new Configurator implementation*\"}},\"setExecutionDelegate(address)\":{\"details\":\"Updates the implementation of the Execution Delegate, or creates the proxy setting the new `executionDelegate` implementation on the first time calling it\",\"params\":{\"executionDelegate\":\"The new Execution Delegate implementation*\"}},\"setExecutionManager(address)\":{\"details\":\"Updates the implementation of the Execution Manager, or creates the proxy setting the new `executionManager` implementation on the first time calling it\",\"params\":{\"executionManager\":\"The new Execution Manager implementation*\"}},\"setLending(address)\":{\"details\":\"Updates the implementation of the Lending, or creates the proxy setting the new `lending` implementation on the first time calling it\",\"params\":{\"lending\":\"The new Lending implementation*\"}},\"setLendingPool(address)\":{\"details\":\"Updates the implementation of the LendingPool, or creates the proxy setting the new `pool` implementation on the first time calling it\",\"params\":{\"pool\":\"The new LendingPool implementation*\"}},\"setMarketId(string)\":{\"details\":\"Allows to set the market which this AddressProvider represents\",\"params\":{\"marketId\":\"The market id*\"}},\"setObligationReceipt(address)\":{\"details\":\"Updates the implementation of the Obligation Receipt, or creates the proxy setting the new `obligationReceipt` implementation on the first time calling it\",\"params\":{\"obligationReceipt\":\"The new Obligation Receipt implementation*\"}},\"setObligationReceiptBundle(address)\":{\"details\":\"Updates the implementation of the Obligation Receipt Bundle, or creates the proxy setting the new `obligationReceiptBundle` implementation on the first time calling it\",\"params\":{\"obligationReceipt\":\"The new PromissoryNoteBundle implementation*\"}},\"setPromissoryNote(address)\":{\"details\":\"Updates the implementation of the PromissoryNote, or creates the proxy setting the new `promissoryNote` implementation on the first time calling it\",\"params\":{\"promissoryNote\":\"The new PromissoryNote implementation*\"}},\"setPromissoryNoteBundle(address)\":{\"details\":\"Updates the implementation of the PromissoryNote Bunlde, or creates the proxy setting the new `promissoryNoteBundle` implementation on the first time calling it\",\"params\":{\"promissoryNote\":\"The new PromissoryNoteBundle implementation*\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"AddressProvider contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/protocol/governance/AddressProvider.sol\":\"AddressProvider\"},\"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/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1\",\"dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269\",\"dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"src/interfaces/IAddressProvider.sol\":{\"keccak256\":\"0x6730abfcd8770e3279dad6137bf619ab98ee8b049e6dd85d2fbe87ba6224fde8\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://9b7d1588eab025b049f858ab2f329be7fec220198d956b9b61bf0b9bddc5761a\",\"dweb:/ipfs/QmTaFkYSUfWmbpsyE2TKC1QvP6eTDggZ72ZWodBhydqt5X\"]},\"src/protocol/governance/AddressProvider.sol\":{\"keccak256\":\"0x2c16b7a449e0f4eddbb372788f06abad7608507635dfd51271ef9aa5bfae0736\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://6640ec27704b75c68e8a5932e928ec96b3224aeb3238fc22f8e6b6e3b2adfce0\",\"dweb:/ipfs/Qmd7CmDrPvff7H9CHnj2eH1z67NxVpNsGYs92N9WkoxKxE\"]},\"src/protocol/libraries/helpers/Errors.sol\":{\"keccak256\":\"0x490e76871922e89a13ba0bb88977be18c143fa9d0cd9afb033744a3d81479c52\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://1c409d4d1e1689d8d8f3c3e361198d20f3b6476608c5316d8e2d91f52373e8e3\",\"dweb:/ipfs/QmRZaYpxqjmBpbxb51KqswKYPSeCsU3ejbmk5E3MrMxJaM\"]},\"src/protocol/libraries/proxy/FluidUpgradeableProxy.sol\":{\"keccak256\":\"0xebb381972c1d982d6cc8c2b1a704f9f2fefb75433e0adc84f896186da8ba2599\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://3706756fd653002ba56734f0f699decd7ba38993744a951acf0b259a95549087\",\"dweb:/ipfs/QmdZceFBVbYzBKZaQDfWEKYggJGxJ8G1j9ZWBrWLbozRZz\"]}},\"version\":1}",
"metadata": {
"compiler": {
"version": "0.8.16+commit.07a7930e"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "string",
"name": "marketId",
"type": "string"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "id",
"type": "bytes32",
"indexed": false
},
{
"internalType": "address",
"name": "newAddress",
"type": "address",
"indexed": true
},
{
"internalType": "bool",
"name": "hasProxy",
"type": "bool",
"indexed": false
}
],
"type": "event",
"name": "AddressSet",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "newAddress",
"type": "address",
"indexed": true
}
],
"type": "event",
"name": "CollateralManagerUpdated",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "newAddress",
"type": "address",
"indexed": true
}
],
"type": "event",
"name": "ConfiguratorUpdated",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "newAddress",
"type": "address",
"indexed": true
}
],
"type": "event",
"name": "DebtTokenImplUpdated",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "newAddress",
"type": "address",
"indexed": true
}
],
"type": "event",
"name": "DelegationRegistryUpdated",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "newAddress",
"type": "address",
"indexed": true
}
],
"type": "event",
"name": "EmergencyAdminUpdated",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "newAddress",
"type": "address",
"indexed": true
}
],
"type": "event",
"name": "ExecutionDelegateUpdated",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "newAddress",
"type": "address",
"indexed": true
}
],
"type": "event",
"name": "ExecutionManagerUpdated",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "newAddress",
"type": "address",
"indexed": true
}
],
"type": "event",
"name": "FTokenImplUpdated",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "newAddress",
"type": "address",
"indexed": true
}
],
"type": "event",
"name": "FluidTokenUpdated",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "newAddress",
"type": "address",
"indexed": true
}
],
"type": "event",
"name": "LendingPoolUpdated",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "newAddress",
"type": "address",
"indexed": true
}
],
"type": "event",
"name": "LendingRateManagerUpdated",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "newAddress",
"type": "address",
"indexed": true
}
],
"type": "event",
"name": "LendingUpdated",
"anonymous": false
},
{
"inputs": [
{
"internalType": "string",
"name": "newMarketId",
"type": "string",
"indexed": false
}
],
"type": "event",
"name": "MarketIdSet",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "newAddress",
"type": "address",
"indexed": true
}
],
"type": "event",
"name": "NFTPriceOracleUpdated",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "newAddress",
"type": "address",
"indexed": true
}
],
"type": "event",
"name": "ObligationReceiptBundleUpdated",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "newAddress",
"type": "address",
"indexed": true
}
],
"type": "event",
"name": "ObligationReceiptUpdated",
"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": "newAddress",
"type": "address",
"indexed": true
}
],
"type": "event",
"name": "PeerAdminUpdated",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "newAddress",
"type": "address",
"indexed": true
}
],
"type": "event",
"name": "PeerIncentivesControllerUpdated",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "newAddress",
"type": "address",
"indexed": true
}
],
"type": "event",
"name": "PoolAdminUpdated",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "newAddress",
"type": "address",
"indexed": true
}
],
"type": "event",
"name": "PoolIncentivesControllerUpdated",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "newAddress",
"type": "address",
"indexed": true
}
],
"type": "event",
"name": "PriceConsumerUpdated",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "newAddress",
"type": "address",
"indexed": true
}
],
"type": "event",
"name": "PromissoryNoteBundleUpdated",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "newAddress",
"type": "address",
"indexed": true
}
],
"type": "event",
"name": "PromissoryNoteUpdated",
"anonymous": false
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "id",
"type": "bytes32",
"indexed": false
},
{
"internalType": "address",
"name": "newAddress",
"type": "address",
"indexed": true
}
],
"type": "event",
"name": "ProxyCreated",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "newAddress",
"type": "address",
"indexed": true
}
],
"type": "event",
"name": "ReferralManagerUpdated",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "newAddress",
"type": "address",
"indexed": true
}
],
"type": "event",
"name": "TreasuryUpdated",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "newAddress",
"type": "address",
"indexed": true
}
],
"type": "event",
"name": "WETHGatewayUpdated",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "newAddress",
"type": "address",
"indexed": true
}
],
"type": "event",
"name": "WETHUpdated",
"anonymous": false
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "id",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function",
"name": "getAddress",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "getCollateralManager",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "getConfigurator",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "getDebtTokenImpl",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "getDelegationRegistry",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "getEmergencyAdmin",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "getExecutionDelegate",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "getExecutionManager",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "getFTokenImpl",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "getFluidToken",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "getLending",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "getLendingPool",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "getLendingRateManager",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "getMarketId",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "getNFTPriceOracle",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "getObligationReceipt",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "getObligationReceiptBundle",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "getPeerAdmin",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "getPeerIncentivesController",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "getPoolAdmin",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "getPoolIncentivesController",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "getPriceConsumerV3",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "getPromissoryNote",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "getPromissoryNoteBundle",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "getReferralManager",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "getTreasury",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "getWETH",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "getWETHGateway",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
]
},
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "function",
"name": "renounceOwnership"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "id",
"type": "bytes32"
},
{
"internalType": "address",
"name": "newAddress",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setAddress"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "id",
"type": "bytes32"
},
{
"internalType": "address",
"name": "implementationAddress",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setAddressAsProxy"
},
{
"inputs": [
{
"internalType": "address",
"name": "manager",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setCollateralManager"
},
{
"inputs": [
{
"internalType": "address",
"name": "configurator",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setConfigurator"
},
{
"inputs": [
{
"internalType": "address",
"name": "configurator",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setConfiguratorImpl"
},
{
"inputs": [
{
"internalType": "address",
"name": "debtTokenImpl",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setDebtTokenImpl"
},
{
"inputs": [
{
"internalType": "address",
"name": "delegationRegistry",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setDelegationRegistry"
},
{
"inputs": [
{
"internalType": "address",
"name": "emergencyAdmin",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setEmergencyAdmin"
},
{
"inputs": [
{
"internalType": "address",
"name": "executionDelegate",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setExecutionDelegate"
},
{
"inputs": [
{
"internalType": "address",
"name": "executionManager",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setExecutionManager"
},
{
"inputs": [
{
"internalType": "address",
"name": "fTokenImpl",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setFTokenImpl"
},
{
"inputs": [
{
"internalType": "address",
"name": "fluidToken",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setFluidToken"
},
{
"inputs": [
{
"internalType": "address",
"name": "lending",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setLending"
},
{
"inputs": [
{
"internalType": "address",
"name": "pool",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setLendingPool"
},
{
"inputs": [
{
"internalType": "address",
"name": "lendingRateManager",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setLendingRateManager"
},
{
"inputs": [
{
"internalType": "string",
"name": "marketId",
"type": "string"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setMarketId"
},
{
"inputs": [
{
"internalType": "address",
"name": "nftPriceOracle",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setNFTPriceOracle"
},
{
"inputs": [
{
"internalType": "address",
"name": "obligationReceipt",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setObligationReceipt"
},
{
"inputs": [
{
"internalType": "address",
"name": "obligationReceipt",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setObligationReceiptBundle"
},
{
"inputs": [
{
"internalType": "address",
"name": "admin",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setPeerAdmin"
},
{
"inputs": [
{
"internalType": "address",
"name": "controller",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setPeerIncentivesController"
},
{
"inputs": [
{
"internalType": "address",
"name": "admin",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setPoolAdmin"
},
{
"inputs": [
{
"internalType": "address",
"name": "controller",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setPoolIncentivesController"
},
{
"inputs": [
{
"internalType": "address",
"name": "priceConsumerV3",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setPriceConsumerV3"
},
{
"inputs": [
{
"internalType": "address",
"name": "promissoryNote",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setPromissoryNote"
},
{
"inputs": [
{
"internalType": "address",
"name": "promissoryNote",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setPromissoryNoteBundle"
},
{
"inputs": [
{
"internalType": "address",
"name": "referralManager",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setReferralManager"
},
{
"inputs": [
{
"internalType": "address",
"name": "treasury",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setTreasury"
},
{
"inputs": [
{
"internalType": "address",
"name": "weth",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setWETH"
},
{
"inputs": [
{
"internalType": "address",
"name": "wethGateway",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setWETHGateway"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "transferOwnership"
}
],
"devdoc": {
"kind": "dev",
"methods": {
"getAddress(bytes32)": {
"details": "Returns an address by id",
"returns": {
"_0": "The address*"
}
},
"getCollateralManager()": {
"details": "Returns the address of the CollateralManager. Since the manager is used through delegateCall within the CollateralManager contract, the proxy contract pattern does not work properly hence the addresses are changed directly",
"returns": {
"_0": "The address of the CollateralManager*"
}
},
"getConfigurator()": {
"details": "Returns the address of the Configurator proxy",
"returns": {
"_0": "The Configurator proxy address*"
}
},
"getExecutionDelegate()": {
"details": "Returns the address of the Execution Delegate proxy",
"returns": {
"_0": "The Execution Delegate proxy address*"
}
},
"getExecutionManager()": {
"details": "Returns the address of the Execution Manager proxy",
"returns": {
"_0": "The Execution Manager proxy address*"
}
},
"getLending()": {
"details": "Returns the address of the Lending proxy",
"returns": {
"_0": "The Lending proxy address*"
}
},
"getLendingPool()": {
"details": "Returns the address of the LendingPool proxy",
"returns": {
"_0": "The LendingPool proxy address*"
}
},
"getMarketId()": {
"details": "Returns the id of the FluidNFT market to which this contracts points to",
"returns": {
"_0": "The market id*"
}
},
"getObligationReceipt()": {
"details": "Returns the address of the Obligation Receipt proxy",
"returns": {
"_0": "The Obligation Receipt proxy address*"
}
},
"getObligationReceiptBundle()": {
"details": "Returns the address of the Obligation Receipt Bundle proxy",
"returns": {
"_0": "The Obligation Receipt Bundle proxy address*"
}
},
"getPeerAdmin()": {
"details": "The functions below are getters/setters of addresses that are outside the context of the protocol hence the upgradable proxy pattern is not used*"
},
"getPoolAdmin()": {
"details": "The functions below are getters/setters of addresses that are outside the context of the protocol hence the upgradable proxy pattern is not used*"
},
"getPromissoryNote()": {
"details": "Returns the address of the PromissoryNote proxy",
"returns": {
"_0": "The PromissoryNote proxy address*"
}
},
"getPromissoryNoteBundle()": {
"details": "Returns the address of the PromissoryNoteBundle proxy",
"returns": {
"_0": "The PromissoryNote Bundle proxy address*"
}
},
"owner()": {
"details": "Returns the address of the current owner."
},
"renounceOwnership()": {
"details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."
},
"setAddress(bytes32,address)": {
"details": "Sets an address for an id replacing the address saved in the addresses map IMPORTANT Use this function carefully, as it will do a hard replacement",
"params": {
"id": "The id",
"newAddress": "The address to set*"
}
},
"setAddressAsProxy(bytes32,address)": {
"details": "General function to update the implementation of a proxy registered with certain `id`. If there is no proxy registered, it will instantiate one and set as implementation the `implementationAddress` IMPORTANT Use this function carefully, only for ids that don't have an explicit setter function, in order to avoid unexpected consequences",
"params": {
"id": "The id",
"implementationAddress": "The address of the new implementation*"
}
},
"setCollateralManager(address)": {
"details": "Updates the address of the CollateralManager",
"params": {
"manager": "The new CollateralManager address*"
}
},
"setConfigurator(address)": {
"details": "Updates the implementation of the Configurator, or creates the proxy setting the new `configurator` implementation on the first time calling it",
"params": {
"configurator": "The new Configurator implementation*"
}
},
"setConfiguratorImpl(address)": {
"details": "Updates the implementation of the Configurator, or creates the proxy setting the new `configurator` implementation on the first time calling it",
"params": {
"configurator": "The new Configurator implementation*"
}
},
"setExecutionDelegate(address)": {
"details": "Updates the implementation of the Execution Delegate, or creates the proxy setting the new `executionDelegate` implementation on the first time calling it",
"params": {
"executionDelegate": "The new Execution Delegate implementation*"
}
},
"setExecutionManager(address)": {
"details": "Updates the implementation of the Execution Manager, or creates the proxy setting the new `executionManager` implementation on the first time calling it",
"params": {
"executionManager": "The new Execution Manager implementation*"
}
},
"setLending(address)": {
"details": "Updates the implementation of the Lending, or creates the proxy setting the new `lending` implementation on the first time calling it",
"params": {
"lending": "The new Lending implementation*"
}
},
"setLendingPool(address)": {
"details": "Updates the implementation of the LendingPool, or creates the proxy setting the new `pool` implementation on the first time calling it",
"params": {
"pool": "The new LendingPool implementation*"
}
},
"setMarketId(string)": {
"details": "Allows to set the market which this AddressProvider represents",
"params": {
"marketId": "The market id*"
}
},
"setObligationReceipt(address)": {
"details": "Updates the implementation of the Obligation Receipt, or creates the proxy setting the new `obligationReceipt` implementation on the first time calling it",
"params": {
"obligationReceipt": "The new Obligation Receipt implementation*"
}
},
"setObligationReceiptBundle(address)": {
"details": "Updates the implementation of the Obligation Receipt Bundle, or creates the proxy setting the new `obligationReceiptBundle` implementation on the first time calling it",
"params": {
"obligationReceipt": "The new PromissoryNoteBundle implementation*"
}
},
"setPromissoryNote(address)": {
"details": "Updates the implementation of the PromissoryNote, or creates the proxy setting the new `promissoryNote` implementation on the first time calling it",
"params": {
"promissoryNote": "The new PromissoryNote implementation*"
}
},
"setPromissoryNoteBundle(address)": {
"details": "Updates the implementation of the PromissoryNote Bunlde, or creates the proxy setting the new `promissoryNoteBundle` implementation on the first time calling it",
"params": {
"promissoryNote": "The new PromissoryNoteBundle implementation*"
}
},
"transferOwnership(address)": {
"details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
}
},
"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/AddressProvider.sol": "AddressProvider"
},
"libraries": {}
},
"sources": {
"lib/openzeppelin-contracts/contracts/access/Ownable.sol": {
"keccak256": "0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673",
"urls": [
"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2",
"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"
],
"license": "MIT"
},
"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol": {
"keccak256": "0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff",
"urls": [
"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688",
"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"
],
"license": "MIT"
},
"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol": {
"keccak256": "0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d",
"urls": [
"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5",
"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"
],
"license": "MIT"
},
"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol": {
"keccak256": "0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a",
"urls": [
"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8",
"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725"
],
"license": "MIT"
},
"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol": {
"keccak256": "0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27",
"urls": [
"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472",
"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"
],
"license": "MIT"
},
"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol": {
"keccak256": "0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61",
"urls": [
"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354",
"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"
],
"license": "MIT"
},
"lib/openzeppelin-contracts/contracts/proxy/transparent/TransparentUpgradeableProxy.sol": {
"keccak256": "0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9",
"urls": [
"bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1",
"dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8"
],
"license": "MIT"
},
"lib/openzeppelin-contracts/contracts/utils/Address.sol": {
"keccak256": "0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1",
"urls": [
"bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269",
"dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj"
],
"license": "MIT"
},
"lib/openzeppelin-contracts/contracts/utils/Context.sol": {
"keccak256": "0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7",
"urls": [
"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92",
"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"
],
"license": "MIT"
},
"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol": {
"keccak256": "0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d",
"urls": [
"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4",
"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"
],
"license": "MIT"
},
"src/interfaces/IAddressProvider.sol": {
"keccak256": "0x6730abfcd8770e3279dad6137bf619ab98ee8b049e6dd85d2fbe87ba6224fde8",
"urls": [
"bzz-raw://9b7d1588eab025b049f858ab2f329be7fec220198d956b9b61bf0b9bddc5761a",
"dweb:/ipfs/QmTaFkYSUfWmbpsyE2TKC1QvP6eTDggZ72ZWodBhydqt5X"
],
"license": "AGPL-3.0"
},
"src/protocol/governance/AddressProvider.sol": {
"keccak256": "0x2c16b7a449e0f4eddbb372788f06abad7608507635dfd51271ef9aa5bfae0736",
"urls": [
"bzz-raw://6640ec27704b75c68e8a5932e928ec96b3224aeb3238fc22f8e6b6e3b2adfce0",
"dweb:/ipfs/Qmd7CmDrPvff7H9CHnj2eH1z67NxVpNsGYs92N9WkoxKxE"
],
"license": "AGPL-3.0"
},
"src/protocol/libraries/helpers/Errors.sol": {
"keccak256": "0x490e76871922e89a13ba0bb88977be18c143fa9d0cd9afb033744a3d81479c52",
"urls": [
"bzz-raw://1c409d4d1e1689d8d8f3c3e361198d20f3b6476608c5316d8e2d91f52373e8e3",
"dweb:/ipfs/QmRZaYpxqjmBpbxb51KqswKYPSeCsU3ejbmk5E3MrMxJaM"
],
"license": "AGPL-3.0"
},
"src/protocol/libraries/proxy/FluidUpgradeableProxy.sol": {
"keccak256": "0xebb381972c1d982d6cc8c2b1a704f9f2fefb75433e0adc84f896186da8ba2599",
"urls": [
"bzz-raw://3706756fd653002ba56734f0f699decd7ba38993744a951acf0b259a95549087",
"dweb:/ipfs/QmdZceFBVbYzBKZaQDfWEKYggJGxJ8G1j9ZWBrWLbozRZz"
],
"license": "AGPL-3.0"
}
},
"version": 1
},
"ast": {
"absolutePath": "src/protocol/governance/AddressProvider.sol",
"id": 52141,
"exportedSymbols": {
"AddressProvider": [
52140
],
"FluidUpgradeableProxy": [
63013
],
"IAddressProvider": [
45718
],
"Ownable": [
30660
]
},
"nodeType": "SourceUnit",
"src": "37:18920:118",
"nodes": [
{
"id": 51032,
"nodeType": "PragmaDirective",
"src": "37:23:118",
"nodes": [],
"literals": [
"solidity",
"0.8",
".16"
]
},
{
"id": 51034,
"nodeType": "ImportDirective",
"src": "131:73:118",
"nodes": [],
"absolutePath": "src/interfaces/IAddressProvider.sol",
"file": "../../interfaces/IAddressProvider.sol",
"nameLocation": "-1:-1:-1",
"scope": 52141,
"sourceUnit": 45719,
"symbolAliases": [
{
"foreign": {
"id": 51033,
"name": "IAddressProvider",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 45718,
"src": "140:16:118",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 51036,
"nodeType": "ImportDirective",
"src": "205:85:118",
"nodes": [],
"absolutePath": "src/protocol/libraries/proxy/FluidUpgradeableProxy.sol",
"file": "../libraries/proxy/FluidUpgradeableProxy.sol",
"nameLocation": "-1:-1:-1",
"scope": 52141,
"sourceUnit": 63014,
"symbolAliases": [
{
"foreign": {
"id": 51035,
"name": "FluidUpgradeableProxy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 63013,
"src": "214:21:118",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 51038,
"nodeType": "ImportDirective",
"src": "292:69:118",
"nodes": [],
"absolutePath": "lib/openzeppelin-contracts/contracts/access/Ownable.sol",
"file": "@openzeppelin/contracts/access/Ownable.sol",
"nameLocation": "-1:-1:-1",
"scope": 52141,
"sourceUnit": 30661,
"symbolAliases": [
{
"foreign": {
"id": 51037,
"name": "Ownable",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 30660,
"src": "301:7:118",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 52140,
"nodeType": "ContractDefinition",
"src": "670:18286:118",
"nodes": [
{
"id": 51045,
"nodeType": "VariableDeclaration",
"src": "730:24:118",
"nodes": [],
"constant": false,
"mutability": "mutable",
"name": "_marketId",
"nameLocation": "745:9:118",
"scope": 52140,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string"
},
"typeName": {
"id": 51044,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "730:6:118",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "private"
},
{
"id": 51049,
"nodeType": "VariableDeclaration",
"src": "760:46:118",
"nodes": [],
"constant": false,
"mutability": "mutable",
"name": "_addresses",
"nameLocation": "796:10:118",
"scope": 52140,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
"typeString": "mapping(bytes32 => address)"
},
"typeName": {
"id": 51048,
"keyType": {
"id": 51046,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "768:7:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Mapping",
"src": "760:27:118",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
"typeString": "mapping(bytes32 => address)"
},
"valueType": {
"id": 51047,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "779:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
},
"visibility": "private"
},
{
"id": 51052,
"nodeType": "VariableDeclaration",
"src": "813:50:118",
"nodes": [],
"constant": true,
"mutability": "constant",
"name": "PEER_ADMIN",
"nameLocation": "838:10:118",
"scope": 52140,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 51050,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "813:7:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": {
"hexValue": "504545525f41444d494e",
"id": 51051,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "851:12:118",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_3c28470b461a44f85600916f46cd850e1e12719822d5fdd44039d17444835628",
"typeString": "literal_string \"PEER_ADMIN\""
},
"value": "PEER_ADMIN"
},
"visibility": "private"
},
{
"id": 51055,
"nodeType": "VariableDeclaration",
"src": "869:50:118",
"nodes": [],
"constant": true,
"mutability": "constant",
"name": "POOL_ADMIN",
"nameLocation": "894:10:118",
"scope": 52140,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 51053,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "869:7:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": {
"hexValue": "504f4f4c5f41444d494e",
"id": 51054,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "907:12:118",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_12ad05bde78c5ab75238ce885307f96ecd482bb402ef831f99e7018a0f169b7b",
"typeString": "literal_string \"POOL_ADMIN\""
},
"value": "POOL_ADMIN"
},
"visibility": "private"
},
{
"id": 51058,
"nodeType": "VariableDeclaration",
"src": "925:60:118",
"nodes": [],
"constant": true,
"mutability": "constant",
"name": "EMERGENCY_ADMIN",
"nameLocation": "950:15:118",
"scope": 52140,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 51056,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "925:7:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": {
"hexValue": "454d455247454e43595f41444d494e",
"id": 51057,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "968:17:118",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_5c91514091af31f62f596a314af7d5be40146b2f2355969392f055e12e0982fb",
"typeString": "literal_string \"EMERGENCY_ADMIN\""
},
"value": "EMERGENCY_ADMIN"
},
"visibility": "private"
},
{
"id": 51061,
"nodeType": "VariableDeclaration",
"src": "991:66:118",
"nodes": [],
"constant": true,
"mutability": "constant",
"name": "EXECUTION_DELEGATE",
"nameLocation": "1016:18:118",
"scope": 52140,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 51059,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "991:7:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": {
"hexValue": "455845435554494f4e5f44454c4547415445",
"id": 51060,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1037:20:118",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_5bb70ca978ce0aa8e96fb43c448643b5eea2ea390d4e05a18b848890a90e2736",
"typeString": "literal_string \"EXECUTION_DELEGATE\""
},
"value": "EXECUTION_DELEGATE"
},
"visibility": "private"
},
{
"id": 51064,
"nodeType": "VariableDeclaration",
"src": "1063:64:118",
"nodes": [],
"constant": true,
"mutability": "constant",
"name": "EXECUTION_MANAGER",
"nameLocation": "1088:17:118",
"scope": 52140,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 51062,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1063:7:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": {
"hexValue": "455845435554494f4e5f4d414e41474552",
"id": 51063,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1108:19:118",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_438ceac5aa40a8d5f0a449ae6a6efeb8004589243e39f9aa71f0aed56dcac5af",
"typeString": "literal_string \"EXECUTION_MANAGER\""
},
"value": "EXECUTION_MANAGER"
},
"visibility": "private"
},
{
"id": 51067,
"nodeType": "VariableDeclaration",
"src": "1133:44:118",
"nodes": [],
"constant": true,
"mutability": "constant",
"name": "LENDING",
"nameLocation": "1158:7:118",
"scope": 52140,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 51065,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1133:7:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": {
"hexValue": "4c454e44494e47",
"id": 51066,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1168:9:118",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_5bb6a25286bb8715dc575866da01fccb9319d7c050dc4a550830f9fd153b997c",
"typeString": "literal_string \"LENDING\""
},
"value": "LENDING"
},
"visibility": "private"
},
{
"id": 51070,
"nodeType": "VariableDeclaration",
"src": "1183:60:118",
"nodes": [],
"constant": true,
"mutability": "constant",
"name": "PROMISSORY_NOTE",
"nameLocation": "1208:15:118",
"scope": 52140,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 51068,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1183:7:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": {
"hexValue": "50524f4d4953534f52595f4e4f5445",
"id": 51069,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1226:17:118",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_25e3460d91f05e72ee29313b164a9ce6e5c5bfe9d0280979471e5d4a217e0715",
"typeString": "literal_string \"PROMISSORY_NOTE\""
},
"value": "PROMISSORY_NOTE"
},
"visibility": "private"
},
{
"id": 51073,
"nodeType": "VariableDeclaration",
"src": "1249:74:118",
"nodes": [],
"constant": true,
"mutability": "constant",
"name": "PROMISSORY_NOTE_BUNDLE",
"nameLocation": "1274:22:118",
"scope": 52140,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 51071,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1249:7:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": {
"hexValue": "50524f4d4953534f52595f4e4f54455f42554e444c45",
"id": 51072,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1299:24:118",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_86a98f98e05449ae0d2456558e934ec646f300999c56bc14f21e10ac7173eba1",
"typeString": "literal_string \"PROMISSORY_NOTE_BUNDLE\""
},
"value": "PROMISSORY_NOTE_BUNDLE"
},
"visibility": "private"
},
{
"id": 51076,
"nodeType": "VariableDeclaration",
"src": "1329:66:118",
"nodes": [],
"constant": true,
"mutability": "constant",
"name": "OBLIGATION_RECEIPT",
"nameLocation": "1354:18:118",
"scope": 52140,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 51074,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1329:7:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": {
"hexValue": "4f424c49474154494f4e5f52454345495054",
"id": 51075,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1375:20:118",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_745ce3c52ea5ace358e9eaf912ef72e092ce1dcc5e3054b806267d5ddf212d4d",
"typeString": "literal_string \"OBLIGATION_RECEIPT\""
},
"value": "OBLIGATION_RECEIPT"
},
"visibility": "private"
},
{
"id": 51079,
"nodeType": "VariableDeclaration",
"src": "1401:80:118",
"nodes": [],
"constant": true,
"mutability": "constant",
"name": "OBLIGATION_RECEIPT_BUNDLE",
"nameLocation": "1426:25:118",
"scope": 52140,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 51077,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1401:7:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": {
"hexValue": "4f424c49474154494f4e5f524543454950545f42554e444c45",
"id": 51078,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1454:27:118",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_28661120ffa3c963403a1ede901a4bc7e4489f68983bb0e83651ec7fc1254109",
"typeString": "literal_string \"OBLIGATION_RECEIPT_BUNDLE\""
},
"value": "OBLIGATION_RECEIPT_BUNDLE"
},
"visibility": "private"
},
{
"id": 51082,
"nodeType": "VariableDeclaration",
"src": "1487:54:118",
"nodes": [],
"constant": true,
"mutability": "constant",
"name": "LENDING_POOL",
"nameLocation": "1512:12:118",
"scope": 52140,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 51080,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1487:7:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": {
"hexValue": "4c454e44494e475f504f4f4c",
"id": 51081,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1527:14:118",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_b0a02d474211257da1bdb72ce7e91b05cbdc99ae0876cb0a61bbc7ad100c58a7",
"typeString": "literal_string \"LENDING_POOL\""
},
"value": "LENDING_POOL"
},
"visibility": "private"
},
{
"id": 51085,
"nodeType": "VariableDeclaration",
"src": "1547:54:118",
"nodes": [],
"constant": true,
"mutability": "constant",
"name": "CONFIGURATOR",
"nameLocation": "1572:12:118",
"scope": 52140,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 51083,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1547:7:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": {
"hexValue": "434f4e464947555241544f52",
"id": 51084,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1587:14:118",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_530008d2b058137d9c475b1b7d83984f1fcf1dd0e607659d029fc1517ab89268",
"typeString": "literal_string \"CONFIGURATOR\""
},
"value": "CONFIGURATOR"
},
"visibility": "private"
},
{
"id": 51088,
"nodeType": "VariableDeclaration",
"src": "1607:66:118",
"nodes": [],
"constant": true,
"mutability": "constant",
"name": "COLLATERAL_MANAGER",
"nameLocation": "1632:18:118",
"scope": 52140,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 51086,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1607:7:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": {
"hexValue": "434f4c4c41544552414c5f4d414e41474552",
"id": 51087,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1653:20:118",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_413cc8bb35fe129dacd3dfaae80d6d4c5d313f64cee9dd6712e7ca52e38573a9",
"typeString": "literal_string \"COLLATERAL_MANAGER\""
},
"value": "COLLATERAL_MANAGER"
},
"visibility": "private"
},
{
"id": 51091,
"nodeType": "VariableDeclaration",
"src": "1679:62:118",
"nodes": [],
"constant": true,
"mutability": "constant",
"name": "NFT_PRICE_ORACLE",
"nameLocation": "1704:16:118",
"scope": 52140,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 51089,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1679:7:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": {
"hexValue": "4e46545f50524943455f4f5241434c45",
"id": 51090,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1723:18:118",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_851585d39aba9444ce7c47f525bef99fb3e9fb094f8f701ae10eba8aed066493",
"typeString": "literal_string \"NFT_PRICE_ORACLE\""
},
"value": "NFT_PRICE_ORACLE"
},
"visibility": "private"
},
{
"id": 51094,
"nodeType": "VariableDeclaration",
"src": "1747:70:118",
"nodes": [],
"constant": true,
"mutability": "constant",
"name": "LENDING_RATE_MANAGER",
"nameLocation": "1772:20:118",
"scope": 52140,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 51092,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1747:7:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": {
"hexValue": "4c454e44494e475f524154455f4d414e41474552",
"id": 51093,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1795:22:118",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_7d27246d18da5ffc51018fe9cc66d9f7324cf1934c1f3273df473db4f0486b94",
"typeString": "literal_string \"LENDING_RATE_MANAGER\""
},
"value": "LENDING_RATE_MANAGER"
},
"visibility": "private"
},
{
"id": 51097,
"nodeType": "VariableDeclaration",
"src": "1823:64:118",
"nodes": [],
"constant": true,
"mutability": "constant",
"name": "PRICE_CONSUMER_V3",
"nameLocation": "1848:17:118",
"scope": 52140,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 51095,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1823:7:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": {
"hexValue": "50524943455f434f4e53554d45525f5633",
"id": 51096,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1868:19:118",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_dac594f34d5285042ecff3c140006df09cc5294261f17a467513837af45af841",
"typeString": "literal_string \"PRICE_CONSUMER_V3\""
},
"value": "PRICE_CONSUMER_V3"
},
"visibility": "private"
},
{
"id": 51100,
"nodeType": "VariableDeclaration",
"src": "1893:52:118",
"nodes": [],
"constant": true,
"mutability": "constant",
"name": "FLUID_TOKEN",
"nameLocation": "1918:11:118",
"scope": 52140,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 51098,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1893:7:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": {
"hexValue": "464c5549445f544f4b454e",
"id": 51099,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1932:13:118",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_b2f1c4ed2940527a833a7095535c36b09647f5f42b5173b724da799f21b143ae",
"typeString": "literal_string \"FLUID_TOKEN\""
},
"value": "FLUID_TOKEN"
},
"visibility": "private"
},
{
"id": 51103,
"nodeType": "VariableDeclaration",
"src": "1951:82:118",
"nodes": [],
"constant": true,
"mutability": "constant",
"name": "POOL_INCENTIVES_CONTROLLER",
"nameLocation": "1976:26:118",
"scope": 52140,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 51101,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1951:7:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": {
"hexValue": "504f4f4c5f494e43454e54495645535f434f4e54524f4c4c4552",
"id": 51102,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2005:28:118",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_70e2298ce4c93fc20376e630449796a60c7df9e5ada4c418c79934b3e8d8e66c",
"typeString": "literal_string \"POOL_INCENTIVES_CONTROLLER\""
},
"value": "POOL_INCENTIVES_CONTROLLER"
},
"visibility": "private"
},
{
"id": 51106,
"nodeType": "VariableDeclaration",
"src": "2039:82:118",
"nodes": [],
"constant": true,
"mutability": "constant",
"name": "PEER_INCENTIVES_CONTROLLER",
"nameLocation": "2064:26:118",
"scope": 52140,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 51104,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "2039:7:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": {
"hexValue": "504545525f494e43454e54495645535f434f4e54524f4c4c4552",
"id": 51105,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2093:28:118",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_417597a82fd79675b56b1fa84f0c660cdffb0b9868b1d3d08d33e1a08e4c6f31",
"typeString": "literal_string \"PEER_INCENTIVES_CONTROLLER\""
},
"value": "PEER_INCENTIVES_CONTROLLER"
},
"visibility": "private"
},
{
"id": 51109,
"nodeType": "VariableDeclaration",
"src": "2127:62:118",
"nodes": [],
"constant": true,
"mutability": "constant",
"name": "REFERRAL_MANAGER",
"nameLocation": "2152:16:118",
"scope": 52140,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 51107,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "2127:7:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": {
"hexValue": "524546455252414c5f4d414e41474552",
"id": 51108,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2171:18:118",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_ceb656422d2e5768b364a6526533f6832c483c8cfbd416512fbbd6fa6413f96a",
"typeString": "literal_string \"REFERRAL_MANAGER\""
},
"value": "REFERRAL_MANAGER"
},
"visibility": "private"
},
{
"id": 51112,
"nodeType": "VariableDeclaration",
"src": "2195:46:118",
"nodes": [],
"constant": true,
"mutability": "constant",
"name": "TREASURY",
"nameLocation": "2220:8:118",
"scope": 52140,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 51110,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "2195:7:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": {
"hexValue": "5452454153555259",
"id": 51111,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2231:10:118",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_06aa03964db1f7257357ef09714a5f0ca3633723df419e97015e0c7a3e83edb7",
"typeString": "literal_string \"TREASURY\""
},
"value": "TREASURY"
},
"visibility": "private"
},
{
"id": 51115,
"nodeType": "VariableDeclaration",
"src": "2247:54:118",
"nodes": [],
"constant": true,
"mutability": "constant",
"name": "F_TOKEN_IMPL",
"nameLocation": "2272:12:118",
"scope": 52140,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 51113,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "2247:7:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": {
"hexValue": "465f544f4b454e5f494d504c",
"id": 51114,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2287:14:118",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_424fe61346868fc363615853d5d06d270e953dc2ffeb930550c15b324ab8b40f",
"typeString": "literal_string \"F_TOKEN_IMPL\""
},
"value": "F_TOKEN_IMPL"
},
"visibility": "private"
},
{
"id": 51118,
"nodeType": "VariableDeclaration",
"src": "2307:60:118",
"nodes": [],
"constant": true,
"mutability": "constant",
"name": "DEBT_TOKEN_IMPL",
"nameLocation": "2332:15:118",
"scope": 52140,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 51116,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "2307:7:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": {
"hexValue": "444542545f544f4b454e5f494d504c",
"id": 51117,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2350:17:118",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_653663d2e219f4fc39dc8dad121ddf458bd9655f5f7bf1e1814a0bc6dfee0684",
"typeString": "literal_string \"DEBT_TOKEN_IMPL\""
},
"value": "DEBT_TOKEN_IMPL"
},
"visibility": "private"
},
{
"id": 51121,
"nodeType": "VariableDeclaration",
"src": "2373:38:118",
"nodes": [],
"constant": true,
"mutability": "constant",
"name": "WETH",
"nameLocation": "2398:4:118",
"scope": 52140,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 51119,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "2373:7:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": {
"hexValue": "57455448",
"id": 51120,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2405:6:118",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_0f8a193ff464434486c0daf7db2a895884365d2bc84ba47a68fcf89c1b14b5b8",
"typeString": "literal_string \"WETH\""
},
"value": "WETH"
},
"visibility": "private"
},
{
"id": 51124,
"nodeType": "VariableDeclaration",
"src": "2417:54:118",
"nodes": [],
"constant": true,
"mutability": "constant",
"name": "WETH_GATEWAY",
"nameLocation": "2442:12:118",
"scope": 52140,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 51122,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "2417:7:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": {
"hexValue": "574554485f47415445574159",
"id": 51123,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2457:14:118",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_8c6c451a3c78b1a61d300b75cea4e998723915c4ab1ff7888c30dbbfcaf39efb",
"typeString": "literal_string \"WETH_GATEWAY\""
},
"value": "WETH_GATEWAY"
},
"visibility": "private"
},
{
"id": 51127,
"nodeType": "VariableDeclaration",
"src": "2498:68:118",
"nodes": [],
"constant": true,
"mutability": "constant",
"name": "DELEGATION_REGISTRY",
"nameLocation": "2523:19:118",
"scope": 52140,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 51125,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "2498:7:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": {
"hexValue": "44454c45474154494f4e5f5245474953545259",
"id": 51126,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2545:21:118",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_1868cd9e1222a849fcc51d7ab8830dbf8227ee5424c0d98e2d2e668d9c5debb1",
"typeString": "literal_string \"DELEGATION_REGISTRY\""
},
"value": "DELEGATION_REGISTRY"
},
"visibility": "private"
},
{
"id": 51137,
"nodeType": "FunctionDefinition",
"src": "2573:75:118",
"nodes": [],
"body": {
"id": 51136,
"nodeType": "Block",
"src": "2609:39:118",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 51133,
"name": "marketId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51129,
"src": "2632:8:118",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 51132,
"name": "_setMarketId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 52139,
"src": "2619:12:118",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$",
"typeString": "function (string memory)"
}
},
"id": 51134,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2619:22:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 51135,
"nodeType": "ExpressionStatement",
"src": "2619:22:118"
}
]
},
"implemented": true,
"kind": "constructor",
"modifiers": [],
"name": "",
"nameLocation": "-1:-1:-1",
"parameters": {
"id": 51130,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51129,
"mutability": "mutable",
"name": "marketId",
"nameLocation": "2599:8:118",
"nodeType": "VariableDeclaration",
"scope": 51137,
"src": "2585:22:118",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 51128,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "2585:6:118",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "2584:24:118"
},
"returnParameters": {
"id": 51131,
"nodeType": "ParameterList",
"parameters": [],
"src": "2609:0:118"
},
"scope": 52140,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"id": 51147,
"nodeType": "FunctionDefinition",
"src": "2784:103:118",
"nodes": [],
"body": {
"id": 51146,
"nodeType": "Block",
"src": "2854:33:118",
"nodes": [],
"statements": [
{
"expression": {
"id": 51144,
"name": "_marketId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51045,
"src": "2871:9:118",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"functionReturnParameters": 51143,
"id": 51145,
"nodeType": "Return",
"src": "2864:16:118"
}
]
},
"baseFunctions": [
45426
],
"documentation": {
"id": 51138,
"nodeType": "StructuredDocumentation",
"src": "2654:125:118",
"text": " @dev Returns the id of the FluidNFT market to which this contracts points to\n @return The market id*"
},
"functionSelector": "568ef470",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getMarketId",
"nameLocation": "2793:11:118",
"overrides": {
"id": 51140,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "2821:8:118"
},
"parameters": {
"id": 51139,
"nodeType": "ParameterList",
"parameters": [],
"src": "2804:2:118"
},
"returnParameters": {
"id": 51143,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51142,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 51147,
"src": "2839:13:118",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 51141,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "2839:6:118",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "2838:15:118"
},
"scope": 52140,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 51161,
"nodeType": "FunctionDefinition",
"src": "3022:112:118",
"nodes": [],
"body": {
"id": 51160,
"nodeType": "Block",
"src": "3095:39:118",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 51157,
"name": "marketId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51150,
"src": "3118:8:118",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 51156,
"name": "_setMarketId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 52139,
"src": "3105:12:118",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$",
"typeString": "function (string memory)"
}
},
"id": 51158,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3105:22:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 51159,
"nodeType": "ExpressionStatement",
"src": "3105:22:118"
}
]
},
"baseFunctions": [
45431
],
"documentation": {
"id": 51148,
"nodeType": "StructuredDocumentation",
"src": "2893:124:118",
"text": " @dev Allows to set the market which this AddressProvider represents\n @param marketId The market id*"
},
"functionSelector": "f67b1847",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 51154,
"kind": "modifierInvocation",
"modifierName": {
"id": 51153,
"name": "onlyOwner",
"nameLocations": [
"3085:9:118"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 30579,
"src": "3085:9:118"
},
"nodeType": "ModifierInvocation",
"src": "3085:9:118"
}
],
"name": "setMarketId",
"nameLocation": "3031:11:118",
"overrides": {
"id": 51152,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "3076:8:118"
},
"parameters": {
"id": 51151,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51150,
"mutability": "mutable",
"name": "marketId",
"nameLocation": "3057:8:118",
"nodeType": "VariableDeclaration",
"scope": 51161,
"src": "3043:22:118",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 51149,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "3043:6:118",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "3042:24:118"
},
"returnParameters": {
"id": 51155,
"nodeType": "ParameterList",
"parameters": [],
"src": "3095:0:118"
},
"scope": 52140,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 51175,
"nodeType": "FunctionDefinition",
"src": "3221:109:118",
"nodes": [],
"body": {
"id": 51174,
"nodeType": "Block",
"src": "3292:38:118",
"nodes": [],
"statements": [
{
"expression": {
"baseExpression": {
"id": 51170,
"name": "_addresses",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51049,
"src": "3309:10:118",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
"typeString": "mapping(bytes32 => address)"
}
},
"id": 51172,
"indexExpression": {
"id": 51171,
"name": "id",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51164,
"src": "3320:2:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3309:14:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"functionReturnParameters": 51169,
"id": 51173,
"nodeType": "Return",
"src": "3302:21:118"
}
]
},
"baseFunctions": [
45438
],
"documentation": {
"id": 51162,
"nodeType": "StructuredDocumentation",
"src": "3140:76:118",
"text": " @dev Returns an address by id\n @return The address*"
},
"functionSelector": "21f8a721",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getAddress",
"nameLocation": "3230:10:118",
"overrides": {
"id": 51166,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "3265:8:118"
},
"parameters": {
"id": 51165,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51164,
"mutability": "mutable",
"name": "id",
"nameLocation": "3249:2:118",
"nodeType": "VariableDeclaration",
"scope": 51175,
"src": "3241:10:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 51163,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "3241:7:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"src": "3240:12:118"
},
"returnParameters": {
"id": 51169,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51168,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 51175,
"src": "3283:7:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51167,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3283:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "3282:9:118"
},
"scope": 52140,
"stateMutability": "view",
"virtual": false,
"visibility": "public"
},
{
"id": 51199,
"nodeType": "FunctionDefinition",
"src": "3587:172:118",
"nodes": [],
"body": {
"id": 51198,
"nodeType": "Block",
"src": "3667:92:118",
"nodes": [],
"statements": [
{
"expression": {
"id": 51190,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"id": 51186,
"name": "_addresses",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51049,
"src": "3677:10:118",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
"typeString": "mapping(bytes32 => address)"
}
},
"id": 51188,
"indexExpression": {
"id": 51187,
"name": "id",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51178,
"src": "3688:2:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "3677:14:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 51189,
"name": "newAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51180,
"src": "3694:10:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "3677:27:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 51191,
"nodeType": "ExpressionStatement",
"src": "3677:27:118"
},
{
"eventCall": {
"arguments": [
{
"id": 51193,
"name": "id",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51178,
"src": "3730:2:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"id": 51194,
"name": "newAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51180,
"src": "3734:10:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"hexValue": "66616c7365",
"id": 51195,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3746:5:118",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 51192,
"name": "AddressSet",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 45311,
"src": "3719:10:118",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bool_$returns$__$",
"typeString": "function (bytes32,address,bool)"
}
},
"id": 51196,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3719:33:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 51197,
"nodeType": "EmitStatement",
"src": "3714:38:118"
}
]
},
"baseFunctions": [
45445
],
"documentation": {
"id": 51176,
"nodeType": "StructuredDocumentation",
"src": "3336:246:118",
"text": " @dev Sets an address for an id replacing the address saved in the addresses map\n IMPORTANT Use this function carefully, as it will do a hard replacement\n @param id The id\n @param newAddress The address to set*"
},
"functionSelector": "ca446dd9",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 51184,
"kind": "modifierInvocation",
"modifierName": {
"id": 51183,
"name": "onlyOwner",
"nameLocations": [
"3657:9:118"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 30579,
"src": "3657:9:118"
},
"nodeType": "ModifierInvocation",
"src": "3657:9:118"
}
],
"name": "setAddress",
"nameLocation": "3596:10:118",
"overrides": {
"id": 51182,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "3648:8:118"
},
"parameters": {
"id": 51181,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51178,
"mutability": "mutable",
"name": "id",
"nameLocation": "3615:2:118",
"nodeType": "VariableDeclaration",
"scope": 51199,
"src": "3607:10:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 51177,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "3607:7:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 51180,
"mutability": "mutable",
"name": "newAddress",
"nameLocation": "3627:10:118",
"nodeType": "VariableDeclaration",
"scope": 51199,
"src": "3619:18:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51179,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3619:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "3606:32:118"
},
"returnParameters": {
"id": 51185,
"nodeType": "ParameterList",
"parameters": [],
"src": "3667:0:118"
},
"scope": 52140,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 51222,
"nodeType": "FunctionDefinition",
"src": "4257:239:118",
"nodes": [],
"body": {
"id": 51221,
"nodeType": "Block",
"src": "4383:113:118",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 51211,
"name": "id",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51202,
"src": "4405:2:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"id": 51212,
"name": "implementationAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51204,
"src": "4409:21:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 51210,
"name": "_updateImpl",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 52125,
"src": "4393:11:118",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$",
"typeString": "function (bytes32,address)"
}
},
"id": 51213,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4393:38:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 51214,
"nodeType": "ExpressionStatement",
"src": "4393:38:118"
},
{
"eventCall": {
"arguments": [
{
"id": 51216,
"name": "id",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51202,
"src": "4457:2:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"id": 51217,
"name": "implementationAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51204,
"src": "4461:21:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"hexValue": "74727565",
"id": 51218,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4484:4:118",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 51215,
"name": "AddressSet",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 45311,
"src": "4446:10:118",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bool_$returns$__$",
"typeString": "function (bytes32,address,bool)"
}
},
"id": 51219,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4446:43:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 51220,
"nodeType": "EmitStatement",
"src": "4441:48:118"
}
]
},
"baseFunctions": [
45452
],
"documentation": {
"id": 51200,
"nodeType": "StructuredDocumentation",
"src": "3765:487:118",
"text": " @dev General function to update the implementation of a proxy registered with\n certain `id`. If there is no proxy registered, it will instantiate one and\n set as implementation the `implementationAddress`\n IMPORTANT Use this function carefully, only for ids that don't have an explicit\n setter function, in order to avoid unexpected consequences\n @param id The id\n @param implementationAddress The address of the new implementation*"
},
"functionSelector": "5dcc528c",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 51208,
"kind": "modifierInvocation",
"modifierName": {
"id": 51207,
"name": "onlyOwner",
"nameLocations": [
"4369:9:118"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 30579,
"src": "4369:9:118"
},
"nodeType": "ModifierInvocation",
"src": "4369:9:118"
}
],
"name": "setAddressAsProxy",
"nameLocation": "4266:17:118",
"overrides": {
"id": 51206,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "4352:8:118"
},
"parameters": {
"id": 51205,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51202,
"mutability": "mutable",
"name": "id",
"nameLocation": "4292:2:118",
"nodeType": "VariableDeclaration",
"scope": 51222,
"src": "4284:10:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 51201,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "4284:7:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 51204,
"mutability": "mutable",
"name": "implementationAddress",
"nameLocation": "4304:21:118",
"nodeType": "VariableDeclaration",
"scope": 51222,
"src": "4296:29:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51203,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4296:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "4283:43:118"
},
"returnParameters": {
"id": 51209,
"nodeType": "ParameterList",
"parameters": [],
"src": "4383:0:118"
},
"scope": 52140,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 51234,
"nodeType": "FunctionDefinition",
"src": "4635:127:118",
"nodes": [],
"body": {
"id": 51233,
"nodeType": "Block",
"src": "4708:54:118",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 51230,
"name": "EXECUTION_DELEGATE",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51061,
"src": "4736:18:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 51229,
"name": "getAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51175,
"src": "4725:10:118",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
"typeString": "function (bytes32) view returns (address)"
}
},
"id": 51231,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4725:30:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"functionReturnParameters": 51228,
"id": 51232,
"nodeType": "Return",
"src": "4718:37:118"
}
]
},
"baseFunctions": [
45457
],
"documentation": {
"id": 51223,
"nodeType": "StructuredDocumentation",
"src": "4502:128:118",
"text": " @dev Returns the address of the Execution Delegate proxy\n @return The Execution Delegate proxy address*"
},
"functionSelector": "47f872f1",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getExecutionDelegate",
"nameLocation": "4644:20:118",
"overrides": {
"id": 51225,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "4681:8:118"
},
"parameters": {
"id": 51224,
"nodeType": "ParameterList",
"parameters": [],
"src": "4664:2:118"
},
"returnParameters": {
"id": 51228,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51227,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 51234,
"src": "4699:7:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51226,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4699:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "4698:9:118"
},
"scope": 52140,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 51254,
"nodeType": "FunctionDefinition",
"src": "5033:210:118",
"nodes": [],
"body": {
"id": 51253,
"nodeType": "Block",
"src": "5118:125:118",
"nodes": [],
"statements": [
{
"expression": {
"id": 51247,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"id": 51243,
"name": "_addresses",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51049,
"src": "5128:10:118",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
"typeString": "mapping(bytes32 => address)"
}
},
"id": 51245,
"indexExpression": {
"id": 51244,
"name": "EXECUTION_DELEGATE",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51061,
"src": "5139:18:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "5128:30:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 51246,
"name": "executionDelegate",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51237,
"src": "5161:17:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "5128:50:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 51248,
"nodeType": "ExpressionStatement",
"src": "5128:50:118"
},
{
"eventCall": {
"arguments": [
{
"id": 51250,
"name": "executionDelegate",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51237,
"src": "5218:17:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 51249,
"name": "ExecutionDelegateUpdated",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 45315,
"src": "5193:24:118",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
"typeString": "function (address)"
}
},
"id": 51251,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5193:43:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 51252,
"nodeType": "EmitStatement",
"src": "5188:48:118"
}
]
},
"baseFunctions": [
45462
],
"documentation": {
"id": 51235,
"nodeType": "StructuredDocumentation",
"src": "4768:260:118",
"text": " @dev Updates the implementation of the Execution Delegate, or creates the proxy\n setting the new `executionDelegate` implementation on the first time calling it\n @param executionDelegate The new Execution Delegate implementation*"
},
"functionSelector": "037c9be2",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 51241,
"kind": "modifierInvocation",
"modifierName": {
"id": 51240,
"name": "onlyOwner",
"nameLocations": [
"5108:9:118"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 30579,
"src": "5108:9:118"
},
"nodeType": "ModifierInvocation",
"src": "5108:9:118"
}
],
"name": "setExecutionDelegate",
"nameLocation": "5042:20:118",
"overrides": {
"id": 51239,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "5099:8:118"
},
"parameters": {
"id": 51238,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51237,
"mutability": "mutable",
"name": "executionDelegate",
"nameLocation": "5071:17:118",
"nodeType": "VariableDeclaration",
"scope": 51254,
"src": "5063:25:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51236,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "5063:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "5062:27:118"
},
"returnParameters": {
"id": 51242,
"nodeType": "ParameterList",
"parameters": [],
"src": "5118:0:118"
},
"scope": 52140,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 51266,
"nodeType": "FunctionDefinition",
"src": "5380:125:118",
"nodes": [],
"body": {
"id": 51265,
"nodeType": "Block",
"src": "5452:53:118",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 51262,
"name": "EXECUTION_MANAGER",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51064,
"src": "5480:17:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 51261,
"name": "getAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51175,
"src": "5469:10:118",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
"typeString": "function (bytes32) view returns (address)"
}
},
"id": 51263,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5469:29:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"functionReturnParameters": 51260,
"id": 51264,
"nodeType": "Return",
"src": "5462:36:118"
}
]
},
"baseFunctions": [
45467
],
"documentation": {
"id": 51255,
"nodeType": "StructuredDocumentation",
"src": "5249:126:118",
"text": " @dev Returns the address of the Execution Manager proxy\n @return The Execution Manager proxy address*"
},
"functionSelector": "862beee1",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getExecutionManager",
"nameLocation": "5389:19:118",
"overrides": {
"id": 51257,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "5425:8:118"
},
"parameters": {
"id": 51256,
"nodeType": "ParameterList",
"parameters": [],
"src": "5408:2:118"
},
"returnParameters": {
"id": 51260,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51259,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 51266,
"src": "5443:7:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51258,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "5443:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "5442:9:118"
},
"scope": 52140,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 51286,
"nodeType": "FunctionDefinition",
"src": "5772:204:118",
"nodes": [],
"body": {
"id": 51285,
"nodeType": "Block",
"src": "5855:121:118",
"nodes": [],
"statements": [
{
"expression": {
"id": 51279,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"id": 51275,
"name": "_addresses",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51049,
"src": "5865:10:118",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
"typeString": "mapping(bytes32 => address)"
}
},
"id": 51277,
"indexExpression": {
"id": 51276,
"name": "EXECUTION_MANAGER",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51064,
"src": "5876:17:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "5865:29:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 51278,
"name": "executionManager",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51269,
"src": "5897:16:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "5865:48:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 51280,
"nodeType": "ExpressionStatement",
"src": "5865:48:118"
},
{
"eventCall": {
"arguments": [
{
"id": 51282,
"name": "executionManager",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51269,
"src": "5952:16:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 51281,
"name": "ExecutionManagerUpdated",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 45319,
"src": "5928:23:118",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
"typeString": "function (address)"
}
},
"id": 51283,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5928:41:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 51284,
"nodeType": "EmitStatement",
"src": "5923:46:118"
}
]
},
"baseFunctions": [
45472
],
"documentation": {
"id": 51267,
"nodeType": "StructuredDocumentation",
"src": "5511:256:118",
"text": " @dev Updates the implementation of the Execution Manager, or creates the proxy\n setting the new `executionManager` implementation on the first time calling it\n @param executionManager The new Execution Manager implementation*"
},
"functionSelector": "1381ba4d",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 51273,
"kind": "modifierInvocation",
"modifierName": {
"id": 51272,
"name": "onlyOwner",
"nameLocations": [
"5845:9:118"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 30579,
"src": "5845:9:118"
},
"nodeType": "ModifierInvocation",
"src": "5845:9:118"
}
],
"name": "setExecutionManager",
"nameLocation": "5781:19:118",
"overrides": {
"id": 51271,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "5836:8:118"
},
"parameters": {
"id": 51270,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51269,
"mutability": "mutable",
"name": "executionManager",
"nameLocation": "5809:16:118",
"nodeType": "VariableDeclaration",
"scope": 51286,
"src": "5801:24:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51268,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "5801:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "5800:26:118"
},
"returnParameters": {
"id": 51274,
"nodeType": "ParameterList",
"parameters": [],
"src": "5855:0:118"
},
"scope": 52140,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 51298,
"nodeType": "FunctionDefinition",
"src": "6093:106:118",
"nodes": [],
"body": {
"id": 51297,
"nodeType": "Block",
"src": "6156:43:118",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 51294,
"name": "LENDING",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51067,
"src": "6184:7:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 51293,
"name": "getAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51175,
"src": "6173:10:118",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
"typeString": "function (bytes32) view returns (address)"
}
},
"id": 51295,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "6173:19:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"functionReturnParameters": 51292,
"id": 51296,
"nodeType": "Return",
"src": "6166:26:118"
}
]
},
"baseFunctions": [
45477
],
"documentation": {
"id": 51287,
"nodeType": "StructuredDocumentation",
"src": "5982:106:118",
"text": " @dev Returns the address of the Lending proxy\n @return The Lending proxy address*"
},
"functionSelector": "69acea5f",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getLending",
"nameLocation": "6102:10:118",
"overrides": {
"id": 51289,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "6129:8:118"
},
"parameters": {
"id": 51288,
"nodeType": "ParameterList",
"parameters": [],
"src": "6112:2:118"
},
"returnParameters": {
"id": 51292,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51291,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 51298,
"src": "6147:7:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51290,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "6147:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "6146:9:118"
},
"scope": 52140,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 51318,
"nodeType": "FunctionDefinition",
"src": "6428:149:118",
"nodes": [],
"body": {
"id": 51317,
"nodeType": "Block",
"src": "6493:84:118",
"nodes": [],
"statements": [
{
"expression": {
"id": 51311,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"id": 51307,
"name": "_addresses",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51049,
"src": "6503:10:118",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
"typeString": "mapping(bytes32 => address)"
}
},
"id": 51309,
"indexExpression": {
"id": 51308,
"name": "LENDING",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51067,
"src": "6514:7:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "6503:19:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 51310,
"name": "lending",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51301,
"src": "6525:7:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "6503:29:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 51312,
"nodeType": "ExpressionStatement",
"src": "6503:29:118"
},
{
"eventCall": {
"arguments": [
{
"id": 51314,
"name": "lending",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51301,
"src": "6562:7:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 51313,
"name": "LendingUpdated",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 45323,
"src": "6547:14:118",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
"typeString": "function (address)"
}
},
"id": 51315,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "6547:23:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 51316,
"nodeType": "EmitStatement",
"src": "6542:28:118"
}
]
},
"baseFunctions": [
45482
],
"documentation": {
"id": 51299,
"nodeType": "StructuredDocumentation",
"src": "6205:218:118",
"text": " @dev Updates the implementation of the Lending, or creates the proxy\n setting the new `lending` implementation on the first time calling it\n @param lending The new Lending implementation*"
},
"functionSelector": "180fde07",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 51305,
"kind": "modifierInvocation",
"modifierName": {
"id": 51304,
"name": "onlyOwner",
"nameLocations": [
"6483:9:118"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 30579,
"src": "6483:9:118"
},
"nodeType": "ModifierInvocation",
"src": "6483:9:118"
}
],
"name": "setLending",
"nameLocation": "6437:10:118",
"overrides": {
"id": 51303,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "6474:8:118"
},
"parameters": {
"id": 51302,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51301,
"mutability": "mutable",
"name": "lending",
"nameLocation": "6456:7:118",
"nodeType": "VariableDeclaration",
"scope": 51318,
"src": "6448:15:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51300,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "6448:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "6447:17:118"
},
"returnParameters": {
"id": 51306,
"nodeType": "ParameterList",
"parameters": [],
"src": "6493:0:118"
},
"scope": 52140,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 51330,
"nodeType": "FunctionDefinition",
"src": "6708:121:118",
"nodes": [],
"body": {
"id": 51329,
"nodeType": "Block",
"src": "6778:51:118",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 51326,
"name": "PROMISSORY_NOTE",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51070,
"src": "6806:15:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 51325,
"name": "getAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51175,
"src": "6795:10:118",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
"typeString": "function (bytes32) view returns (address)"
}
},
"id": 51327,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "6795:27:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"functionReturnParameters": 51324,
"id": 51328,
"nodeType": "Return",
"src": "6788:34:118"
}
]
},
"baseFunctions": [
45487
],
"documentation": {
"id": 51319,
"nodeType": "StructuredDocumentation",
"src": "6583:120:118",
"text": " @dev Returns the address of the PromissoryNote proxy\n @return The PromissoryNote proxy address*"
},
"functionSelector": "90313e8e",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getPromissoryNote",
"nameLocation": "6717:17:118",
"overrides": {
"id": 51321,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "6751:8:118"
},
"parameters": {
"id": 51320,
"nodeType": "ParameterList",
"parameters": [],
"src": "6734:2:118"
},
"returnParameters": {
"id": 51324,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51323,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 51330,
"src": "6769:7:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51322,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "6769:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "6768:9:118"
},
"scope": 52140,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 51350,
"nodeType": "FunctionDefinition",
"src": "7086:192:118",
"nodes": [],
"body": {
"id": 51349,
"nodeType": "Block",
"src": "7165:113:118",
"nodes": [],
"statements": [
{
"expression": {
"id": 51343,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"id": 51339,
"name": "_addresses",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51049,
"src": "7175:10:118",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
"typeString": "mapping(bytes32 => address)"
}
},
"id": 51341,
"indexExpression": {
"id": 51340,
"name": "PROMISSORY_NOTE",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51070,
"src": "7186:15:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "7175:27:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 51342,
"name": "promissoryNote",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51333,
"src": "7205:14:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "7175:44:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 51344,
"nodeType": "ExpressionStatement",
"src": "7175:44:118"
},
{
"eventCall": {
"arguments": [
{
"id": 51346,
"name": "promissoryNote",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51333,
"src": "7256:14:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 51345,
"name": "PromissoryNoteUpdated",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 45327,
"src": "7234:21:118",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
"typeString": "function (address)"
}
},
"id": 51347,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "7234:37:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 51348,
"nodeType": "EmitStatement",
"src": "7229:42:118"
}
]
},
"baseFunctions": [
45492
],
"documentation": {
"id": 51331,
"nodeType": "StructuredDocumentation",
"src": "6835:246:118",
"text": " @dev Updates the implementation of the PromissoryNote, or creates the proxy\n setting the new `promissoryNote` implementation on the first time calling it\n @param promissoryNote The new PromissoryNote implementation*"
},
"functionSelector": "2fedd807",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 51337,
"kind": "modifierInvocation",
"modifierName": {
"id": 51336,
"name": "onlyOwner",
"nameLocations": [
"7155:9:118"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 30579,
"src": "7155:9:118"
},
"nodeType": "ModifierInvocation",
"src": "7155:9:118"
}
],
"name": "setPromissoryNote",
"nameLocation": "7095:17:118",
"overrides": {
"id": 51335,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "7146:8:118"
},
"parameters": {
"id": 51334,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51333,
"mutability": "mutable",
"name": "promissoryNote",
"nameLocation": "7121:14:118",
"nodeType": "VariableDeclaration",
"scope": 51350,
"src": "7113:22:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51332,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "7113:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "7112:24:118"
},
"returnParameters": {
"id": 51338,
"nodeType": "ParameterList",
"parameters": [],
"src": "7165:0:118"
},
"scope": 52140,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 51362,
"nodeType": "FunctionDefinition",
"src": "7422:134:118",
"nodes": [],
"body": {
"id": 51361,
"nodeType": "Block",
"src": "7498:58:118",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 51358,
"name": "PROMISSORY_NOTE_BUNDLE",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51073,
"src": "7526:22:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 51357,
"name": "getAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51175,
"src": "7515:10:118",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
"typeString": "function (bytes32) view returns (address)"
}
},
"id": 51359,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "7515:34:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"functionReturnParameters": 51356,
"id": 51360,
"nodeType": "Return",
"src": "7508:41:118"
}
]
},
"baseFunctions": [
45497
],
"documentation": {
"id": 51351,
"nodeType": "StructuredDocumentation",
"src": "7284:133:118",
"text": " @dev Returns the address of the PromissoryNoteBundle proxy\n @return The PromissoryNote Bundle proxy address*"
},
"functionSelector": "e4a2544d",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getPromissoryNoteBundle",
"nameLocation": "7431:23:118",
"overrides": {
"id": 51353,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "7471:8:118"
},
"parameters": {
"id": 51352,
"nodeType": "ParameterList",
"parameters": [],
"src": "7454:2:118"
},
"returnParameters": {
"id": 51356,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51355,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 51362,
"src": "7489:7:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51354,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "7489:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "7488:9:118"
},
"scope": 52140,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 51382,
"nodeType": "FunctionDefinition",
"src": "7832:211:118",
"nodes": [],
"body": {
"id": 51381,
"nodeType": "Block",
"src": "7917:126:118",
"nodes": [],
"statements": [
{
"expression": {
"id": 51375,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"id": 51371,
"name": "_addresses",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51049,
"src": "7927:10:118",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
"typeString": "mapping(bytes32 => address)"
}
},
"id": 51373,
"indexExpression": {
"id": 51372,
"name": "PROMISSORY_NOTE_BUNDLE",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51073,
"src": "7938:22:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "7927:34:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 51374,
"name": "promissoryNote",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51365,
"src": "7964:14:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "7927:51:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 51376,
"nodeType": "ExpressionStatement",
"src": "7927:51:118"
},
{
"eventCall": {
"arguments": [
{
"id": 51378,
"name": "promissoryNote",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51365,
"src": "8021:14:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 51377,
"name": "PromissoryNoteBundleUpdated",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 45331,
"src": "7993:27:118",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
"typeString": "function (address)"
}
},
"id": 51379,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "7993:43:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 51380,
"nodeType": "EmitStatement",
"src": "7988:48:118"
}
]
},
"baseFunctions": [
45502
],
"documentation": {
"id": 51363,
"nodeType": "StructuredDocumentation",
"src": "7562:265:118",
"text": " @dev Updates the implementation of the PromissoryNote Bunlde, or creates the proxy\n setting the new `promissoryNoteBundle` implementation on the first time calling it\n @param promissoryNote The new PromissoryNoteBundle implementation*"
},
"functionSelector": "ea34b961",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 51369,
"kind": "modifierInvocation",
"modifierName": {
"id": 51368,
"name": "onlyOwner",
"nameLocations": [
"7907:9:118"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 30579,
"src": "7907:9:118"
},
"nodeType": "ModifierInvocation",
"src": "7907:9:118"
}
],
"name": "setPromissoryNoteBundle",
"nameLocation": "7841:23:118",
"overrides": {
"id": 51367,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "7898:8:118"
},
"parameters": {
"id": 51366,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51365,
"mutability": "mutable",
"name": "promissoryNote",
"nameLocation": "7873:14:118",
"nodeType": "VariableDeclaration",
"scope": 51382,
"src": "7865:22:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51364,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "7865:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "7864:24:118"
},
"returnParameters": {
"id": 51370,
"nodeType": "ParameterList",
"parameters": [],
"src": "7917:0:118"
},
"scope": 52140,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 51394,
"nodeType": "FunctionDefinition",
"src": "8182:127:118",
"nodes": [],
"body": {
"id": 51393,
"nodeType": "Block",
"src": "8255:54:118",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 51390,
"name": "OBLIGATION_RECEIPT",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51076,
"src": "8283:18:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 51389,
"name": "getAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51175,
"src": "8272:10:118",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
"typeString": "function (bytes32) view returns (address)"
}
},
"id": 51391,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "8272:30:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"functionReturnParameters": 51388,
"id": 51392,
"nodeType": "Return",
"src": "8265:37:118"
}
]
},
"baseFunctions": [
45507
],
"documentation": {
"id": 51383,
"nodeType": "StructuredDocumentation",
"src": "8049:128:118",
"text": " @dev Returns the address of the Obligation Receipt proxy\n @return The Obligation Receipt proxy address*"
},
"functionSelector": "3fa01431",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getObligationReceipt",
"nameLocation": "8191:20:118",
"overrides": {
"id": 51385,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "8228:8:118"
},
"parameters": {
"id": 51384,
"nodeType": "ParameterList",
"parameters": [],
"src": "8211:2:118"
},
"returnParameters": {
"id": 51388,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51387,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 51394,
"src": "8246:7:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51386,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "8246:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "8245:9:118"
},
"scope": 52140,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 51414,
"nodeType": "FunctionDefinition",
"src": "8580:210:118",
"nodes": [],
"body": {
"id": 51413,
"nodeType": "Block",
"src": "8665:125:118",
"nodes": [],
"statements": [
{
"expression": {
"id": 51407,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"id": 51403,
"name": "_addresses",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51049,
"src": "8675:10:118",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
"typeString": "mapping(bytes32 => address)"
}
},
"id": 51405,
"indexExpression": {
"id": 51404,
"name": "OBLIGATION_RECEIPT",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51076,
"src": "8686:18:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "8675:30:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 51406,
"name": "obligationReceipt",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51397,
"src": "8708:17:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "8675:50:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 51408,
"nodeType": "ExpressionStatement",
"src": "8675:50:118"
},
{
"eventCall": {
"arguments": [
{
"id": 51410,
"name": "obligationReceipt",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51397,
"src": "8765:17:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 51409,
"name": "ObligationReceiptUpdated",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 45335,
"src": "8740:24:118",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
"typeString": "function (address)"
}
},
"id": 51411,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "8740:43:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 51412,
"nodeType": "EmitStatement",
"src": "8735:48:118"
}
]
},
"baseFunctions": [
45512
],
"documentation": {
"id": 51395,
"nodeType": "StructuredDocumentation",
"src": "8315:260:118",
"text": " @dev Updates the implementation of the Obligation Receipt, or creates the proxy\n setting the new `obligationReceipt` implementation on the first time calling it\n @param obligationReceipt The new Obligation Receipt implementation*"
},
"functionSelector": "63ede0fc",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 51401,
"kind": "modifierInvocation",
"modifierName": {
"id": 51400,
"name": "onlyOwner",
"nameLocations": [
"8655:9:118"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 30579,
"src": "8655:9:118"
},
"nodeType": "ModifierInvocation",
"src": "8655:9:118"
}
],
"name": "setObligationReceipt",
"nameLocation": "8589:20:118",
"overrides": {
"id": 51399,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "8646:8:118"
},
"parameters": {
"id": 51398,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51397,
"mutability": "mutable",
"name": "obligationReceipt",
"nameLocation": "8618:17:118",
"nodeType": "VariableDeclaration",
"scope": 51414,
"src": "8610:25:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51396,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "8610:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "8609:27:118"
},
"returnParameters": {
"id": 51402,
"nodeType": "ParameterList",
"parameters": [],
"src": "8665:0:118"
},
"scope": 52140,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 51426,
"nodeType": "FunctionDefinition",
"src": "8943:140:118",
"nodes": [],
"body": {
"id": 51425,
"nodeType": "Block",
"src": "9022:61:118",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 51422,
"name": "OBLIGATION_RECEIPT_BUNDLE",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51079,
"src": "9050:25:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 51421,
"name": "getAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51175,
"src": "9039:10:118",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
"typeString": "function (bytes32) view returns (address)"
}
},
"id": 51423,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9039:37:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"functionReturnParameters": 51420,
"id": 51424,
"nodeType": "Return",
"src": "9032:44:118"
}
]
},
"baseFunctions": [
45517
],
"documentation": {
"id": 51415,
"nodeType": "StructuredDocumentation",
"src": "8796:142:118",
"text": " @dev Returns the address of the Obligation Receipt Bundle proxy\n @return The Obligation Receipt Bundle proxy address*"
},
"functionSelector": "7dd83ac5",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getObligationReceiptBundle",
"nameLocation": "8952:26:118",
"overrides": {
"id": 51417,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "8995:8:118"
},
"parameters": {
"id": 51416,
"nodeType": "ParameterList",
"parameters": [],
"src": "8978:2:118"
},
"returnParameters": {
"id": 51420,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51419,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 51426,
"src": "9013:7:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51418,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "9013:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "9012:9:118"
},
"scope": 52140,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 51446,
"nodeType": "FunctionDefinition",
"src": "9369:229:118",
"nodes": [],
"body": {
"id": 51445,
"nodeType": "Block",
"src": "9460:138:118",
"nodes": [],
"statements": [
{
"expression": {
"id": 51439,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"id": 51435,
"name": "_addresses",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51049,
"src": "9470:10:118",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
"typeString": "mapping(bytes32 => address)"
}
},
"id": 51437,
"indexExpression": {
"id": 51436,
"name": "OBLIGATION_RECEIPT_BUNDLE",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51079,
"src": "9481:25:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "9470:37:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 51438,
"name": "obligationReceipt",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51429,
"src": "9510:17:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "9470:57:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 51440,
"nodeType": "ExpressionStatement",
"src": "9470:57:118"
},
{
"eventCall": {
"arguments": [
{
"id": 51442,
"name": "obligationReceipt",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51429,
"src": "9573:17:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 51441,
"name": "ObligationReceiptBundleUpdated",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 45339,
"src": "9542:30:118",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
"typeString": "function (address)"
}
},
"id": 51443,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9542:49:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 51444,
"nodeType": "EmitStatement",
"src": "9537:54:118"
}
]
},
"baseFunctions": [
45522
],
"documentation": {
"id": 51427,
"nodeType": "StructuredDocumentation",
"src": "9089:275:118",
"text": " @dev Updates the implementation of the Obligation Receipt Bundle, or creates the proxy\n setting the new `obligationReceiptBundle` implementation on the first time calling it\n @param obligationReceipt The new PromissoryNoteBundle implementation*"
},
"functionSelector": "ad1f9944",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 51433,
"kind": "modifierInvocation",
"modifierName": {
"id": 51432,
"name": "onlyOwner",
"nameLocations": [
"9450:9:118"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 30579,
"src": "9450:9:118"
},
"nodeType": "ModifierInvocation",
"src": "9450:9:118"
}
],
"name": "setObligationReceiptBundle",
"nameLocation": "9378:26:118",
"overrides": {
"id": 51431,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "9441:8:118"
},
"parameters": {
"id": 51430,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51429,
"mutability": "mutable",
"name": "obligationReceipt",
"nameLocation": "9413:17:118",
"nodeType": "VariableDeclaration",
"scope": 51446,
"src": "9405:25:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51428,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "9405:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "9404:27:118"
},
"returnParameters": {
"id": 51434,
"nodeType": "ParameterList",
"parameters": [],
"src": "9460:0:118"
},
"scope": 52140,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 51458,
"nodeType": "FunctionDefinition",
"src": "9723:115:118",
"nodes": [],
"body": {
"id": 51457,
"nodeType": "Block",
"src": "9790:48:118",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 51454,
"name": "LENDING_POOL",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51082,
"src": "9818:12:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 51453,
"name": "getAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51175,
"src": "9807:10:118",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
"typeString": "function (bytes32) view returns (address)"
}
},
"id": 51455,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9807:24:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"functionReturnParameters": 51452,
"id": 51456,
"nodeType": "Return",
"src": "9800:31:118"
}
]
},
"baseFunctions": [
45527
],
"documentation": {
"id": 51447,
"nodeType": "StructuredDocumentation",
"src": "9604:114:118",
"text": " @dev Returns the address of the LendingPool proxy\n @return The LendingPool proxy address*"
},
"functionSelector": "0261bf8b",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getLendingPool",
"nameLocation": "9732:14:118",
"overrides": {
"id": 51449,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "9763:8:118"
},
"parameters": {
"id": 51448,
"nodeType": "ParameterList",
"parameters": [],
"src": "9746:2:118"
},
"returnParameters": {
"id": 51452,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51451,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 51458,
"src": "9781:7:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51450,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "9781:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "9780:9:118"
},
"scope": 52140,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 51478,
"nodeType": "FunctionDefinition",
"src": "10069:153:118",
"nodes": [],
"body": {
"id": 51477,
"nodeType": "Block",
"src": "10135:87:118",
"nodes": [],
"statements": [
{
"expression": {
"id": 51471,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"id": 51467,
"name": "_addresses",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51049,
"src": "10145:10:118",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
"typeString": "mapping(bytes32 => address)"
}
},
"id": 51469,
"indexExpression": {
"id": 51468,
"name": "LENDING_POOL",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51082,
"src": "10156:12:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "10145:24:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 51470,
"name": "pool",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51461,
"src": "10172:4:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "10145:31:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 51472,
"nodeType": "ExpressionStatement",
"src": "10145:31:118"
},
{
"eventCall": {
"arguments": [
{
"id": 51474,
"name": "pool",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51461,
"src": "10210:4:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 51473,
"name": "LendingPoolUpdated",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 45343,
"src": "10191:18:118",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
"typeString": "function (address)"
}
},
"id": 51475,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "10191:24:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 51476,
"nodeType": "EmitStatement",
"src": "10186:29:118"
}
]
},
"baseFunctions": [
45532
],
"documentation": {
"id": 51459,
"nodeType": "StructuredDocumentation",
"src": "9844:220:118",
"text": " @dev Updates the implementation of the LendingPool, or creates the proxy\n setting the new `pool` implementation on the first time calling it\n @param pool The new LendingPool implementation*"
},
"functionSelector": "113aa8b1",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 51465,
"kind": "modifierInvocation",
"modifierName": {
"id": 51464,
"name": "onlyOwner",
"nameLocations": [
"10125:9:118"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 30579,
"src": "10125:9:118"
},
"nodeType": "ModifierInvocation",
"src": "10125:9:118"
}
],
"name": "setLendingPool",
"nameLocation": "10078:14:118",
"overrides": {
"id": 51463,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "10116:8:118"
},
"parameters": {
"id": 51462,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51461,
"mutability": "mutable",
"name": "pool",
"nameLocation": "10101:4:118",
"nodeType": "VariableDeclaration",
"scope": 51478,
"src": "10093:12:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51460,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "10093:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "10092:14:118"
},
"returnParameters": {
"id": 51466,
"nodeType": "ParameterList",
"parameters": [],
"src": "10135:0:118"
},
"scope": 52140,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 51490,
"nodeType": "FunctionDefinition",
"src": "10349:116:118",
"nodes": [],
"body": {
"id": 51489,
"nodeType": "Block",
"src": "10417:48:118",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 51486,
"name": "CONFIGURATOR",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51085,
"src": "10445:12:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 51485,
"name": "getAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51175,
"src": "10434:10:118",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
"typeString": "function (bytes32) view returns (address)"
}
},
"id": 51487,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "10434:24:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"functionReturnParameters": 51484,
"id": 51488,
"nodeType": "Return",
"src": "10427:31:118"
}
]
},
"baseFunctions": [
45537
],
"documentation": {
"id": 51479,
"nodeType": "StructuredDocumentation",
"src": "10228:116:118",
"text": " @dev Returns the address of the Configurator proxy\n @return The Configurator proxy address*"
},
"functionSelector": "9b7ae5ec",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getConfigurator",
"nameLocation": "10358:15:118",
"overrides": {
"id": 51481,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "10390:8:118"
},
"parameters": {
"id": 51480,
"nodeType": "ParameterList",
"parameters": [],
"src": "10373:2:118"
},
"returnParameters": {
"id": 51484,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51483,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 51490,
"src": "10408:7:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51482,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "10408:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "10407:9:118"
},
"scope": 52140,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 51510,
"nodeType": "FunctionDefinition",
"src": "10714:179:118",
"nodes": [],
"body": {
"id": 51509,
"nodeType": "Block",
"src": "10789:104:118",
"nodes": [],
"statements": [
{
"expression": {
"id": 51503,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"id": 51499,
"name": "_addresses",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51049,
"src": "10799:10:118",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
"typeString": "mapping(bytes32 => address)"
}
},
"id": 51501,
"indexExpression": {
"id": 51500,
"name": "CONFIGURATOR",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51085,
"src": "10810:12:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "10799:24:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 51502,
"name": "configurator",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51493,
"src": "10826:12:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "10799:39:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 51504,
"nodeType": "ExpressionStatement",
"src": "10799:39:118"
},
{
"eventCall": {
"arguments": [
{
"id": 51506,
"name": "configurator",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51493,
"src": "10873:12:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 51505,
"name": "ConfiguratorUpdated",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 45347,
"src": "10853:19:118",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
"typeString": "function (address)"
}
},
"id": 51507,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "10853:33:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 51508,
"nodeType": "EmitStatement",
"src": "10848:38:118"
}
]
},
"baseFunctions": [
45542
],
"documentation": {
"id": 51491,
"nodeType": "StructuredDocumentation",
"src": "10471:238:118",
"text": " @dev Updates the implementation of the Configurator, or creates the proxy\n setting the new `configurator` implementation on the first time calling it\n @param configurator The new Configurator implementation*"
},
"functionSelector": "9f5f86ae",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 51497,
"kind": "modifierInvocation",
"modifierName": {
"id": 51496,
"name": "onlyOwner",
"nameLocations": [
"10779:9:118"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 30579,
"src": "10779:9:118"
},
"nodeType": "ModifierInvocation",
"src": "10779:9:118"
}
],
"name": "setConfigurator",
"nameLocation": "10723:15:118",
"overrides": {
"id": 51495,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "10770:8:118"
},
"parameters": {
"id": 51494,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51493,
"mutability": "mutable",
"name": "configurator",
"nameLocation": "10747:12:118",
"nodeType": "VariableDeclaration",
"scope": 51510,
"src": "10739:20:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51492,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "10739:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "10738:22:118"
},
"returnParameters": {
"id": 51498,
"nodeType": "ParameterList",
"parameters": [],
"src": "10789:0:118"
},
"scope": 52140,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 51529,
"nodeType": "FunctionDefinition",
"src": "11142:183:118",
"nodes": [],
"body": {
"id": 51528,
"nodeType": "Block",
"src": "11221:104:118",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 51520,
"name": "CONFIGURATOR",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51085,
"src": "11243:12:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"id": 51521,
"name": "configurator",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51513,
"src": "11257:12:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 51519,
"name": "_updateImpl",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 52125,
"src": "11231:11:118",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$",
"typeString": "function (bytes32,address)"
}
},
"id": 51522,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "11231:39:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 51523,
"nodeType": "ExpressionStatement",
"src": "11231:39:118"
},
{
"eventCall": {
"arguments": [
{
"id": 51525,
"name": "configurator",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51513,
"src": "11305:12:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 51524,
"name": "ConfiguratorUpdated",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 45347,
"src": "11285:19:118",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
"typeString": "function (address)"
}
},
"id": 51526,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "11285:33:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 51527,
"nodeType": "EmitStatement",
"src": "11280:38:118"
}
]
},
"baseFunctions": [
45547
],
"documentation": {
"id": 51511,
"nodeType": "StructuredDocumentation",
"src": "10899:238:118",
"text": " @dev Updates the implementation of the Configurator, or creates the proxy\n setting the new `configurator` implementation on the first time calling it\n @param configurator The new Configurator implementation*"
},
"functionSelector": "0c71b701",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 51517,
"kind": "modifierInvocation",
"modifierName": {
"id": 51516,
"name": "onlyOwner",
"nameLocations": [
"11211:9:118"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 30579,
"src": "11211:9:118"
},
"nodeType": "ModifierInvocation",
"src": "11211:9:118"
}
],
"name": "setConfiguratorImpl",
"nameLocation": "11151:19:118",
"overrides": {
"id": 51515,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "11202:8:118"
},
"parameters": {
"id": 51514,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51513,
"mutability": "mutable",
"name": "configurator",
"nameLocation": "11179:12:118",
"nodeType": "VariableDeclaration",
"scope": 51529,
"src": "11171:20:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51512,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "11171:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "11170:22:118"
},
"returnParameters": {
"id": 51518,
"nodeType": "ParameterList",
"parameters": [],
"src": "11221:0:118"
},
"scope": 52140,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 51541,
"nodeType": "FunctionDefinition",
"src": "11649:127:118",
"nodes": [],
"body": {
"id": 51540,
"nodeType": "Block",
"src": "11722:54:118",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 51537,
"name": "COLLATERAL_MANAGER",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51088,
"src": "11750:18:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 51536,
"name": "getAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51175,
"src": "11739:10:118",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
"typeString": "function (bytes32) view returns (address)"
}
},
"id": 51538,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "11739:30:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"functionReturnParameters": 51535,
"id": 51539,
"nodeType": "Return",
"src": "11732:37:118"
}
]
},
"baseFunctions": [
45552
],
"documentation": {
"id": 51530,
"nodeType": "StructuredDocumentation",
"src": "11331:313:118",
"text": " @dev Returns the address of the CollateralManager. Since the manager is used\n through delegateCall within the CollateralManager contract, the proxy contract pattern does not work properly hence\n the addresses are changed directly\n @return The address of the CollateralManager*"
},
"functionSelector": "dfa441be",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getCollateralManager",
"nameLocation": "11658:20:118",
"overrides": {
"id": 51532,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "11695:8:118"
},
"parameters": {
"id": 51531,
"nodeType": "ParameterList",
"parameters": [],
"src": "11678:2:118"
},
"returnParameters": {
"id": 51535,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51534,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 51541,
"src": "11713:7:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51533,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "11713:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "11712:9:118"
},
"scope": 52140,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 51561,
"nodeType": "FunctionDefinition",
"src": "11912:180:118",
"nodes": [],
"body": {
"id": 51560,
"nodeType": "Block",
"src": "11987:105:118",
"nodes": [],
"statements": [
{
"expression": {
"id": 51554,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"id": 51550,
"name": "_addresses",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51049,
"src": "11997:10:118",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
"typeString": "mapping(bytes32 => address)"
}
},
"id": 51552,
"indexExpression": {
"id": 51551,
"name": "COLLATERAL_MANAGER",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51088,
"src": "12008:18:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "11997:30:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 51553,
"name": "manager",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51544,
"src": "12030:7:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "11997:40:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 51555,
"nodeType": "ExpressionStatement",
"src": "11997:40:118"
},
{
"eventCall": {
"arguments": [
{
"id": 51557,
"name": "manager",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51544,
"src": "12077:7:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 51556,
"name": "CollateralManagerUpdated",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 45351,
"src": "12052:24:118",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
"typeString": "function (address)"
}
},
"id": 51558,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "12052:33:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 51559,
"nodeType": "EmitStatement",
"src": "12047:38:118"
}
]
},
"baseFunctions": [
45557
],
"documentation": {
"id": 51542,
"nodeType": "StructuredDocumentation",
"src": "11782:125:118",
"text": " @dev Updates the address of the CollateralManager\n @param manager The new CollateralManager address*"
},
"functionSelector": "842a05d4",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 51548,
"kind": "modifierInvocation",
"modifierName": {
"id": 51547,
"name": "onlyOwner",
"nameLocations": [
"11977:9:118"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 30579,
"src": "11977:9:118"
},
"nodeType": "ModifierInvocation",
"src": "11977:9:118"
}
],
"name": "setCollateralManager",
"nameLocation": "11921:20:118",
"overrides": {
"id": 51546,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "11968:8:118"
},
"parameters": {
"id": 51545,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51544,
"mutability": "mutable",
"name": "manager",
"nameLocation": "11950:7:118",
"nodeType": "VariableDeclaration",
"scope": 51561,
"src": "11942:15:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51543,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "11942:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "11941:17:118"
},
"returnParameters": {
"id": 51549,
"nodeType": "ParameterList",
"parameters": [],
"src": "11987:0:118"
},
"scope": 52140,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 51573,
"nodeType": "FunctionDefinition",
"src": "12279:111:118",
"nodes": [],
"body": {
"id": 51572,
"nodeType": "Block",
"src": "12344:46:118",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 51569,
"name": "PEER_ADMIN",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51052,
"src": "12372:10:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 51568,
"name": "getAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51175,
"src": "12361:10:118",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
"typeString": "function (bytes32) view returns (address)"
}
},
"id": 51570,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "12361:22:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"functionReturnParameters": 51567,
"id": 51571,
"nodeType": "Return",
"src": "12354:29:118"
}
]
},
"baseFunctions": [
45562
],
"documentation": {
"id": 51562,
"nodeType": "StructuredDocumentation",
"src": "12098:176:118",
"text": " @dev The functions below are getters/setters of addresses that are outside the context\n of the protocol hence the upgradable proxy pattern is not used*"
},
"functionSelector": "146b9ae3",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getPeerAdmin",
"nameLocation": "12288:12:118",
"overrides": {
"id": 51564,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "12317:8:118"
},
"parameters": {
"id": 51563,
"nodeType": "ParameterList",
"parameters": [],
"src": "12300:2:118"
},
"returnParameters": {
"id": 51567,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51566,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 51573,
"src": "12335:7:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51565,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "12335:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "12334:9:118"
},
"scope": 52140,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 51592,
"nodeType": "FunctionDefinition",
"src": "12396:150:118",
"nodes": [],
"body": {
"id": 51591,
"nodeType": "Block",
"src": "12461:85:118",
"nodes": [],
"statements": [
{
"expression": {
"id": 51585,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"id": 51581,
"name": "_addresses",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51049,
"src": "12471:10:118",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
"typeString": "mapping(bytes32 => address)"
}
},
"id": 51583,
"indexExpression": {
"id": 51582,
"name": "PEER_ADMIN",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51052,
"src": "12482:10:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "12471:22:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 51584,
"name": "admin",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51575,
"src": "12496:5:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "12471:30:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 51586,
"nodeType": "ExpressionStatement",
"src": "12471:30:118"
},
{
"eventCall": {
"arguments": [
{
"id": 51588,
"name": "admin",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51575,
"src": "12533:5:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 51587,
"name": "PeerAdminUpdated",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 45355,
"src": "12516:16:118",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
"typeString": "function (address)"
}
},
"id": 51589,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "12516:23:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 51590,
"nodeType": "EmitStatement",
"src": "12511:28:118"
}
]
},
"baseFunctions": [
45567
],
"functionSelector": "98875827",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 51579,
"kind": "modifierInvocation",
"modifierName": {
"id": 51578,
"name": "onlyOwner",
"nameLocations": [
"12451:9:118"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 30579,
"src": "12451:9:118"
},
"nodeType": "ModifierInvocation",
"src": "12451:9:118"
}
],
"name": "setPeerAdmin",
"nameLocation": "12405:12:118",
"overrides": {
"id": 51577,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "12442:8:118"
},
"parameters": {
"id": 51576,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51575,
"mutability": "mutable",
"name": "admin",
"nameLocation": "12426:5:118",
"nodeType": "VariableDeclaration",
"scope": 51592,
"src": "12418:13:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51574,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "12418:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "12417:15:118"
},
"returnParameters": {
"id": 51580,
"nodeType": "ParameterList",
"parameters": [],
"src": "12461:0:118"
},
"scope": 52140,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 51604,
"nodeType": "FunctionDefinition",
"src": "12733:111:118",
"nodes": [],
"body": {
"id": 51603,
"nodeType": "Block",
"src": "12798:46:118",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 51600,
"name": "POOL_ADMIN",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51055,
"src": "12826:10:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 51599,
"name": "getAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51175,
"src": "12815:10:118",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
"typeString": "function (bytes32) view returns (address)"
}
},
"id": 51601,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "12815:22:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"functionReturnParameters": 51598,
"id": 51602,
"nodeType": "Return",
"src": "12808:29:118"
}
]
},
"baseFunctions": [
45572
],
"documentation": {
"id": 51593,
"nodeType": "StructuredDocumentation",
"src": "12552:176:118",
"text": " @dev The functions below are getters/setters of addresses that are outside the context\n of the protocol hence the upgradable proxy pattern is not used*"
},
"functionSelector": "aecda378",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getPoolAdmin",
"nameLocation": "12742:12:118",
"overrides": {
"id": 51595,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "12771:8:118"
},
"parameters": {
"id": 51594,
"nodeType": "ParameterList",
"parameters": [],
"src": "12754:2:118"
},
"returnParameters": {
"id": 51598,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51597,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 51604,
"src": "12789:7:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51596,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "12789:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "12788:9:118"
},
"scope": 52140,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 51623,
"nodeType": "FunctionDefinition",
"src": "12850:150:118",
"nodes": [],
"body": {
"id": 51622,
"nodeType": "Block",
"src": "12915:85:118",
"nodes": [],
"statements": [
{
"expression": {
"id": 51616,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"id": 51612,
"name": "_addresses",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51049,
"src": "12925:10:118",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
"typeString": "mapping(bytes32 => address)"
}
},
"id": 51614,
"indexExpression": {
"id": 51613,
"name": "POOL_ADMIN",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51055,
"src": "12936:10:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "12925:22:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 51615,
"name": "admin",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51606,
"src": "12950:5:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "12925:30:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 51617,
"nodeType": "ExpressionStatement",
"src": "12925:30:118"
},
{
"eventCall": {
"arguments": [
{
"id": 51619,
"name": "admin",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51606,
"src": "12987:5:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 51618,
"name": "PoolAdminUpdated",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 45359,
"src": "12970:16:118",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
"typeString": "function (address)"
}
},
"id": 51620,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "12970:23:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 51621,
"nodeType": "EmitStatement",
"src": "12965:28:118"
}
]
},
"baseFunctions": [
45577
],
"functionSelector": "283d62ad",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 51610,
"kind": "modifierInvocation",
"modifierName": {
"id": 51609,
"name": "onlyOwner",
"nameLocations": [
"12905:9:118"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 30579,
"src": "12905:9:118"
},
"nodeType": "ModifierInvocation",
"src": "12905:9:118"
}
],
"name": "setPoolAdmin",
"nameLocation": "12859:12:118",
"overrides": {
"id": 51608,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "12896:8:118"
},
"parameters": {
"id": 51607,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51606,
"mutability": "mutable",
"name": "admin",
"nameLocation": "12880:5:118",
"nodeType": "VariableDeclaration",
"scope": 51623,
"src": "12872:13:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51605,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "12872:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "12871:15:118"
},
"returnParameters": {
"id": 51611,
"nodeType": "ParameterList",
"parameters": [],
"src": "12915:0:118"
},
"scope": 52140,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 51634,
"nodeType": "FunctionDefinition",
"src": "13006:121:118",
"nodes": [],
"body": {
"id": 51633,
"nodeType": "Block",
"src": "13076:51:118",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 51630,
"name": "EMERGENCY_ADMIN",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51058,
"src": "13104:15:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 51629,
"name": "getAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51175,
"src": "13093:10:118",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
"typeString": "function (bytes32) view returns (address)"
}
},
"id": 51631,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "13093:27:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"functionReturnParameters": 51628,
"id": 51632,
"nodeType": "Return",
"src": "13086:34:118"
}
]
},
"baseFunctions": [
45582
],
"functionSelector": "ddcaa9ea",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getEmergencyAdmin",
"nameLocation": "13015:17:118",
"overrides": {
"id": 51625,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "13049:8:118"
},
"parameters": {
"id": 51624,
"nodeType": "ParameterList",
"parameters": [],
"src": "13032:2:118"
},
"returnParameters": {
"id": 51628,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51627,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 51634,
"src": "13067:7:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51626,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "13067:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "13066:9:118"
},
"scope": 52140,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 51653,
"nodeType": "FunctionDefinition",
"src": "13133:192:118",
"nodes": [],
"body": {
"id": 51652,
"nodeType": "Block",
"src": "13212:113:118",
"nodes": [],
"statements": [
{
"expression": {
"id": 51646,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"id": 51642,
"name": "_addresses",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51049,
"src": "13222:10:118",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
"typeString": "mapping(bytes32 => address)"
}
},
"id": 51644,
"indexExpression": {
"id": 51643,
"name": "EMERGENCY_ADMIN",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51058,
"src": "13233:15:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "13222:27:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 51645,
"name": "emergencyAdmin",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51636,
"src": "13252:14:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "13222:44:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 51647,
"nodeType": "ExpressionStatement",
"src": "13222:44:118"
},
{
"eventCall": {
"arguments": [
{
"id": 51649,
"name": "emergencyAdmin",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51636,
"src": "13303:14:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 51648,
"name": "EmergencyAdminUpdated",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 45363,
"src": "13281:21:118",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
"typeString": "function (address)"
}
},
"id": 51650,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "13281:37:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 51651,
"nodeType": "EmitStatement",
"src": "13276:42:118"
}
]
},
"baseFunctions": [
45587
],
"functionSelector": "35da3394",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 51640,
"kind": "modifierInvocation",
"modifierName": {
"id": 51639,
"name": "onlyOwner",
"nameLocations": [
"13202:9:118"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 30579,
"src": "13202:9:118"
},
"nodeType": "ModifierInvocation",
"src": "13202:9:118"
}
],
"name": "setEmergencyAdmin",
"nameLocation": "13142:17:118",
"overrides": {
"id": 51638,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "13193:8:118"
},
"parameters": {
"id": 51637,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51636,
"mutability": "mutable",
"name": "emergencyAdmin",
"nameLocation": "13168:14:118",
"nodeType": "VariableDeclaration",
"scope": 51653,
"src": "13160:22:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51635,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "13160:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "13159:24:118"
},
"returnParameters": {
"id": 51641,
"nodeType": "ParameterList",
"parameters": [],
"src": "13212:0:118"
},
"scope": 52140,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 51664,
"nodeType": "FunctionDefinition",
"src": "13331:122:118",
"nodes": [],
"body": {
"id": 51663,
"nodeType": "Block",
"src": "13401:52:118",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 51660,
"name": "NFT_PRICE_ORACLE",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51091,
"src": "13429:16:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 51659,
"name": "getAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51175,
"src": "13418:10:118",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
"typeString": "function (bytes32) view returns (address)"
}
},
"id": 51661,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "13418:28:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"functionReturnParameters": 51658,
"id": 51662,
"nodeType": "Return",
"src": "13411:35:118"
}
]
},
"baseFunctions": [
45592
],
"functionSelector": "673adf43",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getNFTPriceOracle",
"nameLocation": "13340:17:118",
"overrides": {
"id": 51655,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "13374:8:118"
},
"parameters": {
"id": 51654,
"nodeType": "ParameterList",
"parameters": [],
"src": "13357:2:118"
},
"returnParameters": {
"id": 51658,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51657,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 51664,
"src": "13392:7:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51656,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "13392:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "13391:9:118"
},
"scope": 52140,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 51683,
"nodeType": "FunctionDefinition",
"src": "13459:193:118",
"nodes": [],
"body": {
"id": 51682,
"nodeType": "Block",
"src": "13538:114:118",
"nodes": [],
"statements": [
{
"expression": {
"id": 51676,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"id": 51672,
"name": "_addresses",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51049,
"src": "13548:10:118",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
"typeString": "mapping(bytes32 => address)"
}
},
"id": 51674,
"indexExpression": {
"id": 51673,
"name": "NFT_PRICE_ORACLE",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51091,
"src": "13559:16:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "13548:28:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 51675,
"name": "nftPriceOracle",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51666,
"src": "13579:14:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "13548:45:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 51677,
"nodeType": "ExpressionStatement",
"src": "13548:45:118"
},
{
"eventCall": {
"arguments": [
{
"id": 51679,
"name": "nftPriceOracle",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51666,
"src": "13630:14:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 51678,
"name": "NFTPriceOracleUpdated",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 45409,
"src": "13608:21:118",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
"typeString": "function (address)"
}
},
"id": 51680,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "13608:37:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 51681,
"nodeType": "EmitStatement",
"src": "13603:42:118"
}
]
},
"baseFunctions": [
45597
],
"functionSelector": "1e34764c",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 51670,
"kind": "modifierInvocation",
"modifierName": {
"id": 51669,
"name": "onlyOwner",
"nameLocations": [
"13528:9:118"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 30579,
"src": "13528:9:118"
},
"nodeType": "ModifierInvocation",
"src": "13528:9:118"
}
],
"name": "setNFTPriceOracle",
"nameLocation": "13468:17:118",
"overrides": {
"id": 51668,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "13519:8:118"
},
"parameters": {
"id": 51667,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51666,
"mutability": "mutable",
"name": "nftPriceOracle",
"nameLocation": "13494:14:118",
"nodeType": "VariableDeclaration",
"scope": 51683,
"src": "13486:22:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51665,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "13486:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "13485:24:118"
},
"returnParameters": {
"id": 51671,
"nodeType": "ParameterList",
"parameters": [],
"src": "13538:0:118"
},
"scope": 52140,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 51694,
"nodeType": "FunctionDefinition",
"src": "13658:130:118",
"nodes": [],
"body": {
"id": 51693,
"nodeType": "Block",
"src": "13732:56:118",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 51690,
"name": "LENDING_RATE_MANAGER",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51094,
"src": "13760:20:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 51689,
"name": "getAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51175,
"src": "13749:10:118",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
"typeString": "function (bytes32) view returns (address)"
}
},
"id": 51691,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "13749:32:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"functionReturnParameters": 51688,
"id": 51692,
"nodeType": "Return",
"src": "13742:39:118"
}
]
},
"baseFunctions": [
45602
],
"functionSelector": "617e0605",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getLendingRateManager",
"nameLocation": "13667:21:118",
"overrides": {
"id": 51685,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "13705:8:118"
},
"parameters": {
"id": 51684,
"nodeType": "ParameterList",
"parameters": [],
"src": "13688:2:118"
},
"returnParameters": {
"id": 51688,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51687,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 51694,
"src": "13723:7:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51686,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "13723:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "13722:9:118"
},
"scope": 52140,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 51713,
"nodeType": "FunctionDefinition",
"src": "13794:217:118",
"nodes": [],
"body": {
"id": 51712,
"nodeType": "Block",
"src": "13881:130:118",
"nodes": [],
"statements": [
{
"expression": {
"id": 51706,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"id": 51702,
"name": "_addresses",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51049,
"src": "13891:10:118",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
"typeString": "mapping(bytes32 => address)"
}
},
"id": 51704,
"indexExpression": {
"id": 51703,
"name": "LENDING_RATE_MANAGER",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51094,
"src": "13902:20:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "13891:32:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 51705,
"name": "lendingRateManager",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51696,
"src": "13926:18:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "13891:53:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 51707,
"nodeType": "ExpressionStatement",
"src": "13891:53:118"
},
{
"eventCall": {
"arguments": [
{
"id": 51709,
"name": "lendingRateManager",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51696,
"src": "13985:18:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 51708,
"name": "LendingRateManagerUpdated",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 45413,
"src": "13959:25:118",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
"typeString": "function (address)"
}
},
"id": 51710,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "13959:45:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 51711,
"nodeType": "EmitStatement",
"src": "13954:50:118"
}
]
},
"baseFunctions": [
45607
],
"functionSelector": "4d82964c",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 51700,
"kind": "modifierInvocation",
"modifierName": {
"id": 51699,
"name": "onlyOwner",
"nameLocations": [
"13871:9:118"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 30579,
"src": "13871:9:118"
},
"nodeType": "ModifierInvocation",
"src": "13871:9:118"
}
],
"name": "setLendingRateManager",
"nameLocation": "13803:21:118",
"overrides": {
"id": 51698,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "13862:8:118"
},
"parameters": {
"id": 51697,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51696,
"mutability": "mutable",
"name": "lendingRateManager",
"nameLocation": "13833:18:118",
"nodeType": "VariableDeclaration",
"scope": 51713,
"src": "13825:26:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51695,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "13825:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "13824:28:118"
},
"returnParameters": {
"id": 51701,
"nodeType": "ParameterList",
"parameters": [],
"src": "13881:0:118"
},
"scope": 52140,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 51724,
"nodeType": "FunctionDefinition",
"src": "14017:124:118",
"nodes": [],
"body": {
"id": 51723,
"nodeType": "Block",
"src": "14088:53:118",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 51720,
"name": "PRICE_CONSUMER_V3",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51097,
"src": "14116:17:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 51719,
"name": "getAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51175,
"src": "14105:10:118",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
"typeString": "function (bytes32) view returns (address)"
}
},
"id": 51721,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "14105:29:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"functionReturnParameters": 51718,
"id": 51722,
"nodeType": "Return",
"src": "14098:36:118"
}
]
},
"baseFunctions": [
45612
],
"functionSelector": "00926047",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getPriceConsumerV3",
"nameLocation": "14026:18:118",
"overrides": {
"id": 51715,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "14061:8:118"
},
"parameters": {
"id": 51714,
"nodeType": "ParameterList",
"parameters": [],
"src": "14044:2:118"
},
"returnParameters": {
"id": 51718,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51717,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 51724,
"src": "14079:7:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51716,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "14079:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "14078:9:118"
},
"scope": 52140,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 51743,
"nodeType": "FunctionDefinition",
"src": "14147:197:118",
"nodes": [],
"body": {
"id": 51742,
"nodeType": "Block",
"src": "14228:116:118",
"nodes": [],
"statements": [
{
"expression": {
"id": 51736,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"id": 51732,
"name": "_addresses",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51049,
"src": "14238:10:118",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
"typeString": "mapping(bytes32 => address)"
}
},
"id": 51734,
"indexExpression": {
"id": 51733,
"name": "PRICE_CONSUMER_V3",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51097,
"src": "14249:17:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "14238:29:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 51735,
"name": "priceConsumerV3",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51726,
"src": "14270:15:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "14238:47:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 51737,
"nodeType": "ExpressionStatement",
"src": "14238:47:118"
},
{
"eventCall": {
"arguments": [
{
"id": 51739,
"name": "priceConsumerV3",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51726,
"src": "14321:15:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 51738,
"name": "PriceConsumerUpdated",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 45367,
"src": "14300:20:118",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
"typeString": "function (address)"
}
},
"id": 51740,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "14300:37:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 51741,
"nodeType": "EmitStatement",
"src": "14295:42:118"
}
]
},
"baseFunctions": [
45617
],
"functionSelector": "a01246e3",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 51730,
"kind": "modifierInvocation",
"modifierName": {
"id": 51729,
"name": "onlyOwner",
"nameLocations": [
"14218:9:118"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 30579,
"src": "14218:9:118"
},
"nodeType": "ModifierInvocation",
"src": "14218:9:118"
}
],
"name": "setPriceConsumerV3",
"nameLocation": "14156:18:118",
"overrides": {
"id": 51728,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "14209:8:118"
},
"parameters": {
"id": 51727,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51726,
"mutability": "mutable",
"name": "priceConsumerV3",
"nameLocation": "14183:15:118",
"nodeType": "VariableDeclaration",
"scope": 51743,
"src": "14175:23:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51725,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "14175:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "14174:25:118"
},
"returnParameters": {
"id": 51731,
"nodeType": "ParameterList",
"parameters": [],
"src": "14228:0:118"
},
"scope": 52140,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 51754,
"nodeType": "FunctionDefinition",
"src": "14350:113:118",
"nodes": [],
"body": {
"id": 51753,
"nodeType": "Block",
"src": "14416:47:118",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 51750,
"name": "FLUID_TOKEN",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51100,
"src": "14444:11:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 51749,
"name": "getAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51175,
"src": "14433:10:118",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
"typeString": "function (bytes32) view returns (address)"
}
},
"id": 51751,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "14433:23:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"functionReturnParameters": 51748,
"id": 51752,
"nodeType": "Return",
"src": "14426:30:118"
}
]
},
"baseFunctions": [
45622
],
"functionSelector": "1a8b1fbc",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getFluidToken",
"nameLocation": "14359:13:118",
"overrides": {
"id": 51745,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "14389:8:118"
},
"parameters": {
"id": 51744,
"nodeType": "ParameterList",
"parameters": [],
"src": "14372:2:118"
},
"returnParameters": {
"id": 51748,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51747,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 51754,
"src": "14407:7:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51746,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "14407:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "14406:9:118"
},
"scope": 52140,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 51773,
"nodeType": "FunctionDefinition",
"src": "14469:168:118",
"nodes": [],
"body": {
"id": 51772,
"nodeType": "Block",
"src": "14540:97:118",
"nodes": [],
"statements": [
{
"expression": {
"id": 51766,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"id": 51762,
"name": "_addresses",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51049,
"src": "14550:10:118",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
"typeString": "mapping(bytes32 => address)"
}
},
"id": 51764,
"indexExpression": {
"id": 51763,
"name": "FLUID_TOKEN",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51100,
"src": "14561:11:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "14550:23:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 51765,
"name": "fluidToken",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51756,
"src": "14576:10:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "14550:36:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 51767,
"nodeType": "ExpressionStatement",
"src": "14550:36:118"
},
{
"eventCall": {
"arguments": [
{
"id": 51769,
"name": "fluidToken",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51756,
"src": "14619:10:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 51768,
"name": "FluidTokenUpdated",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 45371,
"src": "14601:17:118",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
"typeString": "function (address)"
}
},
"id": 51770,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "14601:29:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 51771,
"nodeType": "EmitStatement",
"src": "14596:34:118"
}
]
},
"baseFunctions": [
45627
],
"functionSelector": "74eb5a62",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 51760,
"kind": "modifierInvocation",
"modifierName": {
"id": 51759,
"name": "onlyOwner",
"nameLocations": [
"14530:9:118"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 30579,
"src": "14530:9:118"
},
"nodeType": "ModifierInvocation",
"src": "14530:9:118"
}
],
"name": "setFluidToken",
"nameLocation": "14478:13:118",
"overrides": {
"id": 51758,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "14521:8:118"
},
"parameters": {
"id": 51757,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51756,
"mutability": "mutable",
"name": "fluidToken",
"nameLocation": "14500:10:118",
"nodeType": "VariableDeclaration",
"scope": 51773,
"src": "14492:18:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51755,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "14492:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "14491:20:118"
},
"returnParameters": {
"id": 51761,
"nodeType": "ParameterList",
"parameters": [],
"src": "14540:0:118"
},
"scope": 52140,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 51784,
"nodeType": "FunctionDefinition",
"src": "14646:142:118",
"nodes": [],
"body": {
"id": 51783,
"nodeType": "Block",
"src": "14726:62:118",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 51780,
"name": "POOL_INCENTIVES_CONTROLLER",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51103,
"src": "14754:26:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 51779,
"name": "getAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51175,
"src": "14743:10:118",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
"typeString": "function (bytes32) view returns (address)"
}
},
"id": 51781,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "14743:38:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"functionReturnParameters": 51778,
"id": 51782,
"nodeType": "Return",
"src": "14736:45:118"
}
]
},
"baseFunctions": [
45632
],
"functionSelector": "19ef9268",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getPoolIncentivesController",
"nameLocation": "14655:27:118",
"overrides": {
"id": 51775,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "14699:8:118"
},
"parameters": {
"id": 51774,
"nodeType": "ParameterList",
"parameters": [],
"src": "14682:2:118"
},
"returnParameters": {
"id": 51778,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51777,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 51784,
"src": "14717:7:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51776,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "14717:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "14716:9:118"
},
"scope": 52140,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 51803,
"nodeType": "FunctionDefinition",
"src": "14794:211:118",
"nodes": [],
"body": {
"id": 51802,
"nodeType": "Block",
"src": "14879:126:118",
"nodes": [],
"statements": [
{
"expression": {
"id": 51796,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"id": 51792,
"name": "_addresses",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51049,
"src": "14889:10:118",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
"typeString": "mapping(bytes32 => address)"
}
},
"id": 51794,
"indexExpression": {
"id": 51793,
"name": "POOL_INCENTIVES_CONTROLLER",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51103,
"src": "14900:26:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "14889:38:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 51795,
"name": "controller",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51786,
"src": "14930:10:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "14889:51:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 51797,
"nodeType": "ExpressionStatement",
"src": "14889:51:118"
},
{
"eventCall": {
"arguments": [
{
"id": 51799,
"name": "controller",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51786,
"src": "14987:10:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 51798,
"name": "PoolIncentivesControllerUpdated",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 45375,
"src": "14955:31:118",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
"typeString": "function (address)"
}
},
"id": 51800,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "14955:43:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 51801,
"nodeType": "EmitStatement",
"src": "14950:48:118"
}
]
},
"baseFunctions": [
45637
],
"functionSelector": "6c6f33a5",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 51790,
"kind": "modifierInvocation",
"modifierName": {
"id": 51789,
"name": "onlyOwner",
"nameLocations": [
"14869:9:118"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 30579,
"src": "14869:9:118"
},
"nodeType": "ModifierInvocation",
"src": "14869:9:118"
}
],
"name": "setPoolIncentivesController",
"nameLocation": "14803:27:118",
"overrides": {
"id": 51788,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "14860:8:118"
},
"parameters": {
"id": 51787,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51786,
"mutability": "mutable",
"name": "controller",
"nameLocation": "14839:10:118",
"nodeType": "VariableDeclaration",
"scope": 51803,
"src": "14831:18:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51785,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "14831:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "14830:20:118"
},
"returnParameters": {
"id": 51791,
"nodeType": "ParameterList",
"parameters": [],
"src": "14879:0:118"
},
"scope": 52140,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 51814,
"nodeType": "FunctionDefinition",
"src": "15011:142:118",
"nodes": [],
"body": {
"id": 51813,
"nodeType": "Block",
"src": "15091:62:118",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 51810,
"name": "PEER_INCENTIVES_CONTROLLER",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51106,
"src": "15119:26:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 51809,
"name": "getAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51175,
"src": "15108:10:118",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
"typeString": "function (bytes32) view returns (address)"
}
},
"id": 51811,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "15108:38:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"functionReturnParameters": 51808,
"id": 51812,
"nodeType": "Return",
"src": "15101:45:118"
}
]
},
"baseFunctions": [
45642
],
"functionSelector": "22e35383",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getPeerIncentivesController",
"nameLocation": "15020:27:118",
"overrides": {
"id": 51805,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "15064:8:118"
},
"parameters": {
"id": 51804,
"nodeType": "ParameterList",
"parameters": [],
"src": "15047:2:118"
},
"returnParameters": {
"id": 51808,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51807,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 51814,
"src": "15082:7:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51806,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "15082:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "15081:9:118"
},
"scope": 52140,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 51833,
"nodeType": "FunctionDefinition",
"src": "15159:211:118",
"nodes": [],
"body": {
"id": 51832,
"nodeType": "Block",
"src": "15244:126:118",
"nodes": [],
"statements": [
{
"expression": {
"id": 51826,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"id": 51822,
"name": "_addresses",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51049,
"src": "15254:10:118",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
"typeString": "mapping(bytes32 => address)"
}
},
"id": 51824,
"indexExpression": {
"id": 51823,
"name": "PEER_INCENTIVES_CONTROLLER",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51106,
"src": "15265:26:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "15254:38:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 51825,
"name": "controller",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51816,
"src": "15295:10:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "15254:51:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 51827,
"nodeType": "ExpressionStatement",
"src": "15254:51:118"
},
{
"eventCall": {
"arguments": [
{
"id": 51829,
"name": "controller",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51816,
"src": "15352:10:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 51828,
"name": "PeerIncentivesControllerUpdated",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 45379,
"src": "15320:31:118",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
"typeString": "function (address)"
}
},
"id": 51830,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "15320:43:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 51831,
"nodeType": "EmitStatement",
"src": "15315:48:118"
}
]
},
"baseFunctions": [
45647
],
"functionSelector": "c13e754b",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 51820,
"kind": "modifierInvocation",
"modifierName": {
"id": 51819,
"name": "onlyOwner",
"nameLocations": [
"15234:9:118"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 30579,
"src": "15234:9:118"
},
"nodeType": "ModifierInvocation",
"src": "15234:9:118"
}
],
"name": "setPeerIncentivesController",
"nameLocation": "15168:27:118",
"overrides": {
"id": 51818,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "15225:8:118"
},
"parameters": {
"id": 51817,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51816,
"mutability": "mutable",
"name": "controller",
"nameLocation": "15204:10:118",
"nodeType": "VariableDeclaration",
"scope": 51833,
"src": "15196:18:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51815,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "15196:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "15195:20:118"
},
"returnParameters": {
"id": 51821,
"nodeType": "ParameterList",
"parameters": [],
"src": "15244:0:118"
},
"scope": 52140,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 51844,
"nodeType": "FunctionDefinition",
"src": "15376:123:118",
"nodes": [],
"body": {
"id": 51843,
"nodeType": "Block",
"src": "15447:52:118",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 51840,
"name": "REFERRAL_MANAGER",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51109,
"src": "15475:16:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 51839,
"name": "getAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51175,
"src": "15464:10:118",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
"typeString": "function (bytes32) view returns (address)"
}
},
"id": 51841,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "15464:28:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"functionReturnParameters": 51838,
"id": 51842,
"nodeType": "Return",
"src": "15457:35:118"
}
]
},
"baseFunctions": [
45652
],
"functionSelector": "de3c6e04",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getReferralManager",
"nameLocation": "15385:18:118",
"overrides": {
"id": 51835,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "15420:8:118"
},
"parameters": {
"id": 51834,
"nodeType": "ParameterList",
"parameters": [],
"src": "15403:2:118"
},
"returnParameters": {
"id": 51838,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51837,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 51844,
"src": "15438:7:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51836,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "15438:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "15437:9:118"
},
"scope": 52140,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 51863,
"nodeType": "FunctionDefinition",
"src": "15505:198:118",
"nodes": [],
"body": {
"id": 51862,
"nodeType": "Block",
"src": "15586:117:118",
"nodes": [],
"statements": [
{
"expression": {
"id": 51856,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"id": 51852,
"name": "_addresses",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51049,
"src": "15596:10:118",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
"typeString": "mapping(bytes32 => address)"
}
},
"id": 51854,
"indexExpression": {
"id": 51853,
"name": "REFERRAL_MANAGER",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51109,
"src": "15607:16:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "15596:28:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 51855,
"name": "referralManager",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51846,
"src": "15627:15:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "15596:46:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 51857,
"nodeType": "ExpressionStatement",
"src": "15596:46:118"
},
{
"eventCall": {
"arguments": [
{
"id": 51859,
"name": "referralManager",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51846,
"src": "15680:15:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 51858,
"name": "ReferralManagerUpdated",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 45383,
"src": "15657:22:118",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
"typeString": "function (address)"
}
},
"id": 51860,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "15657:39:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 51861,
"nodeType": "EmitStatement",
"src": "15652:44:118"
}
]
},
"baseFunctions": [
45657
],
"functionSelector": "c5f3a4c4",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 51850,
"kind": "modifierInvocation",
"modifierName": {
"id": 51849,
"name": "onlyOwner",
"nameLocations": [
"15576:9:118"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 30579,
"src": "15576:9:118"
},
"nodeType": "ModifierInvocation",
"src": "15576:9:118"
}
],
"name": "setReferralManager",
"nameLocation": "15514:18:118",
"overrides": {
"id": 51848,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "15567:8:118"
},
"parameters": {
"id": 51847,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51846,
"mutability": "mutable",
"name": "referralManager",
"nameLocation": "15541:15:118",
"nodeType": "VariableDeclaration",
"scope": 51863,
"src": "15533:23:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51845,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "15533:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "15532:25:118"
},
"returnParameters": {
"id": 51851,
"nodeType": "ParameterList",
"parameters": [],
"src": "15586:0:118"
},
"scope": 52140,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 51874,
"nodeType": "FunctionDefinition",
"src": "15709:108:118",
"nodes": [],
"body": {
"id": 51873,
"nodeType": "Block",
"src": "15773:44:118",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 51870,
"name": "TREASURY",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51112,
"src": "15801:8:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 51869,
"name": "getAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51175,
"src": "15790:10:118",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
"typeString": "function (bytes32) view returns (address)"
}
},
"id": 51871,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "15790:20:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"functionReturnParameters": 51868,
"id": 51872,
"nodeType": "Return",
"src": "15783:27:118"
}
]
},
"baseFunctions": [
45662
],
"functionSelector": "3b19e84a",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getTreasury",
"nameLocation": "15718:11:118",
"overrides": {
"id": 51865,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "15746:8:118"
},
"parameters": {
"id": 51864,
"nodeType": "ParameterList",
"parameters": [],
"src": "15729:2:118"
},
"returnParameters": {
"id": 51868,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51867,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 51874,
"src": "15764:7:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51866,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "15764:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "15763:9:118"
},
"scope": 52140,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 51893,
"nodeType": "FunctionDefinition",
"src": "15823:155:118",
"nodes": [],
"body": {
"id": 51892,
"nodeType": "Block",
"src": "15890:88:118",
"nodes": [],
"statements": [
{
"expression": {
"id": 51886,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"id": 51882,
"name": "_addresses",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51049,
"src": "15900:10:118",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
"typeString": "mapping(bytes32 => address)"
}
},
"id": 51884,
"indexExpression": {
"id": 51883,
"name": "TREASURY",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51112,
"src": "15911:8:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "15900:20:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 51885,
"name": "treasury",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51876,
"src": "15923:8:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "15900:31:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 51887,
"nodeType": "ExpressionStatement",
"src": "15900:31:118"
},
{
"eventCall": {
"arguments": [
{
"id": 51889,
"name": "treasury",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51876,
"src": "15962:8:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 51888,
"name": "TreasuryUpdated",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 45387,
"src": "15946:15:118",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
"typeString": "function (address)"
}
},
"id": 51890,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "15946:25:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 51891,
"nodeType": "EmitStatement",
"src": "15941:30:118"
}
]
},
"baseFunctions": [
45667
],
"functionSelector": "f0f44260",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 51880,
"kind": "modifierInvocation",
"modifierName": {
"id": 51879,
"name": "onlyOwner",
"nameLocations": [
"15880:9:118"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 30579,
"src": "15880:9:118"
},
"nodeType": "ModifierInvocation",
"src": "15880:9:118"
}
],
"name": "setTreasury",
"nameLocation": "15832:11:118",
"overrides": {
"id": 51878,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "15871:8:118"
},
"parameters": {
"id": 51877,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51876,
"mutability": "mutable",
"name": "treasury",
"nameLocation": "15852:8:118",
"nodeType": "VariableDeclaration",
"scope": 51893,
"src": "15844:16:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51875,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "15844:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "15843:18:118"
},
"returnParameters": {
"id": 51881,
"nodeType": "ParameterList",
"parameters": [],
"src": "15890:0:118"
},
"scope": 52140,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 51904,
"nodeType": "FunctionDefinition",
"src": "15984:129:118",
"nodes": [],
"body": {
"id": 51903,
"nodeType": "Block",
"src": "16058:55:118",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 51900,
"name": "DELEGATION_REGISTRY",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51127,
"src": "16086:19:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 51899,
"name": "getAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51175,
"src": "16075:10:118",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
"typeString": "function (bytes32) view returns (address)"
}
},
"id": 51901,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "16075:31:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"functionReturnParameters": 51898,
"id": 51902,
"nodeType": "Return",
"src": "16068:38:118"
}
]
},
"baseFunctions": [
45672
],
"functionSelector": "57d600a1",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getDelegationRegistry",
"nameLocation": "15993:21:118",
"overrides": {
"id": 51895,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "16031:8:118"
},
"parameters": {
"id": 51894,
"nodeType": "ParameterList",
"parameters": [],
"src": "16014:2:118"
},
"returnParameters": {
"id": 51898,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51897,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 51904,
"src": "16049:7:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51896,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "16049:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "16048:9:118"
},
"scope": 52140,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 51923,
"nodeType": "FunctionDefinition",
"src": "16119:216:118",
"nodes": [],
"body": {
"id": 51922,
"nodeType": "Block",
"src": "16206:129:118",
"nodes": [],
"statements": [
{
"expression": {
"id": 51916,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"id": 51912,
"name": "_addresses",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51049,
"src": "16216:10:118",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
"typeString": "mapping(bytes32 => address)"
}
},
"id": 51914,
"indexExpression": {
"id": 51913,
"name": "DELEGATION_REGISTRY",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51127,
"src": "16227:19:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "16216:31:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 51915,
"name": "delegationRegistry",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51906,
"src": "16250:18:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "16216:52:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 51917,
"nodeType": "ExpressionStatement",
"src": "16216:52:118"
},
{
"eventCall": {
"arguments": [
{
"id": 51919,
"name": "delegationRegistry",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51906,
"src": "16309:18:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 51918,
"name": "DelegationRegistryUpdated",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 45391,
"src": "16283:25:118",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
"typeString": "function (address)"
}
},
"id": 51920,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "16283:45:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 51921,
"nodeType": "EmitStatement",
"src": "16278:50:118"
}
]
},
"baseFunctions": [
45677
],
"functionSelector": "73aa9e94",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 51910,
"kind": "modifierInvocation",
"modifierName": {
"id": 51909,
"name": "onlyOwner",
"nameLocations": [
"16196:9:118"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 30579,
"src": "16196:9:118"
},
"nodeType": "ModifierInvocation",
"src": "16196:9:118"
}
],
"name": "setDelegationRegistry",
"nameLocation": "16128:21:118",
"overrides": {
"id": 51908,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "16187:8:118"
},
"parameters": {
"id": 51907,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51906,
"mutability": "mutable",
"name": "delegationRegistry",
"nameLocation": "16158:18:118",
"nodeType": "VariableDeclaration",
"scope": 51923,
"src": "16150:26:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51905,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "16150:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "16149:28:118"
},
"returnParameters": {
"id": 51911,
"nodeType": "ParameterList",
"parameters": [],
"src": "16206:0:118"
},
"scope": 52140,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 51934,
"nodeType": "FunctionDefinition",
"src": "16341:114:118",
"nodes": [],
"body": {
"id": 51933,
"nodeType": "Block",
"src": "16407:48:118",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 51930,
"name": "F_TOKEN_IMPL",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51115,
"src": "16435:12:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 51929,
"name": "getAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51175,
"src": "16424:10:118",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
"typeString": "function (bytes32) view returns (address)"
}
},
"id": 51931,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "16424:24:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"functionReturnParameters": 51928,
"id": 51932,
"nodeType": "Return",
"src": "16417:31:118"
}
]
},
"baseFunctions": [
45682
],
"functionSelector": "9fd192b8",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getFTokenImpl",
"nameLocation": "16350:13:118",
"overrides": {
"id": 51925,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "16380:8:118"
},
"parameters": {
"id": 51924,
"nodeType": "ParameterList",
"parameters": [],
"src": "16363:2:118"
},
"returnParameters": {
"id": 51928,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51927,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 51934,
"src": "16398:7:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51926,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "16398:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "16397:9:118"
},
"scope": 52140,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 51953,
"nodeType": "FunctionDefinition",
"src": "16461:169:118",
"nodes": [],
"body": {
"id": 51952,
"nodeType": "Block",
"src": "16532:98:118",
"nodes": [],
"statements": [
{
"expression": {
"id": 51946,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"id": 51942,
"name": "_addresses",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51049,
"src": "16542:10:118",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
"typeString": "mapping(bytes32 => address)"
}
},
"id": 51944,
"indexExpression": {
"id": 51943,
"name": "F_TOKEN_IMPL",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51115,
"src": "16553:12:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "16542:24:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 51945,
"name": "fTokenImpl",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51936,
"src": "16569:10:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "16542:37:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 51947,
"nodeType": "ExpressionStatement",
"src": "16542:37:118"
},
{
"eventCall": {
"arguments": [
{
"id": 51949,
"name": "fTokenImpl",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51936,
"src": "16612:10:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 51948,
"name": "FTokenImplUpdated",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 45401,
"src": "16594:17:118",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
"typeString": "function (address)"
}
},
"id": 51950,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "16594:29:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 51951,
"nodeType": "EmitStatement",
"src": "16589:34:118"
}
]
},
"baseFunctions": [
45687
],
"functionSelector": "f66e398f",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 51940,
"kind": "modifierInvocation",
"modifierName": {
"id": 51939,
"name": "onlyOwner",
"nameLocations": [
"16522:9:118"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 30579,
"src": "16522:9:118"
},
"nodeType": "ModifierInvocation",
"src": "16522:9:118"
}
],
"name": "setFTokenImpl",
"nameLocation": "16470:13:118",
"overrides": {
"id": 51938,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "16513:8:118"
},
"parameters": {
"id": 51937,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51936,
"mutability": "mutable",
"name": "fTokenImpl",
"nameLocation": "16492:10:118",
"nodeType": "VariableDeclaration",
"scope": 51953,
"src": "16484:18:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51935,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "16484:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "16483:20:118"
},
"returnParameters": {
"id": 51941,
"nodeType": "ParameterList",
"parameters": [],
"src": "16532:0:118"
},
"scope": 52140,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 51964,
"nodeType": "FunctionDefinition",
"src": "16636:120:118",
"nodes": [],
"body": {
"id": 51963,
"nodeType": "Block",
"src": "16705:51:118",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 51960,
"name": "DEBT_TOKEN_IMPL",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51118,
"src": "16733:15:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 51959,
"name": "getAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51175,
"src": "16722:10:118",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
"typeString": "function (bytes32) view returns (address)"
}
},
"id": 51961,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "16722:27:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"functionReturnParameters": 51958,
"id": 51962,
"nodeType": "Return",
"src": "16715:34:118"
}
]
},
"baseFunctions": [
45692
],
"functionSelector": "47d2c534",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getDebtTokenImpl",
"nameLocation": "16645:16:118",
"overrides": {
"id": 51955,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "16678:8:118"
},
"parameters": {
"id": 51954,
"nodeType": "ParameterList",
"parameters": [],
"src": "16661:2:118"
},
"returnParameters": {
"id": 51958,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51957,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 51964,
"src": "16696:7:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51956,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "16696:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "16695:9:118"
},
"scope": 52140,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 51983,
"nodeType": "FunctionDefinition",
"src": "16762:187:118",
"nodes": [],
"body": {
"id": 51982,
"nodeType": "Block",
"src": "16839:110:118",
"nodes": [],
"statements": [
{
"expression": {
"id": 51976,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"id": 51972,
"name": "_addresses",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51049,
"src": "16849:10:118",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
"typeString": "mapping(bytes32 => address)"
}
},
"id": 51974,
"indexExpression": {
"id": 51973,
"name": "DEBT_TOKEN_IMPL",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51118,
"src": "16860:15:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "16849:27:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 51975,
"name": "debtTokenImpl",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51966,
"src": "16879:13:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "16849:43:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 51977,
"nodeType": "ExpressionStatement",
"src": "16849:43:118"
},
{
"eventCall": {
"arguments": [
{
"id": 51979,
"name": "debtTokenImpl",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51966,
"src": "16928:13:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 51978,
"name": "DebtTokenImplUpdated",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 45405,
"src": "16907:20:118",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
"typeString": "function (address)"
}
},
"id": 51980,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "16907:35:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 51981,
"nodeType": "EmitStatement",
"src": "16902:40:118"
}
]
},
"baseFunctions": [
45697
],
"functionSelector": "135dc147",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 51970,
"kind": "modifierInvocation",
"modifierName": {
"id": 51969,
"name": "onlyOwner",
"nameLocations": [
"16829:9:118"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 30579,
"src": "16829:9:118"
},
"nodeType": "ModifierInvocation",
"src": "16829:9:118"
}
],
"name": "setDebtTokenImpl",
"nameLocation": "16771:16:118",
"overrides": {
"id": 51968,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "16820:8:118"
},
"parameters": {
"id": 51967,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51966,
"mutability": "mutable",
"name": "debtTokenImpl",
"nameLocation": "16796:13:118",
"nodeType": "VariableDeclaration",
"scope": 51983,
"src": "16788:21:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51965,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "16788:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "16787:23:118"
},
"returnParameters": {
"id": 51971,
"nodeType": "ParameterList",
"parameters": [],
"src": "16839:0:118"
},
"scope": 52140,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 51994,
"nodeType": "FunctionDefinition",
"src": "16955:100:118",
"nodes": [],
"body": {
"id": 51993,
"nodeType": "Block",
"src": "17015:40:118",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 51990,
"name": "WETH",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51121,
"src": "17043:4:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 51989,
"name": "getAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51175,
"src": "17032:10:118",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
"typeString": "function (bytes32) view returns (address)"
}
},
"id": 51991,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "17032:16:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"functionReturnParameters": 51988,
"id": 51992,
"nodeType": "Return",
"src": "17025:23:118"
}
]
},
"baseFunctions": [
45702
],
"functionSelector": "cae5f11e",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getWETH",
"nameLocation": "16964:7:118",
"overrides": {
"id": 51985,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "16988:8:118"
},
"parameters": {
"id": 51984,
"nodeType": "ParameterList",
"parameters": [],
"src": "16971:2:118"
},
"returnParameters": {
"id": 51988,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51987,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 51994,
"src": "17006:7:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51986,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "17006:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "17005:9:118"
},
"scope": 52140,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 52013,
"nodeType": "FunctionDefinition",
"src": "17061:131:118",
"nodes": [],
"body": {
"id": 52012,
"nodeType": "Block",
"src": "17120:72:118",
"nodes": [],
"statements": [
{
"expression": {
"id": 52006,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"id": 52002,
"name": "_addresses",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51049,
"src": "17130:10:118",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
"typeString": "mapping(bytes32 => address)"
}
},
"id": 52004,
"indexExpression": {
"id": 52003,
"name": "WETH",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51121,
"src": "17141:4:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "17130:16:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 52005,
"name": "weth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51996,
"src": "17149:4:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "17130:23:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 52007,
"nodeType": "ExpressionStatement",
"src": "17130:23:118"
},
{
"eventCall": {
"arguments": [
{
"id": 52009,
"name": "weth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51996,
"src": "17180:4:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 52008,
"name": "WETHUpdated",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 45417,
"src": "17168:11:118",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
"typeString": "function (address)"
}
},
"id": 52010,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "17168:17:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 52011,
"nodeType": "EmitStatement",
"src": "17163:22:118"
}
]
},
"baseFunctions": [
45707
],
"functionSelector": "5b769f3c",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 52000,
"kind": "modifierInvocation",
"modifierName": {
"id": 51999,
"name": "onlyOwner",
"nameLocations": [
"17110:9:118"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 30579,
"src": "17110:9:118"
},
"nodeType": "ModifierInvocation",
"src": "17110:9:118"
}
],
"name": "setWETH",
"nameLocation": "17070:7:118",
"overrides": {
"id": 51998,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "17101:8:118"
},
"parameters": {
"id": 51997,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51996,
"mutability": "mutable",
"name": "weth",
"nameLocation": "17086:4:118",
"nodeType": "VariableDeclaration",
"scope": 52013,
"src": "17078:12:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51995,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "17078:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "17077:14:118"
},
"returnParameters": {
"id": 52001,
"nodeType": "ParameterList",
"parameters": [],
"src": "17120:0:118"
},
"scope": 52140,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 52024,
"nodeType": "FunctionDefinition",
"src": "17198:115:118",
"nodes": [],
"body": {
"id": 52023,
"nodeType": "Block",
"src": "17265:48:118",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 52020,
"name": "WETH_GATEWAY",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51124,
"src": "17293:12:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 52019,
"name": "getAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51175,
"src": "17282:10:118",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
"typeString": "function (bytes32) view returns (address)"
}
},
"id": 52021,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "17282:24:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"functionReturnParameters": 52018,
"id": 52022,
"nodeType": "Return",
"src": "17275:31:118"
}
]
},
"baseFunctions": [
45712
],
"functionSelector": "77532ed9",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getWETHGateway",
"nameLocation": "17207:14:118",
"overrides": {
"id": 52015,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "17238:8:118"
},
"parameters": {
"id": 52014,
"nodeType": "ParameterList",
"parameters": [],
"src": "17221:2:118"
},
"returnParameters": {
"id": 52018,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 52017,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 52024,
"src": "17256:7:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 52016,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "17256:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "17255:9:118"
},
"scope": 52140,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 52043,
"nodeType": "FunctionDefinition",
"src": "17319:174:118",
"nodes": [],
"body": {
"id": 52042,
"nodeType": "Block",
"src": "17392:101:118",
"nodes": [],
"statements": [
{
"expression": {
"id": 52036,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"id": 52032,
"name": "_addresses",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51049,
"src": "17402:10:118",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
"typeString": "mapping(bytes32 => address)"
}
},
"id": 52034,
"indexExpression": {
"id": 52033,
"name": "WETH_GATEWAY",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51124,
"src": "17413:12:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "17402:24:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 52035,
"name": "wethGateway",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 52026,
"src": "17429:11:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "17402:38:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 52037,
"nodeType": "ExpressionStatement",
"src": "17402:38:118"
},
{
"eventCall": {
"arguments": [
{
"id": 52039,
"name": "wethGateway",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 52026,
"src": "17474:11:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 52038,
"name": "WETHGatewayUpdated",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 45421,
"src": "17455:18:118",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
"typeString": "function (address)"
}
},
"id": 52040,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "17455:31:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 52041,
"nodeType": "EmitStatement",
"src": "17450:36:118"
}
]
},
"baseFunctions": [
45717
],
"functionSelector": "21da5837",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 52030,
"kind": "modifierInvocation",
"modifierName": {
"id": 52029,
"name": "onlyOwner",
"nameLocations": [
"17382:9:118"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 30579,
"src": "17382:9:118"
},
"nodeType": "ModifierInvocation",
"src": "17382:9:118"
}
],
"name": "setWETHGateway",
"nameLocation": "17328:14:118",
"overrides": {
"id": 52028,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "17373:8:118"
},
"parameters": {
"id": 52027,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 52026,
"mutability": "mutable",
"name": "wethGateway",
"nameLocation": "17351:11:118",
"nodeType": "VariableDeclaration",
"scope": 52043,
"src": "17343:19:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 52025,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "17343:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "17342:21:118"
},
"returnParameters": {
"id": 52031,
"nodeType": "ParameterList",
"parameters": [],
"src": "17392:0:118"
},
"scope": 52140,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 52125,
"nodeType": "FunctionDefinition",
"src": "18097:723:118",
"nodes": [],
"body": {
"id": 52124,
"nodeType": "Block",
"src": "18159:661:118",
"nodes": [],
"statements": [
{
"assignments": [
52052
],
"declarations": [
{
"constant": false,
"id": 52052,
"mutability": "mutable",
"name": "proxyAddress",
"nameLocation": "18185:12:118",
"nodeType": "VariableDeclaration",
"scope": 52124,
"src": "18169:28:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
},
"typeName": {
"id": 52051,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "18169:15:118",
"stateMutability": "payable",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"visibility": "internal"
}
],
"id": 52059,
"initialValue": {
"arguments": [
{
"baseExpression": {
"id": 52055,
"name": "_addresses",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51049,
"src": "18208:10:118",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
"typeString": "mapping(bytes32 => address)"
}
},
"id": 52057,
"indexExpression": {
"id": 52056,
"name": "id",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 52046,
"src": "18219:2:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "18208:14:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 52054,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "18200:8:118",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_payable_$",
"typeString": "type(address payable)"
},
"typeName": {
"id": 52053,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "18200:8:118",
"stateMutability": "payable",
"typeDescriptions": {}
}
},
"id": 52058,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "18200:23:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "18169:54:118"
},
{
"condition": {
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 52065,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 52060,
"name": "proxyAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 52052,
"src": "18238:12:118",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"arguments": [
{
"hexValue": "30",
"id": 52063,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "18262:1:118",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
}
],
"id": 52062,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "18254:7:118",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 52061,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "18254:7:118",
"typeDescriptions": {}
}
},
"id": 52064,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "18254:10:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "18238:26:118",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": {
"id": 52122,
"nodeType": "Block",
"src": "18644:170:118",
"statements": [
{
"assignments": [
52111
],
"declarations": [
{
"constant": false,
"id": 52111,
"mutability": "mutable",
"name": "proxy",
"nameLocation": "18718:5:118",
"nodeType": "VariableDeclaration",
"scope": 52122,
"src": "18696:27:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_contract$_FluidUpgradeableProxy_$63013",
"typeString": "contract FluidUpgradeableProxy"
},
"typeName": {
"id": 52110,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 52109,
"name": "FluidUpgradeableProxy",
"nameLocations": [
"18696:21:118"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 63013,
"src": "18696:21:118"
},
"referencedDeclaration": 63013,
"src": "18696:21:118",
"typeDescriptions": {
"typeIdentifier": "t_contract$_FluidUpgradeableProxy_$63013",
"typeString": "contract FluidUpgradeableProxy"
}
},
"visibility": "internal"
}
],
"id": 52115,
"initialValue": {
"arguments": [
{
"id": 52113,
"name": "proxyAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 52052,
"src": "18748:12:118",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
],
"id": 52112,
"name": "FluidUpgradeableProxy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 63013,
"src": "18726:21:118",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_FluidUpgradeableProxy_$63013_$",
"typeString": "type(contract FluidUpgradeableProxy)"
}
},
"id": 52114,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "18726:35:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_contract$_FluidUpgradeableProxy_$63013",
"typeString": "contract FluidUpgradeableProxy"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "18696:65:118"
},
{
"expression": {
"arguments": [
{
"id": 52119,
"name": "newAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 52048,
"src": "18792:10:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"expression": {
"id": 52116,
"name": "proxy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 52111,
"src": "18776:5:118",
"typeDescriptions": {
"typeIdentifier": "t_contract$_FluidUpgradeableProxy_$63013",
"typeString": "contract FluidUpgradeableProxy"
}
},
"id": 52118,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "18782:9:118",
"memberName": "upgradeTo",
"nodeType": "MemberAccess",
"referencedDeclaration": 31326,
"src": "18776:15:118",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
"typeString": "function (address) external"
}
},
"id": 52120,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "18776:27:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 52121,
"nodeType": "ExpressionStatement",
"src": "18776:27:118"
}
]
},
"id": 52123,
"nodeType": "IfStatement",
"src": "18234:580:118",
"trueBody": {
"id": 52108,
"nodeType": "Block",
"src": "18266:372:118",
"statements": [
{
"assignments": [
52067
],
"declarations": [
{
"constant": false,
"id": 52067,
"mutability": "mutable",
"name": "params",
"nameLocation": "18293:6:118",
"nodeType": "VariableDeclaration",
"scope": 52108,
"src": "18280:19:118",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 52066,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "18280:5:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"id": 52076,
"initialValue": {
"arguments": [
{
"hexValue": "696e697469616c697a65286164647265737329",
"id": 52070,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "18326:21:118",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_c4d66de8473e8f74cb05df264ee8262da16b56717ef1f05d73bfdcea3adc85e5",
"typeString": "literal_string \"initialize(address)\""
},
"value": "initialize(address)"
},
{
"arguments": [
{
"id": 52073,
"name": "this",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -28,
"src": "18357:4:118",
"typeDescriptions": {
"typeIdentifier": "t_contract$_AddressProvider_$52140",
"typeString": "contract AddressProvider"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_AddressProvider_$52140",
"typeString": "contract AddressProvider"
}
],
"id": 52072,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "18349:7:118",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 52071,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "18349:7:118",
"typeDescriptions": {}
}
},
"id": 52074,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "18349:13:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_c4d66de8473e8f74cb05df264ee8262da16b56717ef1f05d73bfdcea3adc85e5",
"typeString": "literal_string \"initialize(address)\""
},
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"expression": {
"id": 52068,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "18302:3:118",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 52069,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "18306:19:118",
"memberName": "encodeWithSignature",
"nodeType": "MemberAccess",
"src": "18302:23:118",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (string memory) pure returns (bytes memory)"
}
},
"id": 52075,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "18302:61:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "18280:83:118"
},
{
"assignments": [
52079
],
"declarations": [
{
"constant": false,
"id": 52079,
"mutability": "mutable",
"name": "proxy",
"nameLocation": "18462:5:118",
"nodeType": "VariableDeclaration",
"scope": 52108,
"src": "18440:27:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_contract$_FluidUpgradeableProxy_$63013",
"typeString": "contract FluidUpgradeableProxy"
},
"typeName": {
"id": 52078,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 52077,
"name": "FluidUpgradeableProxy",
"nameLocations": [
"18440:21:118"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 63013,
"src": "18440:21:118"
},
"referencedDeclaration": 63013,
"src": "18440:21:118",
"typeDescriptions": {
"typeIdentifier": "t_contract$_FluidUpgradeableProxy_$63013",
"typeString": "contract FluidUpgradeableProxy"
}
},
"visibility": "internal"
}
],
"id": 52090,
"initialValue": {
"arguments": [
{
"id": 52083,
"name": "newAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 52048,
"src": "18496:10:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"arguments": [
{
"id": 52086,
"name": "this",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -28,
"src": "18516:4:118",
"typeDescriptions": {
"typeIdentifier": "t_contract$_AddressProvider_$52140",
"typeString": "contract AddressProvider"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_AddressProvider_$52140",
"typeString": "contract AddressProvider"
}
],
"id": 52085,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "18508:7:118",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 52084,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "18508:7:118",
"typeDescriptions": {}
}
},
"id": 52087,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "18508:13:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 52088,
"name": "params",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 52067,
"src": "18523:6:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 52082,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "NewExpression",
"src": "18470:25:118",
"typeDescriptions": {
"typeIdentifier": "t_function_creation_payable$_t_address_$_t_address_$_t_bytes_memory_ptr_$returns$_t_contract$_FluidUpgradeableProxy_$63013_$",
"typeString": "function (address,address,bytes memory) payable returns (contract FluidUpgradeableProxy)"
},
"typeName": {
"id": 52081,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 52080,
"name": "FluidUpgradeableProxy",
"nameLocations": [
"18474:21:118"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 63013,
"src": "18474:21:118"
},
"referencedDeclaration": 63013,
"src": "18474:21:118",
"typeDescriptions": {
"typeIdentifier": "t_contract$_FluidUpgradeableProxy_$63013",
"typeString": "contract FluidUpgradeableProxy"
}
}
},
"id": 52089,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "18470:60:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_contract$_FluidUpgradeableProxy_$63013",
"typeString": "contract FluidUpgradeableProxy"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "18440:90:118"
},
{
"expression": {
"id": 52098,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"id": 52091,
"name": "_addresses",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51049,
"src": "18545:10:118",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
"typeString": "mapping(bytes32 => address)"
}
},
"id": 52093,
"indexExpression": {
"id": 52092,
"name": "id",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 52046,
"src": "18556:2:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "18545:14:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"arguments": [
{
"id": 52096,
"name": "proxy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 52079,
"src": "18570:5:118",
"typeDescriptions": {
"typeIdentifier": "t_contract$_FluidUpgradeableProxy_$63013",
"typeString": "contract FluidUpgradeableProxy"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_FluidUpgradeableProxy_$63013",
"typeString": "contract FluidUpgradeableProxy"
}
],
"id": 52095,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "18562:7:118",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 52094,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "18562:7:118",
"typeDescriptions": {}
}
},
"id": 52097,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "18562:14:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "18545:31:118",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 52099,
"nodeType": "ExpressionStatement",
"src": "18545:31:118"
},
{
"eventCall": {
"arguments": [
{
"id": 52101,
"name": "id",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 52046,
"src": "18608:2:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"arguments": [
{
"id": 52104,
"name": "proxy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 52079,
"src": "18620:5:118",
"typeDescriptions": {
"typeIdentifier": "t_contract$_FluidUpgradeableProxy_$63013",
"typeString": "contract FluidUpgradeableProxy"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_FluidUpgradeableProxy_$63013",
"typeString": "contract FluidUpgradeableProxy"
}
],
"id": 52103,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "18612:7:118",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 52102,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "18612:7:118",
"typeDescriptions": {}
}
},
"id": 52105,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "18612:14:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 52100,
"name": "ProxyCreated",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 45397,
"src": "18595:12:118",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$",
"typeString": "function (bytes32,address)"
}
},
"id": 52106,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "18595:32:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 52107,
"nodeType": "EmitStatement",
"src": "18590:37:118"
}
]
}
}
]
},
"documentation": {
"id": 52044,
"nodeType": "StructuredDocumentation",
"src": "17499:593:118",
"text": " @dev Internal function to update the implementation of a specific proxied component of the protocol\n - If there is no proxy registered in the given `id`, it creates the proxy setting `newAdress`\n as implementation and calls the initialize() function on the proxy\n - If there is already a proxy registered, it just updates the implementation to `newAddress` and\n calls the encoded method function via upgradeToAndCall() in the proxy\n @param id The id of the proxy to be updated\n @param newAddress The address of the new implementation*"
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "_updateImpl",
"nameLocation": "18106:11:118",
"parameters": {
"id": 52049,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 52046,
"mutability": "mutable",
"name": "id",
"nameLocation": "18126:2:118",
"nodeType": "VariableDeclaration",
"scope": 52125,
"src": "18118:10:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 52045,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "18118:7:118",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 52048,
"mutability": "mutable",
"name": "newAddress",
"nameLocation": "18138:10:118",
"nodeType": "VariableDeclaration",
"scope": 52125,
"src": "18130:18:118",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 52047,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "18130:7:118",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "18117:32:118"
},
"returnParameters": {
"id": 52050,
"nodeType": "ParameterList",
"parameters": [],
"src": "18159:0:118"
},
"scope": 52140,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 52139,
"nodeType": "FunctionDefinition",
"src": "18826:128:118",
"nodes": [],
"body": {
"id": 52138,
"nodeType": "Block",
"src": "18881:73:118",
"nodes": [],
"statements": [
{
"expression": {
"id": 52132,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 52130,
"name": "_marketId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51045,
"src": "18891:9:118",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 52131,
"name": "marketId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 52127,
"src": "18903:8:118",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"src": "18891:20:118",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 52133,
"nodeType": "ExpressionStatement",
"src": "18891:20:118"
},
{
"eventCall": {
"arguments": [
{
"id": 52135,
"name": "marketId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 52127,
"src": "18938:8:118",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 52134,
"name": "MarketIdSet",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 45303,
"src": "18926:11:118",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$",
"typeString": "function (string memory)"
}
},
"id": 52136,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "18926:21:118",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 52137,
"nodeType": "EmitStatement",
"src": "18921:26:118"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "_setMarketId",
"nameLocation": "18835:12:118",
"parameters": {
"id": 52128,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 52127,
"mutability": "mutable",
"name": "marketId",
"nameLocation": "18862:8:118",
"nodeType": "VariableDeclaration",
"scope": 52139,
"src": "18848:22:118",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 52126,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "18848:6:118",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "18847:24:118"
},
"returnParameters": {
"id": 52129,
"nodeType": "ParameterList",
"parameters": [],
"src": "18881:0:118"
},
"scope": 52140,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
}
],
"abstract": false,
"baseContracts": [
{
"baseName": {
"id": 51040,
"name": "Ownable",
"nameLocations": [
"698:7:118"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 30660,
"src": "698:7:118"
},
"id": 51041,
"nodeType": "InheritanceSpecifier",
"src": "698:7:118"
},
{
"baseName": {
"id": 51042,
"name": "IAddressProvider",
"nameLocations": [
"707:16:118"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 45718,
"src": "707:16:118"
},
"id": 51043,
"nodeType": "InheritanceSpecifier",
"src": "707:16:118"
}
],
"canonicalName": "AddressProvider",
"contractDependencies": [
63013
],
"contractKind": "contract",
"documentation": {
"id": 51039,
"nodeType": "StructuredDocumentation",
"src": "363:306:118",
"text": " @title AddressProvider contract\n @dev Main registry of addresses part of or connected to the protocol, including permissioned roles\n - Acting also as factory of proxies and admin of those, so with right to change its implementations\n - Owned by the FluidNFT Governance\n @author FluidNFT*"
},
"fullyImplemented": true,
"linearizedBaseContracts": [
52140,
45718,
30660,
35271
],
"name": "AddressProvider",
"nameLocation": "679:15:118",
"scope": 52141,
"usedErrors": []
}
],
"license": "AGPL-3.0"
},
"id": 118
}
Last updated