LendingPool
The LendingPool
contract is the main contract for user interaction. It exposes all user-oriented actions and can be invoked by Solidity or web3 libraries.
Methods
initReserve()
function initReserve(ConfigTypes.InitReserveInput input, address fToken, address stableDebtToken, address variableDebtToken)
Initialises a reserve.
input
ConfigTypes.InitReserveInput
The init reserve input parameters
fToken
address
fToken proxy address
stableDebtToken
address
stableDebtToken proxy address
variableDebtToken
address
variableDebtToken proxy address
deposit()
function deposit(uint256 amount, uint256 reserveId, address onBehalfOf, uint16 referralCode)
Deposits assets into the lending pool.
amount
uint256
amount deposited, expressed in wei units
reserveId
uint256
id of the targeted reserve
onBehalfOf
address
address whom will receive the fTokens. Use msg.sender when the fTokens should be sent to the caller.
referralCode
uint256
referral code for our referral program. 0 for no referral.
batchDeposit()
function batchDeposit(uint256[] calldata amounts, uint256[] reserveIds, address[] calldata onBehalfOfs, uint16[] referralCodes)
Batches deposits of assets across lending pools.
amounts
uint256[] calldata
amounts deposited, expressed in wei units
reserveIds
uint256[] calldata
ids of the targeted reserves
onBehalfOfs
address[] calldata
addresses whom will receive the fTokens
referralCodes
uint256[] calldata
referral codes for our referral program
withdraw()
function withdraw(uint256 amount, uint256 reserveId, address to)
Withdraws assets from the lending pool.
amount
uint256
amount withdrawn, expressed in wei units
reserveId
uint256
id of the targeted reserve
to
address
address to receive the underlying asset tokens
batchWithdraw()
function batchWithdraw(uint256[] calldata amounts, uint256[] calldata reserveIds, address[] calldata tos)
Batches withdraws of assets across lending pools.
amounts
uint256[] calldata
amounts withdrawn, expressed in wei units
reserveIds
uint256[] calldata
ids of the targeted reserves
tos
address[] calldata
addresses to receive the underlying asset tokens
borrow()
function borrow(uint256 amount, uint256 tokenId, uint256 tokenValue, uint256 reserveId, uint256 duration, address onBehalfOf, uint16 referralCode)
Creates a borrow position.
amount
uint256
amount borrowed, expressed in wei units
tokenId
uint256
tokenId of the NFT to be deposited
tokenValue
uint256
number of ERC1155 tokens supplied, 0 implies ERC721
reserveId
uint256
id of the targeted reserve
duration
uint256
duration of the loan, 0 implies open-ended
onBehalfOf
address
address to receive the loan
referralCode
uint16
referral codes for our referral program
batchBorrow()
function batchBorrow(uint256[] calldata amounts, uint256[] calldata tokenIds, uint256[] calldata tokenValues, uint256[] calldata reserveIds, uint256 duration, address onBehalfOf, uint16 referralCode)
Batches borrow position execution. Note, only single duration batches are supported.
amounts
uint256[] calldata
amounts borrowed, expressed in wei units
tokenIds
uint256[] calldata
tokenId sof the NFTs to be deposited
tokenValues
uint256[] calldata
numbers of ERC1155 tokens supplied, 0 implies ERC721
reserveIds
uint256[] calldata
ids of the targeted reserves
duration
uint256
duration of the loan, 0 implies open-ended
onBehalfOf
address
address to receive the loan
referralCode
uint16
referral codes for our referral program
repay()
function repay(uint256 borrowId, uint256 amount)
Repays a borrow position.
borrowId
uint256
id of the targeted borrow
amount
uint256
amount to be repaid, expressed in wei
batchRepay()
function batchRepay(uint256[] calldata borrowIds, uint256[] calldata amounts)
Batch repays borrow positions.
borrowIds
uint256[] calldata
ids of the targeted borrows
amounts
uint256[] calldata
amounts to be repaid, expressed in wei
refinance()
function refinance(uint256 borrowId, uint256 amount, uint256 duration)
Refinances a borrow position.
If the refinance amount is less than the current loan amount this is treated as a partial repayment with the difference being requested for transfer from the borrower's wallet.
If the refinance amount is more than the current loan amount then this debt is added to their balance and the additional funds are sent to their wallet.
borrowId
uint256
id of the targeted borrow
amount
uint256
refinanced loan amount, expressed in wei
duration
uint256
duration of the refinanced loan, 0 for open-ended
batchRefinance()
function batchRefinance(uint256[]calldata borrowIds, uint256[]calldata amounts, uint256[]calldata durations)
Batches refinancing of borrow positions.
borrowIds
uint256[] calldata
ids of the targeted borrows
amounts
uint256[] calldata
refinanced loan amounts, expressed in wei
durations
uint256[] calldata
duration of the refinanced loan, 0 for open-ended
auction()
function auction(uint256 borrowId, address onBehalfOf)
Triggers a liquidation auction on a loan in default.
borrowId
uint256
id of the targeted borrow
onBehalfOf
address
address to receive the auction caller bonus
batchAuction()
function batchAuction(uint256[] calldata borrowIds, address[] calldata onBehalfOfs)
Batch triggers liquidation auctions on loans in default.
borrowIds
uint256[] calldata
ids of the targeted borrows
onBehalfOfs
address[] calldata
addresses to receive the auction caller bonuses
bid()
function bid(uint256 borrowId, address onBehalfOf)
Purchases the underlying NFT of a loan under auction.
asset
address
address of the asset used for payment
amount
uint256
amount to be paid, expressed in wei
borrowId
uint256
id of the targeted borrow
onBehalfOf
address
address to receive the underlying NFT
batchBid()
function batchBid(uint256[] calldata borrowIds, address[] calldata onBehalfOfs)
Batch purchases the underlying NFTs of loans under auction.
assets
address[] calldata
addresses of the assets used for payment
amounts
uint256[] calldata
amounts to be paid, expressed in wei
borrowIds
uint256[] calldata
ids of the targeted borrows
onBehalfOfs
address[] calldata
addresses to receive the underlying NFTs
setMaxNumberOfReserves()
function setMaxNumberOfReserves(uint256 val)
Sets the max number of reserves.
val
uint256
max number of reserves
setReserveMaxSupply()
function setReserveMaxSupply(uint256 reserveId, uint256 maxTokenSupply)
Sets the max number of NFTs that can be used as collateral within a reserve.
reserveId
uint256
id of the targeted reserve
maxTokenSupply
uint256
max number of NFTs that can be used as collateral
setReserveInterestRateAddress()
function setReserveInterestRateAddress(uint256 reserveId, address rateAddress)
Sets the interest rate model strategy for a reserve.
reserveId
uint256
id of the targeted reserve
rateAddress
address
address of the interest rate model strategy
setReserveConfiguration()
function setReserveConfiguration(uint256 reserveId, uint256 reserveConfiguration)
Sets the configuration bitmap of a reserve.
reserveId
uint256
id of the targeted reserve
configuration
uint256
new configuration bitmap
setReserveCreatorAddress()
function setReserveCreatorAddress(uint256 reserveId, address creator)
Sets the creator address for a reserve
reserveId
uint256
id of the targeted reserve
creator
address
address for the creator
setReserveCreatorPercentage()
function setReserveCreatorPercentage(uint256 reserveId, uint256 percentage)
Sets the percentage of protocol fees that go to the creator.
reserveId
uint256
id of the targeted reserve
percentage
uint256
percentage in percentage-maths: e.g. 5000 for 50%
setPause()
function setPause(bool val)
Sets the pause state of the lending pool
val
bool
true if paused
setPausedTime()
function setPausedTime(uint256 startTime, uint256 duration)
Sets the pause state of the lending pool for a given start time and duration.
startTime
uint256
pause start time
duration
uint256
pause duration
View Methods
paused()
function paused()
Returns true
if the lending pool is paused.
getPausedTime()
function getPausedTime()
Returns the start and duration of the lending pool pause time.
Return values
startTime
uint256
Paused start time
duration
uint256
Paused duration
getAddressProvider()
function getAddressProvider()
Returns the address provider.
getMaxNumberOfReserves()
function getMaxNumberOfReserves()
Returns the maximum number of reserves
getReserve()
function getReserve(uint256 reserveId)
Returns the state and configuration of the reserve.
Return values
configuration
uint256
Uses a bitmask. bit 16-31: Liq. threshold
bit 32-47: Liq. bonus
bit 48-55: Decimals
bit 56: Reserve is active
bit 57: reserve is frozen
bit 58: borrowing is enabled
bit 59: variable rate borrowing enabled
bit 60-63: reserved
bit 64-79: reserve factor
bit 80-95: grace period
bit 96-111: auction duration
bit 112-127: auction start price multiple *All % are 1e4, ie. percentage plus two decimals
collateral
address
address of NFT permitted as collateral
asset
address
address of asset avaiable to be borrowed
fTokenAddress
address
address of fToken proxy contract
stableDebtTokenAddress
address
address of stableDebtToken proxy contract
variableDebtTokenAddress
address
address of variableDebtToken proxy contract
interestRateAddress
address
address of interest rate strategy model
assetPriceFeed
string
name of Chainlink Oracle price feed
id
uint256
id of the reserve
maxTokenSupply
uint256
max token supply that can be used as collateral
maxTokenId
uint256
max token id that can be used as collateral
minTokenId
uint256
min tokne id that can be used as collateral
liquidityIndex
uint128
liquidity index in ray
variableBorrowIndex
uint128
variable borrow index in ray
currentLiquidityRate
uint128
current supply / liquidity / deposit rate in ray
currentVariableBorrowRate
uint128
current variable borrow rate in ray
lastUpdateTimestamp
uint40
timestamp of when reserve data was last updated
getReserveId()
function getReserveId(address collateral, address asset, uint256 maxTokenId, uint256 minTokenId)
Returns the id
of the associated reserve.
Return values
getReserveConfiguration()
function getReserveConfiguration(uint256 reserveId)
Returns the configuration of a reserve.
Return values
configuration
DataTypes.ReserveConfigurationMap memory
configuration of the reserve
getReserveNormalizedIncome()
function getReserveNormalizedIncome(uint256 reserveId)
Returns the normalised income of a reserve.
getReserveNormalizedVariableDebt()
function getReserveNormalizedVariableDebt(uint256 reserveId)
Returns the normalised variable debt of a reserve.
getReserveUserStableRate()
function getReserveUserStableRate(uint256 reserveId, address user)
Returns a reserve user stable rate.
getReserveFlags()
function getReserveFlags(uint256 reserveId)
Returns the reserve flags.
Return values
activeReserve
bool
true if reserve is active
frozenReserve
bool
true if reserve is frozen
borrowingEnabled
bool
true if borrowing is enabled on the reserve
variableBorrowEnabled
bool
true if variable rate borrowing is enabled
getReservesList()
function getReservesList()
Returns a list of reserve ids
.
getInitializedCollaterals()
function getInitializedCollaterals()
Returns a list of addresses of initialized collaterals
.
getInitializedAssets()
function getInitializedAssets()
Returns a list of addresses of initialized assets
.
getBorrowHealthFactor()
function getborrowHealthFactor(uint256 borrowId)
Returns the collateral price, borrow amount and health factor for a given borrow id.
Return values
collateralPrice
uint256
the current appraised price of the collateral
borrowAmount
uint256
the amount borrowed against the collateral
healthFactor
uint256
the current health factor of the borrow
getAuctionConfiguration()
function getAuctionConfiguration(uint256 reserveId)
Returns the auction liquidation bonus and duration.
Return values
liquidationBonus
uint256
the percentage of the auction going to stakeholders, e.g. 1000 for 10%
duration
uint256
the auction duration in days
finalizeTransfer()
function finalizeTransfer(uint256 reserveId, address from, address to, uint256 amount, uint256 balanceFromBefore, uint256 balanceToBefore)
Validates and finalises an fToken transfer.
Storage
Inherited contract LendingPoolStorage.sol
is used to maintain state, separating this from the Lending Pool contract. This follows specific guidelines for the process of adding new variables; to ensure compatibility and upgradability.
Error Codes
In order to reduce gas usage and code size, FluidNFT contracts return numbered errors. If you are making calls to the protocol and receive numb
ABI
LendingPool ABI
{
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "initiator",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "reserveId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "duration",
"type": "uint256"
},
{
"indexed": false,
"internalType": "address",
"name": "collateral",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "onBehalfOf",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "borrowRate",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "borrowId",
"type": "uint256"
},
{
"indexed": true,
"internalType": "uint16",
"name": "referral",
"type": "uint16"
}
],
"name": "Borrow",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "initiator",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "collateral",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "reserveId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "onBehalfOf",
"type": "address"
},
{
"indexed": true,
"internalType": "uint16",
"name": "referalCode",
"type": "uint16"
}
],
"name": "Deposit",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint8",
"name": "version",
"type": "uint8"
}
],
"name": "Initialized",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "reserveId",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "collateral",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "borrower",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "borrowId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "address",
"name": "paymentAsset",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "paymentAmount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "address",
"name": "onBehalfOf",
"type": "address"
}
],
"name": "Liquidate",
"type": "event"
},
{
"anonymous": false,
"inputs": [],
"name": "Paused",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "startTime",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "durationTime",
"type": "uint256"
}
],
"name": "PausedTimeUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "initiator",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "borrower",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "reserveId",
"type": "uint256"
},
{
"indexed": true,
"internalType": "uint256",
"name": "borrowId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "address",
"name": "collateral",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amountAdded",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amountTaken",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "defaultFee",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "duration",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
}
],
"name": "Refinanced",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "initiator",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "reserveId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "collateral",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "borrower",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "borrowId",
"type": "uint256"
}
],
"name": "Repay",
"type": "event"
},
{
"anonymous": false,
"inputs": [],
"name": "Unpaused",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "initiator",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "collateral",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "reserveId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
}
],
"name": "Withdraw",
"type": "event"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "borrowId",
"type": "uint256"
},
{
"internalType": "address",
"name": "onBehalfOf",
"type": "address"
}
],
"name": "auction",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256[]",
"name": "borrowIds",
"type": "uint256[]"
},
{
"internalType": "address[]",
"name": "onBehalfOfs",
"type": "address[]"
}
],
"name": "batchAuction",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "assets",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "borrowIds",
"type": "uint256[]"
},
{
"internalType": "address[]",
"name": "onBehalfOfs",
"type": "address[]"
}
],
"name": "batchBid",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "tokenIds",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "tokenValues",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "reserveIds",
"type": "uint256[]"
},
{
"internalType": "uint256",
"name": "duration",
"type": "uint256"
},
{
"internalType": "address",
"name": "onBehalfOf",
"type": "address"
},
{
"internalType": "uint16",
"name": "referralCode",
"type": "uint16"
}
],
"name": "batchBorrow",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "reserveIds",
"type": "uint256[]"
},
{
"internalType": "address[]",
"name": "onBehalfOfs",
"type": "address[]"
},
{
"internalType": "uint16[]",
"name": "referralCodes",
"type": "uint16[]"
}
],
"name": "batchDeposit",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256[]",
"name": "borrowIds",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "durations",
"type": "uint256[]"
}
],
"name": "batchRefinance",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256[]",
"name": "borrowIds",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"name": "batchRepay",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "reserveIds",
"type": "uint256[]"
},
{
"internalType": "address[]",
"name": "tos",
"type": "address[]"
}
],
"name": "batchWithdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "borrowId",
"type": "uint256"
},
{
"internalType": "address",
"name": "onBehalfOf",
"type": "address"
}
],
"name": "bid",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "tokenValue",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "duration",
"type": "uint256"
},
{
"internalType": "address",
"name": "onBehalfOf",
"type": "address"
},
{
"internalType": "uint16",
"name": "referralCode",
"type": "uint16"
}
],
"name": "borrow",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveId",
"type": "uint256"
},
{
"internalType": "address",
"name": "onBehalfOf",
"type": "address"
},
{
"internalType": "uint16",
"name": "referralCode",
"type": "uint16"
}
],
"name": "deposit",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "executionDelegate",
"outputs": [
{
"internalType": "contract IExecutionDelegate",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "reserveId",
"type": "uint256"
},
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "balanceFromBefore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "balanceToBefore",
"type": "uint256"
}
],
"name": "finalizeTransfer",
"outputs": [],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getAddressProvider",
"outputs": [
{
"internalType": "contract IAddressProvider",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "reserveId",
"type": "uint256"
}
],
"name": "getAuctionConfiguration",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "borrowId",
"type": "uint256"
}
],
"name": "getBorrowHealthFactor",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getInitializedAssets",
"outputs": [
{
"internalType": "address[]",
"name": "",
"type": "address[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getInitializedCollaterals",
"outputs": [
{
"internalType": "address[]",
"name": "",
"type": "address[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getMaxNumberOfReserves",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getPausedTime",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "reserveId",
"type": "uint256"
}
],
"name": "getReserve",
"outputs": [
{
"components": [
{
"components": [
{
"internalType": "uint256",
"name": "data",
"type": "uint256"
}
],
"internalType": "struct DataTypes.ReserveConfigurationMap",
"name": "configuration",
"type": "tuple"
},
{
"internalType": "address",
"name": "collateral",
"type": "address"
},
{
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"internalType": "address",
"name": "fTokenAddress",
"type": "address"
},
{
"internalType": "address",
"name": "stableDebtTokenAddress",
"type": "address"
},
{
"internalType": "address",
"name": "variableDebtTokenAddress",
"type": "address"
},
{
"internalType": "address",
"name": "interestRateAddress",
"type": "address"
},
{
"internalType": "string",
"name": "assetPriceFeed",
"type": "string"
},
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "maxTokenSupply",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "maxTokenId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "minTokenId",
"type": "uint256"
},
{
"internalType": "uint128",
"name": "liquidityIndex",
"type": "uint128"
},
{
"internalType": "uint128",
"name": "variableBorrowIndex",
"type": "uint128"
},
{
"internalType": "uint128",
"name": "currentLiquidityRate",
"type": "uint128"
},
{
"internalType": "uint128",
"name": "currentVariableBorrowRate",
"type": "uint128"
},
{
"internalType": "uint40",
"name": "lastUpdateTimestamp",
"type": "uint40"
}
],
"internalType": "struct DataTypes.Reserve",
"name": "",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "reserveId",
"type": "uint256"
}
],
"name": "getReserveConfiguration",
"outputs": [
{
"components": [
{
"internalType": "uint256",
"name": "data",
"type": "uint256"
}
],
"internalType": "struct DataTypes.ReserveConfigurationMap",
"name": "",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "reserveId",
"type": "uint256"
}
],
"name": "getReserveFlags",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
},
{
"internalType": "bool",
"name": "",
"type": "bool"
},
{
"internalType": "bool",
"name": "",
"type": "bool"
},
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "collateral",
"type": "address"
},
{
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"internalType": "uint256",
"name": "maxTokenId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "minTokenId",
"type": "uint256"
}
],
"name": "getReserveId",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "reserveId",
"type": "uint256"
}
],
"name": "getReserveNormalizedIncome",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "reserveId",
"type": "uint256"
}
],
"name": "getReserveNormalizedVariableDebt",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "reserveId",
"type": "uint256"
},
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "getReserveUserStableRate",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getReservesList",
"outputs": [
{
"internalType": "uint256[]",
"name": "reservesList",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "address",
"name": "underlyingCollateral",
"type": "address"
},
{
"internalType": "string",
"name": "underlyingCollateralName",
"type": "string"
},
{
"internalType": "string",
"name": "underlyingCollateralSymbol",
"type": "string"
},
{
"internalType": "uint256",
"name": "underlyingMaxTokenId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "underlyingMinTokenId",
"type": "uint256"
},
{
"internalType": "address",
"name": "underlyingAsset",
"type": "address"
},
{
"internalType": "string",
"name": "underlyingAssetName",
"type": "string"
},
{
"internalType": "string",
"name": "underlyingAssetSymbol",
"type": "string"
},
{
"internalType": "uint8",
"name": "underlyingAssetDecimals",
"type": "uint8"
},
{
"internalType": "address",
"name": "fTokenImpl",
"type": "address"
},
{
"internalType": "string",
"name": "fTokenName",
"type": "string"
},
{
"internalType": "string",
"name": "fTokenSymbol",
"type": "string"
},
{
"internalType": "address",
"name": "stableDebtTokenImpl",
"type": "address"
},
{
"internalType": "string",
"name": "stableDebtTokenName",
"type": "string"
},
{
"internalType": "string",
"name": "stableDebtTokenSymbol",
"type": "string"
},
{
"internalType": "address",
"name": "variableDebtTokenImpl",
"type": "address"
},
{
"internalType": "string",
"name": "variableDebtTokenName",
"type": "string"
},
{
"internalType": "string",
"name": "variableDebtTokenSymbol",
"type": "string"
},
{
"internalType": "address",
"name": "interestRateStrategy",
"type": "address"
},
{
"internalType": "uint256",
"name": "baseLTV",
"type": "uint256"
},
{
"internalType": "address",
"name": "treasury",
"type": "address"
},
{
"internalType": "address",
"name": "creator",
"type": "address"
},
{
"internalType": "uint256",
"name": "creatorPercentage",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "auctionCallerPercentage",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "auctionCreatorPercentage",
"type": "uint256"
},
{
"internalType": "string",
"name": "assetPriceFeed",
"type": "string"
}
],
"internalType": "struct ConfigTypes.InitReserveInput",
"name": "input",
"type": "tuple"
},
{
"internalType": "address",
"name": "fToken",
"type": "address"
},
{
"internalType": "address",
"name": "stableDebtToken",
"type": "address"
},
{
"internalType": "address",
"name": "variableDebtToken",
"type": "address"
}
],
"name": "initReserve",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "addressProvider",
"type": "address"
}
],
"name": "initialize",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "uint256[]",
"name": "",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "",
"type": "uint256[]"
},
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"name": "onERC1155BatchReceived",
"outputs": [
{
"internalType": "bytes4",
"name": "",
"type": "bytes4"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"name": "onERC1155Received",
"outputs": [
{
"internalType": "bytes4",
"name": "",
"type": "bytes4"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"name": "onERC721Received",
"outputs": [
{
"internalType": "bytes4",
"name": "",
"type": "bytes4"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "paused",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "borrowId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "duration",
"type": "uint256"
}
],
"name": "refinance",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "borrowId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "repay",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "val",
"type": "uint256"
}
],
"name": "setMaxNumberOfReserves",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bool",
"name": "val",
"type": "bool"
}
],
"name": "setPause",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "startTime",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "durationTime",
"type": "uint256"
}
],
"name": "setPausedTime",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "reserveId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "configuration",
"type": "uint256"
}
],
"name": "setReserveConfiguration",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "reserveId",
"type": "uint256"
},
{
"internalType": "address",
"name": "creator",
"type": "address"
}
],
"name": "setReserveCreatorAddress",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "reserveId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "percentage",
"type": "uint256"
}
],
"name": "setReserveCreatorPercentage",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "reserveId",
"type": "uint256"
},
{
"internalType": "address",
"name": "rateAddress",
"type": "address"
}
],
"name": "setReserveInterestRateAddress",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "reserveId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "maxTokenSupply",
"type": "uint256"
}
],
"name": "setReserveMaxSupply",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "_interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveId",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
}
],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": {
"object": "0x60806040526072805464ffffffffff19166201518017905534801561002357600080fd5b50613bcc806100336000396000f3fe608060405234801561001057600080fd5b506004361061028a5760003560e01c80638fc421881161015c578063c28cadf7116100ce578063dcc5cded11610087578063dcc5cded14610688578063e49c8a521461069b578063eadff055146106ae578063f23a6e61146106f4578063f8c6893414610713578063ff7039c71461072457600080fd5b8063c28cadf7146105f9578063c46a90f51461060c578063c4d66de81461063a578063d1946dbc1461064d578063d6ee0f7314610662578063d8aed1451461067557600080fd5b80639e97a156116101205780639e97a15614610565578063a58497a514610578578063a7ff3b23146105ad578063bbce5cf3146105c0578063bc197c81146105d3578063bedb86fb146105e657600080fd5b80638fc42188146104765780639034c18c14610492578063986c9b20146104a5578063993ff816146104d05780639c74daf81461055257600080fd5b806331e884bb116102005780635c975abb116101b95780635c975abb146103f8578063621759de1461040a5780636c130dc71461041d578063746c35a21461043057806377778db31461044357806389a7245d1461046357600080fd5b806331e884bb1461038f57806334e69b62146103a45780633b4ecdb2146103b757806345a64925146103bf5780634b33a967146103d257806352120e23146103e557600080fd5b8063150b7a0211610252578063150b7a021461030457806319322775146103305780631de8a7c2146103435780632684dd09146103565780632e4e8eb4146103695780632f923ff71461037c57600080fd5b806301ffc9a71461028f578063044df1f2146102b757806308ac08b9146102cc5780630ad58d2f146102de578063118cfad3146102f1575b600080fd5b6102a261029d366004612a79565b610737565b60405190151581526020015b60405180910390f35b6102ca6102c5366004612aa3565b610789565b005b606e545b6040519081526020016102ae565b6102ca6102ec366004612af4565b61088b565b6102ca6102ff366004612b2d565b610936565b610317610312366004612c00565b610a28565b6040516001600160e01b031990911681526020016102ae565b6102ca61033e366004612b2d565b610a39565b6102ca610351366004612c7e565b610b21565b6102ca610364366004612d12565b610c3d565b6102d0610377366004612b2d565b610de4565b6102ca61038a366004612dd6565b610e03565b610397610ef9565b6040516102ae9190612df8565b6102ca6103b2366004612e45565b610f5b565b61039761104e565b6102d06103cd366004612eb1565b6110ae565b6102ca6103e0366004612d12565b61115e565b6102d06103f3366004612f2c565b6112c1565b607254600160281b900460ff166102a2565b6102ca610418366004612f72565b61130c565b6102ca61042b36600461300c565b611479565b6102ca61043e366004613068565b6114f2565b610456610451366004613068565b6115a5565b6040516102ae91906130c7565b6102ca610471366004612dd6565b6117c6565b6073546074545b604080519283526020830191909152016102ae565b6102d06104a0366004613068565b611886565b6065546104b8906001600160a01b031681565b6040516001600160a01b0390911681526020016102ae565b6105286104de366004613068565b600090815260676020526040902054670100000000000000811615159167020000000000000082161515916704000000000000008116151591670800000000000000909116151590565b604080519415158552921515602085015290151591830191909152151560608201526080016102ae565b6102ca61056036600461323a565b61189d565b6102ca610573366004612f72565b6119e6565b61047d610586366004613068565b6000908152606760209081526040909120549081901c61ffff9081169260609290921c1690565b6102ca6105bb36600461329f565b611afa565b6102ca6105ce366004612b2d565b611bd9565b6103176105e13660046132de565b611cf3565b6102ca6105f43660046133ca565b611d26565b6102ca6106073660046133ec565b611e82565b61061f61061a366004613068565b612046565b604080519384526020840192909252908201526060016102ae565b6102ca6106483660046134dc565b6120e8565b61065561220b565b6040516102ae91906134f9565b6102ca610670366004612dd6565b6122a8565b6102ca610683366004612dd6565b61236b565b6102d0610696366004613068565b612420565b6102ca6106a9366004612dd6565b612437565b6106e56106bc366004613068565b604080516020808201835260009182905292815260678352819020815192830190915254815290565b604051905181526020016102ae565b610317610702366004613531565b63f23a6e6160e01b95945050505050565b6066546001600160a01b03166104b8565b6102ca610732366004612e45565b612526565b60006001600160e01b03198216630271189760e51b148061076857506001600160e01b03198216630a85bd0160e11b145b8061078357506001600160e01b031982166301ffc9a760e01b145b92915050565b610791612619565b610799612672565b73__$d722caef77098c4278f7cc499b02a86af3$__63fd21acf2606660009054906101000a90046001600160a01b0316606760405180608001604052806107de6126b8565b6001600160a01b03908116825260208083018b905260408084018b905260609384018a905280516001600160e01b031960e08a901b16815296831660048801526024870195909552835190911660448601528201516064850152918101516084840152015160a482015260c4015b60006040518083038186803b15801561086457600080fd5b505af4158015610878573d6000803e3d6000fd5b505050506108866001603355565b505050565b610893612619565b61089b612672565b73__$13008df657cf2235b72b6cac615c594ac6$__63b023f193606760405180608001604052806108ca6126b8565b6001600160a01b03908116825260208083018a905260408084018a905288831660609485015280516001600160e01b031960e089901b1681526004810196909652845183166024870152908401516044860152830151606485015291015116608482015260a40161084c565b61093e612619565b610946612672565b73__$fdc5093381d4a0b296ee33d1f23655684f$__63daa24772606660009054906101000a90046001600160a01b03166067604051806060016040528061098b6126b8565b6001600160a01b03908116825260208083018a905288821660409384015282516001600160e01b031960e089901b16815295821660048701526024860194909452825181166044860152928201516064850152015116608482015260a4015b60006040518083038186803b158015610a0257600080fd5b505af4158015610a16573d6000803e3d6000fd5b50505050610a246001603355565b5050565b630a85bd0160e11b5b949350505050565b610a416126b8565b6001600160a01b0316606660009054906101000a90046001600160a01b03166001600160a01b0316639b7ae5ec6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac191906135a7565b6001600160a01b031614610af05760405162461bcd60e51b8152600401610ae7906135c4565b60405180910390fd5b60009182526067602052604090912060060180546001600160a01b0319166001600160a01b03909216919091179055565b610b29612619565b610b31612672565b73__$13008df657cf2235b72b6cac615c594ac6$__636f2b2d2b606660009054906101000a90046001600160a01b031660676040518060a00160405280610b766126b8565b6001600160a01b03908116825260208083018c905260408084018c90528a831660608086019190915261ffff808c1660809687015282516001600160e01b031960e08c901b16815298851660048a0152602489019790975285518416604489015291850151606488015284015160848701528301511660a485015201511660c482015260e4015b60006040518083038186803b158015610c1557600080fd5b505af4158015610c29573d6000803e3d6000fd5b50505050610c376001603355565b50505050565b610c45612619565b610c4d612672565b73__$fdc5093381d4a0b296ee33d1f23655684f$__63bdfbf9c6606660009054906101000a90046001600160a01b031660676040518060a00160405280610c926126b8565b6001600160a01b031681526020018d8d808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208d810282810182019093528d82529283019290918e918e9182918501908490808284376000920191909152505050908252506040805160208b810282810182019093528b82529283019290918c918c91829185019084908082843760009201919091525050509082525060408051602089810282810182019093528982529283019290918a918a91829185019084908082843760009201919091525050509152506040516001600160e01b031960e086901b168152610da093929190600401613654565b60006040518083038186803b158015610db857600080fd5b505af4158015610dcc573d6000803e3d6000fd5b50505050610dda6001603355565b5050505050505050565b6000828152606760205260408120610dfc90836126da565b9392505050565b610e0b6126b8565b6001600160a01b0316606660009054906101000a90046001600160a01b03166001600160a01b0316639b7ae5ec6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8b91906135a7565b6001600160a01b031614610eb15760405162461bcd60e51b8152600401610ae7906135c4565b6073829055607481905560408051838152602081018390527fd897a722b1c0a957941f99a13c0ea24d7d4ffafe0953658f68f49e13ccba5c5a91015b60405180910390a15050565b6060606a805480602002602001604051908101604052809291908181526020018280548015610f5157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610f33575b5050505050905090565b610f63612619565b610f6b612672565b73__$fdc5093381d4a0b296ee33d1f23655684f$__63d59e5a1a606660009054906101000a90046001600160a01b031660676040518060600160405280610fb06126b8565b6001600160a01b0316815260200189898080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050509082525060408051602089810282810182019093528982529283019290918a918a91829185019084908082843760009201919091525050509152506040516001600160e01b031960e086901b168152610bfd939291906004016136f7565b6060606c805480602002602001604051908101604052809291908181526020018280548015610f51576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311610f33575050505050905090565b60006110b86126b8565b6001600160a01b0316606660009054906101000a90046001600160a01b03166001600160a01b0316639b7ae5ec6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611114573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113891906135a7565b6001600160a01b031614610a315760405162461bcd60e51b8152600401610ae7906135c4565b611166612619565b61116e612672565b73__$13008df657cf2235b72b6cac615c594ac6$__63488b0171606660009054906101000a90046001600160a01b031660676040518060a001604052806111b36126b8565b6001600160a01b031681526020018d8d808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208d810282810182019093528d82529283019290918e918e9182918501908490808284376000920191909152505050908252506040805160208b810282810182019093528b82529283019290918c918c91829185019084908082843760009201919091525050509082525060408051602089810282810182019093528982529283019290918a918a91829185019084908082843760009201919091525050509152506040516001600160e01b031960e086901b168152610da093929190600401613752565b6001600160a01b0380851660009081526068602090815260408083209387168352929052908120816112f38486613836565b8152602001908152602001600020549050949350505050565b611314612619565b61131c612672565b73__$d722caef77098c4278f7cc499b02a86af3$__6391188af6606660009054906101000a90046001600160a01b0316606760405180608001604052806113616126b8565b6001600160a01b031681526020018b8b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208b810282810182019093528b82529283019290918c918c91829185019084908082843760009201919091525050509082525060408051602089810282810182019093528982529283019290918a918a91829185019084908082843760009201919091525050509152506040516001600160e01b031960e086901b16815261143793929190600401613849565b60006040518083038186803b15801561144f57600080fd5b505af4158015611463573d6000803e3d6000fd5b505050506114716001603355565b505050505050565b611481612672565b600086815260676020526040902060038101546001600160a01b03166114a56126b8565b6001600160a01b0316146040518060400160405280600381526020016203431360ec1b81525090610dda5760405162461bcd60e51b8152600401610ae791906138c2565b50505050505050565b6114fa6126b8565b6001600160a01b0316606660009054906101000a90046001600160a01b03166001600160a01b0316639b7ae5ec6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611556573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061157a91906135a7565b6001600160a01b0316146115a05760405162461bcd60e51b8152600401610ae7906135c4565b606e55565b60408051610240810182526000610220820181815282526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e0820152610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081018290526101c081018290526101e0810182905261020081019190915260008281526067602090815260409182902082516102408101845281546102208201908152815260018201546001600160a01b039081169382019390935260028201548316938101939093526003810154821660608401526004810154821660808401526005810154821660a0840152600681015490911660c083015260078101805460e0840191906116c6906138d5565b80601f01602080910402602001604051908101604052809291908181526020018280546116f2906138d5565b801561173f5780601f106117145761010080835404028352916020019161173f565b820191906000526020600020905b81548152906001019060200180831161172257829003601f168201915b50505091835250506008820154602082015260098201546040820152600a8201546060820152600b8201546080820152600c8201546001600160801b0380821660a0840152600160801b91829004811660c0840152600d84015480821660e08501529190910416610100820152600e9091015464ffffffffff166101209091015292915050565b6117ce6126b8565b6001600160a01b0316606660009054906101000a90046001600160a01b03166001600160a01b0316639b7ae5ec6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561182a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184e91906135a7565b6001600160a01b0316146118745760405162461bcd60e51b8152600401610ae7906135c4565b60009182526067602052604090912055565b600081815260676020526040812061078390612750565b6118a5612619565b6118ad612672565b73__$d722caef77098c4278f7cc499b02a86af3$__636f672fbf606660009054906101000a90046001600160a01b031660676040518061010001604052806118f36126b8565b6001600160a01b03908116825260208083018f905260408084018f905260608085018f905260808086018f905260a08087018f90528d861660c08089019190915261ffff808f1660e0998a015285516001600160e01b03198e8b1b1681529b881660048d015260248c019a909a528851871660448c01529488015160648b01529287015160848a01529086015160a489015285015160c488015284015160e4870152830151166101048501520151166101248201526101440160006040518083038186803b1580156119c457600080fd5b505af41580156119d8573d6000803e3d6000fd5b505050506114e96001603355565b6119ee612619565b6119f6612672565b73__$13008df657cf2235b72b6cac615c594ac6$__63a3b4d80960676040518060800160405280611a256126b8565b6001600160a01b031681526020018a8a808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208a810282810182019093528a82529283019290918b918b918291850190849080828437600092019190915250505090825250604080516020888102828101820190935288825292830192909189918991829185019084908082843760009201919091525050509152506040516001600160e01b031960e085901b16815261143792919060040161390f565b611b02612619565b611b0a612672565b73__$fdc5093381d4a0b296ee33d1f23655684f$__63e7206e08606660009054906101000a90046001600160a01b031660676040518060a00160405280611b4f6126b8565b6001600160a01b0390811682528a811660208084019190915260408084018c905260608085018c90528a841660809586015281516001600160e01b031960e08b901b16815297841660048901526024880196909652845183166044880152908401518216606487015283015160848601529282015160a485015201511660c482015260e401610bfd565b611be16126b8565b6001600160a01b0316606660009054906101000a90046001600160a01b03166001600160a01b0316639b7ae5ec6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c6191906135a7565b6001600160a01b031614611c875760405162461bcd60e51b8152600401610ae7906135c4565b6000828152606760205260409081902060030154905163bc1d19dd60e01b81526001600160a01b0383811660048301529091169063bc1d19dd906024015b600060405180830381600087803b158015611cdf57600080fd5b505af1158015611471573d6000803e3d6000fd5b604080518082018252600381526206a60760eb1b6020820152905162461bcd60e51b8152600091610ae7916004016138c2565b611d2e6126b8565b6001600160a01b0316606660009054906101000a90046001600160a01b03166001600160a01b0316639b7ae5ec6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dae91906135a7565b6001600160a01b031614611dd45760405162461bcd60e51b8152600401610ae7906135c4565b60725460ff600160281b90910416151581151514611e7f576072805465ff00000000001916600160281b8315158102919091179182905560ff91041615611e4557426073556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e75290600090a150565b607354611e529042613989565b6074556040517fa45f47fdea8a1efdd9029a5691c7f759c32b7c698632b563573e155625d1693390600090a15b50565b611e8a612619565b611e92612672565b6000604051806101000160405280611ea86126b8565b6001600160a01b031681526020018d8d808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208d810282810182019093528d82529283019290918e918e9182918501908490808284376000920191909152505050908252506040805160208b810282810182019093528b82529283019290918c918c91829185019084908082843760009201919091525050509082525060408051602089810282810182019093528982529283019290918a918a918291850190849080828437600092019190915250505090825250602081018690526001600160a01b0380861660408084019190915261ffff8616606090930192909252606654915163c09d4f2760e01b815292935073__$d722caef77098c4278f7cc499b02a86af3$__9263c09d4f2792611ffe921690606790869060040161399c565b60006040518083038186803b15801561201657600080fd5b505af415801561202a573d6000803e3d6000fd5b50505050506120396001603355565b5050505050505050505050565b606654604051631285c83d60e01b81526001600160a01b03909116600482015260676024820152604481018290526000908190819073__$fdc5093381d4a0b296ee33d1f23655684f$__90631285c83d90606401606060405180830381865af41580156120b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120db9190613a84565b9250925092509193909250565b600054610100900460ff16158080156121085750600054600160ff909116105b806121225750303b158015612122575060005460ff166001145b6121855760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610ae7565b6000805460ff1916600117905580156121a8576000805461ff0019166101001790555b610100606e55606680546001600160a01b0319166001600160a01b0384161790558015610a24576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610eed565b6060606d5467ffffffffffffffff81111561222857612228612b5d565b604051908082528060200260200182016040528015612251578160200160208202803683370190505b50905060005b606d548110156122a457600081815260676020526040902060080154825183908390811061228757612287613ab2565b60209081029190910101528061229c81613ac8565b915050612257565b5090565b6122b06126b8565b6001600160a01b0316606660009054906101000a90046001600160a01b03166001600160a01b0316639b7ae5ec6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561230c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061233091906135a7565b6001600160a01b0316146123565760405162461bcd60e51b8152600401610ae7906135c4565b60009182526067602052604090912060090155565b612373612619565b61237b612672565b73__$d722caef77098c4278f7cc499b02a86af3$__63a1aebc73606660009054906101000a90046001600160a01b0316606760405180606001604052806123c06126b8565b6001600160a01b03908116825260208083018a9052604092830189905282516001600160e01b031960e089901b1681529582166004870152602486019490945282511660448501529181015160648401520151608482015260a4016109ea565b6000818152606760205260408120610783906127ba565b61243f6126b8565b6001600160a01b0316606660009054906101000a90046001600160a01b03166001600160a01b0316639b7ae5ec6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561249b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124bf91906135a7565b6001600160a01b0316146124e55760405162461bcd60e51b8152600401610ae7906135c4565b60008281526067602052604090819020600301549051632b2b063960e21b8152600481018390526001600160a01b039091169063acac18e490602401611cc5565b61252e612619565b612536612672565b73__$d722caef77098c4278f7cc499b02a86af3$__63b45bd138606660009054906101000a90046001600160a01b03166067604051806060016040528061257b6126b8565b6001600160a01b0316815260200189898080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050509082525060408051602089810282810182019093528982529283019290918a918a91829185019084908082843760009201919091525050509152506040516001600160e01b031960e086901b168152610bfd93929190600401613ae1565b60026033540361266b5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ae7565b6002603355565b60725460408051808201909152600381526234303160e81b602082015290600160281b900460ff1615611e7f5760405162461bcd60e51b8152600401610ae791906138c2565b60006126c33361280e565b156126d5575060131936013560601c90565b503390565b60048281015460405163e78c9b3b60e01b81526001600160a01b03848116938201939093526000929091169063e78c9b3b90602401602060405180830381865afa15801561272c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfc9190613b3c565b600e81015460009064ffffffffff9081169042168103612783575050600c0154600160801b90046001600160801b031690565b600c830154600d840154600091610a31916001600160801b03600160801b928390048116926127b492041685612897565b906128a4565b600e81015460009064ffffffffff90811690421681036127e6575050600c01546001600160801b031690565b600c830154600d840154600091610a31916001600160801b03918216916127b49116856128e6565b6066546040805163862beee160e01b815290516000926001600160a01b03169163862beee19160048083019260209291908290030181865afa158015612858573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061287c91906135a7565b6001600160a01b0316826001600160a01b0316149050919050565b6000610dfc83834261292c565b6000610dfc6b033b2e3c9fd0803ce80000006128e06128c38686612a55565b6128da60026b033b2e3c9fd0803ce8000000613b55565b90612a61565b90612a6d565b6000806128fa64ffffffffff841642613989565b90506b033b2e3c9fd0803ce80000006301e133806129188387613b77565b6129229190613b55565b610a319190613836565b60008061294064ffffffffff851684613989565b90508060000361295f576b033b2e3c9fd0803ce8000000915050610dfc565b600061296c600183613989565b905060006002831161297f57600061298a565b61298a600284613989565b9050600061299c6301e1338089613b55565b905060006129aa82806128a4565b905060006129b882846128a4565b905060006002836129c9888a613b77565b6129d39190613b77565b6129dd9190613b55565b90506000600683876129ef8a8c613b77565b6129f99190613b77565b612a039190613b77565b612a0d9190613b55565b90508082612a1b8a88613b77565b612a31906b033b2e3c9fd0803ce8000000613836565b612a3b9190613836565b612a459190613836565b9c9b505050505050505050505050565b6000610dfc8284613b77565b6000610dfc8284613836565b6000610dfc8284613b55565b600060208284031215612a8b57600080fd5b81356001600160e01b031981168114610dfc57600080fd5b600080600060608486031215612ab857600080fd5b505081359360208301359350604090920135919050565b6001600160a01b0381168114611e7f57600080fd5b8035612aef81612acf565b919050565b600080600060608486031215612b0957600080fd5b83359250602084013591506040840135612b2281612acf565b809150509250925092565b60008060408385031215612b4057600080fd5b823591506020830135612b5281612acf565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112612b8457600080fd5b813567ffffffffffffffff80821115612b9f57612b9f612b5d565b604051601f8301601f19908116603f01168101908282118183101715612bc757612bc7612b5d565b81604052838152866020858801011115612be057600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060808587031215612c1657600080fd5b8435612c2181612acf565b93506020850135612c3181612acf565b925060408501359150606085013567ffffffffffffffff811115612c5457600080fd5b612c6087828801612b73565b91505092959194509250565b803561ffff81168114612aef57600080fd5b60008060008060808587031215612c9457600080fd5b84359350602085013592506040850135612cad81612acf565b9150612cbb60608601612c6c565b905092959194509250565b60008083601f840112612cd857600080fd5b50813567ffffffffffffffff811115612cf057600080fd5b6020830191508360208260051b8501011115612d0b57600080fd5b9250929050565b6000806000806000806000806080898b031215612d2e57600080fd5b883567ffffffffffffffff80821115612d4657600080fd5b612d528c838d01612cc6565b909a50985060208b0135915080821115612d6b57600080fd5b612d778c838d01612cc6565b909850965060408b0135915080821115612d9057600080fd5b612d9c8c838d01612cc6565b909650945060608b0135915080821115612db557600080fd5b50612dc28b828c01612cc6565b999c989b5096995094979396929594505050565b60008060408385031215612de957600080fd5b50508035926020909101359150565b6020808252825182820181905260009190848201906040850190845b81811015612e395783516001600160a01b031683529284019291840191600101612e14565b50909695505050505050565b60008060008060408587031215612e5b57600080fd5b843567ffffffffffffffff80821115612e7357600080fd5b612e7f88838901612cc6565b90965094506020870135915080821115612e9857600080fd5b50612ea587828801612cc6565b95989497509550505050565b60008060008060808587031215612ec757600080fd5b843567ffffffffffffffff811115612ede57600080fd5b85016103408188031215612ef157600080fd5b93506020850135612f0181612acf565b92506040850135612f1181612acf565b91506060850135612f2181612acf565b939692955090935050565b60008060008060808587031215612f4257600080fd5b8435612f4d81612acf565b93506020850135612f5d81612acf565b93969395505050506040820135916060013590565b60008060008060008060608789031215612f8b57600080fd5b863567ffffffffffffffff80821115612fa357600080fd5b612faf8a838b01612cc6565b90985096506020890135915080821115612fc857600080fd5b612fd48a838b01612cc6565b90965094506040890135915080821115612fed57600080fd5b50612ffa89828a01612cc6565b979a9699509497509295939492505050565b60008060008060008060c0878903121561302557600080fd5b86359550602087013561303781612acf565b9450604087013561304781612acf565b959894975094956060810135955060808101359460a0909101359350915050565b60006020828403121561307a57600080fd5b5035919050565b6000815180845260005b818110156130a75760208185018101518683018201520161308b565b506000602082860101526020601f19601f83011685010191505092915050565b602081526130d9602082018351519052565b600060208301516130f560408401826001600160a01b03169052565b5060408301516001600160a01b03811660608401525060608301516001600160a01b03811660808401525060808301516001600160a01b03811660a08401525060a08301516001600160a01b03811660c08401525060c08301516001600160a01b03811660e08401525060e0830151610220610100818186015261317d610240860184613081565b90860151610120868101919091528601516101408087019190915286015161016080870191909152860151610180808701919091528601519092506101a06131cf818701836001600160801b03169052565b86015190506101c06131eb868201836001600160801b03169052565b86015190506101e0613207868201836001600160801b03169052565b8601519050610200613223868201836001600160801b03169052565b9095015164ffffffffff1693019290925250919050565b600080600080600080600060e0888a03121561325557600080fd5b873596506020880135955060408801359450606088013593506080880135925060a088013561328381612acf565b915061329160c08901612c6c565b905092959891949750929550565b600080600080608085870312156132b557600080fd5b84356132c081612acf565b935060208501359250604085013591506060850135612f2181612acf565b60008060008060008060008060a0898b0312156132fa57600080fd5b883561330581612acf565b9750602089013561331581612acf565b9650604089013567ffffffffffffffff8082111561333257600080fd5b61333e8c838d01612cc6565b909850965060608b013591508082111561335757600080fd5b6133638c838d01612cc6565b909650945060808b013591508082111561337c57600080fd5b818b0191508b601f83011261339057600080fd5b81358181111561339f57600080fd5b8c60208285010111156133b157600080fd5b6020830194508093505050509295985092959890939650565b6000602082840312156133dc57600080fd5b81358015158114610dfc57600080fd5b600080600080600080600080600080600060e08c8e03121561340d57600080fd5b67ffffffffffffffff808d35111561342457600080fd5b6134318e8e358f01612cc6565b909c509a5060208d013581101561344757600080fd5b6134578e60208f01358f01612cc6565b909a50985060408d013581101561346d57600080fd5b61347d8e60408f01358f01612cc6565b909850965060608d013581101561349357600080fd5b506134a48d60608e01358e01612cc6565b909550935060808c013592506134bc60a08d01612ae4565b91506134ca60c08d01612c6c565b90509295989b509295989b9093969950565b6000602082840312156134ee57600080fd5b8135610dfc81612acf565b6020808252825182820181905260009190848201906040850190845b81811015612e3957835183529284019291840191600101613515565b600080600080600060a0868803121561354957600080fd5b853561355481612acf565b9450602086013561356481612acf565b93506040860135925060608601359150608086013567ffffffffffffffff81111561358e57600080fd5b61359a88828901612b73565b9150509295509295909350565b6000602082840312156135b957600080fd5b8151610dfc81612acf565b602080825260029082015261433160f01b604082015260600190565b600081518084526020808501945080840160005b838110156136195781516001600160a01b0316875295820195908201906001016135f4565b509495945050505050565b600081518084526020808501945080840160005b8381101561361957815187529582019590820190600101613638565b600060018060a01b0380861683528460208401526060604084015280845116606084015250602083015160a060808401526136936101008401826135e0565b90506040840151605f19808584030160a08601526136b18383613624565b925060608601519150808584030160c08601526136ce8383613624565b925060808601519150808584030160e0860152506136ec82826135e0565b979650505050505050565b600060018060a01b038086168352846020840152606060408401528084511660608401525060208301516060608084015261373560c0840182613624565b90506040840151605f198483030160a08501526136ec82826135e0565b600060018060a01b038086168352602085818501526060604085015281855116606085015280850151915060a06080850152613792610100850183613624565b91506040850151605f19808685030160a08701526137b08483613624565b935060608701519150808685030160c08701526137cd84836135e0565b608088015187820390920160e088015281518082529184019450600092508301905b8083101561381357845161ffff1682529383019360019290920191908301906137ef565b5098975050505050505050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561078357610783613820565b600060018060a01b0380861683528460208401526060604084015280845116606084015250602083015160808084015261388660e0840182613624565b90506040840151605f19808584030160a08601526138a48383613624565b925060608601519150808584030160c0860152506136ec8282613624565b602081526000610dfc6020830184613081565b600181811c908216806138e957607f821691505b60208210810361390957634e487b7160e01b600052602260045260246000fd5b50919050565b8281526040602082015260018060a01b038251166040820152600060208301516080606084015261394360c0840182613624565b90506040840151603f19808584030160808601526139618383613624565b925060608601519150808584030160a08601525061397f82826135e0565b9695505050505050565b8181038181111561078357610783613820565b60018060a01b0384168152826020820152606060408201526139ca6060820183516001600160a01b03169052565b600060208301516101008060808501526139e8610160850183613624565b91506040850151605f19808685030160a0870152613a068483613624565b935060608701519150808685030160c0870152613a238483613624565b935060808701519150808685030160e087015250613a418382613624565b92505060a0850151818501525060c0840151613a696101208501826001600160a01b03169052565b5060e084015161ffff81166101408501525095945050505050565b600080600060608486031215613a9957600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052603260045260246000fd5b600060018201613ada57613ada613820565b5060010190565b600060018060a01b0380861683528460208401526060604084015280845116606084015250602083015160606080840152613b1f60c0840182613624565b90506040840151605f198483030160a08501526136ec8282613624565b600060208284031215613b4e57600080fd5b5051919050565b600082613b7257634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615613b9157613b91613820565b50029056fea2646970667358221220bf13109ac32312ef7f4fc820ff900c72df32d18516e9ca51cf41a0abd6107a1164736f6c63430008100033",
"sourceMap": "2499:24490:143:-:0;;;1681:43:144;;;-1:-1:-1;;1681:43:144;1716:8;1681:43;;;2499:24490:143;;;;;;;;;;;;;;;;",
"linkReferences": {
"src/protocol/libraries/logic/BorrowLogic.sol": {
"BorrowLogic": [
{
"start": 1998,
"length": 20
},
{
"start": 4945,
"length": 20
},
{
"start": 6370,
"length": 20
},
{
"start": 8196,
"length": 20
},
{
"start": 9136,
"length": 20
},
{
"start": 9579,
"length": 20
}
]
},
"src/protocol/libraries/logic/LiquidateLogic.sol": {
"LiquidateLogic": [
{
"start": 2427,
"length": 20
},
{
"start": 3202,
"length": 20
},
{
"start": 4000,
"length": 20
},
{
"start": 6975,
"length": 20
},
{
"start": 8368,
"length": 20
}
]
},
"src/protocol/libraries/logic/SupplyLogic.sol": {
"SupplyLogic": [
{
"start": 2256,
"length": 20
},
{
"start": 2918,
"length": 20
},
{
"start": 4515,
"length": 20
},
{
"start": 6699,
"length": 20
}
]
}
}
},
"deployedBytecode": {
"object": "0x608060405234801561001057600080fd5b506004361061028a5760003560e01c80638fc421881161015c578063c28cadf7116100ce578063dcc5cded11610087578063dcc5cded14610688578063e49c8a521461069b578063eadff055146106ae578063f23a6e61146106f4578063f8c6893414610713578063ff7039c71461072457600080fd5b8063c28cadf7146105f9578063c46a90f51461060c578063c4d66de81461063a578063d1946dbc1461064d578063d6ee0f7314610662578063d8aed1451461067557600080fd5b80639e97a156116101205780639e97a15614610565578063a58497a514610578578063a7ff3b23146105ad578063bbce5cf3146105c0578063bc197c81146105d3578063bedb86fb146105e657600080fd5b80638fc42188146104765780639034c18c14610492578063986c9b20146104a5578063993ff816146104d05780639c74daf81461055257600080fd5b806331e884bb116102005780635c975abb116101b95780635c975abb146103f8578063621759de1461040a5780636c130dc71461041d578063746c35a21461043057806377778db31461044357806389a7245d1461046357600080fd5b806331e884bb1461038f57806334e69b62146103a45780633b4ecdb2146103b757806345a64925146103bf5780634b33a967146103d257806352120e23146103e557600080fd5b8063150b7a0211610252578063150b7a021461030457806319322775146103305780631de8a7c2146103435780632684dd09146103565780632e4e8eb4146103695780632f923ff71461037c57600080fd5b806301ffc9a71461028f578063044df1f2146102b757806308ac08b9146102cc5780630ad58d2f146102de578063118cfad3146102f1575b600080fd5b6102a261029d366004612a79565b610737565b60405190151581526020015b60405180910390f35b6102ca6102c5366004612aa3565b610789565b005b606e545b6040519081526020016102ae565b6102ca6102ec366004612af4565b61088b565b6102ca6102ff366004612b2d565b610936565b610317610312366004612c00565b610a28565b6040516001600160e01b031990911681526020016102ae565b6102ca61033e366004612b2d565b610a39565b6102ca610351366004612c7e565b610b21565b6102ca610364366004612d12565b610c3d565b6102d0610377366004612b2d565b610de4565b6102ca61038a366004612dd6565b610e03565b610397610ef9565b6040516102ae9190612df8565b6102ca6103b2366004612e45565b610f5b565b61039761104e565b6102d06103cd366004612eb1565b6110ae565b6102ca6103e0366004612d12565b61115e565b6102d06103f3366004612f2c565b6112c1565b607254600160281b900460ff166102a2565b6102ca610418366004612f72565b61130c565b6102ca61042b36600461300c565b611479565b6102ca61043e366004613068565b6114f2565b610456610451366004613068565b6115a5565b6040516102ae91906130c7565b6102ca610471366004612dd6565b6117c6565b6073546074545b604080519283526020830191909152016102ae565b6102d06104a0366004613068565b611886565b6065546104b8906001600160a01b031681565b6040516001600160a01b0390911681526020016102ae565b6105286104de366004613068565b600090815260676020526040902054670100000000000000811615159167020000000000000082161515916704000000000000008116151591670800000000000000909116151590565b604080519415158552921515602085015290151591830191909152151560608201526080016102ae565b6102ca61056036600461323a565b61189d565b6102ca610573366004612f72565b6119e6565b61047d610586366004613068565b6000908152606760209081526040909120549081901c61ffff9081169260609290921c1690565b6102ca6105bb36600461329f565b611afa565b6102ca6105ce366004612b2d565b611bd9565b6103176105e13660046132de565b611cf3565b6102ca6105f43660046133ca565b611d26565b6102ca6106073660046133ec565b611e82565b61061f61061a366004613068565b612046565b604080519384526020840192909252908201526060016102ae565b6102ca6106483660046134dc565b6120e8565b61065561220b565b6040516102ae91906134f9565b6102ca610670366004612dd6565b6122a8565b6102ca610683366004612dd6565b61236b565b6102d0610696366004613068565b612420565b6102ca6106a9366004612dd6565b612437565b6106e56106bc366004613068565b604080516020808201835260009182905292815260678352819020815192830190915254815290565b604051905181526020016102ae565b610317610702366004613531565b63f23a6e6160e01b95945050505050565b6066546001600160a01b03166104b8565b6102ca610732366004612e45565b612526565b60006001600160e01b03198216630271189760e51b148061076857506001600160e01b03198216630a85bd0160e11b145b8061078357506001600160e01b031982166301ffc9a760e01b145b92915050565b610791612619565b610799612672565b73__$d722caef77098c4278f7cc499b02a86af3$__63fd21acf2606660009054906101000a90046001600160a01b0316606760405180608001604052806107de6126b8565b6001600160a01b03908116825260208083018b905260408084018b905260609384018a905280516001600160e01b031960e08a901b16815296831660048801526024870195909552835190911660448601528201516064850152918101516084840152015160a482015260c4015b60006040518083038186803b15801561086457600080fd5b505af4158015610878573d6000803e3d6000fd5b505050506108866001603355565b505050565b610893612619565b61089b612672565b73__$13008df657cf2235b72b6cac615c594ac6$__63b023f193606760405180608001604052806108ca6126b8565b6001600160a01b03908116825260208083018a905260408084018a905288831660609485015280516001600160e01b031960e089901b1681526004810196909652845183166024870152908401516044860152830151606485015291015116608482015260a40161084c565b61093e612619565b610946612672565b73__$fdc5093381d4a0b296ee33d1f23655684f$__63daa24772606660009054906101000a90046001600160a01b03166067604051806060016040528061098b6126b8565b6001600160a01b03908116825260208083018a905288821660409384015282516001600160e01b031960e089901b16815295821660048701526024860194909452825181166044860152928201516064850152015116608482015260a4015b60006040518083038186803b158015610a0257600080fd5b505af4158015610a16573d6000803e3d6000fd5b50505050610a246001603355565b5050565b630a85bd0160e11b5b949350505050565b610a416126b8565b6001600160a01b0316606660009054906101000a90046001600160a01b03166001600160a01b0316639b7ae5ec6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac191906135a7565b6001600160a01b031614610af05760405162461bcd60e51b8152600401610ae7906135c4565b60405180910390fd5b60009182526067602052604090912060060180546001600160a01b0319166001600160a01b03909216919091179055565b610b29612619565b610b31612672565b73__$13008df657cf2235b72b6cac615c594ac6$__636f2b2d2b606660009054906101000a90046001600160a01b031660676040518060a00160405280610b766126b8565b6001600160a01b03908116825260208083018c905260408084018c90528a831660608086019190915261ffff808c1660809687015282516001600160e01b031960e08c901b16815298851660048a0152602489019790975285518416604489015291850151606488015284015160848701528301511660a485015201511660c482015260e4015b60006040518083038186803b158015610c1557600080fd5b505af4158015610c29573d6000803e3d6000fd5b50505050610c376001603355565b50505050565b610c45612619565b610c4d612672565b73__$fdc5093381d4a0b296ee33d1f23655684f$__63bdfbf9c6606660009054906101000a90046001600160a01b031660676040518060a00160405280610c926126b8565b6001600160a01b031681526020018d8d808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208d810282810182019093528d82529283019290918e918e9182918501908490808284376000920191909152505050908252506040805160208b810282810182019093528b82529283019290918c918c91829185019084908082843760009201919091525050509082525060408051602089810282810182019093528982529283019290918a918a91829185019084908082843760009201919091525050509152506040516001600160e01b031960e086901b168152610da093929190600401613654565b60006040518083038186803b158015610db857600080fd5b505af4158015610dcc573d6000803e3d6000fd5b50505050610dda6001603355565b5050505050505050565b6000828152606760205260408120610dfc90836126da565b9392505050565b610e0b6126b8565b6001600160a01b0316606660009054906101000a90046001600160a01b03166001600160a01b0316639b7ae5ec6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8b91906135a7565b6001600160a01b031614610eb15760405162461bcd60e51b8152600401610ae7906135c4565b6073829055607481905560408051838152602081018390527fd897a722b1c0a957941f99a13c0ea24d7d4ffafe0953658f68f49e13ccba5c5a91015b60405180910390a15050565b6060606a805480602002602001604051908101604052809291908181526020018280548015610f5157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610f33575b5050505050905090565b610f63612619565b610f6b612672565b73__$fdc5093381d4a0b296ee33d1f23655684f$__63d59e5a1a606660009054906101000a90046001600160a01b031660676040518060600160405280610fb06126b8565b6001600160a01b0316815260200189898080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050509082525060408051602089810282810182019093528982529283019290918a918a91829185019084908082843760009201919091525050509152506040516001600160e01b031960e086901b168152610bfd939291906004016136f7565b6060606c805480602002602001604051908101604052809291908181526020018280548015610f51576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311610f33575050505050905090565b60006110b86126b8565b6001600160a01b0316606660009054906101000a90046001600160a01b03166001600160a01b0316639b7ae5ec6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611114573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113891906135a7565b6001600160a01b031614610a315760405162461bcd60e51b8152600401610ae7906135c4565b611166612619565b61116e612672565b73__$13008df657cf2235b72b6cac615c594ac6$__63488b0171606660009054906101000a90046001600160a01b031660676040518060a001604052806111b36126b8565b6001600160a01b031681526020018d8d808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208d810282810182019093528d82529283019290918e918e9182918501908490808284376000920191909152505050908252506040805160208b810282810182019093528b82529283019290918c918c91829185019084908082843760009201919091525050509082525060408051602089810282810182019093528982529283019290918a918a91829185019084908082843760009201919091525050509152506040516001600160e01b031960e086901b168152610da093929190600401613752565b6001600160a01b0380851660009081526068602090815260408083209387168352929052908120816112f38486613836565b8152602001908152602001600020549050949350505050565b611314612619565b61131c612672565b73__$d722caef77098c4278f7cc499b02a86af3$__6391188af6606660009054906101000a90046001600160a01b0316606760405180608001604052806113616126b8565b6001600160a01b031681526020018b8b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208b810282810182019093528b82529283019290918c918c91829185019084908082843760009201919091525050509082525060408051602089810282810182019093528982529283019290918a918a91829185019084908082843760009201919091525050509152506040516001600160e01b031960e086901b16815261143793929190600401613849565b60006040518083038186803b15801561144f57600080fd5b505af4158015611463573d6000803e3d6000fd5b505050506114716001603355565b505050505050565b611481612672565b600086815260676020526040902060038101546001600160a01b03166114a56126b8565b6001600160a01b0316146040518060400160405280600381526020016203431360ec1b81525090610dda5760405162461bcd60e51b8152600401610ae791906138c2565b50505050505050565b6114fa6126b8565b6001600160a01b0316606660009054906101000a90046001600160a01b03166001600160a01b0316639b7ae5ec6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611556573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061157a91906135a7565b6001600160a01b0316146115a05760405162461bcd60e51b8152600401610ae7906135c4565b606e55565b60408051610240810182526000610220820181815282526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e0820152610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081018290526101c081018290526101e0810182905261020081019190915260008281526067602090815260409182902082516102408101845281546102208201908152815260018201546001600160a01b039081169382019390935260028201548316938101939093526003810154821660608401526004810154821660808401526005810154821660a0840152600681015490911660c083015260078101805460e0840191906116c6906138d5565b80601f01602080910402602001604051908101604052809291908181526020018280546116f2906138d5565b801561173f5780601f106117145761010080835404028352916020019161173f565b820191906000526020600020905b81548152906001019060200180831161172257829003601f168201915b50505091835250506008820154602082015260098201546040820152600a8201546060820152600b8201546080820152600c8201546001600160801b0380821660a0840152600160801b91829004811660c0840152600d84015480821660e08501529190910416610100820152600e9091015464ffffffffff166101209091015292915050565b6117ce6126b8565b6001600160a01b0316606660009054906101000a90046001600160a01b03166001600160a01b0316639b7ae5ec6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561182a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184e91906135a7565b6001600160a01b0316146118745760405162461bcd60e51b8152600401610ae7906135c4565b60009182526067602052604090912055565b600081815260676020526040812061078390612750565b6118a5612619565b6118ad612672565b73__$d722caef77098c4278f7cc499b02a86af3$__636f672fbf606660009054906101000a90046001600160a01b031660676040518061010001604052806118f36126b8565b6001600160a01b03908116825260208083018f905260408084018f905260608085018f905260808086018f905260a08087018f90528d861660c08089019190915261ffff808f1660e0998a015285516001600160e01b03198e8b1b1681529b881660048d015260248c019a909a528851871660448c01529488015160648b01529287015160848a01529086015160a489015285015160c488015284015160e4870152830151166101048501520151166101248201526101440160006040518083038186803b1580156119c457600080fd5b505af41580156119d8573d6000803e3d6000fd5b505050506114e96001603355565b6119ee612619565b6119f6612672565b73__$13008df657cf2235b72b6cac615c594ac6$__63a3b4d80960676040518060800160405280611a256126b8565b6001600160a01b031681526020018a8a808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208a810282810182019093528a82529283019290918b918b918291850190849080828437600092019190915250505090825250604080516020888102828101820190935288825292830192909189918991829185019084908082843760009201919091525050509152506040516001600160e01b031960e085901b16815261143792919060040161390f565b611b02612619565b611b0a612672565b73__$fdc5093381d4a0b296ee33d1f23655684f$__63e7206e08606660009054906101000a90046001600160a01b031660676040518060a00160405280611b4f6126b8565b6001600160a01b0390811682528a811660208084019190915260408084018c905260608085018c90528a841660809586015281516001600160e01b031960e08b901b16815297841660048901526024880196909652845183166044880152908401518216606487015283015160848601529282015160a485015201511660c482015260e401610bfd565b611be16126b8565b6001600160a01b0316606660009054906101000a90046001600160a01b03166001600160a01b0316639b7ae5ec6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c6191906135a7565b6001600160a01b031614611c875760405162461bcd60e51b8152600401610ae7906135c4565b6000828152606760205260409081902060030154905163bc1d19dd60e01b81526001600160a01b0383811660048301529091169063bc1d19dd906024015b600060405180830381600087803b158015611cdf57600080fd5b505af1158015611471573d6000803e3d6000fd5b604080518082018252600381526206a60760eb1b6020820152905162461bcd60e51b8152600091610ae7916004016138c2565b611d2e6126b8565b6001600160a01b0316606660009054906101000a90046001600160a01b03166001600160a01b0316639b7ae5ec6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dae91906135a7565b6001600160a01b031614611dd45760405162461bcd60e51b8152600401610ae7906135c4565b60725460ff600160281b90910416151581151514611e7f576072805465ff00000000001916600160281b8315158102919091179182905560ff91041615611e4557426073556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e75290600090a150565b607354611e529042613989565b6074556040517fa45f47fdea8a1efdd9029a5691c7f759c32b7c698632b563573e155625d1693390600090a15b50565b611e8a612619565b611e92612672565b6000604051806101000160405280611ea86126b8565b6001600160a01b031681526020018d8d808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208d810282810182019093528d82529283019290918e918e9182918501908490808284376000920191909152505050908252506040805160208b810282810182019093528b82529283019290918c918c91829185019084908082843760009201919091525050509082525060408051602089810282810182019093528982529283019290918a918a918291850190849080828437600092019190915250505090825250602081018690526001600160a01b0380861660408084019190915261ffff8616606090930192909252606654915163c09d4f2760e01b815292935073__$d722caef77098c4278f7cc499b02a86af3$__9263c09d4f2792611ffe921690606790869060040161399c565b60006040518083038186803b15801561201657600080fd5b505af415801561202a573d6000803e3d6000fd5b50505050506120396001603355565b5050505050505050505050565b606654604051631285c83d60e01b81526001600160a01b03909116600482015260676024820152604481018290526000908190819073__$fdc5093381d4a0b296ee33d1f23655684f$__90631285c83d90606401606060405180830381865af41580156120b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120db9190613a84565b9250925092509193909250565b600054610100900460ff16158080156121085750600054600160ff909116105b806121225750303b158015612122575060005460ff166001145b6121855760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610ae7565b6000805460ff1916600117905580156121a8576000805461ff0019166101001790555b610100606e55606680546001600160a01b0319166001600160a01b0384161790558015610a24576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610eed565b6060606d5467ffffffffffffffff81111561222857612228612b5d565b604051908082528060200260200182016040528015612251578160200160208202803683370190505b50905060005b606d548110156122a457600081815260676020526040902060080154825183908390811061228757612287613ab2565b60209081029190910101528061229c81613ac8565b915050612257565b5090565b6122b06126b8565b6001600160a01b0316606660009054906101000a90046001600160a01b03166001600160a01b0316639b7ae5ec6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561230c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061233091906135a7565b6001600160a01b0316146123565760405162461bcd60e51b8152600401610ae7906135c4565b60009182526067602052604090912060090155565b612373612619565b61237b612672565b73__$d722caef77098c4278f7cc499b02a86af3$__63a1aebc73606660009054906101000a90046001600160a01b0316606760405180606001604052806123c06126b8565b6001600160a01b03908116825260208083018a9052604092830189905282516001600160e01b031960e089901b1681529582166004870152602486019490945282511660448501529181015160648401520151608482015260a4016109ea565b6000818152606760205260408120610783906127ba565b61243f6126b8565b6001600160a01b0316606660009054906101000a90046001600160a01b03166001600160a01b0316639b7ae5ec6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561249b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124bf91906135a7565b6001600160a01b0316146124e55760405162461bcd60e51b8152600401610ae7906135c4565b60008281526067602052604090819020600301549051632b2b063960e21b8152600481018390526001600160a01b039091169063acac18e490602401611cc5565b61252e612619565b612536612672565b73__$d722caef77098c4278f7cc499b02a86af3$__63b45bd138606660009054906101000a90046001600160a01b03166067604051806060016040528061257b6126b8565b6001600160a01b0316815260200189898080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050509082525060408051602089810282810182019093528982529283019290918a918a91829185019084908082843760009201919091525050509152506040516001600160e01b031960e086901b168152610bfd93929190600401613ae1565b60026033540361266b5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ae7565b6002603355565b60725460408051808201909152600381526234303160e81b602082015290600160281b900460ff1615611e7f5760405162461bcd60e51b8152600401610ae791906138c2565b60006126c33361280e565b156126d5575060131936013560601c90565b503390565b60048281015460405163e78c9b3b60e01b81526001600160a01b03848116938201939093526000929091169063e78c9b3b90602401602060405180830381865afa15801561272c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfc9190613b3c565b600e81015460009064ffffffffff9081169042168103612783575050600c0154600160801b90046001600160801b031690565b600c830154600d840154600091610a31916001600160801b03600160801b928390048116926127b492041685612897565b906128a4565b600e81015460009064ffffffffff90811690421681036127e6575050600c01546001600160801b031690565b600c830154600d840154600091610a31916001600160801b03918216916127b49116856128e6565b6066546040805163862beee160e01b815290516000926001600160a01b03169163862beee19160048083019260209291908290030181865afa158015612858573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061287c91906135a7565b6001600160a01b0316826001600160a01b0316149050919050565b6000610dfc83834261292c565b6000610dfc6b033b2e3c9fd0803ce80000006128e06128c38686612a55565b6128da60026b033b2e3c9fd0803ce8000000613b55565b90612a61565b90612a6d565b6000806128fa64ffffffffff841642613989565b90506b033b2e3c9fd0803ce80000006301e133806129188387613b77565b6129229190613b55565b610a319190613836565b60008061294064ffffffffff851684613989565b90508060000361295f576b033b2e3c9fd0803ce8000000915050610dfc565b600061296c600183613989565b905060006002831161297f57600061298a565b61298a600284613989565b9050600061299c6301e1338089613b55565b905060006129aa82806128a4565b905060006129b882846128a4565b905060006002836129c9888a613b77565b6129d39190613b77565b6129dd9190613b55565b90506000600683876129ef8a8c613b77565b6129f99190613b77565b612a039190613b77565b612a0d9190613b55565b90508082612a1b8a88613b77565b612a31906b033b2e3c9fd0803ce8000000613836565b612a3b9190613836565b612a459190613836565b9c9b505050505050505050505050565b6000610dfc8284613b77565b6000610dfc8284613836565b6000610dfc8284613b55565b600060208284031215612a8b57600080fd5b81356001600160e01b031981168114610dfc57600080fd5b600080600060608486031215612ab857600080fd5b505081359360208301359350604090920135919050565b6001600160a01b0381168114611e7f57600080fd5b8035612aef81612acf565b919050565b600080600060608486031215612b0957600080fd5b83359250602084013591506040840135612b2281612acf565b809150509250925092565b60008060408385031215612b4057600080fd5b823591506020830135612b5281612acf565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112612b8457600080fd5b813567ffffffffffffffff80821115612b9f57612b9f612b5d565b604051601f8301601f19908116603f01168101908282118183101715612bc757612bc7612b5d565b81604052838152866020858801011115612be057600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060808587031215612c1657600080fd5b8435612c2181612acf565b93506020850135612c3181612acf565b925060408501359150606085013567ffffffffffffffff811115612c5457600080fd5b612c6087828801612b73565b91505092959194509250565b803561ffff81168114612aef57600080fd5b60008060008060808587031215612c9457600080fd5b84359350602085013592506040850135612cad81612acf565b9150612cbb60608601612c6c565b905092959194509250565b60008083601f840112612cd857600080fd5b50813567ffffffffffffffff811115612cf057600080fd5b6020830191508360208260051b8501011115612d0b57600080fd5b9250929050565b6000806000806000806000806080898b031215612d2e57600080fd5b883567ffffffffffffffff80821115612d4657600080fd5b612d528c838d01612cc6565b909a50985060208b0135915080821115612d6b57600080fd5b612d778c838d01612cc6565b909850965060408b0135915080821115612d9057600080fd5b612d9c8c838d01612cc6565b909650945060608b0135915080821115612db557600080fd5b50612dc28b828c01612cc6565b999c989b5096995094979396929594505050565b60008060408385031215612de957600080fd5b50508035926020909101359150565b6020808252825182820181905260009190848201906040850190845b81811015612e395783516001600160a01b031683529284019291840191600101612e14565b50909695505050505050565b60008060008060408587031215612e5b57600080fd5b843567ffffffffffffffff80821115612e7357600080fd5b612e7f88838901612cc6565b90965094506020870135915080821115612e9857600080fd5b50612ea587828801612cc6565b95989497509550505050565b60008060008060808587031215612ec757600080fd5b843567ffffffffffffffff811115612ede57600080fd5b85016103408188031215612ef157600080fd5b93506020850135612f0181612acf565b92506040850135612f1181612acf565b91506060850135612f2181612acf565b939692955090935050565b60008060008060808587031215612f4257600080fd5b8435612f4d81612acf565b93506020850135612f5d81612acf565b93969395505050506040820135916060013590565b60008060008060008060608789031215612f8b57600080fd5b863567ffffffffffffffff80821115612fa357600080fd5b612faf8a838b01612cc6565b90985096506020890135915080821115612fc857600080fd5b612fd48a838b01612cc6565b90965094506040890135915080821115612fed57600080fd5b50612ffa89828a01612cc6565b979a9699509497509295939492505050565b60008060008060008060c0878903121561302557600080fd5b86359550602087013561303781612acf565b9450604087013561304781612acf565b959894975094956060810135955060808101359460a0909101359350915050565b60006020828403121561307a57600080fd5b5035919050565b6000815180845260005b818110156130a75760208185018101518683018201520161308b565b506000602082860101526020601f19601f83011685010191505092915050565b602081526130d9602082018351519052565b600060208301516130f560408401826001600160a01b03169052565b5060408301516001600160a01b03811660608401525060608301516001600160a01b03811660808401525060808301516001600160a01b03811660a08401525060a08301516001600160a01b03811660c08401525060c08301516001600160a01b03811660e08401525060e0830151610220610100818186015261317d610240860184613081565b90860151610120868101919091528601516101408087019190915286015161016080870191909152860151610180808701919091528601519092506101a06131cf818701836001600160801b03169052565b86015190506101c06131eb868201836001600160801b03169052565b86015190506101e0613207868201836001600160801b03169052565b8601519050610200613223868201836001600160801b03169052565b9095015164ffffffffff1693019290925250919050565b600080600080600080600060e0888a03121561325557600080fd5b873596506020880135955060408801359450606088013593506080880135925060a088013561328381612acf565b915061329160c08901612c6c565b905092959891949750929550565b600080600080608085870312156132b557600080fd5b84356132c081612acf565b935060208501359250604085013591506060850135612f2181612acf565b60008060008060008060008060a0898b0312156132fa57600080fd5b883561330581612acf565b9750602089013561331581612acf565b9650604089013567ffffffffffffffff8082111561333257600080fd5b61333e8c838d01612cc6565b909850965060608b013591508082111561335757600080fd5b6133638c838d01612cc6565b909650945060808b013591508082111561337c57600080fd5b818b0191508b601f83011261339057600080fd5b81358181111561339f57600080fd5b8c60208285010111156133b157600080fd5b6020830194508093505050509295985092959890939650565b6000602082840312156133dc57600080fd5b81358015158114610dfc57600080fd5b600080600080600080600080600080600060e08c8e03121561340d57600080fd5b67ffffffffffffffff808d35111561342457600080fd5b6134318e8e358f01612cc6565b909c509a5060208d013581101561344757600080fd5b6134578e60208f01358f01612cc6565b909a50985060408d013581101561346d57600080fd5b61347d8e60408f01358f01612cc6565b909850965060608d013581101561349357600080fd5b506134a48d60608e01358e01612cc6565b909550935060808c013592506134bc60a08d01612ae4565b91506134ca60c08d01612c6c565b90509295989b509295989b9093969950565b6000602082840312156134ee57600080fd5b8135610dfc81612acf565b6020808252825182820181905260009190848201906040850190845b81811015612e3957835183529284019291840191600101613515565b600080600080600060a0868803121561354957600080fd5b853561355481612acf565b9450602086013561356481612acf565b93506040860135925060608601359150608086013567ffffffffffffffff81111561358e57600080fd5b61359a88828901612b73565b9150509295509295909350565b6000602082840312156135b957600080fd5b8151610dfc81612acf565b602080825260029082015261433160f01b604082015260600190565b600081518084526020808501945080840160005b838110156136195781516001600160a01b0316875295820195908201906001016135f4565b509495945050505050565b600081518084526020808501945080840160005b8381101561361957815187529582019590820190600101613638565b600060018060a01b0380861683528460208401526060604084015280845116606084015250602083015160a060808401526136936101008401826135e0565b90506040840151605f19808584030160a08601526136b18383613624565b925060608601519150808584030160c08601526136ce8383613624565b925060808601519150808584030160e0860152506136ec82826135e0565b979650505050505050565b600060018060a01b038086168352846020840152606060408401528084511660608401525060208301516060608084015261373560c0840182613624565b90506040840151605f198483030160a08501526136ec82826135e0565b600060018060a01b038086168352602085818501526060604085015281855116606085015280850151915060a06080850152613792610100850183613624565b91506040850151605f19808685030160a08701526137b08483613624565b935060608701519150808685030160c08701526137cd84836135e0565b608088015187820390920160e088015281518082529184019450600092508301905b8083101561381357845161ffff1682529383019360019290920191908301906137ef565b5098975050505050505050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561078357610783613820565b600060018060a01b0380861683528460208401526060604084015280845116606084015250602083015160808084015261388660e0840182613624565b90506040840151605f19808584030160a08601526138a48383613624565b925060608601519150808584030160c0860152506136ec8282613624565b602081526000610dfc6020830184613081565b600181811c908216806138e957607f821691505b60208210810361390957634e487b7160e01b600052602260045260246000fd5b50919050565b8281526040602082015260018060a01b038251166040820152600060208301516080606084015261394360c0840182613624565b90506040840151603f19808584030160808601526139618383613624565b925060608601519150808584030160a08601525061397f82826135e0565b9695505050505050565b8181038181111561078357610783613820565b60018060a01b0384168152826020820152606060408201526139ca6060820183516001600160a01b03169052565b600060208301516101008060808501526139e8610160850183613624565b91506040850151605f19808685030160a0870152613a068483613624565b935060608701519150808685030160c0870152613a238483613624565b935060808701519150808685030160e087015250613a418382613624565b92505060a0850151818501525060c0840151613a696101208501826001600160a01b03169052565b5060e084015161ffff81166101408501525095945050505050565b600080600060608486031215613a9957600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052603260045260246000fd5b600060018201613ada57613ada613820565b5060010190565b600060018060a01b0380861683528460208401526060604084015280845116606084015250602083015160606080840152613b1f60c0840182613624565b90506040840151605f198483030160a08501526136ec8282613624565b600060208284031215613b4e57600080fd5b5051919050565b600082613b7257634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615613b9157613b91613820565b50029056fea2646970667358221220bf13109ac32312ef7f4fc820ff900c72df32d18516e9ca51cf41a0abd6107a1164736f6c63430008100033",
"sourceMap": "2499:24490:143:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26036:338;;;;;;:::i;:::-;;:::i;:::-;;;470:14:174;;463:22;445:41;;433:2;418:18;26036:338:143;;;;;;;;12490:517;;;;;;:::i;:::-;;:::i;:::-;;19866:119;19957:20;;19866:119;;;964:25:174;;;952:2;937:18;19866:119:143;818:177:174;7969:471:143;;;;;;:::i;:::-;;:::i;13767:463::-;;;;;;:::i;:::-;;:::i;24714:164::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;;3670:33:174;;;3652:52;;3640:2;3625:18;24714:164:143;3508:202:174;22812:219:143;;;;;;:::i;:::-;;:::i;6352:599::-;;;;;;:::i;:::-;;:::i;15634:636::-;;;;;;:::i;:::-;;:::i;21899:185::-;;;;;;:::i;:::-;;:::i;17619:247::-;;;;;;:::i;:::-;;:::i;19386:182::-;;;:::i;:::-;;;;;;;:::i;14238:506::-;;;;;;:::i;:::-;;:::i;19576:172::-;;;:::i;4161:1924::-;;;;;;:::i;:::-;;:::i;6959:670::-;;;;;;:::i;:::-;;:::i;18755:307::-;;;;;;:::i;:::-;;:::i;17522:89::-;17596:7;;-1:-1:-1;;;17596:7:143;;;;17522:89;;13015:574;;;;;;:::i;:::-;;:::i;20541:613::-;;;;;;:::i;:::-;;:::i;18242:125::-;;;;;;:::i;:::-;;:::i;18546:201::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;23289:184::-;;;;;;:::i;:::-;;:::i;17874:138::-;17968:15;;17985:18;;17874:138;;;;15869:25:174;;;15925:2;15910:18;;15903:34;;;;15842:18;17874:138:143;15695:248:174;21520:168:143;;;;;;:::i;:::-;;:::i;775:43:144:-;;;;;-1:-1:-1;;;;;775:43:144;;;;;;-1:-1:-1;;;;;16140:32:174;;;16122:51;;16110:2;16095:18;775:43:144;15948:231:174;22246:285:143;;;;;;:::i;:::-;22379:4;22478:20;;;:9;:20;;;;;12792:9:123;12836:12;12824:24;;12823:31;;;12875:12;12863:24;;12862:31;;;12914:15;12902:27;;12901:34;;;12956:24;12944:36;;;12943:43;;;22246:285:143;;;;;16416:14:174;;16409:22;16391:41;;16475:14;;16468:22;16463:2;16448:18;;16441:50;16534:14;;16527:22;16507:18;;;16500:50;;;;16593:14;16586:22;16581:2;16566:18;;16559:50;16378:3;16363:19;22246:285:143;16184:431:174;9593:790:143;;;;;;:::i;:::-;;:::i;8448:526::-;;;;;;:::i;:::-;;:::i;24173:280::-;;;;;;:::i;:::-;24257:7;24308:20;;;:9;:20;;;;;;;;5332:9:123;5331:77;;;;;;;;;2658:2;10891:75;;;;;;24173:280:143;15061:565;;;;;;:::i;:::-;;:::i;23481:201::-;;;;;;:::i;:::-;;:::i;25608:213::-;;;;;;:::i;:::-;;:::i;17086:365::-;;;;;;:::i;:::-;;:::i;10475:896::-;;;;;;:::i;:::-;;:::i;23913:252::-;;;;;;:::i;:::-;;:::i;:::-;;;;22484:25:174;;;22540:2;22525:18;;22518:34;;;;22568:18;;;22561:34;22472:2;22457:18;23913:252:143;22282:319:174;3273:173:143;;;;;;:::i;:::-;;:::i;19070:308::-;;;:::i;:::-;;;;;;;:::i;16682:203::-;;;;;;:::i;:::-;;:::i;11544:443::-;;;;;;:::i;:::-;;:::i;21162:164::-;;;;;;:::i;:::-;;:::i;23690:213::-;;;;;;:::i;:::-;;:::i;16447:227::-;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;;16632:20:143;;;:9;:20;;;;;16625:41;;;;;;;;;;;;16447:227;;;;23743:13:174;;23725:32;;23713:2;23698:18;16447:227:143;23495:268:174;25143:175:143;;;;;;:::i;:::-;-1:-1:-1;;;25143:175:143;;;;;;;;18112:122;18210:16;;-1:-1:-1;;;;;18210:16:143;18112:122;;11995:487;;;;;;:::i;:::-;;:::i;26036:338::-;26122:4;-1:-1:-1;;;;;;26159:61:143;;-1:-1:-1;;;26159:61:143;;:138;;-1:-1:-1;;;;;;;26237:60:143;;-1:-1:-1;;;26237:60:143;26159:138;:207;;;-1:-1:-1;;;;;;;26314:52:143;;-1:-1:-1;;;26314:52:143;26159:207;26139:227;26036:338;-1:-1:-1;;26036:338:143:o;12490:517::-;2505:21:20;:19;:21::i;:::-;3622:16:143::1;:14;:16::i;:::-;12692:11:::2;:28;12735:16;;;;;;;;;-1:-1:-1::0;;;;;12735:16:143::2;12766:9;12790:198;;;;;;;;12853:12;:10;:12::i;:::-;-1:-1:-1::0;;;;;12790:198:143;;::::2;::::0;;::::2;::::0;;::::2;::::0;;;;;;;;;;;;;;;;;12692:307;;-1:-1:-1;;;;;;12692:307:143::2;::::0;;;;;;25942:15:174;;;12692:307:143::2;::::0;::::2;25924:34:174::0;25974:18;;;25967:34;;;;26041:13;;26037:22;;;26017:18;;;26010:50;26102:15;;26096:22;26076:18;;;26069:50;26162:15;;;26156:22;26135:19;;;26128:51;26222:15;26216:22;26195:19;;;26188:51;25858:19;;12692:307:143::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;2547:20:20::0;1787:1;3053:7;:22;2873:209;2547:20;12490:517:143;;;:::o;7969:471::-;2505:21:20;:19;:21::i;:::-;3622:16:143::1;:14;:16::i;:::-;8168:11:::2;:27;8210:9;8234:187;;;;;;;;8296:12;:10;:12::i;:::-;-1:-1:-1::0;;;;;8234:187:143;;::::2;::::0;;::::2;::::0;;::::2;::::0;;;;;;;;;;;;::::2;::::0;;;;;8168:264;;-1:-1:-1;;;;;;8168:264:143::2;::::0;;;;;;::::2;::::0;::::2;26561:25:174::0;;;;26664:13;;26660:22;;26640:18;;;26633:50;26725:15;;;26719:22;26699:18;;;26692:50;26784:15;;26778:22;26758:18;;;26751:50;26848:15;;26842:22;26838:31;26817:19;;;26810:60;26533:19;;8168:264:143::2;26250:626:174::0;13767:463:143;2505:21:20;:19;:21::i;:::-;3622:16:143::1;:14;:16::i;:::-;13945:14:::2;:29;13989:16;;;;;;;;;-1:-1:-1::0;;;;;13989:16:143::2;14020:9;14044:167;;;;;;;;14105:12;:10;:12::i;:::-;-1:-1:-1::0;;;;;14044:167:143;;::::2;::::0;;::::2;::::0;;::::2;::::0;;;;;::::2;::::0;;;;;13945:277;;-1:-1:-1;;;;;;13945:277:143::2;::::0;;;;;;27300:15:174;;;13945:277:143::2;::::0;::::2;27282:34:174::0;27332:18;;;27325:34;;;;27399:13;;27395:22;;27375:18;;;27368:50;27460:15;;;27454:22;27434:18;;;27427:50;27524:15;27518:22;27514:31;27493:19;;;27486:60;27216:19;;13945:277:143::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;2547:20:20::0;1787:1;3053:7;:22;2873:209;2547:20;13767:463:143;;:::o;24714:164::-;-1:-1:-1;;;24714:164:143;;;;;;;:::o;22812:219::-;3539:12;:10;:12::i;:::-;-1:-1:-1;;;;;3501:50:143;:16;;;;;;;;;-1:-1:-1;;;;;3501:16:143;-1:-1:-1;;;;;3501:32:143;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3501:50:143;;3493:65;;;;-1:-1:-1;;;3493:65:143;;;;;;;:::i;:::-;;;;;;;;;22969:20:::1;::::0;;;:9:::1;:20;::::0;;;;;:40:::1;;:54:::0;;-1:-1:-1;;;;;;22969:54:143::1;-1:-1:-1::0;;;;;22969:54:143;;::::1;::::0;;;::::1;::::0;;22812:219::o;6352:599::-;2505:21:20;:19;:21::i;:::-;3622:16:143::1;:14;:16::i;:::-;6588:11:::2;:26;6629:16;;;;;;;;;-1:-1:-1::0;;;;;6629:16:143::2;6660:9;6684:248;;;;;;;;6745:12;:10;:12::i;:::-;-1:-1:-1::0;;;;;6684:248:143;;::::2;::::0;;::::2;::::0;;::::2;::::0;;;;;;;;;;;;::::2;::::0;;;;;;;;::::2;::::0;;::::2;::::0;;;;;6588:355;;-1:-1:-1;;;;;;6588:355:143::2;::::0;;;;;;28657:15:174;;;6588:355:143::2;::::0;::::2;28639:34:174::0;28689:18;;;28682:34;;;;28756:13;;28752:22;;28732:18;;;28725:50;28817:15;;;28811:22;28791:18;;;28784:50;28877:15;;28871:22;28850:19;;;28843:51;28941:15;;28935:22;28931:31;28910:19;;;28903:60;29010:16;29004:23;29000:36;28979:19;;;28972:65;28573:19;;6588:355:143::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;2547:20:20::0;1787:1;3053:7;:22;2873:209;2547:20;6352:599:143;;;;:::o;15634:636::-;2505:21:20;:19;:21::i;:::-;3622:16:143::1;:14;:16::i;:::-;15911:14:::2;:30;15956:16;;;;;;;;;-1:-1:-1::0;;;;;15956:16:143::2;15987:9;16011:240;;;;;;;;16073:12;:10;:12::i;:::-;-1:-1:-1::0;;;;;16011:240:143::2;;;;;16112:6;;16011:240;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;::::0;;;;-1:-1:-1;;;16011:240:143;;;-1:-1:-1;16011:240:143::2;::::0;;::::2;::::0;;::::2;::::0;;;;;;;;;;;;;::::2;::::0;;;16146:7;;;;;;16011:240;::::2;::::0;16146:7;;16011:240;16146:7;16011:240;::::2;;::::0;::::2;::::0;;;;-1:-1:-1;;;16011:240:143;;;-1:-1:-1;16011:240:143::2;::::0;;::::2;::::0;;::::2;::::0;;;;;;;;;;;;;::::2;::::0;;;16183:9;;;;;;16011:240;::::2;::::0;16183:9;;16011:240;16183:9;16011:240;::::2;;::::0;::::2;::::0;;;;-1:-1:-1;;;16011:240:143;;;-1:-1:-1;16011:240:143::2;::::0;;::::2;::::0;;::::2;::::0;;;;;;;;;;;;;::::2;::::0;;;16224:11;;;;;;16011:240;::::2;::::0;16224:11;;16011:240;16224:11;16011:240;::::2;;::::0;::::2;::::0;;;;-1:-1:-1;;;16011:240:143;;-1:-1:-1;15911:351:143::2;::::0;-1:-1:-1;;;;;;15911:351:143::2;::::0;;;;;;::::2;::::0;;;;::::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;2547:20:20::0;1787:1;3053:7;:22;2873:209;2547:20;15634:636:143;;;;;;;;:::o;21899:185::-;21998:7;22025:20;;;:9;:20;;;;;:51;;22071:4;22025:45;:51::i;:::-;22018:58;21899:185;-1:-1:-1;;;21899:185:143:o;17619:247::-;3539:12;:10;:12::i;:::-;-1:-1:-1;;;;;3501:50:143;:16;;;;;;;;;-1:-1:-1;;;;;3501:16:143;-1:-1:-1;;;;;3501:32:143;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3501:50:143;;3493:65;;;;-1:-1:-1;;;3493:65:143;;;;;;;:::i;:::-;17729:15:::1;:27:::0;;;17767:18:::1;:33:::0;;;17816:42:::1;::::0;;15869:25:174;;;15925:2;15910:18;;15903:34;;;17816:42:143::1;::::0;15842:18:174;17816:42:143::1;;;;;;;;17619:247:::0;;:::o;19386:182::-;19492:16;19534:26;19527:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19527:33:143;;;;;;;;;;;;;;;;;;;;;;;19386:182;:::o;14238:506::-;2505:21:20;:19;:21::i;:::-;3622:16:143::1;:14;:16::i;:::-;14445:14:::2;:34;14494:16;;;;;;;;;-1:-1:-1::0;;;;;14494:16:143::2;14525:9;14549:176;;;;;;;;14615:12;:10;:12::i;:::-;-1:-1:-1::0;;;;;14549:176:143::2;;;;;14657:9;;14549:176;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;::::0;;;;-1:-1:-1;;;14549:176:143;;;-1:-1:-1;14549:176:143::2;::::0;;::::2;::::0;;::::2;::::0;;;;;;;;;;;;;::::2;::::0;;;14698:11;;;;;;14549:176;::::2;::::0;14698:11;;14549:176;14698:11;14549:176;::::2;;::::0;::::2;::::0;;;;-1:-1:-1;;;14549:176:143;;-1:-1:-1;14445:291:143::2;::::0;-1:-1:-1;;;;;;14445:291:143::2;::::0;;;;;;::::2;::::0;;;;::::2;;;:::i;19576:172::-:0;19677:16;19719:21;19712:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19712:28:143;;;;;;;;;;;;;;;;;;;;;;19576:172;:::o;4161:1924::-;4421:7;3539:12;:10;:12::i;:::-;-1:-1:-1;;;;;3501:50:143;:16;;;;;;;;;-1:-1:-1;;;;;3501:16:143;-1:-1:-1;;;;;3501:32:143;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3501:50:143;;3493:65;;;;-1:-1:-1;;;3493:65:143;;;;;;;:::i;6959:670::-;2505:21:20;:19;:21::i;:::-;3622:16:143::1;:14;:16::i;:::-;7247:11:::2;:31;7293:16;;;;;;;;;-1:-1:-1::0;;;;;7293:16:143::2;7324:9;7348:262;;;;;;;;7414:12;:10;:12::i;:::-;-1:-1:-1::0;;;;;7348:262:143::2;;;;;7454:7;;7348:262;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;::::0;;;;-1:-1:-1;;;7348:262:143;;;-1:-1:-1;7348:262:143::2;::::0;;::::2;::::0;;::::2;::::0;;;;;;;;;;;;;::::2;::::0;;;7493:10;;;;;;7348:262;::::2;::::0;7493:10;;7348:262;7493:10;7348:262;::::2;;::::0;::::2;::::0;;;;-1:-1:-1;;;7348:262:143;;;-1:-1:-1;7348:262:143::2;::::0;;::::2;::::0;;::::2;::::0;;;;;;;;;;;;;::::2;::::0;;;7536:11;;;;;;7348:262;::::2;::::0;7536:11;;7348:262;7536:11;7348:262;::::2;;::::0;::::2;::::0;;;;-1:-1:-1;;;7348:262:143;;;-1:-1:-1;7348:262:143::2;::::0;;::::2;::::0;;::::2;::::0;;;;;;;;;;;;;::::2;::::0;;;7581:13;;;;;;7348:262;::::2;::::0;7581:13;;7348:262;7581:13;7348:262;::::2;;::::0;::::2;::::0;;;;-1:-1:-1;;;7348:262:143;;-1:-1:-1;7247:374:143::2;::::0;-1:-1:-1;;;;;;7247:374:143::2;::::0;;;;;;::::2;::::0;;;;::::2;;;:::i;18755:307::-:0;-1:-1:-1;;;;;18999:23:143;;;18966:7;18999:23;;;:11;:23;;;;;;;;:30;;;;;;;;;;;18966:7;19030:23;19043:10;19030;:23;:::i;:::-;18999:55;;;;;;;;;;;;18992:62;;18755:307;;;;;;:::o;13015:574::-;2505:21:20;:19;:21::i;:::-;3622:16:143::1;:14;:16::i;:::-;13258:11:::2;:33;13306:16;;;;;;;;;-1:-1:-1::0;;;;;13306:16:143::2;13337:9;13361:209;;;;;;;;13429:12;:10;:12::i;:::-;-1:-1:-1::0;;;;;13361:209:143::2;;;;;13471:9;;13361:209;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;::::0;;;;-1:-1:-1;;;13361:209:143;;;-1:-1:-1;13361:209:143::2;::::0;;::::2;::::0;;::::2;::::0;;;;;;;;;;;;;::::2;::::0;;;13508:7;;;;;;13361:209;::::2;::::0;13508:7;;13361:209;13508:7;13361:209;::::2;;::::0;::::2;::::0;;;;-1:-1:-1;;;13361:209:143;;;-1:-1:-1;13361:209:143::2;::::0;;::::2;::::0;;::::2;::::0;;;;;;;;;;;;;::::2;::::0;;;13545:9;;;;;;13361:209;::::2;::::0;13545:9;;13361:209;13545:9;13361:209;::::2;;::::0;::::2;::::0;;;;-1:-1:-1;;;13361:209:143;;-1:-1:-1;13258:323:143::2;::::0;-1:-1:-1;;;;;;13258:323:143::2;::::0;;;;;;::::2;::::0;;;;::::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;2547:20:20::0;1787:1;3053:7;:22;2873:209;2547:20;13015:574:143;;;;;;:::o;20541:613::-;3622:16;:14;:16::i;:::-;20936:33:::1;20972:20:::0;;;:9:::1;:20;::::0;;;;21027:21:::1;::::0;::::1;::::0;-1:-1:-1;;;;;21027:21:143::1;21011:12;:10;:12::i;:::-;-1:-1:-1::0;;;;;21011:37:143::1;;21050:34;;;;;;;;;;;;;-1:-1:-1::0;;;21050:34:143::1;;::::0;21003:82:::1;;;;;-1:-1:-1::0;;;21003:82:143::1;;;;;;;;:::i;21098:47::-;20824:330;20541:613:::0;;;;;;:::o;18242:125::-;3539:12;:10;:12::i;:::-;-1:-1:-1;;;;;3501:50:143;:16;;;;;;;;;-1:-1:-1;;;;;3501:16:143;-1:-1:-1;;;;;3501:32:143;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3501:50:143;;3493:65;;;;-1:-1:-1;;;3493:65:143;;;;;;;:::i;:::-;18333:20:::1;:26:::0;18242:125::o;18546:201::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18719:20:143;;;;:9;:20;;;;;;;;;18712:27;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18712:27:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;18712:27:143;;;-1:-1:-1;;18712:27:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18712:27:143;;;;;;;-1:-1:-1;;;18712:27:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18546:201;-1:-1:-1;;18546:201:143:o;23289:184::-;3539:12;:10;:12::i;:::-;-1:-1:-1;;;;;3501:50:143;:16;;;;;;;;;-1:-1:-1;;;;;3501:16:143;-1:-1:-1;;;;;3501:32:143;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3501:50:143;;3493:65;;;;-1:-1:-1;;;3493:65:143;;;;;;;:::i;:::-;23410:20:::1;::::0;;;:9:::1;:20;::::0;;;;;:55;23289:184::o;21520:168::-;21613:7;21640:20;;;:9;:20;;;;;:40;;:38;:40::i;9593:790::-;2505:21:20;:19;:21::i;:::-;3622:16:143::1;:14;:16::i;:::-;9910:11:::2;:25;9950:16;;;;;;;;;-1:-1:-1::0;;;;;9950:16:143::2;9981:9;10005:359;;;;;;;;10065:12;:10;:12::i;:::-;-1:-1:-1::0;;;;;10005:359:143;;::::2;::::0;;::::2;::::0;;::::2;::::0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::2;::::0;;;;;;;;::::2;::::0;;::::2;::::0;;;;;9910:465;;-1:-1:-1;;;;;;9910:465:143;;;;;;36394:15:174;;;9910:465:143::2;::::0;::::2;36376:34:174::0;36426:18;;;36419:34;;;;36493:13;;36489:22;;36469:18;;;36462:50;36554:15;;;36548:22;36528:18;;;36521:50;36614:15;;;36608:22;36587:19;;;36580:51;36674:15;;;36668:22;36647:19;;;36640:51;36734:16;;36728:23;36707:19;;;36700:52;36795:16;;36789:23;36768:19;;;36761:52;36860:16;;36854:23;36850:32;36829:19;;;36822:61;36930:16;36924:23;36920:36;36899:19;;;36892:65;36310:19;;9910:465:143::2;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;2547:20:20::0;1787:1;3053:7;:22;2873:209;8448:526:143;2505:21:20;:19;:21::i;:::-;3622:16:143::1;:14;:16::i;:::-;8686:11:::2;:32;8733:9;8757:198;;;;;;;;8824:12;:10;:12::i;:::-;-1:-1:-1::0;;;;;8757:198:143::2;;;;;8864:7;;8757:198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;::::0;;;;-1:-1:-1;;;8757:198:143;;;-1:-1:-1;8757:198:143::2;::::0;;::::2;::::0;;::::2;::::0;;;;;;;;;;;;;::::2;::::0;;;8902:10;;;;;;8757:198;::::2;::::0;8902:10;;8757:198;8902:10;8757:198;::::2;;::::0;::::2;::::0;;;;-1:-1:-1;;;8757:198:143;;;-1:-1:-1;8757:198:143::2;::::0;;::::2;::::0;;::::2;::::0;;;;;;;;;;;;;::::2;::::0;;;8936:3;;;;;;8757:198;::::2;::::0;8936:3;;8757:198;8936:3;8757:198;::::2;;::::0;::::2;::::0;;;;-1:-1:-1;;;8757:198:143;;-1:-1:-1;8686:280:143::2;::::0;-1:-1:-1;;;;;;8686:280:143::2;::::0;;;;;;::::2;::::0;;;::::2;;;:::i;15061:565::-:0;2505:21:20;:19;:21::i;:::-;3622:16:143::1;:14;:16::i;:::-;15285:14:::2;:25;15325:16;;;;;;;;;-1:-1:-1::0;;;;;15325:16:143::2;15356:9;15380:227;;;;;;;;15437:12;:10;:12::i;:::-;-1:-1:-1::0;;;;;15380:227:143;;::::2;::::0;;;;::::2;;::::0;;::::2;::::0;;;;;;;;;;;;;;;;;;;;::::2;::::0;;;;;15285:333;;-1:-1:-1;;;;;;15285:333:143::2;::::0;;;;;;38408:15:174;;;15285:333:143::2;::::0;::::2;38390:34:174::0;38440:18;;;38433:34;;;;38507:13;;38503:22;;38483:18;;;38476:50;38572:15;;;38566:22;38562:31;;38542:18;;;38535:59;38637:15;;38631:22;38610:19;;;38603:51;38697:15;;;38691:22;38670:19;;;38663:51;38761:16;38755:23;38751:32;38730:19;;;38723:61;38324:19;;15285:333:143::2;37997:793:174::0;23481:201:143;3539:12;:10;:12::i;:::-;-1:-1:-1;;;;;3501:50:143;:16;;;;;;;;;-1:-1:-1;;;;;3501:16:143;-1:-1:-1;;;;;3501:32:143;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3501:50:143;;3493:65;;;;-1:-1:-1;;;3493:65:143;;;;;;;:::i;:::-;23605:20:::1;::::0;;;:9:::1;:20;::::0;;;;;;:34:::1;;::::0;23597:77;;-1:-1:-1;;;23597:77:143;;-1:-1:-1;;;;;16140:32:174;;;23597:77:143::1;::::0;::::1;16122:51:174::0;23605:34:143;;::::1;::::0;23597:68:::1;::::0;16095:18:174;;23597:77:143::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;25608:213:::0;25775:37;;;;;;;;;;;-1:-1:-1;;;25775:37:143;;;;25768:45;;-1:-1:-1;;;25768:45:143;;25749:6;;25768:45;;;;;:::i;17086:365::-;3539:12;:10;:12::i;:::-;-1:-1:-1;;;;;3501:50:143;:16;;;;;;;;;-1:-1:-1;;;;;3501:16:143;-1:-1:-1;;;;;3501:32:143;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3501:50:143;;3493:65;;;;-1:-1:-1;;;3493:65:143;;;;;;;:::i;:::-;17164:7:::1;::::0;::::1;-1:-1:-1::0;;;17164:7:143;;::::1;;:14;;::::0;::::1;;;17160:284;;17191:7;:13:::0;;-1:-1:-1;;17191:13:143::1;-1:-1:-1::0;;;17191:13:143;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;;::::1;17219:7:::0;::::1;;17215:218;;;17261:15;17243;:33:::0;17296:8:::1;::::0;::::1;::::0;;;::::1;17086:365:::0;:::o;17215:218::-:1;17376:15;::::0;17358:33:::1;::::0;:15:::1;:33;:::i;:::-;17337:18;:54:::0;17411:10:::1;::::0;::::1;::::0;;;::::1;17215:218;17086:365:::0;:::o;10475:896::-;2505:21:20;:19;:21::i;:::-;3622:16:143::1;:14;:16::i;:::-;10843:48:::2;10894:339;;;;;;;;10955:12;:10;:12::i;:::-;-1:-1:-1::0;;;;;10894:339:143::2;;;;;10991:7;;10894:339;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;::::0;;;;-1:-1:-1;;;10894:339:143;;;-1:-1:-1;10894:339:143::2;::::0;;::::2;::::0;;::::2;::::0;;;;;;;;;;;;;::::2;::::0;;;11023:8;;;;;;10894:339;::::2;::::0;11023:8;;10894:339;11023:8;10894:339;::::2;;::::0;::::2;::::0;;;;-1:-1:-1;;;10894:339:143;;;-1:-1:-1;10894:339:143::2;::::0;;::::2;::::0;;::::2;::::0;;;;;;;;;;;;;::::2;::::0;;;11059:11;;;;;;10894:339;::::2;::::0;11059:11;;10894:339;11059:11;10894:339;::::2;;::::0;::::2;::::0;;;;-1:-1:-1;;;10894:339:143;;;-1:-1:-1;10894:339:143::2;::::0;;::::2;::::0;;::::2;::::0;;;;;;;;;;;;;::::2;::::0;;;11097:10;;;;;;10894:339;::::2;::::0;11097:10;;10894:339;11097:10;10894:339;::::2;;::::0;::::2;::::0;;;;-1:-1:-1;;;10894:339:143;;;-1:-1:-1;10894:339:143::2;::::0;::::2;::::0;;;-1:-1:-1;;;;;10894:339:143;;::::2;::::0;;;;;;;;::::2;::::0;::::2;::::0;;;;;;;;11291:16:::2;::::0;11246:117;;-1:-1:-1;;;11246:117:143;;10843:390;;-1:-1:-1;11246:11:143::2;::::0;:30:::2;::::0;:117:::2;::::0;11291:16:::2;::::0;11322:9:::2;::::0;10843:390;;11246:117:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;10832:539;2547:20:20::0;1787:1;3053:7;:22;2873:209;2547:20;10475:896:143;;;;;;;;;;;:::o;23913:252::-;24081:16;;24030:127;;-1:-1:-1;;;24030:127:143;;-1:-1:-1;;;;;24081:16:143;;;24030:127;;;41099:51:174;24113:9:143;41166:18:174;;;41159:34;41209:18;;;41202:34;;;23985:7:143;;;;;;24030:14;;:36;;41072:18:174;;24030:127:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24023:134;;;;;;23913:252;;;;;:::o;3273:173::-;3268:19:18;3291:13;;;;;;3290:14;;3336:34;;;;-1:-1:-1;3354:12:18;;3369:1;3354:12;;;;:16;3336:34;3335:108;;;-1:-1:-1;3415:4:18;1476:19:32;:23;;;3376:66:18;;-1:-1:-1;3425:12:18;;;;;:17;3376:66;3314:201;;;;-1:-1:-1;;;3314:201:18;;41760:2:174;3314:201:18;;;41742:21:174;41799:2;41779:18;;;41772:30;41838:34;41818:18;;;41811:62;-1:-1:-1;;;41889:18:174;;;41882:44;41943:19;;3314:201:18;41558:410:174;3314:201:18;3525:12;:16;;-1:-1:-1;;3525:16:18;3540:1;3525:16;;;3551:65;;;;3585:13;:20;;-1:-1:-1;;3585:20:18;;;;;3551:65;3371:3:143::1;3348:20;:26:::0;3386:16:::1;:52:::0;;-1:-1:-1;;;;;;3386:52:143::1;-1:-1:-1::0;;;;;3386:52:143;::::1;;::::0;;3636:99:18;;;;3686:5;3670:21;;-1:-1:-1;;3670:21:18;;;3710:14;;-1:-1:-1;42125:36:174;;3710:14:18;;42113:2:174;42098:18;3710:14:18;41973:194:174;19070:308:143;19166:29;19243:14;;19229:29;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19229:29:143;;19214:44;;19274:6;19269:102;19290:14;;19286:1;:18;19269:102;;;19344:12;;;;:9;:12;;;;;:15;;;19326;;:12;;19354:1;;19326:15;;;;;;:::i;:::-;;;;;;;;;;:33;19306:3;;;;:::i;:::-;;;;19269:102;;;;19070:308;:::o;16682:203::-;3539:12;:10;:12::i;:::-;-1:-1:-1;;;;;3501:50:143;:16;;;;;;;;;-1:-1:-1;;;;;3501:16:143;-1:-1:-1;;;;;3501:32:143;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3501:50:143;;3493:65;;;;-1:-1:-1;;;3493:65:143;;;;;;;:::i;:::-;16825:20:::1;::::0;;;:9:::1;:20;::::0;;;;;:35:::1;;:52:::0;16682:203::o;11544:443::-;2505:21:20;:19;:21::i;:::-;3622:16:143::1;:14;:16::i;:::-;11717:11:::2;:24;11756:16;;;;;;;;;-1:-1:-1::0;;;;;11756:16:143::2;11787:9;11811:157;;;;;;;;11870:12;:10;:12::i;:::-;-1:-1:-1::0;;;;;11811:157:143;;::::2;::::0;;::::2;::::0;;::::2;::::0;;;;;;;;;;11717:262;;-1:-1:-1;;;;;;11717:262:143::2;::::0;;;;;;42859:15:174;;;11717:262:143::2;::::0;::::2;42841:34:174::0;42891:18;;;42884:34;;;;42958:13;;42954:22;42934:18;;;42927:50;43019:15;;;43013:22;42993:18;;;42986:50;43079:15;43073:22;43052:19;;;43045:51;42775:19;;11717:262:143::2;42444:658:174::0;21162:164:143;21249:7;21276:20;;;:9;:20;;;;;:42;;:40;:42::i;23690:213::-;3539:12;:10;:12::i;:::-;-1:-1:-1;;;;;3501:50:143;:16;;;;;;;;;-1:-1:-1;;;;;3501:16:143;-1:-1:-1;;;;;3501:32:143;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3501:50:143;;3493:65;;;;-1:-1:-1;;;3493:65:143;;;;;;;:::i;:::-;23820:20:::1;::::0;;;:9:::1;:20;::::0;;;;;;:34:::1;;::::0;23812:83;;-1:-1:-1;;;23812:83:143;;::::1;::::0;::::1;964:25:174::0;;;-1:-1:-1;;;;;23820:34:143;;::::1;::::0;23812:71:::1;::::0;937:18:174;;23812:83:143::1;818:177:174::0;11995:487:143;2505:21:20;:19;:21::i;:::-;3622:16:143::1;:14;:16::i;:::-;12196:11:::2;:29;12240:16;;;;;;;;;-1:-1:-1::0;;;;;12240:16:143::2;12271:9;12295:168;;;;;;;;12359:12;:10;:12::i;:::-;-1:-1:-1::0;;;;;12295:168:143::2;;;;;12401:9;;12295:168;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;::::0;;;;-1:-1:-1;;;12295:168:143;;;-1:-1:-1;12295:168:143::2;::::0;;::::2;::::0;;::::2;::::0;;;;;;;;;;;;;::::2;::::0;;;12438:7;;;;;;12295:168;::::2;::::0;12438:7;;12295:168;12438:7;12295:168;::::2;;::::0;::::2;::::0;;;;-1:-1:-1;;;12295:168:143;;-1:-1:-1;12196:278:143::2;::::0;-1:-1:-1;;;;;;12196:278:143::2;::::0;;;;;;::::2;::::0;;;;::::2;;;:::i;2580:287:20:-:0;1830:1;2712:7;;:19;2704:63;;;;-1:-1:-1;;;2704:63:20;;44239:2:174;2704:63:20;;;44221:21:174;44278:2;44258:18;;;44251:30;44317:33;44297:18;;;44290:61;44368:18;;2704:63:20;44037:355:174;2704:63:20;1830:1;2842:7;:18;2580:287::o;3672:97:143:-;3732:7;;3741:19;;;;;;;;;;;;-1:-1:-1;;;3741:19:143;;;;;-1:-1:-1;;;3732:7:143;;;;3731:8;3723:38;;;;-1:-1:-1;;;3723:38:143;;;;;;;;:::i;26576:410::-;26638:14;26669:30;26688:10;26669:18;:30::i;:::-;26665:314;;;-1:-1:-1;;;26874:14:143;26870:23;26857:37;26853:2;26849:46;26576:410;:::o;26665:314::-;-1:-1:-1;929:10:33;;26576:410:143:o;5577:213:130:-;5727:30;;;;;5710:72;;-1:-1:-1;;;5710:72:130;;-1:-1:-1;;;;;16140:32:174;;;5710:72:130;;;16122:51:174;;;;5683:7:130;;5727:30;;;;5710:66;;16095:18:174;;5710:72:130;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;4788:609::-;4912:27;;;;4873:7;;4912:27;;;;;5012:15;4992:36;;;4988:197;;-1:-1:-1;;5146:27:130;;;-1:-1:-1;;;5146:27:130;;-1:-1:-1;;;;;5146:27:130;;4788:609::o;4988:197::-;5322:27;;;;5255:33;;;;5197:17;;5217:143;;-1:-1:-1;;;;;;;;5322:27:130;;;;;;;5217:83;;5255:33;;5290:9;5217:37;:83::i;:::-;:90;;:143::i;3802:592::-;3928:27;;;;3889:7;;3928:27;;;;;4028:15;4008:36;;;4004:192;;-1:-1:-1;;4162:22:130;;;-1:-1:-1;;;;;4162:22:130;;3802:592::o;4004:192::-;4324:22;;;;4262:28;;;;4208:17;;4228:129;;-1:-1:-1;;;;;4324:22:130;;;;4228:74;;4262:28;4292:9;4228:33;:74::i;26415:153:143:-;26522:16;;:38;;;-1:-1:-1;;;26522:38:143;;;;26485:4;;-1:-1:-1;;;;;26522:16:143;;:36;;:38;;;;;;;;;;;;;;:16;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;26509:51:143;:9;-1:-1:-1;;;;;26509:51:143;;26502:58;;26415:153;;;:::o;2721:200:133:-;2823:7;2845:71;2873:4;2879:19;2900:15;2845:27;:71::i;1291:126:135:-;1352:7;1379:30;524:4;1379:21;1391:8;:1;1397;1391:5;:8::i;:::-;571:7;577:1;524:4;571:7;:::i;:::-;1379:11;;:21::i;:::-;:25;;:30::i;565:303:133:-;663:7;;734:48;753:28;;;734:15;:48;:::i;:::-;709:73;-1:-1:-1;524:4:135;239:8:133;798:23;806:14;798:4;:23;:::i;:::-;797:44;;;;:::i;:::-;796:67;;;;:::i;1609:827::-;1753:7;;1813:49;1833:28;;;1813:16;:49;:::i;:::-;1799:63;;1873:3;1880:1;1873:8;1869:52;;524:4:135;1891:23:133;;;;;1869:52;1927:19;1949:7;1955:1;1949:3;:7;:::i;:::-;1927:29;;1963:19;1991:1;1985:3;:7;:21;;2005:1;1985:21;;;1995:7;2001:1;1995:3;:7;:::i;:::-;1963:43;-1:-1:-1;2013:21:133;2037:23;239:8;2037:4;:23;:::i;:::-;2013:47;-1:-1:-1;2067:20:133;2090:35;2013:47;;2090:20;:35::i;:::-;2067:58;-1:-1:-1;2131:22:133;2156:34;2067:58;2176:13;2156:19;:34::i;:::-;2131:59;-1:-1:-1;2197:18:133;2259:1;2242:12;2219:19;2226:11;2219:3;:19;:::i;:::-;:36;;;;:::i;:::-;2218:42;;;;:::i;:::-;2197:63;-1:-1:-1;2266:17:133;2345:1;2326:14;2310:11;2287:19;2294:11;2287:3;:19;:::i;:::-;:35;;;;:::i;:::-;:54;;;;:::i;:::-;2286:60;;;;:::i;:::-;2266:80;-1:-1:-1;2266:80:133;2406:10;2380:21;2397:3;2380:13;:21;:::i;:::-;2360:42;;524:4:135;2360:42:133;:::i;:::-;:57;;;;:::i;:::-;:71;;;;:::i;:::-;2353:78;1609:827;-1:-1:-1;;;;;;;;;;;;1609:827:133:o;3465:96:71:-;3523:7;3549:5;3553:1;3549;:5;:::i;2755:96::-;2813:7;2839:5;2843:1;2839;:5;:::i;3850:96::-;3908:7;3934:5;3938:1;3934;:5;:::i;14:286:174:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:174;;209:43;;199:71;;266:1;263;256:12;497:316;574:6;582;590;643:2;631:9;622:7;618:23;614:32;611:52;;;659:1;656;649:12;611:52;-1:-1:-1;;682:23:174;;;752:2;737:18;;724:32;;-1:-1:-1;803:2:174;788:18;;;775:32;;497:316;-1:-1:-1;497:316:174:o;1000:131::-;-1:-1:-1;;;;;1075:31:174;;1065:42;;1055:70;;1121:1;1118;1111:12;1136:134;1204:20;;1233:31;1204:20;1233:31;:::i;:::-;1136:134;;;:::o;1275:383::-;1352:6;1360;1368;1421:2;1409:9;1400:7;1396:23;1392:32;1389:52;;;1437:1;1434;1427:12;1389:52;1473:9;1460:23;1450:33;;1530:2;1519:9;1515:18;1502:32;1492:42;;1584:2;1573:9;1569:18;1556:32;1597:31;1622:5;1597:31;:::i;:::-;1647:5;1637:15;;;1275:383;;;;;:::o;1663:315::-;1731:6;1739;1792:2;1780:9;1771:7;1767:23;1763:32;1760:52;;;1808:1;1805;1798:12;1760:52;1844:9;1831:23;1821:33;;1904:2;1893:9;1889:18;1876:32;1917:31;1942:5;1917:31;:::i;:::-;1967:5;1957:15;;;1663:315;;;;;:::o;1983:127::-;2044:10;2039:3;2035:20;2032:1;2025:31;2075:4;2072:1;2065:15;2099:4;2096:1;2089:15;2115:718;2157:5;2210:3;2203:4;2195:6;2191:17;2187:27;2177:55;;2228:1;2225;2218:12;2177:55;2264:6;2251:20;2290:18;2327:2;2323;2320:10;2317:36;;;2333:18;;:::i;:::-;2408:2;2402:9;2376:2;2462:13;;-1:-1:-1;;2458:22:174;;;2482:2;2454:31;2450:40;2438:53;;;2506:18;;;2526:22;;;2503:46;2500:72;;;2552:18;;:::i;:::-;2592:10;2588:2;2581:22;2627:2;2619:6;2612:18;2673:3;2666:4;2661:2;2653:6;2649:15;2645:26;2642:35;2639:55;;;2690:1;2687;2680:12;2639:55;2754:2;2747:4;2739:6;2735:17;2728:4;2720:6;2716:17;2703:54;2801:1;2794:4;2789:2;2781:6;2777:15;2773:26;2766:37;2821:6;2812:15;;;;;;2115:718;;;;:::o;2838:665::-;2933:6;2941;2949;2957;3010:3;2998:9;2989:7;2985:23;2981:33;2978:53;;;3027:1;3024;3017:12;2978:53;3066:9;3053:23;3085:31;3110:5;3085:31;:::i;:::-;3135:5;-1:-1:-1;3192:2:174;3177:18;;3164:32;3205:33;3164:32;3205:33;:::i;:::-;3257:7;-1:-1:-1;3311:2:174;3296:18;;3283:32;;-1:-1:-1;3366:2:174;3351:18;;3338:32;3393:18;3382:30;;3379:50;;;3425:1;3422;3415:12;3379:50;3448:49;3489:7;3480:6;3469:9;3465:22;3448:49;:::i;:::-;3438:59;;;2838:665;;;;;;;:::o;3715:159::-;3782:20;;3842:6;3831:18;;3821:29;;3811:57;;3864:1;3861;3854:12;3879:456;3964:6;3972;3980;3988;4041:3;4029:9;4020:7;4016:23;4012:33;4009:53;;;4058:1;4055;4048:12;4009:53;4094:9;4081:23;4071:33;;4151:2;4140:9;4136:18;4123:32;4113:42;;4205:2;4194:9;4190:18;4177:32;4218:31;4243:5;4218:31;:::i;:::-;4268:5;-1:-1:-1;4292:37:174;4325:2;4310:18;;4292:37;:::i;:::-;4282:47;;3879:456;;;;;;;:::o;4340:367::-;4403:8;4413:6;4467:3;4460:4;4452:6;4448:17;4444:27;4434:55;;4485:1;4482;4475:12;4434:55;-1:-1:-1;4508:20:174;;4551:18;4540:30;;4537:50;;;4583:1;4580;4573:12;4537:50;4620:4;4612:6;4608:17;4596:29;;4680:3;4673:4;4663:6;4660:1;4656:14;4648:6;4644:27;4640:38;4637:47;4634:67;;;4697:1;4694;4687:12;4634:67;4340:367;;;;;:::o;4712:1404::-;4906:6;4914;4922;4930;4938;4946;4954;4962;5015:3;5003:9;4994:7;4990:23;4986:33;4983:53;;;5032:1;5029;5022:12;4983:53;5072:9;5059:23;5101:18;5142:2;5134:6;5131:14;5128:34;;;5158:1;5155;5148:12;5128:34;5197:70;5259:7;5250:6;5239:9;5235:22;5197:70;:::i;:::-;5286:8;;-1:-1:-1;5171:96:174;-1:-1:-1;5374:2:174;5359:18;;5346:32;;-1:-1:-1;5390:16:174;;;5387:36;;;5419:1;5416;5409:12;5387:36;5458:72;5522:7;5511:8;5500:9;5496:24;5458:72;:::i;:::-;5549:8;;-1:-1:-1;5432:98:174;-1:-1:-1;5637:2:174;5622:18;;5609:32;;-1:-1:-1;5653:16:174;;;5650:36;;;5682:1;5679;5672:12;5650:36;5721:72;5785:7;5774:8;5763:9;5759:24;5721:72;:::i;:::-;5812:8;;-1:-1:-1;5695:98:174;-1:-1:-1;5900:2:174;5885:18;;5872:32;;-1:-1:-1;5916:16:174;;;5913:36;;;5945:1;5942;5935:12;5913:36;;5984:72;6048:7;6037:8;6026:9;6022:24;5984:72;:::i;:::-;4712:1404;;;;-1:-1:-1;4712:1404:174;;-1:-1:-1;4712:1404:174;;;;;;6075:8;-1:-1:-1;;;4712:1404:174:o;6121:248::-;6189:6;6197;6250:2;6238:9;6229:7;6225:23;6221:32;6218:52;;;6266:1;6263;6256:12;6218:52;-1:-1:-1;;6289:23:174;;;6359:2;6344:18;;;6331:32;;-1:-1:-1;6121:248:174:o;6483:658::-;6654:2;6706:21;;;6776:13;;6679:18;;;6798:22;;;6625:4;;6654:2;6877:15;;;;6851:2;6836:18;;;6625:4;6920:195;6934:6;6931:1;6928:13;6920:195;;;6999:13;;-1:-1:-1;;;;;6995:39:174;6983:52;;7090:15;;;;7055:12;;;;7031:1;6949:9;6920:195;;;-1:-1:-1;7132:3:174;;6483:658;-1:-1:-1;;;;;;6483:658:174:o;7146:773::-;7268:6;7276;7284;7292;7345:2;7333:9;7324:7;7320:23;7316:32;7313:52;;;7361:1;7358;7351:12;7313:52;7401:9;7388:23;7430:18;7471:2;7463:6;7460:14;7457:34;;;7487:1;7484;7477:12;7457:34;7526:70;7588:7;7579:6;7568:9;7564:22;7526:70;:::i;:::-;7615:8;;-1:-1:-1;7500:96:174;-1:-1:-1;7703:2:174;7688:18;;7675:32;;-1:-1:-1;7719:16:174;;;7716:36;;;7748:1;7745;7738:12;7716:36;;7787:72;7851:7;7840:8;7829:9;7825:24;7787:72;:::i;:::-;7146:773;;;;-1:-1:-1;7878:8:174;-1:-1:-1;;;;7146:773:174:o;7924:815::-;8047:6;8055;8063;8071;8124:3;8112:9;8103:7;8099:23;8095:33;8092:53;;;8141:1;8138;8131:12;8092:53;8181:9;8168:23;8214:18;8206:6;8203:30;8200:50;;;8246:1;8243;8236:12;8200:50;8269:22;;8325:3;8307:16;;;8303:26;8300:46;;;8342:1;8339;8332:12;8300:46;8365:2;-1:-1:-1;8417:2:174;8402:18;;8389:32;8430:31;8389:32;8430:31;:::i;:::-;8480:5;-1:-1:-1;8537:2:174;8522:18;;8509:32;8550:33;8509:32;8550:33;:::i;:::-;8602:7;-1:-1:-1;8661:2:174;8646:18;;8633:32;8674:33;8633:32;8674:33;:::i;:::-;7924:815;;;;-1:-1:-1;7924:815:174;;-1:-1:-1;;7924:815:174:o;10152:525::-;10238:6;10246;10254;10262;10315:3;10303:9;10294:7;10290:23;10286:33;10283:53;;;10332:1;10329;10322:12;10283:53;10371:9;10358:23;10390:31;10415:5;10390:31;:::i;:::-;10440:5;-1:-1:-1;10497:2:174;10482:18;;10469:32;10510:33;10469:32;10510:33;:::i;:::-;10152:525;;10562:7;;-1:-1:-1;;;;10616:2:174;10601:18;;10588:32;;10667:2;10652:18;10639:32;;10152:525::o;10682:1088::-;10840:6;10848;10856;10864;10872;10880;10933:2;10921:9;10912:7;10908:23;10904:32;10901:52;;;10949:1;10946;10939:12;10901:52;10989:9;10976:23;11018:18;11059:2;11051:6;11048:14;11045:34;;;11075:1;11072;11065:12;11045:34;11114:70;11176:7;11167:6;11156:9;11152:22;11114:70;:::i;:::-;11203:8;;-1:-1:-1;11088:96:174;-1:-1:-1;11291:2:174;11276:18;;11263:32;;-1:-1:-1;11307:16:174;;;11304:36;;;11336:1;11333;11326:12;11304:36;11375:72;11439:7;11428:8;11417:9;11413:24;11375:72;:::i;:::-;11466:8;;-1:-1:-1;11349:98:174;-1:-1:-1;11554:2:174;11539:18;;11526:32;;-1:-1:-1;11570:16:174;;;11567:36;;;11599:1;11596;11589:12;11567:36;;11638:72;11702:7;11691:8;11680:9;11676:24;11638:72;:::i;:::-;10682:1088;;;;-1:-1:-1;10682:1088:174;;-1:-1:-1;10682:1088:174;;11729:8;;10682:1088;-1:-1:-1;;;10682:1088:174:o;11775:663::-;11879:6;11887;11895;11903;11911;11919;11972:3;11960:9;11951:7;11947:23;11943:33;11940:53;;;11989:1;11986;11979:12;11940:53;12025:9;12012:23;12002:33;;12085:2;12074:9;12070:18;12057:32;12098:31;12123:5;12098:31;:::i;:::-;12148:5;-1:-1:-1;12205:2:174;12190:18;;12177:32;12218:33;12177:32;12218:33;:::i;:::-;11775:663;;;;-1:-1:-1;12270:7:174;;12324:2;12309:18;;12296:32;;-1:-1:-1;12375:3:174;12360:19;;12347:33;;12427:3;12412:19;;;12399:33;;-1:-1:-1;11775:663:174;-1:-1:-1;;11775:663:174:o;12443:180::-;12502:6;12555:2;12543:9;12534:7;12530:23;12526:32;12523:52;;;12571:1;12568;12561:12;12523:52;-1:-1:-1;12594:23:174;;12443:180;-1:-1:-1;12443:180:174:o;12729:423::-;12771:3;12809:5;12803:12;12836:6;12831:3;12824:19;12861:1;12871:162;12885:6;12882:1;12879:13;12871:162;;;12947:4;13003:13;;;12999:22;;12993:29;12975:11;;;12971:20;;12964:59;12900:12;12871:162;;;12875:3;13078:1;13071:4;13062:6;13057:3;13053:16;13049:27;13042:38;13141:4;13134:2;13130:7;13125:2;13117:6;13113:15;13109:29;13104:3;13100:39;13096:50;13089:57;;;12729:423;;;;:::o;13382:2308::-;13563:2;13552:9;13545:21;13575:76;13647:2;13636:9;13632:18;13623:6;13617:13;12709:12;12697:25;;12628:96;13575:76;13526:4;13698:2;13690:6;13686:15;13680:22;13711:52;13759:2;13748:9;13744:18;13730:12;-1:-1:-1;;;;;6440:31:174;6428:44;;6374:104;13711:52;-1:-1:-1;13812:2:174;13800:15;;13794:22;-1:-1:-1;;;;;6440:31:174;;13875:2;13860:18;;6428:44;-1:-1:-1;13928:2:174;13916:15;;13910:22;-1:-1:-1;;;;;6440:31:174;;13991:3;13976:19;;6428:44;-1:-1:-1;14045:3:174;14033:16;;14027:23;-1:-1:-1;;;;;6440:31:174;;14109:3;14094:19;;6428:44;-1:-1:-1;14163:3:174;14151:16;;14145:23;-1:-1:-1;;;;;6440:31:174;;14227:3;14212:19;;6428:44;-1:-1:-1;14281:3:174;14269:16;;14263:23;-1:-1:-1;;;;;6440:31:174;;14345:3;14330:19;;6428:44;14295:55;14399:3;14391:6;14387:16;14381:23;14423:6;14448:3;14487:2;14482;14471:9;14467:18;14460:30;14513:54;14562:3;14551:9;14547:19;14531:14;14513:54;:::i;:::-;14592:15;;;14586:22;14627:3;14646:18;;;14639:30;;;;14694:15;;14688:22;14729:3;14748:18;;;14741:30;;;;14796:15;;14790:22;14831:3;14850:18;;;14843:30;;;;14898:15;;14892:22;14934:3;14953:19;;;14946:31;;;;15014:16;;15008:23;14499:68;;-1:-1:-1;15051:3:174;15063:55;15098:19;;;15008:23;-1:-1:-1;;;;;13223:46:174;13211:59;;13157:119;15063:55;15155:16;;15149:23;;-1:-1:-1;15192:3:174;15204:55;15239:19;;;15149:23;-1:-1:-1;;;;;13223:46:174;13211:59;;13157:119;15204:55;15296:16;;15290:23;;-1:-1:-1;15333:3:174;15345:55;15380:19;;;15290:23;-1:-1:-1;;;;;13223:46:174;13211:59;;13157:119;15345:55;15438:16;;15432:23;;-1:-1:-1;15475:3:174;15487:56;15523:19;;;15432:23;-1:-1:-1;;;;;13223:46:174;13211:59;;13157:119;15487:56;15581:16;;;15575:23;13357:12;13346:24;15642:18;;13334:37;;;;-1:-1:-1;15678:6:174;;-1:-1:-1;13382:2308:174:o;16620:663::-;16732:6;16740;16748;16756;16764;16772;16780;16833:3;16821:9;16812:7;16808:23;16804:33;16801:53;;;16850:1;16847;16840:12;16801:53;16886:9;16873:23;16863:33;;16943:2;16932:9;16928:18;16915:32;16905:42;;16994:2;16983:9;16979:18;16966:32;16956:42;;17045:2;17034:9;17030:18;17017:32;17007:42;;17096:3;17085:9;17081:19;17068:33;17058:43;;17151:3;17140:9;17136:19;17123:33;17165:31;17190:5;17165:31;:::i;:::-;17215:5;-1:-1:-1;17239:38:174;17272:3;17257:19;;17239:38;:::i;:::-;17229:48;;16620:663;;;;;;;;;;:::o;18381:525::-;18467:6;18475;18483;18491;18544:3;18532:9;18523:7;18519:23;18515:33;18512:53;;;18561:1;18558;18551:12;18512:53;18600:9;18587:23;18619:31;18644:5;18619:31;:::i;:::-;18669:5;-1:-1:-1;18721:2:174;18706:18;;18693:32;;-1:-1:-1;18772:2:174;18757:18;;18744:32;;-1:-1:-1;18828:2:174;18813:18;;18800:32;18841:33;18800:32;18841:33;:::i;18911:1499::-;19071:6;19079;19087;19095;19103;19111;19119;19127;19180:3;19168:9;19159:7;19155:23;19151:33;19148:53;;;19197:1;19194;19187:12;19148:53;19236:9;19223:23;19255:31;19280:5;19255:31;:::i;:::-;19305:5;-1:-1:-1;19362:2:174;19347:18;;19334:32;19375:33;19334:32;19375:33;:::i;:::-;19427:7;-1:-1:-1;19485:2:174;19470:18;;19457:32;19508:18;19538:14;;;19535:34;;;19565:1;19562;19555:12;19535:34;19604:70;19666:7;19657:6;19646:9;19642:22;19604:70;:::i;:::-;19693:8;;-1:-1:-1;19578:96:174;-1:-1:-1;19781:2:174;19766:18;;19753:32;;-1:-1:-1;19797:16:174;;;19794:36;;;19826:1;19823;19816:12;19794:36;19865:72;19929:7;19918:8;19907:9;19903:24;19865:72;:::i;:::-;19956:8;;-1:-1:-1;19839:98:174;-1:-1:-1;20044:3:174;20029:19;;20016:33;;-1:-1:-1;20061:16:174;;;20058:36;;;20090:1;20087;20080:12;20058:36;20128:8;20117:9;20113:24;20103:34;;20175:7;20168:4;20164:2;20160:13;20156:27;20146:55;;20197:1;20194;20187:12;20146:55;20237:2;20224:16;20263:2;20255:6;20252:14;20249:34;;;20279:1;20276;20269:12;20249:34;20324:7;20319:2;20310:6;20306:2;20302:15;20298:24;20295:37;20292:57;;;20345:1;20342;20335:12;20292:57;20376:2;20372;20368:11;20358:21;;20398:6;20388:16;;;;;18911:1499;;;;;;;;;;;:::o;20415:273::-;20471:6;20524:2;20512:9;20503:7;20499:23;20495:32;20492:52;;;20540:1;20537;20530:12;20492:52;20579:9;20566:23;20632:5;20625:13;20618:21;20611:5;20608:32;20598:60;;20654:1;20651;20644:12;20693:1584;20913:6;20921;20929;20937;20945;20953;20961;20969;20977;20985;20993:7;21047:3;21035:9;21026:7;21022:23;21018:33;21015:53;;;21064:1;21061;21054:12;21015:53;21087:18;21145:2;21133:9;21120:23;21117:31;21114:51;;;21161:1;21158;21151:12;21114:51;21200:87;21279:7;21266:9;21253:23;21242:9;21238:39;21200:87;:::i;:::-;21306:8;;-1:-1:-1;21333:8:174;-1:-1:-1;21384:2:174;21369:18;;21356:32;21353:40;-1:-1:-1;21350:60:174;;;21406:1;21403;21396:12;21350:60;21445:96;21533:7;21526:2;21515:9;21511:18;21498:32;21487:9;21483:48;21445:96;:::i;:::-;21560:8;;-1:-1:-1;21587:8:174;-1:-1:-1;21638:2:174;21623:18;;21610:32;21607:40;-1:-1:-1;21604:60:174;;;21660:1;21657;21650:12;21604:60;21699:96;21787:7;21780:2;21769:9;21765:18;21752:32;21741:9;21737:48;21699:96;:::i;:::-;21814:8;;-1:-1:-1;21841:8:174;-1:-1:-1;21892:2:174;21877:18;;21864:32;21861:40;-1:-1:-1;21858:60:174;;;21914:1;21911;21904:12;21858:60;;21953:96;22041:7;22034:2;22023:9;22019:18;22006:32;21995:9;21991:48;21953:96;:::i;:::-;22068:8;;-1:-1:-1;22095:8:174;-1:-1:-1;22150:3:174;22135:19;;22122:33;;-1:-1:-1;22174:39:174;22208:3;22193:19;;22174:39;:::i;:::-;22164:49;;22233:38;22266:3;22255:9;22251:19;22233:38;:::i;:::-;22222:49;;20693:1584;;;;;;;;;;;;;;:::o;22606:247::-;22665:6;22718:2;22706:9;22697:7;22693:23;22689:32;22686:52;;;22734:1;22731;22724:12;22686:52;22773:9;22760:23;22792:31;22817:5;22792:31;:::i;22858:632::-;23029:2;23081:21;;;23151:13;;23054:18;;;23173:22;;;23000:4;;23029:2;23252:15;;;;23226:2;23211:18;;;23000:4;23295:169;23309:6;23306:1;23303:13;23295:169;;;23370:13;;23358:26;;23439:15;;;;23404:12;;;;23331:1;23324:9;23295:169;;23768:734;23872:6;23880;23888;23896;23904;23957:3;23945:9;23936:7;23932:23;23928:33;23925:53;;;23974:1;23971;23964:12;23925:53;24013:9;24000:23;24032:31;24057:5;24032:31;:::i;:::-;24082:5;-1:-1:-1;24139:2:174;24124:18;;24111:32;24152:33;24111:32;24152:33;:::i;:::-;24204:7;-1:-1:-1;24258:2:174;24243:18;;24230:32;;-1:-1:-1;24309:2:174;24294:18;;24281:32;;-1:-1:-1;24364:3:174;24349:19;;24336:33;24392:18;24381:30;;24378:50;;;24424:1;24421;24414:12;24378:50;24447:49;24488:7;24479:6;24468:9;24464:22;24447:49;:::i;:::-;24437:59;;;23768:734;;;;;;;;:::o;27557:251::-;27627:6;27680:2;27668:9;27659:7;27655:23;27651:32;27648:52;;;27696:1;27693;27686:12;27648:52;27728:9;27722:16;27747:31;27772:5;27747:31;:::i;27813:325::-;28015:2;27997:21;;;28054:1;28034:18;;;28027:29;-1:-1:-1;;;28087:2:174;28072:18;;28065:32;28129:2;28114:18;;27813:325::o;29048:461::-;29101:3;29139:5;29133:12;29166:6;29161:3;29154:19;29192:4;29221:2;29216:3;29212:12;29205:19;;29258:2;29251:5;29247:14;29279:1;29289:195;29303:6;29300:1;29297:13;29289:195;;;29368:13;;-1:-1:-1;;;;;29364:39:174;29352:52;;29424:12;;;;29459:15;;;;29400:1;29318:9;29289:195;;;-1:-1:-1;29500:3:174;;29048:461;-1:-1:-1;;;;;29048:461:174:o;29514:435::-;29567:3;29605:5;29599:12;29632:6;29627:3;29620:19;29658:4;29687:2;29682:3;29678:12;29671:19;;29724:2;29717:5;29713:14;29745:1;29755:169;29769:6;29766:1;29763:13;29755:169;;;29830:13;;29818:26;;29864:12;;;;29899:15;;;;29791:1;29784:9;29755:169;;29954:1340;30264:4;30310:1;30306;30301:3;30297:11;30293:19;30351:2;30343:6;30339:15;30328:9;30321:34;30391:6;30386:2;30375:9;30371:18;30364:34;30434:2;30429;30418:9;30414:18;30407:30;30492:2;30483:6;30477:13;30473:22;30468:2;30457:9;30453:18;30446:50;;30543:2;30535:6;30531:15;30525:22;30584:4;30578:3;30567:9;30563:19;30556:33;30612:63;30670:3;30659:9;30655:19;30641:12;30612:63;:::i;:::-;30598:77;;30724:2;30716:6;30712:15;30706:22;30751:2;30747:7;30820:2;30808:9;30800:6;30796:22;30792:31;30785:4;30774:9;30770:20;30763:61;30847:52;30892:6;30876:14;30847:52;:::i;:::-;30833:66;;30948:2;30940:6;30936:15;30930:22;30908:44;;31017:2;31005:9;30997:6;30993:22;30989:31;30983:3;30972:9;30968:19;30961:60;31044:52;31089:6;31073:14;31044:52;:::i;:::-;31030:66;;31145:3;31137:6;31133:16;31127:23;31105:45;;31215:2;31203:9;31195:6;31191:22;31187:31;31181:3;31170:9;31166:19;31159:60;;31236:52;31281:6;31265:14;31236:52;:::i;:::-;31228:60;29954:1340;-1:-1:-1;;;;;;;29954:1340:174:o;31299:929::-;31617:4;31663:1;31659;31654:3;31650:11;31646:19;31704:2;31696:6;31692:15;31681:9;31674:34;31744:6;31739:2;31728:9;31724:18;31717:34;31787:2;31782;31771:9;31767:18;31760:30;31845:2;31836:6;31830:13;31826:22;31821:2;31810:9;31806:18;31799:50;;31896:2;31888:6;31884:15;31878:22;31937:2;31931:3;31920:9;31916:19;31909:31;31963:63;32021:3;32010:9;32006:19;31992:12;31963:63;:::i;:::-;31949:77;;32075:2;32067:6;32063:15;32057:22;32148:2;32144:7;32132:9;32124:6;32120:22;32116:36;32110:3;32099:9;32095:19;32088:65;32170:52;32215:6;32199:14;32170:52;:::i;32233:1708::-;32551:4;32597:1;32593;32588:3;32584:11;32580:19;32638:2;32630:6;32626:15;32615:9;32608:34;32661:2;32699:6;32694:2;32683:9;32679:18;32672:34;32742:2;32737;32726:9;32722:18;32715:30;32800:2;32791:6;32785:13;32781:22;32776:2;32765:9;32761:18;32754:50;32851:2;32843:6;32839:15;32833:22;32813:42;;32892:4;32886:3;32875:9;32871:19;32864:33;32920:63;32978:3;32967:9;32963:19;32949:12;32920:63;:::i;:::-;32906:77;;33032:2;33024:6;33020:15;33014:22;33059:2;33055:7;33128:2;33116:9;33108:6;33104:22;33100:31;33093:4;33082:9;33078:20;33071:61;33155:52;33200:6;33184:14;33155:52;:::i;:::-;33141:66;;33256:2;33248:6;33244:15;33238:22;33216:44;;33325:2;33313:9;33305:6;33301:22;33297:31;33291:3;33280:9;33276:19;33269:60;33352:52;33397:6;33381:14;33352:52;:::i;:::-;33453:3;33441:16;;33435:23;33499:22;;;33495:31;;;33489:3;33474:19;;33467:60;33576:21;;33606:22;;;33682:23;;;;-1:-1:-1;33723:1:174;;-1:-1:-1;33644:15:174;;;33733:182;33747:6;33744:1;33741:13;33733:182;;;33812:13;;33827:6;33808:26;33796:39;;33890:15;;;;33769:1;33762:9;;;;;33855:12;;;;33733:182;;;-1:-1:-1;33932:3:174;32233:1708;-1:-1:-1;;;;;;;;32233:1708:174:o;33946:127::-;34007:10;34002:3;33998:20;33995:1;33988:31;34038:4;34035:1;34028:15;34062:4;34059:1;34052:15;34078:125;34143:9;;;34164:10;;;34161:36;;;34177:18;;:::i;34208:1154::-;34530:4;34576:1;34572;34567:3;34563:11;34559:19;34617:2;34609:6;34605:15;34594:9;34587:34;34657:6;34652:2;34641:9;34637:18;34630:34;34700:2;34695;34684:9;34680:18;34673:30;34758:2;34749:6;34743:13;34739:22;34734:2;34723:9;34719:18;34712:50;;34809:2;34801:6;34797:15;34791:22;34851:4;34844;34833:9;34829:20;34822:34;34879:63;34937:3;34926:9;34922:19;34908:12;34879:63;:::i;:::-;34865:77;;34991:2;34983:6;34979:15;34973:22;35018:2;35014:7;35086:2;35074:9;35066:6;35062:22;35058:31;35052:3;35041:9;35037:19;35030:60;35113:52;35158:6;35142:14;35113:52;:::i;:::-;35099:66;;35214:2;35206:6;35202:15;35196:22;35174:44;;35283:2;35271:9;35263:6;35259:22;35255:31;35249:3;35238:9;35234:19;35227:60;;35304:52;35349:6;35333:14;35304:52;:::i;35367:220::-;35516:2;35505:9;35498:21;35479:4;35536:45;35577:2;35566:9;35562:18;35554:6;35536:45;:::i;35592:380::-;35671:1;35667:12;;;;35714;;;35735:61;;35789:4;35781:6;35777:17;35767:27;;35735:61;35842:2;35834:6;35831:14;35811:18;35808:38;35805:161;;35888:10;35883:3;35879:20;35876:1;35869:31;35923:4;35920:1;35913:15;35951:4;35948:1;35941:15;35805:161;;35592:380;;;:::o;36968:1024::-;37271:6;37260:9;37253:25;37314:2;37309;37298:9;37294:18;37287:30;37389:1;37385;37380:3;37376:11;37372:19;37363:6;37357:13;37353:39;37348:2;37337:9;37333:18;37326:67;37234:4;37440:2;37432:6;37428:15;37422:22;37480:4;37475:2;37464:9;37460:18;37453:32;37508:63;37566:3;37555:9;37551:19;37537:12;37508:63;:::i;:::-;37494:77;;37620:2;37612:6;37608:15;37602:22;37647:2;37643:7;37716:2;37704:9;37696:6;37692:22;37688:31;37681:4;37670:9;37666:20;37659:61;37743:52;37788:6;37772:14;37743:52;:::i;:::-;37729:66;;37844:2;37836:6;37832:15;37826:22;37804:44;;37913:2;37901:9;37893:6;37889:22;37885:31;37879:3;37868:9;37864:19;37857:60;;37934:52;37979:6;37963:14;37934:52;:::i;:::-;37926:60;36968:1024;-1:-1:-1;;;;;;36968:1024:174:o;39003:128::-;39070:9;;;39091:11;;;39088:37;;;39105:18;;:::i;39136:1674::-;39518:1;39514;39509:3;39505:11;39501:19;39493:6;39489:32;39478:9;39471:51;39558:6;39553:2;39542:9;39538:18;39531:34;39601:2;39596;39585:9;39581:18;39574:30;39613:53;39662:2;39651:9;39647:18;39638:6;39632:13;-1:-1:-1;;;;;6440:31:174;6428:44;;6374:104;39613:53;39452:4;39713:2;39705:6;39701:15;39695:22;39736:6;39779:2;39773:3;39762:9;39758:19;39751:31;39805:63;39863:3;39852:9;39848:19;39834:12;39805:63;:::i;:::-;39791:77;;39917:2;39909:6;39905:15;39899:22;39944:2;39940:7;40012:2;40000:9;39992:6;39988:22;39984:31;39978:3;39967:9;39963:19;39956:60;40039:52;40084:6;40068:14;40039:52;:::i;:::-;40025:66;;40140:2;40132:6;40128:15;40122:22;40100:44;;40209:2;40197:9;40189:6;40185:22;40181:31;40175:3;40164:9;40160:19;40153:60;40236:52;40281:6;40265:14;40236:52;:::i;:::-;40222:66;;40337:3;40329:6;40325:16;40319:23;40297:45;;40407:2;40395:9;40387:6;40383:22;40379:31;40373:3;40362:9;40358:19;40351:60;;40434:52;40479:6;40463:14;40434:52;:::i;:::-;40420:66;;;40540:3;40532:6;40528:16;40522:23;40517:2;40506:9;40502:18;40495:51;;40595:3;40587:6;40583:16;40577:23;40609:55;40659:3;40648:9;40644:19;40628:14;-1:-1:-1;;;;;6440:31:174;6428:44;;6374:104;40609:55;-1:-1:-1;40713:3:174;40701:16;;40695:23;28219:6;28208:18;;40776:3;40761:19;;28196:31;-1:-1:-1;40798:6:174;39136:1674;-1:-1:-1;;;;;39136:1674:174:o;41247:306::-;41335:6;41343;41351;41404:2;41392:9;41383:7;41379:23;41375:32;41372:52;;;41420:1;41417;41410:12;41372:52;41449:9;41443:16;41433:26;;41499:2;41488:9;41484:18;41478:25;41468:35;;41543:2;41532:9;41528:18;41522:25;41512:35;;41247:306;;;;;:::o;42172:127::-;42233:10;42228:3;42224:20;42221:1;42214:31;42264:4;42261:1;42254:15;42288:4;42285:1;42278:15;42304:135;42343:3;42364:17;;;42361:43;;42384:18;;:::i;:::-;-1:-1:-1;42431:1:174;42420:13;;42304:135::o;43107:925::-;43421:4;43467:1;43463;43458:3;43454:11;43450:19;43508:2;43500:6;43496:15;43485:9;43478:34;43548:6;43543:2;43532:9;43528:18;43521:34;43591:2;43586;43575:9;43571:18;43564:30;43649:2;43640:6;43634:13;43630:22;43625:2;43614:9;43610:18;43603:50;;43700:2;43692:6;43688:15;43682:22;43741:2;43735:3;43724:9;43720:19;43713:31;43767:63;43825:3;43814:9;43810:19;43796:12;43767:63;:::i;:::-;43753:77;;43879:2;43871:6;43867:15;43861:22;43952:2;43948:7;43936:9;43928:6;43924:22;43920:36;43914:3;43903:9;43899:19;43892:65;43974:52;44019:6;44003:14;43974:52;:::i;44397:184::-;44467:6;44520:2;44508:9;44499:7;44495:23;44491:32;44488:52;;;44536:1;44533;44526:12;44488:52;-1:-1:-1;44559:16:174;;44397:184;-1:-1:-1;44397:184:174:o;44586:217::-;44626:1;44652;44642:132;;44696:10;44691:3;44687:20;44684:1;44677:31;44731:4;44728:1;44721:15;44759:4;44756:1;44749:15;44642:132;-1:-1:-1;44788:9:174;;44586:217::o;44808:168::-;44848:7;44914:1;44910;44906:6;44902:14;44899:1;44896:21;44891:1;44884:9;44877:17;44873:45;44870:71;;;44921:18;;:::i;:::-;-1:-1:-1;44961:9:174;;44808:168::o",
"linkReferences": {
"src/protocol/libraries/logic/BorrowLogic.sol": {
"BorrowLogic": [
{
"start": 1947,
"length": 20
},
{
"start": 4894,
"length": 20
},
{
"start": 6319,
"length": 20
},
{
"start": 8145,
"length": 20
},
{
"start": 9085,
"length": 20
},
{
"start": 9528,
"length": 20
}
]
},
"src/protocol/libraries/logic/LiquidateLogic.sol": {
"LiquidateLogic": [
{
"start": 2376,
"length": 20
},
{
"start": 3151,
"length": 20
},
{
"start": 3949,
"length": 20
},
{
"start": 6924,
"length": 20
},
{
"start": 8317,
"length": 20
}
]
},
"src/protocol/libraries/logic/SupplyLogic.sol": {
"SupplyLogic": [
{
"start": 2205,
"length": 20
},
{
"start": 2867,
"length": 20
},
{
"start": 4464,
"length": 20
},
{
"start": 6648,
"length": 20
}
]
}
}
},
"methodIdentifiers": {
"auction(uint256,address)": "118cfad3",
"batchAuction(uint256[],address[])": "34e69b62",
"batchBid(address[],uint256[],uint256[],address[])": "2684dd09",
"batchBorrow(uint256[],uint256[],uint256[],uint256[],uint256,address,uint16)": "c28cadf7",
"batchDeposit(uint256[],uint256[],address[],uint16[])": "4b33a967",
"batchRefinance(uint256[],uint256[],uint256[])": "621759de",
"batchRepay(uint256[],uint256[])": "ff7039c7",
"batchWithdraw(uint256[],uint256[],address[])": "9e97a156",
"bid(address,uint256,uint256,address)": "a7ff3b23",
"borrow(uint256,uint256,uint256,uint256,uint256,address,uint16)": "9c74daf8",
"deposit(uint256,uint256,address,uint16)": "1de8a7c2",
"executionDelegate()": "986c9b20",
"finalizeTransfer(uint256,address,address,uint256,uint256,uint256)": "6c130dc7",
"getAddressProvider()": "f8c68934",
"getAuctionConfiguration(uint256)": "a58497a5",
"getBorrowHealthFactor(uint256)": "c46a90f5",
"getInitializedAssets()": "3b4ecdb2",
"getInitializedCollaterals()": "31e884bb",
"getMaxNumberOfReserves()": "08ac08b9",
"getPausedTime()": "8fc42188",
"getReserve(uint256)": "77778db3",
"getReserveConfiguration(uint256)": "eadff055",
"getReserveFlags(uint256)": "993ff816",
"getReserveId(address,address,uint256,uint256)": "52120e23",
"getReserveNormalizedIncome(uint256)": "dcc5cded",
"getReserveNormalizedVariableDebt(uint256)": "9034c18c",
"getReserveUserStableRate(uint256,address)": "2e4e8eb4",
"getReservesList()": "d1946dbc",
"initReserve((address,string,string,uint256,uint256,address,string,string,uint8,address,string,string,address,string,string,address,string,string,address,uint256,address,address,uint256,uint256,uint256,string),address,address,address)": "45a64925",
"initialize(address)": "c4d66de8",
"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)": "bc197c81",
"onERC1155Received(address,address,uint256,uint256,bytes)": "f23a6e61",
"onERC721Received(address,address,uint256,bytes)": "150b7a02",
"paused()": "5c975abb",
"refinance(uint256,uint256,uint256)": "044df1f2",
"repay(uint256,uint256)": "d8aed145",
"setMaxNumberOfReserves(uint256)": "746c35a2",
"setPause(bool)": "bedb86fb",
"setPausedTime(uint256,uint256)": "2f923ff7",
"setReserveConfiguration(uint256,uint256)": "89a7245d",
"setReserveCreatorAddress(uint256,address)": "bbce5cf3",
"setReserveCreatorPercentage(uint256,uint256)": "e49c8a52",
"setReserveInterestRateAddress(uint256,address)": "19322775",
"setReserveMaxSupply(uint256,uint256)": "d6ee0f73",
"supportsInterface(bytes4)": "01ffc9a7",
"withdraw(uint256,uint256,address)": "0ad58d2f"
},
"rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"initiator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"reserveId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"borrowRate\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"borrowId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"referral\",\"type\":\"uint16\"}],\"name\":\"Borrow\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"initiator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"reserveId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"referalCode\",\"type\":\"uint16\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"reserveId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"borrowId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"paymentAsset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"paymentAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"}],\"name\":\"Liquidate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startTime\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"durationTime\",\"type\":\"uint256\"}],\"name\":\"PausedTimeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"initiator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"reserveId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"borrowId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountAdded\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountTaken\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"defaultFee\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"Refinanced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"initiator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"reserveId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"borrowId\",\"type\":\"uint256\"}],\"name\":\"Repay\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"initiator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"reserveId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"borrowId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"}],\"name\":\"auction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"borrowIds\",\"type\":\"uint256[]\"},{\"internalType\":\"address[]\",\"name\":\"onBehalfOfs\",\"type\":\"address[]\"}],\"name\":\"batchAuction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"assets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"borrowIds\",\"type\":\"uint256[]\"},{\"internalType\":\"address[]\",\"name\":\"onBehalfOfs\",\"type\":\"address[]\"}],\"name\":\"batchBid\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenValues\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"reserveIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"referralCode\",\"type\":\"uint16\"}],\"name\":\"batchBorrow\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"reserveIds\",\"type\":\"uint256[]\"},{\"internalType\":\"address[]\",\"name\":\"onBehalfOfs\",\"type\":\"address[]\"},{\"internalType\":\"uint16[]\",\"name\":\"referralCodes\",\"type\":\"uint16[]\"}],\"name\":\"batchDeposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"borrowIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"durations\",\"type\":\"uint256[]\"}],\"name\":\"batchRefinance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"borrowIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"batchRepay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"reserveIds\",\"type\":\"uint256[]\"},{\"internalType\":\"address[]\",\"name\":\"tos\",\"type\":\"address[]\"}],\"name\":\"batchWithdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"}],\"name\":\"bid\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"referralCode\",\"type\":\"uint16\"}],\"name\":\"borrow\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"referralCode\",\"type\":\"uint16\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"executionDelegate\",\"outputs\":[{\"internalType\":\"contract IExecutionDelegate\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"reserveId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceFromBefore\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceToBefore\",\"type\":\"uint256\"}],\"name\":\"finalizeTransfer\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAddressProvider\",\"outputs\":[{\"internalType\":\"contract IAddressProvider\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"reserveId\",\"type\":\"uint256\"}],\"name\":\"getAuctionConfiguration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"borrowId\",\"type\":\"uint256\"}],\"name\":\"getBorrowHealthFactor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getInitializedAssets\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getInitializedCollaterals\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMaxNumberOfReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPausedTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"reserveId\",\"type\":\"uint256\"}],\"name\":\"getReserve\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"data\",\"type\":\"uint256\"}],\"internalType\":\"struct DataTypes.ReserveConfigurationMap\",\"name\":\"configuration\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"fTokenAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stableDebtTokenAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"variableDebtTokenAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"interestRateAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"assetPriceFeed\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTokenSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minTokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"liquidityIndex\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"variableBorrowIndex\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"currentLiquidityRate\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"currentVariableBorrowRate\",\"type\":\"uint128\"},{\"internalType\":\"uint40\",\"name\":\"lastUpdateTimestamp\",\"type\":\"uint40\"}],\"internalType\":\"struct DataTypes.Reserve\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"reserveId\",\"type\":\"uint256\"}],\"name\":\"getReserveConfiguration\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"data\",\"type\":\"uint256\"}],\"internalType\":\"struct DataTypes.ReserveConfigurationMap\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"reserveId\",\"type\":\"uint256\"}],\"name\":\"getReserveFlags\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxTokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minTokenId\",\"type\":\"uint256\"}],\"name\":\"getReserveId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"reserveId\",\"type\":\"uint256\"}],\"name\":\"getReserveNormalizedIncome\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"reserveId\",\"type\":\"uint256\"}],\"name\":\"getReserveNormalizedVariableDebt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"reserveId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"getReserveUserStableRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getReservesList\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"reservesList\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"underlyingCollateral\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"underlyingCollateralName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"underlyingCollateralSymbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"underlyingMaxTokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"underlyingMinTokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"underlyingAsset\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"underlyingAssetName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"underlyingAssetSymbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"underlyingAssetDecimals\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"fTokenImpl\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"fTokenName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"fTokenSymbol\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"stableDebtTokenImpl\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"stableDebtTokenName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"stableDebtTokenSymbol\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"variableDebtTokenImpl\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"variableDebtTokenName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"variableDebtTokenSymbol\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"interestRateStrategy\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"baseLTV\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"treasury\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"creatorPercentage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auctionCallerPercentage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auctionCreatorPercentage\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"assetPriceFeed\",\"type\":\"string\"}],\"internalType\":\"struct ConfigTypes.InitReserveInput\",\"name\":\"input\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"fToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stableDebtToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"variableDebtToken\",\"type\":\"address\"}],\"name\":\"initReserve\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addressProvider\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"borrowId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"refinance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"borrowId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"repay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"setMaxNumberOfReserves\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"val\",\"type\":\"bool\"}],\"name\":\"setPause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"startTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"durationTime\",\"type\":\"uint256\"}],\"name\":\"setPausedTime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"reserveId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"configuration\",\"type\":\"uint256\"}],\"name\":\"setReserveConfiguration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"reserveId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"}],\"name\":\"setReserveCreatorAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"reserveId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"percentage\",\"type\":\"uint256\"}],\"name\":\"setReserveCreatorPercentage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"reserveId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"rateAddress\",\"type\":\"address\"}],\"name\":\"setReserveInterestRateAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"reserveId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTokenSupply\",\"type\":\"uint256\"}],\"name\":\"setReserveMaxSupply\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"FluidNFT\",\"details\":\"This is our protocol's point of access. - For Upgradeable DO NOT ADJUST inheritance order\",\"kind\":\"dev\",\"methods\":{\"auction(uint256,address)\":{\"params\":{\"borrowId\":\"The id of the borrow.\",\"onBehalfOf\":\"The wallet to receive the auction caller fee.\"}},\"batchBorrow(uint256[],uint256[],uint256[],uint256[],uint256,address,uint16)\":{\"details\":\"Stack too deep to be able to be able to pass arrays for all variables\"},\"bid(address,uint256,uint256,address)\":{\"params\":{\"amount\":\"The amount of ERC20 tokens to be paid.\",\"asset\":\"The asset contract address.\",\"borrowId\":\"The id of the defaulted borrow.\",\"onBehalfOf\":\"The wallet to receive the underlying NFT.\"}},\"borrow(uint256,uint256,uint256,uint256,uint256,address,uint16)\":{\"params\":{\"amount\":\"The amount of ERC20 tokens to be borrowed.\",\"duration\":\"The duration of the loan, 0 if open-ended\",\"onBehalfOf\":\"The address to receive the loan.\",\"referralCode\":\"Code used to register the integrator originated the operation, for potential rewards.\",\"reserveId\":\"The id of the reserve to borrow against. \",\"tokenId\":\"The tokenId of the ERC721 / ERC1155 token to be deposited. \",\"tokenValue\":\"The number of same-value tokens supplied (0 implies ERC721)\"}},\"deposit(uint256,uint256,address,uint16)\":{\"params\":{\"amount\":\"The amount of ERC20 tokens.\",\"onBehalfOf\":\"Where to credit the deposit.\",\"referralCode\":\"Any referral code.\",\"reserveId\":\"The id of the reserve.\"}},\"finalizeTransfer(uint256,address,address,uint256,uint256,uint256)\":{\"details\":\"Validates and finalizes an fToken transfer - Only callable by the overlying fToken of the `asset` \",\"params\":{\"amount\":\"The amount being transferred/withdrawn\",\"balanceFromBefore\":\"The fToken balance of the `from` user before the transfer\",\"balanceToBefore\":\"The fToken balance of the `to` user before the transfer\",\"from\":\"The user from which the fToken are transferred\",\"reserveId\":\"The id of the fToken reserve\",\"to\":\"The user receiving the fTokens\"}},\"getAddressProvider()\":{\"details\":\"Returns the cached AddressProvider connected to this contract*\"},\"getMaxNumberOfReserves()\":{\"details\":\"Returns the maximum number of reserves supported to be listed in this LendPool\"},\"getReserve(uint256)\":{\"details\":\"Returns the state and configuration of the reserve\",\"params\":{\"reserveId\":\"The id of the reserve\"},\"returns\":{\"_0\":\"The state of the reserve*\"}},\"getReserveConfiguration(uint256)\":{\"details\":\"Returns the configuration of the reserve\",\"params\":{\"reserveId\":\"The id of the reserve\"},\"returns\":{\"_0\":\"The configuration of the reserve*\"}},\"getReserveFlags(uint256)\":{\"details\":\"Returns the state of the resev\",\"params\":{\"reserveId\":\"The min id of the reserve\"},\"returns\":{\"_0\":\"The reserve user stable rate\"}},\"getReserveNormalizedVariableDebt(uint256)\":{\"details\":\"Returns the normalized variable debt per unit of asset\",\"params\":{\"reserveId\":\"The min id of the reserve\"},\"returns\":{\"_0\":\"The reserve normalized variable debt\"}},\"getReserveUserStableRate(uint256,address)\":{\"details\":\"Returns the reserve user stable rate\",\"params\":{\"reserveId\":\"The min id of the reserve\",\"user\":\"The address of the user\"},\"returns\":{\"_0\":\"The reserve user stable rate\"}},\"initReserve((address,string,string,uint256,uint256,address,string,string,uint8,address,string,string,address,string,string,address,string,string,address,uint256,address,address,uint256,uint256,uint256,string),address,address,address)\":{\"details\":\"Calls internal `_initReserve` function if modifiers are succeeded. \",\"params\":{\"fToken\":\"The derivative fToken address.\",\"input\":\"The init reserve input parameters.\",\"stableDebtToken\":\"The derivative stableDebtToken address.\",\"variableDebtToken\":\"The derivative variableDebtToken address.\"}},\"initialize(address)\":{\"details\":\"Function is invoked by the proxy contract when the LendingPool contract is added to the AddressProvider of the market. - Caching the address of the AddressProvider in order to reduce gas consumption on subsequent operations\",\"params\":{\"addressProvider\":\"The address of the AddressProvider*\"}},\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"An ERC1155 `safeBatchTransferFrom` will revert unless this Solidity selector is returned.\",\"returns\":{\"_0\":\"Always returns `IERC1155Receiver.onERC1155BatchReceived.selector`.\"}},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"details\":\"An ERC1155 `safeTransferFrom` will revert unless this Solidity selector is returned.\",\"returns\":{\"_0\":\"Always returns `IERC1155Receiver.onERC1155Received.selector`.\"}},\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"An ERC721 `safeTransferFrom` will revert unless this Solidity selector is returned.\",\"returns\":{\"_0\":\"Always returns `IERC721Receiver.onERC721Received.selector`.\"}},\"paused()\":{\"details\":\"Returns if the LendPool is paused\"},\"repay(uint256,uint256)\":{\"params\":{\"amount\":\"The amount of ERC20 tokens to be repaid.\",\"borrowId\":\"The id of the borrow to repay.\"}},\"setPause(bool)\":{\"details\":\"Set the _pause state of the pool - Only callable by the LendPoolConfigurator contract\",\"params\":{\"val\":\"`true` to pause the pool, `false` to un-pause it\"}},\"setReserveConfiguration(uint256,uint256)\":{\"details\":\"Sets the configuration bitmap of the reserve as a whole - Only callable by the Configurator contract\",\"params\":{\"configuration\":\"The new configuration bitmap*\",\"reserveId\":\"The min id of the reserve\"}},\"setReserveInterestRateAddress(uint256,address)\":{\"details\":\"Updates the address of the interest rate strategy contract - Only callable by the Configurator contract\",\"params\":{\"rateAddress\":\"The address of the interest rate strategy contract*\",\"reserveId\":\"The min id of the reserve\"}},\"supportsInterface(bytes4)\":{\"details\":\"Checks whether this contract implements the interface defined by `interfaceId`.\",\"params\":{\"_interfaceId\":\"Id of the interface\"},\"returns\":{\"_0\":\"true if this contract implements the interface\"}},\"withdraw(uint256,uint256,address)\":{\"params\":{\"amount\":\"The amount of ERC20 tokens.\",\"reserveId\":\"The reserve id.\",\"to\":\"The address that will receive the underlying, same as msg.sender if the user wants to receive to their wallet or different if the benefitiary is a different wallet\"}}},\"title\":\"Lending Pool contract for instant, permissionless NFT-backed loans\",\"version\":1},\"userdoc\":{\"events\":{\"Deposit(address,address,address,uint256,uint256,address,uint16)\":{\"notice\":\"Emitted when an asset deposit is made.\"},\"Withdraw(address,address,address,uint256,uint256,address)\":{\"notice\":\"Emitted when an asset withdraw is made.\"}},\"kind\":\"user\",\"methods\":{\"auction(uint256,address)\":{\"notice\":\"To trigger a liquidation auction\"},\"bid(address,uint256,uint256,address)\":{\"notice\":\"To purchase the underlying NFT of a defaulted borrow.\"},\"borrow(uint256,uint256,uint256,uint256,uint256,address,uint16)\":{\"notice\":\"External function to create a borrow position.\"},\"deposit(uint256,uint256,address,uint16)\":{\"notice\":\"Deposit assets into the lending pool.\"},\"initReserve((address,string,string,uint256,uint256,address,string,string,uint8,address,string,string,address,string,string,address,string,string,address,uint256,address,address,uint256,uint256,uint256,string),address,address,address)\":{\"notice\":\"Initializes a reserve.\"},\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"notice\":\"For the receiving of multiple ERC1155 tokens types to this contract address.\"},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"notice\":\"For the receiving of ERC1155 tokens to this contract address.\"},\"onERC721Received(address,address,uint256,bytes)\":{\"notice\":\"For the receiving of ERC721 tokens to this contract address.\"},\"repay(uint256,uint256)\":{\"notice\":\"To repay a borrow position.\"},\"withdraw(uint256,uint256,address)\":{\"notice\":\"Withdraw assets from the lending pool.\"}},\"notice\":\"Allows for the borrow/repay of loans and deposit/withdraw of assets.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/protocol/p2pool/LendingPool.sol\":\"LendingPool\"},\"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/chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol\":{\"keccak256\":\"0x6e6e4b0835904509406b070ee173b5bc8f677c19421b76be38aea3b1b3d30846\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3beaa37ee61e4ab615e250fbf01601ae481de843fd0ef55e6b44fd9d5fff8a7\",\"dweb:/ipfs/QmeZUVwd26LzK4Mfp8Zba5JbQNkZFfTzFu1A6FVMMZDg9c\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xe798cadb41e2da274913e4b3183a80f50fb057a42238fe8467e077268100ec27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://899f850f7df5a270bccfb765d70069959ca1c20d3a7381c1c3bda8a3ffee1935\",\"dweb:/ipfs/QmVdnAqwyX2L3nX2HDA5WKGtVBFyH1nKE9A1k7fZnPBkhP\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/security/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0x2b3005a0064cfc558bdf64b2bae94b565f4574a536aadd61c13838d4f2157790\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://622c3eb87563e71585c9f538d1a196fe2d154dcc5b8f335e8770a8acc95e1f3a\",\"dweb:/ipfs/QmSnDqJJLzv3mirjGB1vrk5X7hegFdS7BKpscpxyqj7sWu\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/IERC1155ReceiverUpgradeable.sol\":{\"keccak256\":\"0xffcb29612efb57efc8f0d4897deb5abaeac830022c59a3aa17446d698dbc856b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a4da6e241d1d8c2ef214c311e02c749f45b5e0dd8168c667bc8ee6f67dcf4ce\",\"dweb:/ipfs/QmdsKj5frsNS7ZCfJBm4XNfy6MueV9udBF2FiBxVXwxybG\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/IERC1155Upgradeable.sol\":{\"keccak256\":\"0x091a49ef99a2be002680781a10cc9dd74c0f348301ede5482c4ea625f79a8ffe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e037192cadfd20ad0f1b0c54a0c770a1ba551e7d0fcb6d3708e5ba352f88ded2\",\"dweb:/ipfs/QmTXwY6odV1ToDZAYxbbLKThe9M5PUWTmWBjwT776hH4qm\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol\":{\"keccak256\":\"0x4e733d3164f73f461eaf9d8087a7ad1ea180bdc8ba0d3d61b0e1ae16d8e63dff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75b47c3aeca7b66ea6752f8be020ec5c1c502de6ec9065272dae23d3a52196e2\",\"dweb:/ipfs/QmUebPMHv16tYKFh5BmBQkMfRFb5b8UZ2RgVwdjxCeufVF\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/IERC20MetadataUpgradeable.sol\":{\"keccak256\":\"0x605434219ebbe4653f703640f06969faa5a1d78f0bfef878e5ddbb1ca369ceeb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c9c634f99dd02d73ce7498b03a6305e251c05eeebb71457306561c1fab0fa7d\",\"dweb:/ipfs/QmbYRBbZHy8YoaQKXdPryiL3CSS7uUaRfRYi1TUj9cTqJQ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol\":{\"keccak256\":\"0xcc70d8e2281fb3ff69e8ab242500f10142cd0a7fa8dd9e45882be270d4d09024\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17a4063bc918df0f7bb9cbf04c6f0bb4977afab3f2fc212bc138a178312a221d\",\"dweb:/ipfs/QmZMdvsHP5mDEAAdrK4bNeNh47TfmSFgN9qEBFTbie7zmm\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol\":{\"keccak256\":\"0x220c4a5af915e656be2aaa85ca57505d102418e476b1e2ef6c62e0c6ac143871\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6ed2c33173f7e7000889abed7c339b7a0e3b7867cdea546caaf6bc917ef1039c\",\"dweb:/ipfs/QmQ4Ye5h7jm6V4CdhT3r6hvf25DtiV74ErppQVE4SpRKj6\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721ReceiverUpgradeable.sol\":{\"keccak256\":\"0xbb2ed8106d94aeae6858e2551a1e7174df73994b77b13ebd120ccaaef80155f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc3c6a456dba727d8dd9fd33420febede490abb49a07469f61d2a3ace66a95a\",\"dweb:/ipfs/QmVAWtEVj7K5AbvgJa9Dz22KiDq9eoptCjnVZqsTMtKXyd\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol\":{\"keccak256\":\"0x2c0b89cef83f353c6f9488c013d8a5968587ffdd6dfc26aad53774214b97e229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a68e662c2a82412308b1feb24f3d61a44b3b8772f44cbd440446237313c3195\",\"dweb:/ipfs/QmfBuWUE2TQef9hghDzzuVkDskw3UGAyPgLmPifTNV7K6g\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06\",\"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x9b72f93be69ca894d8492c244259615c4a742afc8d63720dbc8bb81087d9b238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5a7b96e511be78d5cdf635c784e6ab8cdd38625bb8cafb8a80914a1c89cf0f6\",\"dweb:/ipfs/QmVzTCwJxQAkjRQHboT5QrvsVJGWQHgfEjeTbvyxoKBrds\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269\",\"dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeMath.sol\":{\"keccak256\":\"0x0f633a0223d9a1dcccfcf38a64c9de0874dfcbfac0c6941ccf074d63a2ce0e1e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://864a40efcffdf408044c332a5aa38ec5618ed7b4eecb8f65faf45671bd6cdc65\",\"dweb:/ipfs/QmQJquTMtc6fgm5JQzGdsGpA2fqBe3MHWEdt2qzaLySMdN\"]},\"src/interfaces/IAddressProvider.sol\":{\"keccak256\":\"0x6730abfcd8770e3279dad6137bf619ab98ee8b049e6dd85d2fbe87ba6224fde8\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://9b7d1588eab025b049f858ab2f329be7fec220198d956b9b61bf0b9bddc5761a\",\"dweb:/ipfs/QmTaFkYSUfWmbpsyE2TKC1QvP6eTDggZ72ZWodBhydqt5X\"]},\"src/interfaces/ICollateralManager.sol\":{\"keccak256\":\"0xdcb90cae810d15c23e0606ef3d9b30feec7d35e956082b88c1f35c5d6caf6438\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://c45a3cf14add38004018f32987cab971436cfd2e679eea71f2383f845bd68647\",\"dweb:/ipfs/QmPd9df3JmDFMHnhreYWw8tjmRGEQAtERnqj2YREXB5aP5\"]},\"src/interfaces/IExecutionDelegate.sol\":{\"keccak256\":\"0x9def180c3c45c492a967182aac61849fc1a77ca9f958abd3f27b689b01e61401\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf406e8af1c9fa6373a66615022cd5c7edc41c169c46d660d5383df6647d3a5d\",\"dweb:/ipfs/QmRz7aDGbabWAw3BGFV2kbSmehGizSz3f7W87k6VXR3ggR\"]},\"src/interfaces/IFToken.sol\":{\"keccak256\":\"0x4c3ebc83c05720c9257d1b6b4930b647c08ba766b76928622a4c91c4a541a718\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://920cb41d52a659b88030fc3cf84fe5a87cc42f0c6e5c83a691c4732f84906689\",\"dweb:/ipfs/Qma657T4np5eBNono5yBXxE71jfT1TRDDkCPpH3kfw3SxM\"]},\"src/interfaces/IInitializableDebtToken.sol\":{\"keccak256\":\"0x29bcf86201c67f90d1620b5da4a0de05c611bf1fb15afeb6d2b30a70ec8aebca\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://e17c25e400ac37f1cd29b9cfdba2d4bc34aa6e0c705a619acf0c69f9136150d6\",\"dweb:/ipfs/QmTcNqEpq8UbZf6o6AgwJVjuNbrNbsZWfRMhQnuZArJQ6Q\"]},\"src/interfaces/IInterestRateStrategy.sol\":{\"keccak256\":\"0x71f8b91324433fbdb16a38e5b7c214e7c30094167a7aaf77fcb045194a63af16\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://ce7a18b9c191a676ab68f5d59449c22bead494ccba0c2272e6c8bd606a1c0fd3\",\"dweb:/ipfs/QmZ4byVDnoAH67dSSXppkhTbvdNs7mmQadUnmreoeZVbSv\"]},\"src/interfaces/ILendingPool.sol\":{\"keccak256\":\"0x345ab4285354bb5184bdd501d7c37920a711215b6f6c2db05b05d585f2454115\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://3b6264b135760dcdd59b9a3566c1305b00084922da177159a85c206ef6a91266\",\"dweb:/ipfs/QmSotEH7zF3vrEgo2gZuunWwroHgc6bw7TVRntzv7jsJn1\"]},\"src/interfaces/ILendingRateManager.sol\":{\"keccak256\":\"0x6078c32591ae3ced86c344ad2f228fbcc625f09cd59a8f7014355adb89dfcde0\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://fa594c0ceb1a0a085a6b077ac0729663f839f33f760eb8775ff1b3d25415e097\",\"dweb:/ipfs/QmXU74R73UDHiwvVaU9LRrC1tHaDq5eCerenKQtFX97UL6\"]},\"src/interfaces/INFTPriceOracle.sol\":{\"keccak256\":\"0x90a5ea4bb12f751a9af3f58c19de2b5f1d9ad36c074e584af8f8f0b24df98dac\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://a3acfe54780ea0fcd95ee9b8a4ce8a329599799f6949b6eb4828af79cf9e8659\",\"dweb:/ipfs/QmUujk8TLsLGyh7afmSpCX7G19ek44KfCyEJ3FHBXhEiR9\"]},\"src/interfaces/IObligationReceipt.sol\":{\"keccak256\":\"0xff3849eafbfe1c565e4bfd5d29b3cf9b19b2035387345b77a02abde96674a0ef\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://284d7b0d9168f23464c60b4dcdbfbb1b4d6990c501d37337f87a9b36ea557aec\",\"dweb:/ipfs/QmYMi2a6MZKgj54328vvTBwrDRfGB8nhJJX6BbLkuyMjFf\"]},\"src/interfaces/IPoolIncentivesController.sol\":{\"keccak256\":\"0x7cb2c32050814e6d6d962a603104facc3bb1dad15171304e3ee756648e8f9ae1\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://cf534f592706b2a61c539c03e5d1e199c15472bcfb4ee69838e5c93ba7914466\",\"dweb:/ipfs/QmPrvXhJigK1Ke51YwAWHon1Kv88WT26iD3MwzCaPDs1Kv\"]},\"src/interfaces/IPriceConsumerV3.sol\":{\"keccak256\":\"0x0d5b17684277591efc7c61a66c0a9d9fed38c858a2f2ca65fab3c0789d23026e\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://66fb8083f820b5a3c7b67184425971404bc74c790cad71cad997e870ba17a3e8\",\"dweb:/ipfs/QmWtkjrtu6NDSM1py1syo1aJfAE6Yi1E95eYmHMHhHQ7Aw\"]},\"src/interfaces/IRedeemable.sol\":{\"keccak256\":\"0x22d2cfb983b20307f4a8950e442a9007dccb3c637c22380492ba6cfa8e32b846\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://75c42863790291d3481ee10bead35f45abfb2a9844292c1ce2753ac69fc140eb\",\"dweb:/ipfs/QmUiSSYJasAaVQBpUkEvq1zQVzB3Mw65uAjSgDfr4YGvJY\"]},\"src/interfaces/IScaledBalanceToken.sol\":{\"keccak256\":\"0xb6a8f00773c5f58af761573f39f6aa3649c9deec5c4e078f5e3ca78940e4eac7\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://0938c6fd92b015670a2bcf5ff971aafbc6295e07c78d1300c5e36a67002dc70c\",\"dweb:/ipfs/QmYDcxNaAAfnupwDcDN1xtQcCEXTwW1FWiaTiU3MksCQ1Z\"]},\"src/interfaces/IStableDebtToken.sol\":{\"keccak256\":\"0x964a76facf6d0ea459fd0222c5e8036efea4e9193af3851d68190052037755b4\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://6eebeccfdd76a6e7691402b699c1185df09e8fe80c94cc059bd797a2931b9d3e\",\"dweb:/ipfs/QmeRY3xnu979DmjgFZSEaNgEkWgjtj4Hjpg9gW3bMoaZ1v\"]},\"src/interfaces/IVariableDebtToken.sol\":{\"keccak256\":\"0x61d5cce91604a2d97218fdf1f53022e08061aae2adc6dc5fb0ba311d46a212cc\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://e8e62cce1a93aafcff2438c111ca7af77c8c2a6ed3d5c7ffce2598aa73fb87c9\",\"dweb:/ipfs/QmXXpq9J65pU5Wt9WUR1sZMjss2gUDfEvpDAc9npQfxGcC\"]},\"src/protocol/libraries/configuration/ReserveConfiguration.sol\":{\"keccak256\":\"0xa185efd08f4a3798bbafaa90fafd310f2e29634a2f83b62ee833b31a24232e3c\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://806a0ce876edbbbd418a8297735f66907a06650606b00eac5b510ab082ed3173\",\"dweb:/ipfs/QmQk5ybFrVqXfgXbndYcKBoQiahKScjFEABpJ3ATG8SYPh\"]},\"src/protocol/libraries/helpers/Errors.sol\":{\"keccak256\":\"0x490e76871922e89a13ba0bb88977be18c143fa9d0cd9afb033744a3d81479c52\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://1c409d4d1e1689d8d8f3c3e361198d20f3b6476608c5316d8e2d91f52373e8e3\",\"dweb:/ipfs/QmRZaYpxqjmBpbxb51KqswKYPSeCsU3ejbmk5E3MrMxJaM\"]},\"src/protocol/libraries/logic/BorrowLogic.sol\":{\"keccak256\":\"0x41584979c021aca9484ecf8eed27a67dc316332b43e80b98e3bd3617b9e44e3b\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://8f36478f308c11d09b48237c1cab7b070f2fa34fb5f6ed02172261a61146b5c3\",\"dweb:/ipfs/QmVfALy25gBU6RcsPTZMHRZRmRv4GjkH9zxBQ5spV69UET\"]},\"src/protocol/libraries/logic/GenericLogic.sol\":{\"keccak256\":\"0x9613130d98e3564a9dce097f7af399afbac4dc1e54ef86e31198537c2ffc058a\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://b754e6d8cad2c7fdd2a1686d56476ee2c4b450189526209787b8645ebe46542c\",\"dweb:/ipfs/QmNXRercwgggYU6SdBVtF9gD6kJqcTKrshc72gxv1nEeCd\"]},\"src/protocol/libraries/logic/LiquidateLogic.sol\":{\"keccak256\":\"0x7761714c2c93ae6ce76502724fa678b68dabb7c680cf62b0ef6666ceacfb2c9b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5d3ecf01ee169a1e01e4c23bc4e86bba666785e29a581fb997e11675b4f097d3\",\"dweb:/ipfs/QmfZjDj8pRJ4KDfF1cYL214nkMHSH2xgcc95sKmtYjmu3C\"]},\"src/protocol/libraries/logic/ReserveLogic.sol\":{\"keccak256\":\"0x62ec73dd19c9e36fd0c1a4aa4e1ca3250534010839cec91a5db5e6cadd29b556\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://f28b9df77a1d72fe06db1bb03d51881084fbcbbca060c3d1ce7172d0d7cbaf34\",\"dweb:/ipfs/QmexhggWDeu7ujHKU8xvGMG3FbV45EKBqbNAHne4rLEwCP\"]},\"src/protocol/libraries/logic/SupplyLogic.sol\":{\"keccak256\":\"0x3953a3284bbefe7cac7bc97dee696bc56850a634d985209e1203c8056b2f6e4c\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://2165cba5e23d52cb3893754898014337d6df09a6cf9108cb3b0b9f10ccd3d2ad\",\"dweb:/ipfs/QmWndqB4vuysuzynxfZBmQA7uQ9fNuaKNxctMUABr47nN5\"]},\"src/protocol/libraries/logic/ValidationLogic.sol\":{\"keccak256\":\"0x0f6512787e4c18afde885b84b1535b720f96cb7c7f6f97f4aca28f2dc610fece\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://20a5522498236525fee4c1cdad99c102d9b3e809a28eef6d2d3301ec65a6e182\",\"dweb:/ipfs/QmaUwsg4jFkdmJzmtT9eRQcEXFZmJT5NRZwHRVsJTqogoD\"]},\"src/protocol/libraries/math/MathUtils.sol\":{\"keccak256\":\"0x1c856137c4ef9d713b19a65adeb47c4490bd3b8414d7f28b364625226926779f\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://15c029cd4a3becaa47c72c1f5c18986b0a3cb488d8145e0bf88ce618a3d70841\",\"dweb:/ipfs/QmSYaWpWPbEHkRCegu5edAuRS3HTwyN2mFoSKm4yfGeec9\"]},\"src/protocol/libraries/math/PercentageMath.sol\":{\"keccak256\":\"0xb84274fc3effba81036256cf7fde67b3dbfe86c4ffd0e062711a3270157952a2\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://3ecaf26e713b39d89ee21fb8bfefe55fe2fec4a2f5a2bffba7612f82182b7262\",\"dweb:/ipfs/QmZ6oXpNspwBEkiJEz1EhsU4EVBpG3anNjtzcycNEgAkfe\"]},\"src/protocol/libraries/math/WadRayMath.sol\":{\"keccak256\":\"0xb29e8edc0e0e6bfead27945357c9e4a66e0c11e58ff3b87ee68ed1b5ca416735\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://d1b4377995155f32bb6c3ba558875c617fa63601c597099d3460063ac2a15d93\",\"dweb:/ipfs/QmUvCE6Q2J62sMgQCCEbQauWSYJpMiu3QCgWa6mZnEmcK2\"]},\"src/protocol/libraries/types/ConfigTypes.sol\":{\"keccak256\":\"0xa8f9b14d9adf738033fd1847b30012d0e022027614fd6c9bb31a01bc6bfb1634\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://b20c579d1b683dd5977a675c2e46adeebd56c96faa68cda9b0767edf02a5b650\",\"dweb:/ipfs/QmPULpaX2ouktArvXJxYNVPQ9vKBhEeCYA4smo8v57qFLD\"]},\"src/protocol/libraries/types/DataTypes.sol\":{\"keccak256\":\"0x0103c43499e5226d36906042a1723a3ee6ee18ba607cbffc9e776d4dc47edc10\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://550191b44b6ddfe84d81bd5ded46e1ab3ac493399adfca3634fd8348a4a087fa\",\"dweb:/ipfs/QmeoHga9azsBkTRdnzH9USs51JduGR2tgge5YmGW8dJ2Tq\"]},\"src/protocol/oracle/NFTPriceOracleStorage.sol\":{\"keccak256\":\"0x9847005d0c1f4d6504031346e37d421ed676afcb4711908dd3038254444088dd\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b9ef1ed0f1716aa142c1f584b5b77a7ef5b1a3ab90f1f9fbe84b146083d8dd77\",\"dweb:/ipfs/QmQCfhtqHjfQWBokhWkGdZnfVmxsCLU5QkTW1bzEUfincT\"]},\"src/protocol/oracle/Trustus.sol\":{\"keccak256\":\"0xf3ffd2cf22289fcdd27a05a2718ef39912ecc20e57f0578907489446c2bb8cb1\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://1d0a2967648f2278b026ef458424b592b0322e08c33e629af50102c70ab205be\",\"dweb:/ipfs/QmQVWxPwCQinbZCWeJSgyDdTgrUzULxwpcxqXnPrpx3rTk\"]},\"src/protocol/p2pool/LendingPool.sol\":{\"keccak256\":\"0xfd48ac643d7f44d95a4174052404228bb6aa7d5b735ea225b076236ae34bb301\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://7af5b1a4e18efecf111d52b0c58b45f4547e4224a60a9e184281178a29880622\",\"dweb:/ipfs/QmWT7bWTHv47DHGNdt4p6FbCVAcwE3jkGm4Ay3ruo3Hu68\"]},\"src/protocol/p2pool/LendingPoolStorage.sol\":{\"keccak256\":\"0xc31280ac99fa78654a1ba2ab8190aa1467ba0adbbc4594e01396bff7b24dc3f5\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://70783c839e90b8ab5cdb6907ba60b95cb4b525ff087e760ba29b8e2f597193b1\",\"dweb:/ipfs/Qmeorb6PDCsdXJEM9kehU1pAasPxY95q6WMg4FwCyX6NCQ\"]}},\"version\":1}",
"metadata": {
"compiler": {
"version": "0.8.16+commit.07a7930e"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "initiator",
"type": "address",
"indexed": false
},
{
"internalType": "uint256",
"name": "reserveId",
"type": "uint256",
"indexed": true
},
{
"internalType": "address",
"name": "asset",
"type": "address",
"indexed": false
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256",
"indexed": false
},
{
"internalType": "uint256",
"name": "duration",
"type": "uint256",
"indexed": false
},
{
"internalType": "address",
"name": "collateral",
"type": "address",
"indexed": false
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256",
"indexed": false
},
{
"internalType": "address",
"name": "onBehalfOf",
"type": "address",
"indexed": true
},
{
"internalType": "uint256",
"name": "borrowRate",
"type": "uint256",
"indexed": false
},
{
"internalType": "uint256",
"name": "borrowId",
"type": "uint256",
"indexed": false
},
{
"internalType": "uint16",
"name": "referral",
"type": "uint16",
"indexed": true
}
],
"type": "event",
"name": "Borrow",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "initiator",
"type": "address",
"indexed": false
},
{
"internalType": "address",
"name": "collateral",
"type": "address",
"indexed": false
},
{
"internalType": "address",
"name": "asset",
"type": "address",
"indexed": false
},
{
"internalType": "uint256",
"name": "reserveId",
"type": "uint256",
"indexed": true
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256",
"indexed": false
},
{
"internalType": "address",
"name": "onBehalfOf",
"type": "address",
"indexed": true
},
{
"internalType": "uint16",
"name": "referalCode",
"type": "uint16",
"indexed": true
}
],
"type": "event",
"name": "Deposit",
"anonymous": false
},
{
"inputs": [
{
"internalType": "uint8",
"name": "version",
"type": "uint8",
"indexed": false
}
],
"type": "event",
"name": "Initialized",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address",
"indexed": false
},
{
"internalType": "uint256",
"name": "reserveId",
"type": "uint256",
"indexed": true
},
{
"internalType": "address",
"name": "collateral",
"type": "address",
"indexed": true
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256",
"indexed": false
},
{
"internalType": "address",
"name": "borrower",
"type": "address",
"indexed": true
},
{
"internalType": "uint256",
"name": "borrowId",
"type": "uint256",
"indexed": false
},
{
"internalType": "address",
"name": "paymentAsset",
"type": "address",
"indexed": false
},
{
"internalType": "uint256",
"name": "paymentAmount",
"type": "uint256",
"indexed": false
},
{
"internalType": "address",
"name": "onBehalfOf",
"type": "address",
"indexed": false
}
],
"type": "event",
"name": "Liquidate",
"anonymous": false
},
{
"inputs": [],
"type": "event",
"name": "Paused",
"anonymous": false
},
{
"inputs": [
{
"internalType": "uint256",
"name": "startTime",
"type": "uint256",
"indexed": false
},
{
"internalType": "uint256",
"name": "durationTime",
"type": "uint256",
"indexed": false
}
],
"type": "event",
"name": "PausedTimeUpdated",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "initiator",
"type": "address",
"indexed": false
},
{
"internalType": "address",
"name": "borrower",
"type": "address",
"indexed": true
},
{
"internalType": "uint256",
"name": "reserveId",
"type": "uint256",
"indexed": true
},
{
"internalType": "uint256",
"name": "borrowId",
"type": "uint256",
"indexed": true
},
{
"internalType": "address",
"name": "collateral",
"type": "address",
"indexed": false
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256",
"indexed": false
},
{
"internalType": "address",
"name": "asset",
"type": "address",
"indexed": false
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256",
"indexed": false
},
{
"internalType": "uint256",
"name": "amountAdded",
"type": "uint256",
"indexed": false
},
{
"internalType": "uint256",
"name": "amountTaken",
"type": "uint256",
"indexed": false
},
{
"internalType": "uint256",
"name": "defaultFee",
"type": "uint256",
"indexed": false
},
{
"internalType": "uint256",
"name": "duration",
"type": "uint256",
"indexed": false
},
{
"internalType": "uint256",
"name": "timestamp",
"type": "uint256",
"indexed": false
}
],
"type": "event",
"name": "Refinanced",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "initiator",
"type": "address",
"indexed": false
},
{
"internalType": "uint256",
"name": "reserveId",
"type": "uint256",
"indexed": true
},
{
"internalType": "address",
"name": "asset",
"type": "address",
"indexed": false
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256",
"indexed": false
},
{
"internalType": "address",
"name": "collateral",
"type": "address",
"indexed": true
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256",
"indexed": false
},
{
"internalType": "address",
"name": "borrower",
"type": "address",
"indexed": true
},
{
"internalType": "uint256",
"name": "borrowId",
"type": "uint256",
"indexed": false
}
],
"type": "event",
"name": "Repay",
"anonymous": false
},
{
"inputs": [],
"type": "event",
"name": "Unpaused",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "initiator",
"type": "address",
"indexed": true
},
{
"internalType": "address",
"name": "collateral",
"type": "address",
"indexed": false
},
{
"internalType": "address",
"name": "asset",
"type": "address",
"indexed": false
},
{
"internalType": "uint256",
"name": "reserveId",
"type": "uint256",
"indexed": true
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256",
"indexed": false
},
{
"internalType": "address",
"name": "to",
"type": "address",
"indexed": true
}
],
"type": "event",
"name": "Withdraw",
"anonymous": false
},
{
"inputs": [
{
"internalType": "uint256",
"name": "borrowId",
"type": "uint256"
},
{
"internalType": "address",
"name": "onBehalfOf",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "auction"
},
{
"inputs": [
{
"internalType": "uint256[]",
"name": "borrowIds",
"type": "uint256[]"
},
{
"internalType": "address[]",
"name": "onBehalfOfs",
"type": "address[]"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "batchAuction"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "assets",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "borrowIds",
"type": "uint256[]"
},
{
"internalType": "address[]",
"name": "onBehalfOfs",
"type": "address[]"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "batchBid"
},
{
"inputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "tokenIds",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "tokenValues",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "reserveIds",
"type": "uint256[]"
},
{
"internalType": "uint256",
"name": "duration",
"type": "uint256"
},
{
"internalType": "address",
"name": "onBehalfOf",
"type": "address"
},
{
"internalType": "uint16",
"name": "referralCode",
"type": "uint16"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "batchBorrow"
},
{
"inputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "reserveIds",
"type": "uint256[]"
},
{
"internalType": "address[]",
"name": "onBehalfOfs",
"type": "address[]"
},
{
"internalType": "uint16[]",
"name": "referralCodes",
"type": "uint16[]"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "batchDeposit"
},
{
"inputs": [
{
"internalType": "uint256[]",
"name": "borrowIds",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "durations",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "batchRefinance"
},
{
"inputs": [
{
"internalType": "uint256[]",
"name": "borrowIds",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "batchRepay"
},
{
"inputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "reserveIds",
"type": "uint256[]"
},
{
"internalType": "address[]",
"name": "tos",
"type": "address[]"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "batchWithdraw"
},
{
"inputs": [
{
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "borrowId",
"type": "uint256"
},
{
"internalType": "address",
"name": "onBehalfOf",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "bid"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "tokenValue",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "duration",
"type": "uint256"
},
{
"internalType": "address",
"name": "onBehalfOf",
"type": "address"
},
{
"internalType": "uint16",
"name": "referralCode",
"type": "uint16"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "borrow"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveId",
"type": "uint256"
},
{
"internalType": "address",
"name": "onBehalfOf",
"type": "address"
},
{
"internalType": "uint16",
"name": "referralCode",
"type": "uint16"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "deposit"
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "executionDelegate",
"outputs": [
{
"internalType": "contract IExecutionDelegate",
"name": "",
"type": "address"
}
]
},
{
"inputs": [
{
"internalType": "uint256",
"name": "reserveId",
"type": "uint256"
},
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "balanceFromBefore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "balanceToBefore",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function",
"name": "finalizeTransfer"
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "getAddressProvider",
"outputs": [
{
"internalType": "contract IAddressProvider",
"name": "",
"type": "address"
}
]
},
{
"inputs": [
{
"internalType": "uint256",
"name": "reserveId",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function",
"name": "getAuctionConfiguration",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
]
},
{
"inputs": [
{
"internalType": "uint256",
"name": "borrowId",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function",
"name": "getBorrowHealthFactor",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "getInitializedAssets",
"outputs": [
{
"internalType": "address[]",
"name": "",
"type": "address[]"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "getInitializedCollaterals",
"outputs": [
{
"internalType": "address[]",
"name": "",
"type": "address[]"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "getMaxNumberOfReserves",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "getPausedTime",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
]
},
{
"inputs": [
{
"internalType": "uint256",
"name": "reserveId",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function",
"name": "getReserve",
"outputs": [
{
"internalType": "struct DataTypes.Reserve",
"name": "",
"type": "tuple",
"components": [
{
"internalType": "struct DataTypes.ReserveConfigurationMap",
"name": "configuration",
"type": "tuple",
"components": [
{
"internalType": "uint256",
"name": "data",
"type": "uint256"
}
]
},
{
"internalType": "address",
"name": "collateral",
"type": "address"
},
{
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"internalType": "address",
"name": "fTokenAddress",
"type": "address"
},
{
"internalType": "address",
"name": "stableDebtTokenAddress",
"type": "address"
},
{
"internalType": "address",
"name": "variableDebtTokenAddress",
"type": "address"
},
{
"internalType": "address",
"name": "interestRateAddress",
"type": "address"
},
{
"internalType": "string",
"name": "assetPriceFeed",
"type": "string"
},
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "maxTokenSupply",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "maxTokenId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "minTokenId",
"type": "uint256"
},
{
"internalType": "uint128",
"name": "liquidityIndex",
"type": "uint128"
},
{
"internalType": "uint128",
"name": "variableBorrowIndex",
"type": "uint128"
},
{
"internalType": "uint128",
"name": "currentLiquidityRate",
"type": "uint128"
},
{
"internalType": "uint128",
"name": "currentVariableBorrowRate",
"type": "uint128"
},
{
"internalType": "uint40",
"name": "lastUpdateTimestamp",
"type": "uint40"
}
]
}
]
},
{
"inputs": [
{
"internalType": "uint256",
"name": "reserveId",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function",
"name": "getReserveConfiguration",
"outputs": [
{
"internalType": "struct DataTypes.ReserveConfigurationMap",
"name": "",
"type": "tuple",
"components": [
{
"internalType": "uint256",
"name": "data",
"type": "uint256"
}
]
}
]
},
{
"inputs": [
{
"internalType": "uint256",
"name": "reserveId",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function",
"name": "getReserveFlags",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
},
{
"internalType": "bool",
"name": "",
"type": "bool"
},
{
"internalType": "bool",
"name": "",
"type": "bool"
},
{
"internalType": "bool",
"name": "",
"type": "bool"
}
]
},
{
"inputs": [
{
"internalType": "address",
"name": "collateral",
"type": "address"
},
{
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"internalType": "uint256",
"name": "maxTokenId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "minTokenId",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function",
"name": "getReserveId",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
]
},
{
"inputs": [
{
"internalType": "uint256",
"name": "reserveId",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function",
"name": "getReserveNormalizedIncome",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
]
},
{
"inputs": [
{
"internalType": "uint256",
"name": "reserveId",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function",
"name": "getReserveNormalizedVariableDebt",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
]
},
{
"inputs": [
{
"internalType": "uint256",
"name": "reserveId",
"type": "uint256"
},
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"stateMutability": "view",
"type": "function",
"name": "getReserveUserStableRate",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "getReservesList",
"outputs": [
{
"internalType": "uint256[]",
"name": "reservesList",
"type": "uint256[]"
}
]
},
{
"inputs": [
{
"internalType": "struct ConfigTypes.InitReserveInput",
"name": "input",
"type": "tuple",
"components": [
{
"internalType": "address",
"name": "underlyingCollateral",
"type": "address"
},
{
"internalType": "string",
"name": "underlyingCollateralName",
"type": "string"
},
{
"internalType": "string",
"name": "underlyingCollateralSymbol",
"type": "string"
},
{
"internalType": "uint256",
"name": "underlyingMaxTokenId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "underlyingMinTokenId",
"type": "uint256"
},
{
"internalType": "address",
"name": "underlyingAsset",
"type": "address"
},
{
"internalType": "string",
"name": "underlyingAssetName",
"type": "string"
},
{
"internalType": "string",
"name": "underlyingAssetSymbol",
"type": "string"
},
{
"internalType": "uint8",
"name": "underlyingAssetDecimals",
"type": "uint8"
},
{
"internalType": "address",
"name": "fTokenImpl",
"type": "address"
},
{
"internalType": "string",
"name": "fTokenName",
"type": "string"
},
{
"internalType": "string",
"name": "fTokenSymbol",
"type": "string"
},
{
"internalType": "address",
"name": "stableDebtTokenImpl",
"type": "address"
},
{
"internalType": "string",
"name": "stableDebtTokenName",
"type": "string"
},
{
"internalType": "string",
"name": "stableDebtTokenSymbol",
"type": "string"
},
{
"internalType": "address",
"name": "variableDebtTokenImpl",
"type": "address"
},
{
"internalType": "string",
"name": "variableDebtTokenName",
"type": "string"
},
{
"internalType": "string",
"name": "variableDebtTokenSymbol",
"type": "string"
},
{
"internalType": "address",
"name": "interestRateStrategy",
"type": "address"
},
{
"internalType": "uint256",
"name": "baseLTV",
"type": "uint256"
},
{
"internalType": "address",
"name": "treasury",
"type": "address"
},
{
"internalType": "address",
"name": "creator",
"type": "address"
},
{
"internalType": "uint256",
"name": "creatorPercentage",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "auctionCallerPercentage",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "auctionCreatorPercentage",
"type": "uint256"
},
{
"internalType": "string",
"name": "assetPriceFeed",
"type": "string"
}
]
},
{
"internalType": "address",
"name": "fToken",
"type": "address"
},
{
"internalType": "address",
"name": "stableDebtToken",
"type": "address"
},
{
"internalType": "address",
"name": "variableDebtToken",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "initReserve",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
]
},
{
"inputs": [
{
"internalType": "address",
"name": "addressProvider",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "initialize"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "uint256[]",
"name": "",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "",
"type": "uint256[]"
},
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "onERC1155BatchReceived",
"outputs": [
{
"internalType": "bytes4",
"name": "",
"type": "bytes4"
}
]
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "onERC1155Received",
"outputs": [
{
"internalType": "bytes4",
"name": "",
"type": "bytes4"
}
]
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "onERC721Received",
"outputs": [
{
"internalType": "bytes4",
"name": "",
"type": "bytes4"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "paused",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
]
},
{
"inputs": [
{
"internalType": "uint256",
"name": "borrowId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "duration",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "refinance"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "borrowId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "repay"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "val",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setMaxNumberOfReserves"
},
{
"inputs": [
{
"internalType": "bool",
"name": "val",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setPause"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "startTime",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "durationTime",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setPausedTime"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "reserveId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "configuration",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setReserveConfiguration"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "reserveId",
"type": "uint256"
},
{
"internalType": "address",
"name": "creator",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setReserveCreatorAddress"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "reserveId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "percentage",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setReserveCreatorPercentage"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "reserveId",
"type": "uint256"
},
{
"internalType": "address",
"name": "rateAddress",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setReserveInterestRateAddress"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "reserveId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "maxTokenSupply",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setReserveMaxSupply"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "_interfaceId",
"type": "bytes4"
}
],
"stateMutability": "view",
"type": "function",
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
]
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveId",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "withdraw"
}
],
"devdoc": {
"kind": "dev",
"methods": {
"auction(uint256,address)": {
"params": {
"borrowId": "The id of the borrow.",
"onBehalfOf": "The wallet to receive the auction caller fee."
}
},
"batchBorrow(uint256[],uint256[],uint256[],uint256[],uint256,address,uint16)": {
"details": "Stack too deep to be able to be able to pass arrays for all variables"
},
"bid(address,uint256,uint256,address)": {
"params": {
"amount": "The amount of ERC20 tokens to be paid.",
"asset": "The asset contract address.",
"borrowId": "The id of the defaulted borrow.",
"onBehalfOf": "The wallet to receive the underlying NFT."
}
},
"borrow(uint256,uint256,uint256,uint256,uint256,address,uint16)": {
"params": {
"amount": "The amount of ERC20 tokens to be borrowed.",
"duration": "The duration of the loan, 0 if open-ended",
"onBehalfOf": "The address to receive the loan.",
"referralCode": "Code used to register the integrator originated the operation, for potential rewards.",
"reserveId": "The id of the reserve to borrow against. ",
"tokenId": "The tokenId of the ERC721 / ERC1155 token to be deposited. ",
"tokenValue": "The number of same-value tokens supplied (0 implies ERC721)"
}
},
"deposit(uint256,uint256,address,uint16)": {
"params": {
"amount": "The amount of ERC20 tokens.",
"onBehalfOf": "Where to credit the deposit.",
"referralCode": "Any referral code.",
"reserveId": "The id of the reserve."
}
},
"finalizeTransfer(uint256,address,address,uint256,uint256,uint256)": {
"details": "Validates and finalizes an fToken transfer - Only callable by the overlying fToken of the `asset` ",
"params": {
"amount": "The amount being transferred/withdrawn",
"balanceFromBefore": "The fToken balance of the `from` user before the transfer",
"balanceToBefore": "The fToken balance of the `to` user before the transfer",
"from": "The user from which the fToken are transferred",
"reserveId": "The id of the fToken reserve",
"to": "The user receiving the fTokens"
}
},
"getAddressProvider()": {
"details": "Returns the cached AddressProvider connected to this contract*"
},
"getMaxNumberOfReserves()": {
"details": "Returns the maximum number of reserves supported to be listed in this LendPool"
},
"getReserve(uint256)": {
"details": "Returns the state and configuration of the reserve",
"params": {
"reserveId": "The id of the reserve"
},
"returns": {
"_0": "The state of the reserve*"
}
},
"getReserveConfiguration(uint256)": {
"details": "Returns the configuration of the reserve",
"params": {
"reserveId": "The id of the reserve"
},
"returns": {
"_0": "The configuration of the reserve*"
}
},
"getReserveFlags(uint256)": {
"details": "Returns the state of the resev",
"params": {
"reserveId": "The min id of the reserve"
},
"returns": {
"_0": "The reserve user stable rate"
}
},
"getReserveNormalizedVariableDebt(uint256)": {
"details": "Returns the normalized variable debt per unit of asset",
"params": {
"reserveId": "The min id of the reserve"
},
"returns": {
"_0": "The reserve normalized variable debt"
}
},
"getReserveUserStableRate(uint256,address)": {
"details": "Returns the reserve user stable rate",
"params": {
"reserveId": "The min id of the reserve",
"user": "The address of the user"
},
"returns": {
"_0": "The reserve user stable rate"
}
},
"initReserve((address,string,string,uint256,uint256,address,string,string,uint8,address,string,string,address,string,string,address,string,string,address,uint256,address,address,uint256,uint256,uint256,string),address,address,address)": {
"details": "Calls internal `_initReserve` function if modifiers are succeeded. ",
"params": {
"fToken": "The derivative fToken address.",
"input": "The init reserve input parameters.",
"stableDebtToken": "The derivative stableDebtToken address.",
"variableDebtToken": "The derivative variableDebtToken address."
}
},
"initialize(address)": {
"details": "Function is invoked by the proxy contract when the LendingPool contract is added to the AddressProvider of the market. - Caching the address of the AddressProvider in order to reduce gas consumption on subsequent operations",
"params": {
"addressProvider": "The address of the AddressProvider*"
}
},
"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)": {
"details": "An ERC1155 `safeBatchTransferFrom` will revert unless this Solidity selector is returned.",
"returns": {
"_0": "Always returns `IERC1155Receiver.onERC1155BatchReceived.selector`."
}
},
"onERC1155Received(address,address,uint256,uint256,bytes)": {
"details": "An ERC1155 `safeTransferFrom` will revert unless this Solidity selector is returned.",
"returns": {
"_0": "Always returns `IERC1155Receiver.onERC1155Received.selector`."
}
},
"onERC721Received(address,address,uint256,bytes)": {
"details": "An ERC721 `safeTransferFrom` will revert unless this Solidity selector is returned.",
"returns": {
"_0": "Always returns `IERC721Receiver.onERC721Received.selector`."
}
},
"paused()": {
"details": "Returns if the LendPool is paused"
},
"repay(uint256,uint256)": {
"params": {
"amount": "The amount of ERC20 tokens to be repaid.",
"borrowId": "The id of the borrow to repay."
}
},
"setPause(bool)": {
"details": "Set the _pause state of the pool - Only callable by the LendPoolConfigurator contract",
"params": {
"val": "`true` to pause the pool, `false` to un-pause it"
}
},
"setReserveConfiguration(uint256,uint256)": {
"details": "Sets the configuration bitmap of the reserve as a whole - Only callable by the Configurator contract",
"params": {
"configuration": "The new configuration bitmap*",
"reserveId": "The min id of the reserve"
}
},
"setReserveInterestRateAddress(uint256,address)": {
"details": "Updates the address of the interest rate strategy contract - Only callable by the Configurator contract",
"params": {
"rateAddress": "The address of the interest rate strategy contract*",
"reserveId": "The min id of the reserve"
}
},
"supportsInterface(bytes4)": {
"details": "Checks whether this contract implements the interface defined by `interfaceId`.",
"params": {
"_interfaceId": "Id of the interface"
},
"returns": {
"_0": "true if this contract implements the interface"
}
},
"withdraw(uint256,uint256,address)": {
"params": {
"amount": "The amount of ERC20 tokens.",
"reserveId": "The reserve id.",
"to": "The address that will receive the underlying, same as msg.sender if the user wants to receive to their wallet or different if the benefitiary is a different wallet"
}
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {
"auction(uint256,address)": {
"notice": "To trigger a liquidation auction"
},
"bid(address,uint256,uint256,address)": {
"notice": "To purchase the underlying NFT of a defaulted borrow."
},
"borrow(uint256,uint256,uint256,uint256,uint256,address,uint16)": {
"notice": "External function to create a borrow position."
},
"deposit(uint256,uint256,address,uint16)": {
"notice": "Deposit assets into the lending pool."
},
"initReserve((address,string,string,uint256,uint256,address,string,string,uint8,address,string,string,address,string,string,address,string,string,address,uint256,address,address,uint256,uint256,uint256,string),address,address,address)": {
"notice": "Initializes a reserve."
},
"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)": {
"notice": "For the receiving of multiple ERC1155 tokens types to this contract address."
},
"onERC1155Received(address,address,uint256,uint256,bytes)": {
"notice": "For the receiving of ERC1155 tokens to this contract address."
},
"onERC721Received(address,address,uint256,bytes)": {
"notice": "For the receiving of ERC721 tokens to this contract address."
},
"repay(uint256,uint256)": {
"notice": "To repay a borrow position."
},
"withdraw(uint256,uint256,address)": {
"notice": "Withdraw assets from the lending pool."
}
},
"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/p2pool/LendingPool.sol": "LendingPool"
},
"libraries": {}
},
"sources": {
"lib/chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol": {
"keccak256": "0x6e6e4b0835904509406b070ee173b5bc8f677c19421b76be38aea3b1b3d30846",
"urls": [
"bzz-raw://b3beaa37ee61e4ab615e250fbf01601ae481de843fd0ef55e6b44fd9d5fff8a7",
"dweb:/ipfs/QmeZUVwd26LzK4Mfp8Zba5JbQNkZFfTzFu1A6FVMMZDg9c"
],
"license": "MIT"
},
"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol": {
"keccak256": "0xe798cadb41e2da274913e4b3183a80f50fb057a42238fe8467e077268100ec27",
"urls": [
"bzz-raw://899f850f7df5a270bccfb765d70069959ca1c20d3a7381c1c3bda8a3ffee1935",
"dweb:/ipfs/QmVdnAqwyX2L3nX2HDA5WKGtVBFyH1nKE9A1k7fZnPBkhP"
],
"license": "MIT"
},
"lib/openzeppelin-contracts-upgradeable/contracts/security/ReentrancyGuardUpgradeable.sol": {
"keccak256": "0x2b3005a0064cfc558bdf64b2bae94b565f4574a536aadd61c13838d4f2157790",
"urls": [
"bzz-raw://622c3eb87563e71585c9f538d1a196fe2d154dcc5b8f335e8770a8acc95e1f3a",
"dweb:/ipfs/QmSnDqJJLzv3mirjGB1vrk5X7hegFdS7BKpscpxyqj7sWu"
],
"license": "MIT"
},
"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/IERC1155ReceiverUpgradeable.sol": {
"keccak256": "0xffcb29612efb57efc8f0d4897deb5abaeac830022c59a3aa17446d698dbc856b",
"urls": [
"bzz-raw://4a4da6e241d1d8c2ef214c311e02c749f45b5e0dd8168c667bc8ee6f67dcf4ce",
"dweb:/ipfs/QmdsKj5frsNS7ZCfJBm4XNfy6MueV9udBF2FiBxVXwxybG"
],
"license": "MIT"
},
"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/IERC1155Upgradeable.sol": {
"keccak256": "0x091a49ef99a2be002680781a10cc9dd74c0f348301ede5482c4ea625f79a8ffe",
"urls": [
"bzz-raw://e037192cadfd20ad0f1b0c54a0c770a1ba551e7d0fcb6d3708e5ba352f88ded2",
"dweb:/ipfs/QmTXwY6odV1ToDZAYxbbLKThe9M5PUWTmWBjwT776hH4qm"
],
"license": "MIT"
},
"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol": {
"keccak256": "0x4e733d3164f73f461eaf9d8087a7ad1ea180bdc8ba0d3d61b0e1ae16d8e63dff",
"urls": [
"bzz-raw://75b47c3aeca7b66ea6752f8be020ec5c1c502de6ec9065272dae23d3a52196e2",
"dweb:/ipfs/QmUebPMHv16tYKFh5BmBQkMfRFb5b8UZ2RgVwdjxCeufVF"
],
"license": "MIT"
},
"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/IERC20MetadataUpgradeable.sol": {
"keccak256": "0x605434219ebbe4653f703640f06969faa5a1d78f0bfef878e5ddbb1ca369ceeb",
"urls": [
"bzz-raw://4c9c634f99dd02d73ce7498b03a6305e251c05eeebb71457306561c1fab0fa7d",
"dweb:/ipfs/QmbYRBbZHy8YoaQKXdPryiL3CSS7uUaRfRYi1TUj9cTqJQ"
],
"license": "MIT"
},
"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol": {
"keccak256": "0xcc70d8e2281fb3ff69e8ab242500f10142cd0a7fa8dd9e45882be270d4d09024",
"urls": [
"bzz-raw://17a4063bc918df0f7bb9cbf04c6f0bb4977afab3f2fc212bc138a178312a221d",
"dweb:/ipfs/QmZMdvsHP5mDEAAdrK4bNeNh47TfmSFgN9qEBFTbie7zmm"
],
"license": "MIT"
},
"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol": {
"keccak256": "0x220c4a5af915e656be2aaa85ca57505d102418e476b1e2ef6c62e0c6ac143871",
"urls": [
"bzz-raw://6ed2c33173f7e7000889abed7c339b7a0e3b7867cdea546caaf6bc917ef1039c",
"dweb:/ipfs/QmQ4Ye5h7jm6V4CdhT3r6hvf25DtiV74ErppQVE4SpRKj6"
],
"license": "MIT"
},
"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721ReceiverUpgradeable.sol": {
"keccak256": "0xbb2ed8106d94aeae6858e2551a1e7174df73994b77b13ebd120ccaaef80155f5",
"urls": [
"bzz-raw://8bc3c6a456dba727d8dd9fd33420febede490abb49a07469f61d2a3ace66a95a",
"dweb:/ipfs/QmVAWtEVj7K5AbvgJa9Dz22KiDq9eoptCjnVZqsTMtKXyd"
],
"license": "MIT"
},
"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol": {
"keccak256": "0x2c0b89cef83f353c6f9488c013d8a5968587ffdd6dfc26aad53774214b97e229",
"urls": [
"bzz-raw://4a68e662c2a82412308b1feb24f3d61a44b3b8772f44cbd440446237313c3195",
"dweb:/ipfs/QmfBuWUE2TQef9hghDzzuVkDskw3UGAyPgLmPifTNV7K6g"
],
"license": "MIT"
},
"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol": {
"keccak256": "0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183",
"urls": [
"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06",
"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879"
],
"license": "MIT"
},
"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol": {
"keccak256": "0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149",
"urls": [
"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c",
"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"
],
"license": "MIT"
},
"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol": {
"keccak256": "0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09",
"urls": [
"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758",
"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"
],
"license": "MIT"
},
"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol": {
"keccak256": "0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b",
"urls": [
"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34",
"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"
],
"license": "MIT"
},
"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol": {
"keccak256": "0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329",
"urls": [
"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95",
"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7"
],
"license": "MIT"
},
"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol": {
"keccak256": "0x9b72f93be69ca894d8492c244259615c4a742afc8d63720dbc8bb81087d9b238",
"urls": [
"bzz-raw://f5a7b96e511be78d5cdf635c784e6ab8cdd38625bb8cafb8a80914a1c89cf0f6",
"dweb:/ipfs/QmVzTCwJxQAkjRQHboT5QrvsVJGWQHgfEjeTbvyxoKBrds"
],
"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/math/SafeMath.sol": {
"keccak256": "0x0f633a0223d9a1dcccfcf38a64c9de0874dfcbfac0c6941ccf074d63a2ce0e1e",
"urls": [
"bzz-raw://864a40efcffdf408044c332a5aa38ec5618ed7b4eecb8f65faf45671bd6cdc65",
"dweb:/ipfs/QmQJquTMtc6fgm5JQzGdsGpA2fqBe3MHWEdt2qzaLySMdN"
],
"license": "MIT"
},
"src/interfaces/IAddressProvider.sol": {
"keccak256": "0x6730abfcd8770e3279dad6137bf619ab98ee8b049e6dd85d2fbe87ba6224fde8",
"urls": [
"bzz-raw://9b7d1588eab025b049f858ab2f329be7fec220198d956b9b61bf0b9bddc5761a",
"dweb:/ipfs/QmTaFkYSUfWmbpsyE2TKC1QvP6eTDggZ72ZWodBhydqt5X"
],
"license": "AGPL-3.0"
},
"src/interfaces/ICollateralManager.sol": {
"keccak256": "0xdcb90cae810d15c23e0606ef3d9b30feec7d35e956082b88c1f35c5d6caf6438",
"urls": [
"bzz-raw://c45a3cf14add38004018f32987cab971436cfd2e679eea71f2383f845bd68647",
"dweb:/ipfs/QmPd9df3JmDFMHnhreYWw8tjmRGEQAtERnqj2YREXB5aP5"
],
"license": "AGPL-3.0"
},
"src/interfaces/IExecutionDelegate.sol": {
"keccak256": "0x9def180c3c45c492a967182aac61849fc1a77ca9f958abd3f27b689b01e61401",
"urls": [
"bzz-raw://cf406e8af1c9fa6373a66615022cd5c7edc41c169c46d660d5383df6647d3a5d",
"dweb:/ipfs/QmRz7aDGbabWAw3BGFV2kbSmehGizSz3f7W87k6VXR3ggR"
],
"license": "MIT"
},
"src/interfaces/IFToken.sol": {
"keccak256": "0x4c3ebc83c05720c9257d1b6b4930b647c08ba766b76928622a4c91c4a541a718",
"urls": [
"bzz-raw://920cb41d52a659b88030fc3cf84fe5a87cc42f0c6e5c83a691c4732f84906689",
"dweb:/ipfs/Qma657T4np5eBNono5yBXxE71jfT1TRDDkCPpH3kfw3SxM"
],
"license": "AGPL-3.0"
},
"src/interfaces/IInitializableDebtToken.sol": {
"keccak256": "0x29bcf86201c67f90d1620b5da4a0de05c611bf1fb15afeb6d2b30a70ec8aebca",
"urls": [
"bzz-raw://e17c25e400ac37f1cd29b9cfdba2d4bc34aa6e0c705a619acf0c69f9136150d6",
"dweb:/ipfs/QmTcNqEpq8UbZf6o6AgwJVjuNbrNbsZWfRMhQnuZArJQ6Q"
],
"license": "AGPL-3.0"
},
"src/interfaces/IInterestRateStrategy.sol": {
"keccak256": "0x71f8b91324433fbdb16a38e5b7c214e7c30094167a7aaf77fcb045194a63af16",
"urls": [
"bzz-raw://ce7a18b9c191a676ab68f5d59449c22bead494ccba0c2272e6c8bd606a1c0fd3",
"dweb:/ipfs/QmZ4byVDnoAH67dSSXppkhTbvdNs7mmQadUnmreoeZVbSv"
],
"license": "AGPL-3.0"
},
"src/interfaces/ILendingPool.sol": {
"keccak256": "0x345ab4285354bb5184bdd501d7c37920a711215b6f6c2db05b05d585f2454115",
"urls": [
"bzz-raw://3b6264b135760dcdd59b9a3566c1305b00084922da177159a85c206ef6a91266",
"dweb:/ipfs/QmSotEH7zF3vrEgo2gZuunWwroHgc6bw7TVRntzv7jsJn1"
],
"license": "AGPL-3.0"
},
"src/interfaces/ILendingRateManager.sol": {
"keccak256": "0x6078c32591ae3ced86c344ad2f228fbcc625f09cd59a8f7014355adb89dfcde0",
"urls": [
"bzz-raw://fa594c0ceb1a0a085a6b077ac0729663f839f33f760eb8775ff1b3d25415e097",
"dweb:/ipfs/QmXU74R73UDHiwvVaU9LRrC1tHaDq5eCerenKQtFX97UL6"
],
"license": "AGPL-3.0"
},
"src/interfaces/INFTPriceOracle.sol": {
"keccak256": "0x90a5ea4bb12f751a9af3f58c19de2b5f1d9ad36c074e584af8f8f0b24df98dac",
"urls": [
"bzz-raw://a3acfe54780ea0fcd95ee9b8a4ce8a329599799f6949b6eb4828af79cf9e8659",
"dweb:/ipfs/QmUujk8TLsLGyh7afmSpCX7G19ek44KfCyEJ3FHBXhEiR9"
],
"license": "AGPL-3.0"
},
"src/interfaces/IObligationReceipt.sol": {
"keccak256": "0xff3849eafbfe1c565e4bfd5d29b3cf9b19b2035387345b77a02abde96674a0ef",
"urls": [
"bzz-raw://284d7b0d9168f23464c60b4dcdbfbb1b4d6990c501d37337f87a9b36ea557aec",
"dweb:/ipfs/QmYMi2a6MZKgj54328vvTBwrDRfGB8nhJJX6BbLkuyMjFf"
],
"license": "BUSL-1.1"
},
"src/interfaces/IPoolIncentivesController.sol": {
"keccak256": "0x7cb2c32050814e6d6d962a603104facc3bb1dad15171304e3ee756648e8f9ae1",
"urls": [
"bzz-raw://cf534f592706b2a61c539c03e5d1e199c15472bcfb4ee69838e5c93ba7914466",
"dweb:/ipfs/QmPrvXhJigK1Ke51YwAWHon1Kv88WT26iD3MwzCaPDs1Kv"
],
"license": "AGPL-3.0"
},
"src/interfaces/IPriceConsumerV3.sol": {
"keccak256": "0x0d5b17684277591efc7c61a66c0a9d9fed38c858a2f2ca65fab3c0789d23026e",
"urls": [
"bzz-raw://66fb8083f820b5a3c7b67184425971404bc74c790cad71cad997e870ba17a3e8",
"dweb:/ipfs/QmWtkjrtu6NDSM1py1syo1aJfAE6Yi1E95eYmHMHhHQ7Aw"
],
"license": "AGPL-3.0"
},
"src/interfaces/IRedeemable.sol": {
"keccak256": "0x22d2cfb983b20307f4a8950e442a9007dccb3c637c22380492ba6cfa8e32b846",
"urls": [
"bzz-raw://75c42863790291d3481ee10bead35f45abfb2a9844292c1ce2753ac69fc140eb",
"dweb:/ipfs/QmUiSSYJasAaVQBpUkEvq1zQVzB3Mw65uAjSgDfr4YGvJY"
],
"license": "BUSL-1.1"
},
"src/interfaces/IScaledBalanceToken.sol": {
"keccak256": "0xb6a8f00773c5f58af761573f39f6aa3649c9deec5c4e078f5e3ca78940e4eac7",
"urls": [
"bzz-raw://0938c6fd92b015670a2bcf5ff971aafbc6295e07c78d1300c5e36a67002dc70c",
"dweb:/ipfs/QmYDcxNaAAfnupwDcDN1xtQcCEXTwW1FWiaTiU3MksCQ1Z"
],
"license": "AGPL-3.0"
},
"src/interfaces/IStableDebtToken.sol": {
"keccak256": "0x964a76facf6d0ea459fd0222c5e8036efea4e9193af3851d68190052037755b4",
"urls": [
"bzz-raw://6eebeccfdd76a6e7691402b699c1185df09e8fe80c94cc059bd797a2931b9d3e",
"dweb:/ipfs/QmeRY3xnu979DmjgFZSEaNgEkWgjtj4Hjpg9gW3bMoaZ1v"
],
"license": "AGPL-3.0"
},
"src/interfaces/IVariableDebtToken.sol": {
"keccak256": "0x61d5cce91604a2d97218fdf1f53022e08061aae2adc6dc5fb0ba311d46a212cc",
"urls": [
"bzz-raw://e8e62cce1a93aafcff2438c111ca7af77c8c2a6ed3d5c7ffce2598aa73fb87c9",
"dweb:/ipfs/QmXXpq9J65pU5Wt9WUR1sZMjss2gUDfEvpDAc9npQfxGcC"
],
"license": "AGPL-3.0"
},
"src/protocol/libraries/configuration/ReserveConfiguration.sol": {
"keccak256": "0xa185efd08f4a3798bbafaa90fafd310f2e29634a2f83b62ee833b31a24232e3c",
"urls": [
"bzz-raw://806a0ce876edbbbd418a8297735f66907a06650606b00eac5b510ab082ed3173",
"dweb:/ipfs/QmQk5ybFrVqXfgXbndYcKBoQiahKScjFEABpJ3ATG8SYPh"
],
"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/logic/BorrowLogic.sol": {
"keccak256": "0x41584979c021aca9484ecf8eed27a67dc316332b43e80b98e3bd3617b9e44e3b",
"urls": [
"bzz-raw://8f36478f308c11d09b48237c1cab7b070f2fa34fb5f6ed02172261a61146b5c3",
"dweb:/ipfs/QmVfALy25gBU6RcsPTZMHRZRmRv4GjkH9zxBQ5spV69UET"
],
"license": "AGPL-3.0"
},
"src/protocol/libraries/logic/GenericLogic.sol": {
"keccak256": "0x9613130d98e3564a9dce097f7af399afbac4dc1e54ef86e31198537c2ffc058a",
"urls": [
"bzz-raw://b754e6d8cad2c7fdd2a1686d56476ee2c4b450189526209787b8645ebe46542c",
"dweb:/ipfs/QmNXRercwgggYU6SdBVtF9gD6kJqcTKrshc72gxv1nEeCd"
],
"license": "AGPL-3.0"
},
"src/protocol/libraries/logic/LiquidateLogic.sol": {
"keccak256": "0x7761714c2c93ae6ce76502724fa678b68dabb7c680cf62b0ef6666ceacfb2c9b",
"urls": [
"bzz-raw://5d3ecf01ee169a1e01e4c23bc4e86bba666785e29a581fb997e11675b4f097d3",
"dweb:/ipfs/QmfZjDj8pRJ4KDfF1cYL214nkMHSH2xgcc95sKmtYjmu3C"
],
"license": "BUSL-1.1"
},
"src/protocol/libraries/logic/ReserveLogic.sol": {
"keccak256": "0x62ec73dd19c9e36fd0c1a4aa4e1ca3250534010839cec91a5db5e6cadd29b556",
"urls": [
"bzz-raw://f28b9df77a1d72fe06db1bb03d51881084fbcbbca060c3d1ce7172d0d7cbaf34",
"dweb:/ipfs/QmexhggWDeu7ujHKU8xvGMG3FbV45EKBqbNAHne4rLEwCP"
],
"license": "AGPL-3.0"
},
"src/protocol/libraries/logic/SupplyLogic.sol": {
"keccak256": "0x3953a3284bbefe7cac7bc97dee696bc56850a634d985209e1203c8056b2f6e4c",
"urls": [
"bzz-raw://2165cba5e23d52cb3893754898014337d6df09a6cf9108cb3b0b9f10ccd3d2ad",
"dweb:/ipfs/QmWndqB4vuysuzynxfZBmQA7uQ9fNuaKNxctMUABr47nN5"
],
"license": "AGPL-3.0"
},
"src/protocol/libraries/logic/ValidationLogic.sol": {
"keccak256": "0x0f6512787e4c18afde885b84b1535b720f96cb7c7f6f97f4aca28f2dc610fece",
"urls": [
"bzz-raw://20a5522498236525fee4c1cdad99c102d9b3e809a28eef6d2d3301ec65a6e182",
"dweb:/ipfs/QmaUwsg4jFkdmJzmtT9eRQcEXFZmJT5NRZwHRVsJTqogoD"
],
"license": "AGPL-3.0"
},
"src/protocol/libraries/math/MathUtils.sol": {
"keccak256": "0x1c856137c4ef9d713b19a65adeb47c4490bd3b8414d7f28b364625226926779f",
"urls": [
"bzz-raw://15c029cd4a3becaa47c72c1f5c18986b0a3cb488d8145e0bf88ce618a3d70841",
"dweb:/ipfs/QmSYaWpWPbEHkRCegu5edAuRS3HTwyN2mFoSKm4yfGeec9"
],
"license": "AGPL-3.0"
},
"src/protocol/libraries/math/PercentageMath.sol": {
"keccak256": "0xb84274fc3effba81036256cf7fde67b3dbfe86c4ffd0e062711a3270157952a2",
"urls": [
"bzz-raw://3ecaf26e713b39d89ee21fb8bfefe55fe2fec4a2f5a2bffba7612f82182b7262",
"dweb:/ipfs/QmZ6oXpNspwBEkiJEz1EhsU4EVBpG3anNjtzcycNEgAkfe"
],
"license": "AGPL-3.0"
},
"src/protocol/libraries/math/WadRayMath.sol": {
"keccak256": "0xb29e8edc0e0e6bfead27945357c9e4a66e0c11e58ff3b87ee68ed1b5ca416735",
"urls": [
"bzz-raw://d1b4377995155f32bb6c3ba558875c617fa63601c597099d3460063ac2a15d93",
"dweb:/ipfs/QmUvCE6Q2J62sMgQCCEbQauWSYJpMiu3QCgWa6mZnEmcK2"
],
"license": "AGPL-3.0"
},
"src/protocol/libraries/types/ConfigTypes.sol": {
"keccak256": "0xa8f9b14d9adf738033fd1847b30012d0e022027614fd6c9bb31a01bc6bfb1634",
"urls": [
"bzz-raw://b20c579d1b683dd5977a675c2e46adeebd56c96faa68cda9b0767edf02a5b650",
"dweb:/ipfs/QmPULpaX2ouktArvXJxYNVPQ9vKBhEeCYA4smo8v57qFLD"
],
"license": "AGPL-3.0"
},
"src/protocol/libraries/types/DataTypes.sol": {
"keccak256": "0x0103c43499e5226d36906042a1723a3ee6ee18ba607cbffc9e776d4dc47edc10",
"urls": [
"bzz-raw://550191b44b6ddfe84d81bd5ded46e1ab3ac493399adfca3634fd8348a4a087fa",
"dweb:/ipfs/QmeoHga9azsBkTRdnzH9USs51JduGR2tgge5YmGW8dJ2Tq"
],
"license": "AGPL-3.0"
},
"src/protocol/oracle/NFTPriceOracleStorage.sol": {
"keccak256": "0x9847005d0c1f4d6504031346e37d421ed676afcb4711908dd3038254444088dd",
"urls": [
"bzz-raw://b9ef1ed0f1716aa142c1f584b5b77a7ef5b1a3ab90f1f9fbe84b146083d8dd77",
"dweb:/ipfs/QmQCfhtqHjfQWBokhWkGdZnfVmxsCLU5QkTW1bzEUfincT"
],
"license": "BUSL-1.1"
},
"src/protocol/oracle/Trustus.sol": {
"keccak256": "0xf3ffd2cf22289fcdd27a05a2718ef39912ecc20e57f0578907489446c2bb8cb1",
"urls": [
"bzz-raw://1d0a2967648f2278b026ef458424b592b0322e08c33e629af50102c70ab205be",
"dweb:/ipfs/QmQVWxPwCQinbZCWeJSgyDdTgrUzULxwpcxqXnPrpx3rTk"
],
"license": "AGPL-3.0"
},
"src/protocol/p2pool/LendingPool.sol": {
"keccak256": "0xfd48ac643d7f44d95a4174052404228bb6aa7d5b735ea225b076236ae34bb301",
"urls": [
"bzz-raw://7af5b1a4e18efecf111d52b0c58b45f4547e4224a60a9e184281178a29880622",
"dweb:/ipfs/QmWT7bWTHv47DHGNdt4p6FbCVAcwE3jkGm4Ay3ruo3Hu68"
],
"license": "AGPL-3.0"
},
"src/protocol/p2pool/LendingPoolStorage.sol": {
"keccak256": "0xc31280ac99fa78654a1ba2ab8190aa1467ba0adbbc4594e01396bff7b24dc3f5",
"urls": [
"bzz-raw://70783c839e90b8ab5cdb6907ba60b95cb4b525ff087e760ba29b8e2f597193b1",
"dweb:/ipfs/Qmeorb6PDCsdXJEM9kehU1pAasPxY95q6WMg4FwCyX6NCQ"
],
"license": "AGPL-3.0"
}
},
"version": 1
},
"ast": {
"absolutePath": "src/protocol/p2pool/LendingPool.sol",
"id": 67263,
"exportedSymbols": {
"BorrowLogic": [
58413
],
"ConfigTypes": [
63649
],
"ContextUpgradeable": [
28988
],
"DataTypes": [
64253
],
"Errors": [
56900
],
"IAddressProvider": [
45420
],
"ICollateralManager": [
45758
],
"IERC1155ReceiverUpgradeable": [
26377
],
"IERC165Upgradeable": [
29293
],
"IERC20": [
33440
],
"IERC721ReceiverUpgradeable": [
28519
],
"IFToken": [
46422
],
"ILendingPool": [
47057
],
"IStableDebtToken": [
47663
],
"IVariableDebtToken": [
47771
],
"Initializable": [
26136
],
"LendingPool": [
67262
],
"LendingPoolStorage": [
67334
],
"LiquidateLogic": [
60459
],
"ReentrancyGuardUpgradeable": [
26336
],
"ReserveConfiguration": [
56503
],
"ReserveLogic": [
61316
],
"SafeERC20": [
33782
],
"SafeMath": [
36719
],
"SupplyLogic": [
61780
],
"ValidationLogic": [
62908
],
"WadRayMath": [
63459
]
},
"nodeType": "SourceUnit",
"src": "38:26953:143",
"nodes": [
{
"id": 65993,
"nodeType": "PragmaDirective",
"src": "38:23:143",
"nodes": [],
"literals": [
"solidity",
"0.8",
".16"
]
},
{
"id": 65995,
"nodeType": "ImportDirective",
"src": "65:65:143",
"nodes": [],
"absolutePath": "src/interfaces/ILendingPool.sol",
"file": "../../interfaces/ILendingPool.sol",
"nameLocation": "-1:-1:-1",
"scope": 67263,
"sourceUnit": 47058,
"symbolAliases": [
{
"foreign": {
"id": 65994,
"name": "ILendingPool",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 47057,
"src": "74:12:143",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 65997,
"nodeType": "ImportDirective",
"src": "132:55:143",
"nodes": [],
"absolutePath": "src/interfaces/IFToken.sol",
"file": "../../interfaces/IFToken.sol",
"nameLocation": "-1:-1:-1",
"scope": 67263,
"sourceUnit": 46423,
"symbolAliases": [
{
"foreign": {
"id": 65996,
"name": "IFToken",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 46422,
"src": "141:7:143",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 65999,
"nodeType": "ImportDirective",
"src": "189:73:143",
"nodes": [],
"absolutePath": "src/interfaces/IStableDebtToken.sol",
"file": "../../interfaces/IStableDebtToken.sol",
"nameLocation": "-1:-1:-1",
"scope": 67263,
"sourceUnit": 47664,
"symbolAliases": [
{
"foreign": {
"id": 65998,
"name": "IStableDebtToken",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 47663,
"src": "198:16:143",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 66001,
"nodeType": "ImportDirective",
"src": "264:77:143",
"nodes": [],
"absolutePath": "src/interfaces/IVariableDebtToken.sol",
"file": "../../interfaces/IVariableDebtToken.sol",
"nameLocation": "-1:-1:-1",
"scope": 67263,
"sourceUnit": 47772,
"symbolAliases": [
{
"foreign": {
"id": 66000,
"name": "IVariableDebtToken",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 47771,
"src": "273:18:143",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 66003,
"nodeType": "ImportDirective",
"src": "343:77:143",
"nodes": [],
"absolutePath": "src/interfaces/ICollateralManager.sol",
"file": "../../interfaces/ICollateralManager.sol",
"nameLocation": "-1:-1:-1",
"scope": 67263,
"sourceUnit": 45759,
"symbolAliases": [
{
"foreign": {
"id": 66002,
"name": "ICollateralManager",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 45758,
"src": "352:18:143",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 66005,
"nodeType": "ImportDirective",
"src": "422:73:143",
"nodes": [],
"absolutePath": "src/interfaces/IAddressProvider.sol",
"file": "../../interfaces/IAddressProvider.sol",
"nameLocation": "-1:-1:-1",
"scope": 67263,
"sourceUnit": 45421,
"symbolAliases": [
{
"foreign": {
"id": 66004,
"name": "IAddressProvider",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 45420,
"src": "431:16:143",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 66007,
"nodeType": "ImportDirective",
"src": "499:62:143",
"nodes": [],
"absolutePath": "src/protocol/p2pool/LendingPoolStorage.sol",
"file": "./LendingPoolStorage.sol",
"nameLocation": "-1:-1:-1",
"scope": 67263,
"sourceUnit": 67335,
"symbolAliases": [
{
"foreign": {
"id": 66006,
"name": "LendingPoolStorage",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67334,
"src": "508:18:143",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 66009,
"nodeType": "ImportDirective",
"src": "565:91:143",
"nodes": [],
"absolutePath": "src/protocol/libraries/configuration/ReserveConfiguration.sol",
"file": "../libraries/configuration/ReserveConfiguration.sol",
"nameLocation": "-1:-1:-1",
"scope": 67263,
"sourceUnit": 56504,
"symbolAliases": [
{
"foreign": {
"id": 66008,
"name": "ReserveConfiguration",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 56503,
"src": "574:20:143",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 66011,
"nodeType": "ImportDirective",
"src": "658:67:143",
"nodes": [],
"absolutePath": "src/protocol/libraries/logic/ReserveLogic.sol",
"file": "../libraries/logic/ReserveLogic.sol",
"nameLocation": "-1:-1:-1",
"scope": 67263,
"sourceUnit": 61317,
"symbolAliases": [
{
"foreign": {
"id": 66010,
"name": "ReserveLogic",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61316,
"src": "667:12:143",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 66013,
"nodeType": "ImportDirective",
"src": "727:65:143",
"nodes": [],
"absolutePath": "src/protocol/libraries/logic/SupplyLogic.sol",
"file": "../libraries/logic/SupplyLogic.sol",
"nameLocation": "-1:-1:-1",
"scope": 67263,
"sourceUnit": 61781,
"symbolAliases": [
{
"foreign": {
"id": 66012,
"name": "SupplyLogic",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61780,
"src": "736:11:143",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 66015,
"nodeType": "ImportDirective",
"src": "794:65:143",
"nodes": [],
"absolutePath": "src/protocol/libraries/logic/BorrowLogic.sol",
"file": "../libraries/logic/BorrowLogic.sol",
"nameLocation": "-1:-1:-1",
"scope": 67263,
"sourceUnit": 58414,
"symbolAliases": [
{
"foreign": {
"id": 66014,
"name": "BorrowLogic",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 58413,
"src": "803:11:143",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 66017,
"nodeType": "ImportDirective",
"src": "861:71:143",
"nodes": [],
"absolutePath": "src/protocol/libraries/logic/LiquidateLogic.sol",
"file": "../libraries/logic/LiquidateLogic.sol",
"nameLocation": "-1:-1:-1",
"scope": 67263,
"sourceUnit": 60460,
"symbolAliases": [
{
"foreign": {
"id": 66016,
"name": "LiquidateLogic",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 60459,
"src": "870:14:143",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 66019,
"nodeType": "ImportDirective",
"src": "934:73:143",
"nodes": [],
"absolutePath": "src/protocol/libraries/logic/ValidationLogic.sol",
"file": "../libraries/logic/ValidationLogic.sol",
"nameLocation": "-1:-1:-1",
"scope": 67263,
"sourceUnit": 62909,
"symbolAliases": [
{
"foreign": {
"id": 66018,
"name": "ValidationLogic",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 62908,
"src": "943:15:143",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 66021,
"nodeType": "ImportDirective",
"src": "1011:65:143",
"nodes": [],
"absolutePath": "src/protocol/libraries/types/ConfigTypes.sol",
"file": "../libraries/types/ConfigTypes.sol",
"nameLocation": "-1:-1:-1",
"scope": 67263,
"sourceUnit": 63650,
"symbolAliases": [
{
"foreign": {
"id": 66020,
"name": "ConfigTypes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 63649,
"src": "1020:11:143",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 66023,
"nodeType": "ImportDirective",
"src": "1078:61:143",
"nodes": [],
"absolutePath": "src/protocol/libraries/types/DataTypes.sol",
"file": "../libraries/types/DataTypes.sol",
"nameLocation": "-1:-1:-1",
"scope": 67263,
"sourceUnit": 64254,
"symbolAliases": [
{
"foreign": {
"id": 66022,
"name": "DataTypes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 64253,
"src": "1087:9:143",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 66025,
"nodeType": "ImportDirective",
"src": "1141:57:143",
"nodes": [],
"absolutePath": "src/protocol/libraries/helpers/Errors.sol",
"file": "../libraries/helpers/Errors.sol",
"nameLocation": "-1:-1:-1",
"scope": 67263,
"sourceUnit": 56901,
"symbolAliases": [
{
"foreign": {
"id": 66024,
"name": "Errors",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 56900,
"src": "1150:6:143",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 66027,
"nodeType": "ImportDirective",
"src": "1200:62:143",
"nodes": [],
"absolutePath": "src/protocol/libraries/math/WadRayMath.sol",
"file": "../libraries/math/WadRayMath.sol",
"nameLocation": "-1:-1:-1",
"scope": 67263,
"sourceUnit": 63460,
"symbolAliases": [
{
"foreign": {
"id": 66026,
"name": "WadRayMath",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 63459,
"src": "1209:10:143",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 66029,
"nodeType": "ImportDirective",
"src": "1266:72:143",
"nodes": [],
"absolutePath": "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol",
"file": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
"nameLocation": "-1:-1:-1",
"scope": 67263,
"sourceUnit": 33441,
"symbolAliases": [
{
"foreign": {
"id": 66028,
"name": "IERC20",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 33440,
"src": "1275:6:143",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 66031,
"nodeType": "ImportDirective",
"src": "1340:116:143",
"nodes": [],
"absolutePath": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol",
"file": "@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol",
"nameLocation": "-1:-1:-1",
"scope": 67263,
"sourceUnit": 29294,
"symbolAliases": [
{
"foreign": {
"id": 66030,
"name": "IERC165Upgradeable",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 29293,
"src": "1349:18:143",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 66033,
"nodeType": "ImportDirective",
"src": "1458:125:143",
"nodes": [],
"absolutePath": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721ReceiverUpgradeable.sol",
"file": "@openzeppelin/contracts-upgradeable/token/ERC721/IERC721ReceiverUpgradeable.sol",
"nameLocation": "-1:-1:-1",
"scope": 67263,
"sourceUnit": 28520,
"symbolAliases": [
{
"foreign": {
"id": 66032,
"name": "IERC721ReceiverUpgradeable",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 28519,
"src": "1467:26:143",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 66035,
"nodeType": "ImportDirective",
"src": "1585:128:143",
"nodes": [],
"absolutePath": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/IERC1155ReceiverUpgradeable.sol",
"file": "@openzeppelin/contracts-upgradeable/token/ERC1155/IERC1155ReceiverUpgradeable.sol",
"nameLocation": "-1:-1:-1",
"scope": 67263,
"sourceUnit": 26378,
"symbolAliases": [
{
"foreign": {
"id": 66034,
"name": "IERC1155ReceiverUpgradeable",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 26377,
"src": "1594:27:143",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 66037,
"nodeType": "ImportDirective",
"src": "1717:84:143",
"nodes": [],
"absolutePath": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
"file": "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol",
"nameLocation": "-1:-1:-1",
"scope": 67263,
"sourceUnit": 33783,
"symbolAliases": [
{
"foreign": {
"id": 66036,
"name": "SafeERC20",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 33782,
"src": "1726:9:143",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 66039,
"nodeType": "ImportDirective",
"src": "1803:75:143",
"nodes": [],
"absolutePath": "lib/openzeppelin-contracts/contracts/utils/math/SafeMath.sol",
"file": "@openzeppelin/contracts/utils/math/SafeMath.sol",
"nameLocation": "-1:-1:-1",
"scope": 67263,
"sourceUnit": 36720,
"symbolAliases": [
{
"foreign": {
"id": 66038,
"name": "SafeMath",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 36719,
"src": "1812:8:143",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 66041,
"nodeType": "ImportDirective",
"src": "1882:98:143",
"nodes": [],
"absolutePath": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol",
"file": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol",
"nameLocation": "-1:-1:-1",
"scope": 67263,
"sourceUnit": 26137,
"symbolAliases": [
{
"foreign": {
"id": 66040,
"name": "Initializable",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 26136,
"src": "1891:13:143",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 66043,
"nodeType": "ImportDirective",
"src": "1982:102:143",
"nodes": [],
"absolutePath": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
"file": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol",
"nameLocation": "-1:-1:-1",
"scope": 67263,
"sourceUnit": 28989,
"symbolAliases": [
{
"foreign": {
"id": 66042,
"name": "ContextUpgradeable",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 28988,
"src": "1991:18:143",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 66045,
"nodeType": "ImportDirective",
"src": "2086:121:143",
"nodes": [],
"absolutePath": "lib/openzeppelin-contracts-upgradeable/contracts/security/ReentrancyGuardUpgradeable.sol",
"file": "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol",
"nameLocation": "-1:-1:-1",
"scope": 67263,
"sourceUnit": 26337,
"symbolAliases": [
{
"foreign": {
"id": 66044,
"name": "ReentrancyGuardUpgradeable",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 26336,
"src": "2095:26:143",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 67262,
"nodeType": "ContractDefinition",
"src": "2499:24490:143",
"nodes": [
{
"id": 66062,
"nodeType": "UsingForDirective",
"src": "2702:27:143",
"nodes": [],
"global": false,
"libraryName": {
"id": 66059,
"name": "SafeERC20",
"nameLocations": [
"2708:9:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 33782,
"src": "2708:9:143"
},
"typeName": {
"id": 66061,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 66060,
"name": "IERC20",
"nameLocations": [
"2722:6:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 33440,
"src": "2722:6:143"
},
"referencedDeclaration": 33440,
"src": "2722:6:143",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IERC20_$33440",
"typeString": "contract IERC20"
}
}
},
{
"id": 66065,
"nodeType": "UsingForDirective",
"src": "2735:27:143",
"nodes": [],
"global": false,
"libraryName": {
"id": 66063,
"name": "SafeMath",
"nameLocations": [
"2741:8:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 36719,
"src": "2741:8:143"
},
"typeName": {
"id": 66064,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2754:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
{
"id": 66068,
"nodeType": "UsingForDirective",
"src": "2770:29:143",
"nodes": [],
"global": false,
"libraryName": {
"id": 66066,
"name": "WadRayMath",
"nameLocations": [
"2776:10:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 63459,
"src": "2776:10:143"
},
"typeName": {
"id": 66067,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2791:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
{
"id": 66072,
"nodeType": "UsingForDirective",
"src": "2805:41:143",
"nodes": [],
"global": false,
"libraryName": {
"id": 66069,
"name": "ReserveLogic",
"nameLocations": [
"2811:12:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 61316,
"src": "2811:12:143"
},
"typeName": {
"id": 66071,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 66070,
"name": "DataTypes.Reserve",
"nameLocations": [
"2828:9:143",
"2838:7:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 63713,
"src": "2828:17:143"
},
"referencedDeclaration": 63713,
"src": "2828:17:143",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Reserve_$63713_storage_ptr",
"typeString": "struct DataTypes.Reserve"
}
}
},
{
"id": 66076,
"nodeType": "UsingForDirective",
"src": "2852:65:143",
"nodes": [],
"global": false,
"libraryName": {
"id": 66073,
"name": "ReserveConfiguration",
"nameLocations": [
"2858:20:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 56503,
"src": "2858:20:143"
},
"typeName": {
"id": 66075,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 66074,
"name": "DataTypes.ReserveConfigurationMap",
"nameLocations": [
"2883:9:143",
"2893:23:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 63746,
"src": "2883:33:143"
},
"referencedDeclaration": 63746,
"src": "2883:33:143",
"typeDescriptions": {
"typeIdentifier": "t_struct$_ReserveConfigurationMap_$63746_storage_ptr",
"typeString": "struct DataTypes.ReserveConfigurationMap"
}
}
},
{
"id": 66095,
"nodeType": "FunctionDefinition",
"src": "3273:173:143",
"nodes": [],
"body": {
"id": 66094,
"nodeType": "Block",
"src": "3337:109:143",
"nodes": [],
"statements": [
{
"expression": {
"id": 66086,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 66084,
"name": "_maxNumberOfReserves",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67314,
"src": "3348:20:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"hexValue": "323536",
"id": 66085,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3371:3:143",
"typeDescriptions": {
"typeIdentifier": "t_rational_256_by_1",
"typeString": "int_const 256"
},
"value": "256"
},
"src": "3348:26:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 66087,
"nodeType": "ExpressionStatement",
"src": "3348:26:143"
},
{
"expression": {
"id": 66092,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 66088,
"name": "_addressProvider",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67283,
"src": "3386:16:143",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IAddressProvider_$45420",
"typeString": "contract IAddressProvider"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"arguments": [
{
"id": 66090,
"name": "addressProvider",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66079,
"src": "3422:15:143",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 66089,
"name": "IAddressProvider",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 45420,
"src": "3405:16:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_IAddressProvider_$45420_$",
"typeString": "type(contract IAddressProvider)"
}
},
"id": 66091,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3405:33:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_contract$_IAddressProvider_$45420",
"typeString": "contract IAddressProvider"
}
},
"src": "3386:52:143",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IAddressProvider_$45420",
"typeString": "contract IAddressProvider"
}
},
"id": 66093,
"nodeType": "ExpressionStatement",
"src": "3386:52:143"
}
]
},
"documentation": {
"id": 66077,
"nodeType": "StructuredDocumentation",
"src": "2925:342:143",
"text": " @dev Function is invoked by the proxy contract when the LendingPool contract is added to the\n AddressProvider of the market.\n - Caching the address of the AddressProvider in order to reduce gas consumption\n on subsequent operations\n @param addressProvider The address of the AddressProvider*"
},
"functionSelector": "c4d66de8",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 66082,
"kind": "modifierInvocation",
"modifierName": {
"id": 66081,
"name": "initializer",
"nameLocations": [
"3325:11:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 26038,
"src": "3325:11:143"
},
"nodeType": "ModifierInvocation",
"src": "3325:11:143"
}
],
"name": "initialize",
"nameLocation": "3282:10:143",
"parameters": {
"id": 66080,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 66079,
"mutability": "mutable",
"name": "addressProvider",
"nameLocation": "3301:15:143",
"nodeType": "VariableDeclaration",
"scope": 66095,
"src": "3293:23:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 66078,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3293:7:143",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "3292:25:143"
},
"returnParameters": {
"id": 66083,
"nodeType": "ParameterList",
"parameters": [],
"src": "3337:0:143"
},
"scope": 67262,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"id": 66109,
"nodeType": "ModifierDefinition",
"src": "3454:124:143",
"nodes": [],
"body": {
"id": 66108,
"nodeType": "Block",
"src": "3482:96:143",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 66103,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"id": 66098,
"name": "_addressProvider",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67283,
"src": "3501:16:143",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IAddressProvider_$45420",
"typeString": "contract IAddressProvider"
}
},
"id": 66099,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "3518:15:143",
"memberName": "getConfigurator",
"nodeType": "MemberAccess",
"referencedDeclaration": 45239,
"src": "3501:32:143",
"typeDescriptions": {
"typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
"typeString": "function () view external returns (address)"
}
},
"id": 66100,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3501:34:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 66101,
"name": "_msgSender",
"nodeType": "Identifier",
"overloadedDeclarations": [
67261
],
"referencedDeclaration": 67261,
"src": "3539:10:143",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
"typeString": "function () view returns (address)"
}
},
"id": 66102,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3539:12:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "3501:50:143",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"hexValue": "4331",
"id": 66104,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3553:4:143",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_7c8a46b75fb4f22ffcb6a001d21cdfe621df9af052bfee526b19a22f3dd9d853",
"typeString": "literal_string \"C1\""
},
"value": "C1"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_7c8a46b75fb4f22ffcb6a001d21cdfe621df9af052bfee526b19a22f3dd9d853",
"typeString": "literal_string \"C1\""
}
],
"id": 66097,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "3493:7:143",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 66105,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3493:65:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 66106,
"nodeType": "ExpressionStatement",
"src": "3493:65:143"
},
{
"id": 66107,
"nodeType": "PlaceholderStatement",
"src": "3569:1:143"
}
]
},
"name": "onlyConfigurator",
"nameLocation": "3463:16:143",
"parameters": {
"id": 66096,
"nodeType": "ParameterList",
"parameters": [],
"src": "3479:2:143"
},
"virtual": false,
"visibility": "internal"
},
{
"id": 66116,
"nodeType": "ModifierDefinition",
"src": "3586:72:143",
"nodes": [],
"body": {
"id": 66115,
"nodeType": "Block",
"src": "3611:47:143",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 66111,
"name": "_whenNotPaused",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66127,
"src": "3622:14:143",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$__$returns$__$",
"typeString": "function () view"
}
},
"id": 66112,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3622:16:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 66113,
"nodeType": "ExpressionStatement",
"src": "3622:16:143"
},
{
"id": 66114,
"nodeType": "PlaceholderStatement",
"src": "3649:1:143"
}
]
},
"name": "whenNotPaused",
"nameLocation": "3595:13:143",
"parameters": {
"id": 66110,
"nodeType": "ParameterList",
"parameters": [],
"src": "3608:2:143"
},
"virtual": false,
"visibility": "internal"
},
{
"id": 66127,
"nodeType": "FunctionDefinition",
"src": "3672:97:143",
"nodes": [],
"body": {
"id": 66126,
"nodeType": "Block",
"src": "3712:57:143",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 66121,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "!",
"prefix": true,
"src": "3731:8:143",
"subExpression": {
"id": 66120,
"name": "_paused",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67325,
"src": "3732:7:143",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"expression": {
"id": 66122,
"name": "Errors",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 56900,
"src": "3741:6:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_Errors_$56900_$",
"typeString": "type(library Errors)"
}
},
"id": 66123,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "3748:12:143",
"memberName": "LP_IS_PAUSED",
"nodeType": "MemberAccess",
"referencedDeclaration": 56611,
"src": "3741:19:143",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 66119,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "3723:7:143",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 66124,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3723:38:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 66125,
"nodeType": "ExpressionStatement",
"src": "3723:38:143"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "_whenNotPaused",
"nameLocation": "3681:14:143",
"parameters": {
"id": 66117,
"nodeType": "ParameterList",
"parameters": [],
"src": "3695:2:143"
},
"returnParameters": {
"id": 66118,
"nodeType": "ParameterList",
"parameters": [],
"src": "3712:0:143"
},
"scope": 67262,
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"id": 66146,
"nodeType": "FunctionDefinition",
"src": "4161:1924:143",
"nodes": [],
"body": {
"id": 66145,
"nodeType": "Block",
"src": "4435:1650:143",
"nodes": [],
"statements": []
},
"baseFunctions": [
46710
],
"documentation": {
"id": 66128,
"nodeType": "StructuredDocumentation",
"src": "3777:378:143",
"text": "@notice Initializes a reserve.\n @param input The init reserve input parameters.\n @param fToken The derivative fToken address.\n @param stableDebtToken The derivative stableDebtToken address.\n @param variableDebtToken The derivative variableDebtToken address.\n @dev Calls internal `_initReserve` function if modifiers are succeeded. "
},
"functionSelector": "45a64925",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 66141,
"kind": "modifierInvocation",
"modifierName": {
"id": 66140,
"name": "onlyConfigurator",
"nameLocations": [
"4385:16:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 66109,
"src": "4385:16:143"
},
"nodeType": "ModifierInvocation",
"src": "4385:16:143"
}
],
"name": "initReserve",
"nameLocation": "4170:11:143",
"overrides": {
"id": 66139,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "4367:8:143"
},
"parameters": {
"id": 66138,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 66131,
"mutability": "mutable",
"name": "input",
"nameLocation": "4230:5:143",
"nodeType": "VariableDeclaration",
"scope": 66146,
"src": "4192:43:143",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_struct$_InitReserveInput_$63562_calldata_ptr",
"typeString": "struct ConfigTypes.InitReserveInput"
},
"typeName": {
"id": 66130,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 66129,
"name": "ConfigTypes.InitReserveInput",
"nameLocations": [
"4192:11:143",
"4204:16:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 63562,
"src": "4192:28:143"
},
"referencedDeclaration": 63562,
"src": "4192:28:143",
"typeDescriptions": {
"typeIdentifier": "t_struct$_InitReserveInput_$63562_storage_ptr",
"typeString": "struct ConfigTypes.InitReserveInput"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66133,
"mutability": "mutable",
"name": "fToken",
"nameLocation": "4254:6:143",
"nodeType": "VariableDeclaration",
"scope": 66146,
"src": "4246:14:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 66132,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4246:7:143",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66135,
"mutability": "mutable",
"name": "stableDebtToken",
"nameLocation": "4279:15:143",
"nodeType": "VariableDeclaration",
"scope": 66146,
"src": "4271:23:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 66134,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4271:7:143",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66137,
"mutability": "mutable",
"name": "variableDebtToken",
"nameLocation": "4313:17:143",
"nodeType": "VariableDeclaration",
"scope": 66146,
"src": "4305:25:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 66136,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4305:7:143",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "4181:156:143"
},
"returnParameters": {
"id": 66144,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 66143,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 66146,
"src": "4421:7:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 66142,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4421:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "4420:9:143"
},
"scope": 67262,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 66180,
"nodeType": "FunctionDefinition",
"src": "6352:599:143",
"nodes": [],
"body": {
"id": 66179,
"nodeType": "Block",
"src": "6577:374:143",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 66166,
"name": "_addressProvider",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67283,
"src": "6629:16:143",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IAddressProvider_$45420",
"typeString": "contract IAddressProvider"
}
},
{
"id": 66167,
"name": "_reserves",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67288,
"src": "6660:9:143",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.Reserve storage ref)"
}
},
{
"arguments": [
{
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 66170,
"name": "_msgSender",
"nodeType": "Identifier",
"overloadedDeclarations": [
67261
],
"referencedDeclaration": 67261,
"src": "6745:10:143",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
"typeString": "function () view returns (address)"
}
},
"id": 66171,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "6745:12:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 66172,
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66149,
"src": "6784:6:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"id": 66173,
"name": "reserveId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66151,
"src": "6821:9:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"id": 66174,
"name": "onBehalfOf",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66153,
"src": "6861:10:143",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 66175,
"name": "referralCode",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66155,
"src": "6904:12:143",
"typeDescriptions": {
"typeIdentifier": "t_uint16",
"typeString": "uint16"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint16",
"typeString": "uint16"
}
],
"expression": {
"id": 66168,
"name": "DataTypes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 64253,
"src": "6684:9:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_DataTypes_$64253_$",
"typeString": "type(library DataTypes)"
}
},
"id": 66169,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "6694:20:143",
"memberName": "ExecuteDepositParams",
"nodeType": "MemberAccess",
"referencedDeclaration": 63820,
"src": "6684:30:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_ExecuteDepositParams_$63820_storage_ptr_$",
"typeString": "type(struct DataTypes.ExecuteDepositParams storage pointer)"
}
},
"id": 66176,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "structConstructorCall",
"lValueRequested": false,
"nameLocations": [
"6734:9:143",
"6776:6:143",
"6810:9:143",
"6849:10:143",
"6890:12:143"
],
"names": [
"initiator",
"amount",
"reserveId",
"onBehalfOf",
"referralCode"
],
"nodeType": "FunctionCall",
"src": "6684:248:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_ExecuteDepositParams_$63820_memory_ptr",
"typeString": "struct DataTypes.ExecuteDepositParams memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_IAddressProvider_$45420",
"typeString": "contract IAddressProvider"
},
{
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.Reserve storage ref)"
},
{
"typeIdentifier": "t_struct$_ExecuteDepositParams_$63820_memory_ptr",
"typeString": "struct DataTypes.ExecuteDepositParams memory"
}
],
"expression": {
"id": 66163,
"name": "SupplyLogic",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61780,
"src": "6588:11:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_SupplyLogic_$61780_$",
"typeString": "type(library SupplyLogic)"
}
},
"id": 66165,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "6600:14:143",
"memberName": "executeDeposit",
"nodeType": "MemberAccess",
"referencedDeclaration": 61397,
"src": "6588:26:143",
"typeDescriptions": {
"typeIdentifier": "t_function_delegatecall_nonpayable$_t_contract$_IAddressProvider_$45420_$_t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$_$_t_struct$_ExecuteDepositParams_$63820_memory_ptr_$returns$__$",
"typeString": "function (contract IAddressProvider,mapping(uint256 => struct DataTypes.Reserve storage ref),struct DataTypes.ExecuteDepositParams memory)"
}
},
"id": 66177,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "6588:355:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 66178,
"nodeType": "ExpressionStatement",
"src": "6588:355:143"
}
]
},
"baseFunctions": [
46721
],
"documentation": {
"id": 66147,
"nodeType": "StructuredDocumentation",
"src": "6093:253:143",
"text": "@notice Deposit assets into the lending pool.\n @param amount The amount of ERC20 tokens.\n @param reserveId The id of the reserve.\n @param onBehalfOf Where to credit the deposit.\n @param referralCode Any referral code."
},
"functionSelector": "1de8a7c2",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 66159,
"kind": "modifierInvocation",
"modifierName": {
"id": 66158,
"name": "nonReentrant",
"nameLocations": [
"6535:12:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 26307,
"src": "6535:12:143"
},
"nodeType": "ModifierInvocation",
"src": "6535:12:143"
},
{
"id": 66161,
"kind": "modifierInvocation",
"modifierName": {
"id": 66160,
"name": "whenNotPaused",
"nameLocations": [
"6557:13:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 66116,
"src": "6557:13:143"
},
"nodeType": "ModifierInvocation",
"src": "6557:13:143"
}
],
"name": "deposit",
"nameLocation": "6361:7:143",
"overrides": {
"id": 66157,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "6517:8:143"
},
"parameters": {
"id": 66156,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 66149,
"mutability": "mutable",
"name": "amount",
"nameLocation": "6387:6:143",
"nodeType": "VariableDeclaration",
"scope": 66180,
"src": "6379:14:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 66148,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6379:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66151,
"mutability": "mutable",
"name": "reserveId",
"nameLocation": "6412:9:143",
"nodeType": "VariableDeclaration",
"scope": 66180,
"src": "6404:17:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 66150,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6404:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66153,
"mutability": "mutable",
"name": "onBehalfOf",
"nameLocation": "6440:10:143",
"nodeType": "VariableDeclaration",
"scope": 66180,
"src": "6432:18:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 66152,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "6432:7:143",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66155,
"mutability": "mutable",
"name": "referralCode",
"nameLocation": "6468:12:143",
"nodeType": "VariableDeclaration",
"scope": 66180,
"src": "6461:19:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint16",
"typeString": "uint16"
},
"typeName": {
"id": 66154,
"name": "uint16",
"nodeType": "ElementaryTypeName",
"src": "6461:6:143",
"typeDescriptions": {
"typeIdentifier": "t_uint16",
"typeString": "uint16"
}
},
"visibility": "internal"
}
],
"src": "6368:119:143"
},
"returnParameters": {
"id": 66162,
"nodeType": "ParameterList",
"parameters": [],
"src": "6577:0:143"
},
"scope": 67262,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 66217,
"nodeType": "FunctionDefinition",
"src": "6959:670:143",
"nodes": [],
"body": {
"id": 66216,
"nodeType": "Block",
"src": "7236:393:143",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 66203,
"name": "_addressProvider",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67283,
"src": "7293:16:143",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IAddressProvider_$45420",
"typeString": "contract IAddressProvider"
}
},
{
"id": 66204,
"name": "_reserves",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67288,
"src": "7324:9:143",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.Reserve storage ref)"
}
},
{
"arguments": [
{
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 66207,
"name": "_msgSender",
"nodeType": "Identifier",
"overloadedDeclarations": [
67261
],
"referencedDeclaration": 67261,
"src": "7414:10:143",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
"typeString": "function () view returns (address)"
}
},
"id": 66208,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "7414:12:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 66209,
"name": "amounts",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66183,
"src": "7454:7:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[] calldata"
}
},
{
"id": 66210,
"name": "reserveIds",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66186,
"src": "7493:10:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[] calldata"
}
},
{
"id": 66211,
"name": "onBehalfOfs",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66189,
"src": "7536:11:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
"typeString": "address[] calldata"
}
},
{
"id": 66212,
"name": "referralCodes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66192,
"src": "7581:13:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint16_$dyn_calldata_ptr",
"typeString": "uint16[] calldata"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[] calldata"
},
{
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[] calldata"
},
{
"typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
"typeString": "address[] calldata"
},
{
"typeIdentifier": "t_array$_t_uint16_$dyn_calldata_ptr",
"typeString": "uint16[] calldata"
}
],
"expression": {
"id": 66205,
"name": "DataTypes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 64253,
"src": "7348:9:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_DataTypes_$64253_$",
"typeString": "type(library DataTypes)"
}
},
"id": 66206,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "7358:25:143",
"memberName": "ExecuteBatchDepositParams",
"nodeType": "MemberAccess",
"referencedDeclaration": 63835,
"src": "7348:35:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_ExecuteBatchDepositParams_$63835_storage_ptr_$",
"typeString": "type(struct DataTypes.ExecuteBatchDepositParams storage pointer)"
}
},
"id": 66213,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "structConstructorCall",
"lValueRequested": false,
"nameLocations": [
"7403:9:143",
"7445:7:143",
"7481:10:143",
"7523:11:143",
"7566:13:143"
],
"names": [
"initiator",
"amounts",
"reserveIds",
"onBehalfOfs",
"referralCodes"
],
"nodeType": "FunctionCall",
"src": "7348:262:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_ExecuteBatchDepositParams_$63835_memory_ptr",
"typeString": "struct DataTypes.ExecuteBatchDepositParams memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_IAddressProvider_$45420",
"typeString": "contract IAddressProvider"
},
{
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.Reserve storage ref)"
},
{
"typeIdentifier": "t_struct$_ExecuteBatchDepositParams_$63835_memory_ptr",
"typeString": "struct DataTypes.ExecuteBatchDepositParams memory"
}
],
"expression": {
"id": 66200,
"name": "SupplyLogic",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61780,
"src": "7247:11:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_SupplyLogic_$61780_$",
"typeString": "type(library SupplyLogic)"
}
},
"id": 66202,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "7259:19:143",
"memberName": "executeBatchDeposit",
"nodeType": "MemberAccess",
"referencedDeclaration": 61485,
"src": "7247:31:143",
"typeDescriptions": {
"typeIdentifier": "t_function_delegatecall_nonpayable$_t_contract$_IAddressProvider_$45420_$_t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$_$_t_struct$_ExecuteBatchDepositParams_$63835_memory_ptr_$returns$__$",
"typeString": "function (contract IAddressProvider,mapping(uint256 => struct DataTypes.Reserve storage ref),struct DataTypes.ExecuteBatchDepositParams memory)"
}
},
"id": 66214,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "7247:374:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 66215,
"nodeType": "ExpressionStatement",
"src": "7247:374:143"
}
]
},
"baseFunctions": [
46736
],
"functionSelector": "4b33a967",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 66196,
"kind": "modifierInvocation",
"modifierName": {
"id": 66195,
"name": "nonReentrant",
"nameLocations": [
"7195:12:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 26307,
"src": "7195:12:143"
},
"nodeType": "ModifierInvocation",
"src": "7195:12:143"
},
{
"id": 66198,
"kind": "modifierInvocation",
"modifierName": {
"id": 66197,
"name": "whenNotPaused",
"nameLocations": [
"7217:13:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 66116,
"src": "7217:13:143"
},
"nodeType": "ModifierInvocation",
"src": "7217:13:143"
}
],
"name": "batchDeposit",
"nameLocation": "6968:12:143",
"overrides": {
"id": 66194,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "7177:8:143"
},
"parameters": {
"id": 66193,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 66183,
"mutability": "mutable",
"name": "amounts",
"nameLocation": "7010:7:143",
"nodeType": "VariableDeclaration",
"scope": 66217,
"src": "6991:26:143",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[]"
},
"typeName": {
"baseType": {
"id": 66181,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6991:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 66182,
"nodeType": "ArrayTypeName",
"src": "6991:9:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66186,
"mutability": "mutable",
"name": "reserveIds",
"nameLocation": "7047:10:143",
"nodeType": "VariableDeclaration",
"scope": 66217,
"src": "7028:29:143",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[]"
},
"typeName": {
"baseType": {
"id": 66184,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7028:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 66185,
"nodeType": "ArrayTypeName",
"src": "7028:9:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66189,
"mutability": "mutable",
"name": "onBehalfOfs",
"nameLocation": "7087:11:143",
"nodeType": "VariableDeclaration",
"scope": 66217,
"src": "7068:30:143",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
"typeString": "address[]"
},
"typeName": {
"baseType": {
"id": 66187,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "7068:7:143",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 66188,
"nodeType": "ArrayTypeName",
"src": "7068:9:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
"typeString": "address[]"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66192,
"mutability": "mutable",
"name": "referralCodes",
"nameLocation": "7127:13:143",
"nodeType": "VariableDeclaration",
"scope": 66217,
"src": "7109:31:143",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint16_$dyn_calldata_ptr",
"typeString": "uint16[]"
},
"typeName": {
"baseType": {
"id": 66190,
"name": "uint16",
"nodeType": "ElementaryTypeName",
"src": "7109:6:143",
"typeDescriptions": {
"typeIdentifier": "t_uint16",
"typeString": "uint16"
}
},
"id": 66191,
"nodeType": "ArrayTypeName",
"src": "7109:8:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint16_$dyn_storage_ptr",
"typeString": "uint16[]"
}
},
"visibility": "internal"
}
],
"src": "6980:167:143"
},
"returnParameters": {
"id": 66199,
"nodeType": "ParameterList",
"parameters": [],
"src": "7236:0:143"
},
"scope": 67262,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 66247,
"nodeType": "FunctionDefinition",
"src": "7969:471:143",
"nodes": [],
"body": {
"id": 66246,
"nodeType": "Block",
"src": "8157:283:143",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 66235,
"name": "_reserves",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67288,
"src": "8210:9:143",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.Reserve storage ref)"
}
},
{
"arguments": [
{
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 66238,
"name": "_msgSender",
"nodeType": "Identifier",
"overloadedDeclarations": [
67261
],
"referencedDeclaration": 67261,
"src": "8296:10:143",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
"typeString": "function () view returns (address)"
}
},
"id": 66239,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "8296:12:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 66240,
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66220,
"src": "8335:6:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"id": 66241,
"name": "reserveId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66222,
"src": "8371:9:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"id": 66242,
"name": "to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66224,
"src": "8403:2:143",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"expression": {
"id": 66236,
"name": "DataTypes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 64253,
"src": "8234:9:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_DataTypes_$64253_$",
"typeString": "type(library DataTypes)"
}
},
"id": 66237,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "8244:21:143",
"memberName": "ExecuteWithdrawParams",
"nodeType": "MemberAccess",
"referencedDeclaration": 63844,
"src": "8234:31:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_ExecuteWithdrawParams_$63844_storage_ptr_$",
"typeString": "type(struct DataTypes.ExecuteWithdrawParams storage pointer)"
}
},
"id": 66243,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "structConstructorCall",
"lValueRequested": false,
"nameLocations": [
"8285:9:143",
"8327:6:143",
"8360:9:143",
"8399:2:143"
],
"names": [
"initiator",
"amount",
"reserveId",
"to"
],
"nodeType": "FunctionCall",
"src": "8234:187:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_ExecuteWithdrawParams_$63844_memory_ptr",
"typeString": "struct DataTypes.ExecuteWithdrawParams memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.Reserve storage ref)"
},
{
"typeIdentifier": "t_struct$_ExecuteWithdrawParams_$63844_memory_ptr",
"typeString": "struct DataTypes.ExecuteWithdrawParams memory"
}
],
"expression": {
"id": 66232,
"name": "SupplyLogic",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61780,
"src": "8168:11:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_SupplyLogic_$61780_$",
"typeString": "type(library SupplyLogic)"
}
},
"id": 66234,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "8180:15:143",
"memberName": "executeWithdraw",
"nodeType": "MemberAccess",
"referencedDeclaration": 61502,
"src": "8168:27:143",
"typeDescriptions": {
"typeIdentifier": "t_function_delegatecall_nonpayable$_t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$_$_t_struct$_ExecuteWithdrawParams_$63844_memory_ptr_$returns$__$",
"typeString": "function (mapping(uint256 => struct DataTypes.Reserve storage ref),struct DataTypes.ExecuteWithdrawParams memory)"
}
},
"id": 66244,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "8168:264:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 66245,
"nodeType": "ExpressionStatement",
"src": "8168:264:143"
}
]
},
"baseFunctions": [
46745
],
"documentation": {
"id": 66218,
"nodeType": "StructuredDocumentation",
"src": "7637:326:143",
"text": "@notice Withdraw assets from the lending pool.\n @param amount The amount of ERC20 tokens.\n @param reserveId The reserve id.\n @param to The address that will receive the underlying, same as msg.sender if the user wants to receive to their wallet or different if the benefitiary is a different wallet"
},
"functionSelector": "0ad58d2f",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 66228,
"kind": "modifierInvocation",
"modifierName": {
"id": 66227,
"name": "nonReentrant",
"nameLocations": [
"8115:12:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 26307,
"src": "8115:12:143"
},
"nodeType": "ModifierInvocation",
"src": "8115:12:143"
},
{
"id": 66230,
"kind": "modifierInvocation",
"modifierName": {
"id": 66229,
"name": "whenNotPaused",
"nameLocations": [
"8137:13:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 66116,
"src": "8137:13:143"
},
"nodeType": "ModifierInvocation",
"src": "8137:13:143"
}
],
"name": "withdraw",
"nameLocation": "7978:8:143",
"overrides": {
"id": 66226,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "8097:8:143"
},
"parameters": {
"id": 66225,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 66220,
"mutability": "mutable",
"name": "amount",
"nameLocation": "8005:6:143",
"nodeType": "VariableDeclaration",
"scope": 66247,
"src": "7997:14:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 66219,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7997:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66222,
"mutability": "mutable",
"name": "reserveId",
"nameLocation": "8030:9:143",
"nodeType": "VariableDeclaration",
"scope": 66247,
"src": "8022:17:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 66221,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "8022:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66224,
"mutability": "mutable",
"name": "to",
"nameLocation": "8058:2:143",
"nodeType": "VariableDeclaration",
"scope": 66247,
"src": "8050:10:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 66223,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "8050:7:143",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "7986:81:143"
},
"returnParameters": {
"id": 66231,
"nodeType": "ParameterList",
"parameters": [],
"src": "8157:0:143"
},
"scope": 67262,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 66279,
"nodeType": "FunctionDefinition",
"src": "8448:526:143",
"nodes": [],
"body": {
"id": 66278,
"nodeType": "Block",
"src": "8675:299:143",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 66267,
"name": "_reserves",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67288,
"src": "8733:9:143",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.Reserve storage ref)"
}
},
{
"arguments": [
{
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 66270,
"name": "_msgSender",
"nodeType": "Identifier",
"overloadedDeclarations": [
67261
],
"referencedDeclaration": 67261,
"src": "8824:10:143",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
"typeString": "function () view returns (address)"
}
},
"id": 66271,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "8824:12:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 66272,
"name": "amounts",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66250,
"src": "8864:7:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[] calldata"
}
},
{
"id": 66273,
"name": "reserveIds",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66253,
"src": "8902:10:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[] calldata"
}
},
{
"id": 66274,
"name": "tos",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66256,
"src": "8936:3:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
"typeString": "address[] calldata"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[] calldata"
},
{
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[] calldata"
},
{
"typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
"typeString": "address[] calldata"
}
],
"expression": {
"id": 66268,
"name": "DataTypes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 64253,
"src": "8757:9:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_DataTypes_$64253_$",
"typeString": "type(library DataTypes)"
}
},
"id": 66269,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "8767:26:143",
"memberName": "ExecuteBatchWithdrawParams",
"nodeType": "MemberAccess",
"referencedDeclaration": 63856,
"src": "8757:36:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_ExecuteBatchWithdrawParams_$63856_storage_ptr_$",
"typeString": "type(struct DataTypes.ExecuteBatchWithdrawParams storage pointer)"
}
},
"id": 66275,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "structConstructorCall",
"lValueRequested": false,
"nameLocations": [
"8813:9:143",
"8855:7:143",
"8890:10:143",
"8931:3:143"
],
"names": [
"initiator",
"amounts",
"reserveIds",
"tos"
],
"nodeType": "FunctionCall",
"src": "8757:198:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_ExecuteBatchWithdrawParams_$63856_memory_ptr",
"typeString": "struct DataTypes.ExecuteBatchWithdrawParams memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.Reserve storage ref)"
},
{
"typeIdentifier": "t_struct$_ExecuteBatchWithdrawParams_$63856_memory_ptr",
"typeString": "struct DataTypes.ExecuteBatchWithdrawParams memory"
}
],
"expression": {
"id": 66264,
"name": "SupplyLogic",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61780,
"src": "8686:11:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_SupplyLogic_$61780_$",
"typeString": "type(library SupplyLogic)"
}
},
"id": 66266,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "8698:20:143",
"memberName": "executeBatchWithdraw",
"nodeType": "MemberAccess",
"referencedDeclaration": 61571,
"src": "8686:32:143",
"typeDescriptions": {
"typeIdentifier": "t_function_delegatecall_nonpayable$_t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$_$_t_struct$_ExecuteBatchWithdrawParams_$63856_memory_ptr_$returns$__$",
"typeString": "function (mapping(uint256 => struct DataTypes.Reserve storage ref),struct DataTypes.ExecuteBatchWithdrawParams memory)"
}
},
"id": 66276,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "8686:280:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 66277,
"nodeType": "ExpressionStatement",
"src": "8686:280:143"
}
]
},
"baseFunctions": [
46757
],
"functionSelector": "9e97a156",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 66260,
"kind": "modifierInvocation",
"modifierName": {
"id": 66259,
"name": "nonReentrant",
"nameLocations": [
"8633:12:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 26307,
"src": "8633:12:143"
},
"nodeType": "ModifierInvocation",
"src": "8633:12:143"
},
{
"id": 66262,
"kind": "modifierInvocation",
"modifierName": {
"id": 66261,
"name": "whenNotPaused",
"nameLocations": [
"8655:13:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 66116,
"src": "8655:13:143"
},
"nodeType": "ModifierInvocation",
"src": "8655:13:143"
}
],
"name": "batchWithdraw",
"nameLocation": "8457:13:143",
"overrides": {
"id": 66258,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "8615:8:143"
},
"parameters": {
"id": 66257,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 66250,
"mutability": "mutable",
"name": "amounts",
"nameLocation": "8500:7:143",
"nodeType": "VariableDeclaration",
"scope": 66279,
"src": "8481:26:143",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[]"
},
"typeName": {
"baseType": {
"id": 66248,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "8481:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 66249,
"nodeType": "ArrayTypeName",
"src": "8481:9:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66253,
"mutability": "mutable",
"name": "reserveIds",
"nameLocation": "8537:10:143",
"nodeType": "VariableDeclaration",
"scope": 66279,
"src": "8518:29:143",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[]"
},
"typeName": {
"baseType": {
"id": 66251,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "8518:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 66252,
"nodeType": "ArrayTypeName",
"src": "8518:9:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66256,
"mutability": "mutable",
"name": "tos",
"nameLocation": "8577:3:143",
"nodeType": "VariableDeclaration",
"scope": 66279,
"src": "8558:22:143",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
"typeString": "address[]"
},
"typeName": {
"baseType": {
"id": 66254,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "8558:7:143",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 66255,
"nodeType": "ArrayTypeName",
"src": "8558:9:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
"typeString": "address[]"
}
},
"visibility": "internal"
}
],
"src": "8470:117:143"
},
"returnParameters": {
"id": 66263,
"nodeType": "ParameterList",
"parameters": [],
"src": "8675:0:143"
},
"scope": 67262,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 66322,
"nodeType": "FunctionDefinition",
"src": "9593:790:143",
"nodes": [],
"body": {
"id": 66321,
"nodeType": "Block",
"src": "9899:484:143",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 66305,
"name": "_addressProvider",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67283,
"src": "9950:16:143",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IAddressProvider_$45420",
"typeString": "contract IAddressProvider"
}
},
{
"id": 66306,
"name": "_reserves",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67288,
"src": "9981:9:143",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.Reserve storage ref)"
}
},
{
"arguments": [
{
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 66309,
"name": "_msgSender",
"nodeType": "Identifier",
"overloadedDeclarations": [
67261
],
"referencedDeclaration": 67261,
"src": "10065:10:143",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
"typeString": "function () view returns (address)"
}
},
"id": 66310,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "10065:12:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 66311,
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66282,
"src": "10104:6:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"id": 66312,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66284,
"src": "10138:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"id": 66313,
"name": "tokenValue",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66286,
"src": "10176:10:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"id": 66314,
"name": "reserveId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66288,
"src": "10216:9:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"id": 66315,
"name": "duration",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66290,
"src": "10254:8:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"id": 66316,
"name": "onBehalfOf",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66292,
"src": "10293:10:143",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 66317,
"name": "referralCode",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66294,
"src": "10336:12:143",
"typeDescriptions": {
"typeIdentifier": "t_uint16",
"typeString": "uint16"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint16",
"typeString": "uint16"
}
],
"expression": {
"id": 66307,
"name": "DataTypes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 64253,
"src": "10005:9:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_DataTypes_$64253_$",
"typeString": "type(library DataTypes)"
}
},
"id": 66308,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "10015:19:143",
"memberName": "ExecuteBorrowParams",
"nodeType": "MemberAccess",
"referencedDeclaration": 63873,
"src": "10005:29:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_ExecuteBorrowParams_$63873_storage_ptr_$",
"typeString": "type(struct DataTypes.ExecuteBorrowParams storage pointer)"
}
},
"id": 66318,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "structConstructorCall",
"lValueRequested": false,
"nameLocations": [
"10054:9:143",
"10096:6:143",
"10129:7:143",
"10164:10:143",
"10205:9:143",
"10244:8:143",
"10281:10:143",
"10322:12:143"
],
"names": [
"initiator",
"amount",
"tokenId",
"tokenValue",
"reserveId",
"duration",
"onBehalfOf",
"referralCode"
],
"nodeType": "FunctionCall",
"src": "10005:359:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_ExecuteBorrowParams_$63873_memory_ptr",
"typeString": "struct DataTypes.ExecuteBorrowParams memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_IAddressProvider_$45420",
"typeString": "contract IAddressProvider"
},
{
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.Reserve storage ref)"
},
{
"typeIdentifier": "t_struct$_ExecuteBorrowParams_$63873_memory_ptr",
"typeString": "struct DataTypes.ExecuteBorrowParams memory"
}
],
"expression": {
"id": 66302,
"name": "BorrowLogic",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 58413,
"src": "9910:11:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_BorrowLogic_$58413_$",
"typeString": "type(library BorrowLogic)"
}
},
"id": 66304,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "9922:13:143",
"memberName": "executeBorrow",
"nodeType": "MemberAccess",
"referencedDeclaration": 57119,
"src": "9910:25:143",
"typeDescriptions": {
"typeIdentifier": "t_function_delegatecall_nonpayable$_t_contract$_IAddressProvider_$45420_$_t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$_$_t_struct$_ExecuteBorrowParams_$63873_memory_ptr_$returns$__$",
"typeString": "function (contract IAddressProvider,mapping(uint256 => struct DataTypes.Reserve storage ref),struct DataTypes.ExecuteBorrowParams memory)"
}
},
"id": 66319,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9910:465:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 66320,
"nodeType": "ExpressionStatement",
"src": "9910:465:143"
}
]
},
"baseFunctions": [
46774
],
"documentation": {
"id": 66280,
"nodeType": "StructuredDocumentation",
"src": "8982:605:143",
"text": "@notice External function to create a borrow position.\n @param amount The amount of ERC20 tokens to be borrowed.\n @param tokenId The tokenId of the ERC721 / ERC1155 token to be deposited. \n @param tokenValue The number of same-value tokens supplied (0 implies ERC721)\n @param reserveId The id of the reserve to borrow against. \n @param duration The duration of the loan, 0 if open-ended\n @param onBehalfOf The address to receive the loan.\n @param referralCode Code used to register the integrator originated the operation, for potential rewards."
},
"functionSelector": "9c74daf8",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 66298,
"kind": "modifierInvocation",
"modifierName": {
"id": 66297,
"name": "nonReentrant",
"nameLocations": [
"9858:12:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 26307,
"src": "9858:12:143"
},
"nodeType": "ModifierInvocation",
"src": "9858:12:143"
},
{
"id": 66300,
"kind": "modifierInvocation",
"modifierName": {
"id": 66299,
"name": "whenNotPaused",
"nameLocations": [
"9880:13:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 66116,
"src": "9880:13:143"
},
"nodeType": "ModifierInvocation",
"src": "9880:13:143"
}
],
"name": "borrow",
"nameLocation": "9602:6:143",
"overrides": {
"id": 66296,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "9840:8:143"
},
"parameters": {
"id": 66295,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 66282,
"mutability": "mutable",
"name": "amount",
"nameLocation": "9627:6:143",
"nodeType": "VariableDeclaration",
"scope": 66322,
"src": "9619:14:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 66281,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "9619:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66284,
"mutability": "mutable",
"name": "tokenId",
"nameLocation": "9653:7:143",
"nodeType": "VariableDeclaration",
"scope": 66322,
"src": "9645:15:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 66283,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "9645:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66286,
"mutability": "mutable",
"name": "tokenValue",
"nameLocation": "9679:10:143",
"nodeType": "VariableDeclaration",
"scope": 66322,
"src": "9671:18:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 66285,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "9671:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66288,
"mutability": "mutable",
"name": "reserveId",
"nameLocation": "9708:9:143",
"nodeType": "VariableDeclaration",
"scope": 66322,
"src": "9700:17:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 66287,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "9700:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66290,
"mutability": "mutable",
"name": "duration",
"nameLocation": "9736:8:143",
"nodeType": "VariableDeclaration",
"scope": 66322,
"src": "9728:16:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 66289,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "9728:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66292,
"mutability": "mutable",
"name": "onBehalfOf",
"nameLocation": "9763:10:143",
"nodeType": "VariableDeclaration",
"scope": 66322,
"src": "9755:18:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 66291,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "9755:7:143",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66294,
"mutability": "mutable",
"name": "referralCode",
"nameLocation": "9791:12:143",
"nodeType": "VariableDeclaration",
"scope": 66322,
"src": "9784:19:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint16",
"typeString": "uint16"
},
"typeName": {
"id": 66293,
"name": "uint16",
"nodeType": "ElementaryTypeName",
"src": "9784:6:143",
"typeDescriptions": {
"typeIdentifier": "t_uint16",
"typeString": "uint16"
}
},
"visibility": "internal"
}
],
"src": "9608:202:143"
},
"returnParameters": {
"id": 66301,
"nodeType": "ParameterList",
"parameters": [],
"src": "9899:0:143"
},
"scope": 67262,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 66376,
"nodeType": "FunctionDefinition",
"src": "10475:896:143",
"nodes": [],
"body": {
"id": 66375,
"nodeType": "Block",
"src": "10832:539:143",
"nodes": [],
"statements": [
{
"assignments": [
66353
],
"declarations": [
{
"constant": false,
"id": 66353,
"mutability": "mutable",
"name": "params",
"nameLocation": "10885:6:143",
"nodeType": "VariableDeclaration",
"scope": 66375,
"src": "10843:48:143",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_ExecuteBatchBorrowParams_$63894_memory_ptr",
"typeString": "struct DataTypes.ExecuteBatchBorrowParams"
},
"typeName": {
"id": 66352,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 66351,
"name": "DataTypes.ExecuteBatchBorrowParams",
"nameLocations": [
"10843:9:143",
"10853:24:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 63894,
"src": "10843:34:143"
},
"referencedDeclaration": 63894,
"src": "10843:34:143",
"typeDescriptions": {
"typeIdentifier": "t_struct$_ExecuteBatchBorrowParams_$63894_storage_ptr",
"typeString": "struct DataTypes.ExecuteBatchBorrowParams"
}
},
"visibility": "internal"
}
],
"id": 66366,
"initialValue": {
"arguments": [
{
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 66356,
"name": "_msgSender",
"nodeType": "Identifier",
"overloadedDeclarations": [
67261
],
"referencedDeclaration": 67261,
"src": "10955:10:143",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
"typeString": "function () view returns (address)"
}
},
"id": 66357,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "10955:12:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 66358,
"name": "amounts",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66326,
"src": "10991:7:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[] calldata"
}
},
{
"id": 66359,
"name": "tokenIds",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66329,
"src": "11023:8:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[] calldata"
}
},
{
"id": 66360,
"name": "tokenValues",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66332,
"src": "11059:11:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[] calldata"
}
},
{
"id": 66361,
"name": "reserveIds",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66335,
"src": "11097:10:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[] calldata"
}
},
{
"id": 66362,
"name": "duration",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66337,
"src": "11132:8:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"id": 66363,
"name": "onBehalfOf",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66339,
"src": "11167:10:143",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 66364,
"name": "referralCode",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66341,
"src": "11206:12:143",
"typeDescriptions": {
"typeIdentifier": "t_uint16",
"typeString": "uint16"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[] calldata"
},
{
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[] calldata"
},
{
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[] calldata"
},
{
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[] calldata"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint16",
"typeString": "uint16"
}
],
"expression": {
"id": 66354,
"name": "DataTypes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 64253,
"src": "10894:9:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_DataTypes_$64253_$",
"typeString": "type(library DataTypes)"
}
},
"id": 66355,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "10904:24:143",
"memberName": "ExecuteBatchBorrowParams",
"nodeType": "MemberAccess",
"referencedDeclaration": 63894,
"src": "10894:34:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_ExecuteBatchBorrowParams_$63894_storage_ptr_$",
"typeString": "type(struct DataTypes.ExecuteBatchBorrowParams storage pointer)"
}
},
"id": 66365,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "structConstructorCall",
"lValueRequested": false,
"nameLocations": [
"10944:9:143",
"10982:7:143",
"11013:8:143",
"11046:11:143",
"11085:10:143",
"11122:8:143",
"11155:10:143",
"11192:12:143"
],
"names": [
"initiator",
"amounts",
"tokenIds",
"tokenValues",
"reserveIds",
"duration",
"onBehalfOf",
"referralCode"
],
"nodeType": "FunctionCall",
"src": "10894:339:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_ExecuteBatchBorrowParams_$63894_memory_ptr",
"typeString": "struct DataTypes.ExecuteBatchBorrowParams memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "10843:390:143"
},
{
"expression": {
"arguments": [
{
"id": 66370,
"name": "_addressProvider",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67283,
"src": "11291:16:143",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IAddressProvider_$45420",
"typeString": "contract IAddressProvider"
}
},
{
"id": 66371,
"name": "_reserves",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67288,
"src": "11322:9:143",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.Reserve storage ref)"
}
},
{
"id": 66372,
"name": "params",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66353,
"src": "11346:6:143",
"typeDescriptions": {
"typeIdentifier": "t_struct$_ExecuteBatchBorrowParams_$63894_memory_ptr",
"typeString": "struct DataTypes.ExecuteBatchBorrowParams memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_IAddressProvider_$45420",
"typeString": "contract IAddressProvider"
},
{
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.Reserve storage ref)"
},
{
"typeIdentifier": "t_struct$_ExecuteBatchBorrowParams_$63894_memory_ptr",
"typeString": "struct DataTypes.ExecuteBatchBorrowParams memory"
}
],
"expression": {
"id": 66367,
"name": "BorrowLogic",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 58413,
"src": "11246:11:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_BorrowLogic_$58413_$",
"typeString": "type(library BorrowLogic)"
}
},
"id": 66369,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "11258:18:143",
"memberName": "executeBatchBorrow",
"nodeType": "MemberAccess",
"referencedDeclaration": 57213,
"src": "11246:30:143",
"typeDescriptions": {
"typeIdentifier": "t_function_delegatecall_nonpayable$_t_contract$_IAddressProvider_$45420_$_t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$_$_t_struct$_ExecuteBatchBorrowParams_$63894_memory_ptr_$returns$__$",
"typeString": "function (contract IAddressProvider,mapping(uint256 => struct DataTypes.Reserve storage ref),struct DataTypes.ExecuteBatchBorrowParams memory)"
}
},
"id": 66373,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "11246:117:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 66374,
"nodeType": "ExpressionStatement",
"src": "11246:117:143"
}
]
},
"baseFunctions": [
46795
],
"documentation": {
"id": 66323,
"nodeType": "StructuredDocumentation",
"src": "10391:78:143",
"text": "@dev Stack too deep to be able to be able to pass arrays for all variables"
},
"functionSelector": "c28cadf7",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 66345,
"kind": "modifierInvocation",
"modifierName": {
"id": 66344,
"name": "nonReentrant",
"nameLocations": [
"10791:12:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 26307,
"src": "10791:12:143"
},
"nodeType": "ModifierInvocation",
"src": "10791:12:143"
},
{
"id": 66347,
"kind": "modifierInvocation",
"modifierName": {
"id": 66346,
"name": "whenNotPaused",
"nameLocations": [
"10813:13:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 66116,
"src": "10813:13:143"
},
"nodeType": "ModifierInvocation",
"src": "10813:13:143"
}
],
"name": "batchBorrow",
"nameLocation": "10484:11:143",
"overrides": {
"id": 66343,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "10773:8:143"
},
"parameters": {
"id": 66342,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 66326,
"mutability": "mutable",
"name": "amounts",
"nameLocation": "10525:7:143",
"nodeType": "VariableDeclaration",
"scope": 66376,
"src": "10506:26:143",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[]"
},
"typeName": {
"baseType": {
"id": 66324,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "10506:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 66325,
"nodeType": "ArrayTypeName",
"src": "10506:9:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66329,
"mutability": "mutable",
"name": "tokenIds",
"nameLocation": "10562:8:143",
"nodeType": "VariableDeclaration",
"scope": 66376,
"src": "10543:27:143",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[]"
},
"typeName": {
"baseType": {
"id": 66327,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "10543:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 66328,
"nodeType": "ArrayTypeName",
"src": "10543:9:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66332,
"mutability": "mutable",
"name": "tokenValues",
"nameLocation": "10600:11:143",
"nodeType": "VariableDeclaration",
"scope": 66376,
"src": "10581:30:143",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[]"
},
"typeName": {
"baseType": {
"id": 66330,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "10581:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 66331,
"nodeType": "ArrayTypeName",
"src": "10581:9:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66335,
"mutability": "mutable",
"name": "reserveIds",
"nameLocation": "10641:10:143",
"nodeType": "VariableDeclaration",
"scope": 66376,
"src": "10622:29:143",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[]"
},
"typeName": {
"baseType": {
"id": 66333,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "10622:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 66334,
"nodeType": "ArrayTypeName",
"src": "10622:9:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66337,
"mutability": "mutable",
"name": "duration",
"nameLocation": "10670:8:143",
"nodeType": "VariableDeclaration",
"scope": 66376,
"src": "10662:16:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 66336,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "10662:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66339,
"mutability": "mutable",
"name": "onBehalfOf",
"nameLocation": "10697:10:143",
"nodeType": "VariableDeclaration",
"scope": 66376,
"src": "10689:18:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 66338,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "10689:7:143",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66341,
"mutability": "mutable",
"name": "referralCode",
"nameLocation": "10725:12:143",
"nodeType": "VariableDeclaration",
"scope": 66376,
"src": "10718:19:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint16",
"typeString": "uint16"
},
"typeName": {
"id": 66340,
"name": "uint16",
"nodeType": "ElementaryTypeName",
"src": "10718:6:143",
"typeDescriptions": {
"typeIdentifier": "t_uint16",
"typeString": "uint16"
}
},
"visibility": "internal"
}
],
"src": "10495:249:143"
},
"returnParameters": {
"id": 66348,
"nodeType": "ParameterList",
"parameters": [],
"src": "10832:0:143"
},
"scope": 67262,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 66404,
"nodeType": "FunctionDefinition",
"src": "11544:443:143",
"nodes": [],
"body": {
"id": 66403,
"nodeType": "Block",
"src": "11706:281:143",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 66392,
"name": "_addressProvider",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67283,
"src": "11756:16:143",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IAddressProvider_$45420",
"typeString": "contract IAddressProvider"
}
},
{
"id": 66393,
"name": "_reserves",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67288,
"src": "11787:9:143",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.Reserve storage ref)"
}
},
{
"arguments": [
{
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 66396,
"name": "_msgSender",
"nodeType": "Identifier",
"overloadedDeclarations": [
67261
],
"referencedDeclaration": 67261,
"src": "11870:10:143",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
"typeString": "function () view returns (address)"
}
},
"id": 66397,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "11870:12:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 66398,
"name": "borrowId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66379,
"src": "11911:8:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"id": 66399,
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66381,
"src": "11946:6:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"id": 66394,
"name": "DataTypes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 64253,
"src": "11811:9:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_DataTypes_$64253_$",
"typeString": "type(library DataTypes)"
}
},
"id": 66395,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "11821:18:143",
"memberName": "ExecuteRepayParams",
"nodeType": "MemberAccess",
"referencedDeclaration": 63901,
"src": "11811:28:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_ExecuteRepayParams_$63901_storage_ptr_$",
"typeString": "type(struct DataTypes.ExecuteRepayParams storage pointer)"
}
},
"id": 66400,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "structConstructorCall",
"lValueRequested": false,
"nameLocations": [
"11859:9:143",
"11901:8:143",
"11938:6:143"
],
"names": [
"initiator",
"borrowId",
"amount"
],
"nodeType": "FunctionCall",
"src": "11811:157:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_ExecuteRepayParams_$63901_memory_ptr",
"typeString": "struct DataTypes.ExecuteRepayParams memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_IAddressProvider_$45420",
"typeString": "contract IAddressProvider"
},
{
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.Reserve storage ref)"
},
{
"typeIdentifier": "t_struct$_ExecuteRepayParams_$63901_memory_ptr",
"typeString": "struct DataTypes.ExecuteRepayParams memory"
}
],
"expression": {
"id": 66389,
"name": "BorrowLogic",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 58413,
"src": "11717:11:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_BorrowLogic_$58413_$",
"typeString": "type(library BorrowLogic)"
}
},
"id": 66391,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "11729:12:143",
"memberName": "executeRepay",
"nodeType": "MemberAccess",
"referencedDeclaration": 57234,
"src": "11717:24:143",
"typeDescriptions": {
"typeIdentifier": "t_function_delegatecall_nonpayable$_t_contract$_IAddressProvider_$45420_$_t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$_$_t_struct$_ExecuteRepayParams_$63901_memory_ptr_$returns$__$",
"typeString": "function (contract IAddressProvider,mapping(uint256 => struct DataTypes.Reserve storage ref),struct DataTypes.ExecuteRepayParams memory)"
}
},
"id": 66401,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "11717:262:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 66402,
"nodeType": "ExpressionStatement",
"src": "11717:262:143"
}
]
},
"baseFunctions": [
46802
],
"documentation": {
"id": 66377,
"nodeType": "StructuredDocumentation",
"src": "11379:159:143",
"text": "@notice To repay a borrow position.\n @param borrowId The id of the borrow to repay.\n @param amount The amount of ERC20 tokens to be repaid."
},
"functionSelector": "d8aed145",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 66385,
"kind": "modifierInvocation",
"modifierName": {
"id": 66384,
"name": "nonReentrant",
"nameLocations": [
"11665:12:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 26307,
"src": "11665:12:143"
},
"nodeType": "ModifierInvocation",
"src": "11665:12:143"
},
{
"id": 66387,
"kind": "modifierInvocation",
"modifierName": {
"id": 66386,
"name": "whenNotPaused",
"nameLocations": [
"11687:13:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 66116,
"src": "11687:13:143"
},
"nodeType": "ModifierInvocation",
"src": "11687:13:143"
}
],
"name": "repay",
"nameLocation": "11553:5:143",
"overrides": {
"id": 66383,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "11647:8:143"
},
"parameters": {
"id": 66382,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 66379,
"mutability": "mutable",
"name": "borrowId",
"nameLocation": "11577:8:143",
"nodeType": "VariableDeclaration",
"scope": 66404,
"src": "11569:16:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 66378,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "11569:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66381,
"mutability": "mutable",
"name": "amount",
"nameLocation": "11604:6:143",
"nodeType": "VariableDeclaration",
"scope": 66404,
"src": "11596:14:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 66380,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "11596:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "11558:59:143"
},
"returnParameters": {
"id": 66388,
"nodeType": "ParameterList",
"parameters": [],
"src": "11706:0:143"
},
"scope": 67262,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 66433,
"nodeType": "FunctionDefinition",
"src": "11995:487:143",
"nodes": [],
"body": {
"id": 66432,
"nodeType": "Block",
"src": "12185:297:143",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 66421,
"name": "_addressProvider",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67283,
"src": "12240:16:143",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IAddressProvider_$45420",
"typeString": "contract IAddressProvider"
}
},
{
"id": 66422,
"name": "_reserves",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67288,
"src": "12271:9:143",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.Reserve storage ref)"
}
},
{
"arguments": [
{
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 66425,
"name": "_msgSender",
"nodeType": "Identifier",
"overloadedDeclarations": [
67261
],
"referencedDeclaration": 67261,
"src": "12359:10:143",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
"typeString": "function () view returns (address)"
}
},
"id": 66426,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "12359:12:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 66427,
"name": "borrowIds",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66407,
"src": "12401:9:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[] calldata"
}
},
{
"id": 66428,
"name": "amounts",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66410,
"src": "12438:7:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[] calldata"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[] calldata"
},
{
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[] calldata"
}
],
"expression": {
"id": 66423,
"name": "DataTypes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 64253,
"src": "12295:9:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_DataTypes_$64253_$",
"typeString": "type(library DataTypes)"
}
},
"id": 66424,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "12305:23:143",
"memberName": "ExecuteBatchRepayParams",
"nodeType": "MemberAccess",
"referencedDeclaration": 63910,
"src": "12295:33:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_ExecuteBatchRepayParams_$63910_storage_ptr_$",
"typeString": "type(struct DataTypes.ExecuteBatchRepayParams storage pointer)"
}
},
"id": 66429,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "structConstructorCall",
"lValueRequested": false,
"nameLocations": [
"12348:9:143",
"12390:9:143",
"12429:7:143"
],
"names": [
"initiator",
"borrowIds",
"amounts"
],
"nodeType": "FunctionCall",
"src": "12295:168:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_ExecuteBatchRepayParams_$63910_memory_ptr",
"typeString": "struct DataTypes.ExecuteBatchRepayParams memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_IAddressProvider_$45420",
"typeString": "contract IAddressProvider"
},
{
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.Reserve storage ref)"
},
{
"typeIdentifier": "t_struct$_ExecuteBatchRepayParams_$63910_memory_ptr",
"typeString": "struct DataTypes.ExecuteBatchRepayParams memory"
}
],
"expression": {
"id": 66418,
"name": "BorrowLogic",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 58413,
"src": "12196:11:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_BorrowLogic_$58413_$",
"typeString": "type(library BorrowLogic)"
}
},
"id": 66420,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "12208:17:143",
"memberName": "executeBatchRepay",
"nodeType": "MemberAccess",
"referencedDeclaration": 57292,
"src": "12196:29:143",
"typeDescriptions": {
"typeIdentifier": "t_function_delegatecall_nonpayable$_t_contract$_IAddressProvider_$45420_$_t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$_$_t_struct$_ExecuteBatchRepayParams_$63910_memory_ptr_$returns$__$",
"typeString": "function (contract IAddressProvider,mapping(uint256 => struct DataTypes.Reserve storage ref),struct DataTypes.ExecuteBatchRepayParams memory)"
}
},
"id": 66430,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "12196:278:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 66431,
"nodeType": "ExpressionStatement",
"src": "12196:278:143"
}
]
},
"baseFunctions": [
46811
],
"functionSelector": "ff7039c7",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 66414,
"kind": "modifierInvocation",
"modifierName": {
"id": 66413,
"name": "nonReentrant",
"nameLocations": [
"12144:12:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 26307,
"src": "12144:12:143"
},
"nodeType": "ModifierInvocation",
"src": "12144:12:143"
},
{
"id": 66416,
"kind": "modifierInvocation",
"modifierName": {
"id": 66415,
"name": "whenNotPaused",
"nameLocations": [
"12166:13:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 66116,
"src": "12166:13:143"
},
"nodeType": "ModifierInvocation",
"src": "12166:13:143"
}
],
"name": "batchRepay",
"nameLocation": "12004:10:143",
"overrides": {
"id": 66412,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "12126:8:143"
},
"parameters": {
"id": 66411,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 66407,
"mutability": "mutable",
"name": "borrowIds",
"nameLocation": "12044:9:143",
"nodeType": "VariableDeclaration",
"scope": 66433,
"src": "12025:28:143",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[]"
},
"typeName": {
"baseType": {
"id": 66405,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "12025:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 66406,
"nodeType": "ArrayTypeName",
"src": "12025:9:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66410,
"mutability": "mutable",
"name": "amounts",
"nameLocation": "12083:7:143",
"nodeType": "VariableDeclaration",
"scope": 66433,
"src": "12064:26:143",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[]"
},
"typeName": {
"baseType": {
"id": 66408,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "12064:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 66409,
"nodeType": "ArrayTypeName",
"src": "12064:9:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
}
},
"visibility": "internal"
}
],
"src": "12014:83:143"
},
"returnParameters": {
"id": 66417,
"nodeType": "ParameterList",
"parameters": [],
"src": "12185:0:143"
},
"scope": 67262,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 66463,
"nodeType": "FunctionDefinition",
"src": "12490:517:143",
"nodes": [],
"body": {
"id": 66462,
"nodeType": "Block",
"src": "12681:326:143",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 66450,
"name": "_addressProvider",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67283,
"src": "12735:16:143",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IAddressProvider_$45420",
"typeString": "contract IAddressProvider"
}
},
{
"id": 66451,
"name": "_reserves",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67288,
"src": "12766:9:143",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.Reserve storage ref)"
}
},
{
"arguments": [
{
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 66454,
"name": "_msgSender",
"nodeType": "Identifier",
"overloadedDeclarations": [
67261
],
"referencedDeclaration": 67261,
"src": "12853:10:143",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
"typeString": "function () view returns (address)"
}
},
"id": 66455,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "12853:12:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 66456,
"name": "borrowId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66435,
"src": "12894:8:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"id": 66457,
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66437,
"src": "12929:6:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"id": 66458,
"name": "duration",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66439,
"src": "12964:8:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"id": 66452,
"name": "DataTypes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 64253,
"src": "12790:9:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_DataTypes_$64253_$",
"typeString": "type(library DataTypes)"
}
},
"id": 66453,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "12800:22:143",
"memberName": "ExecuteRefinanceParams",
"nodeType": "MemberAccess",
"referencedDeclaration": 63919,
"src": "12790:32:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_ExecuteRefinanceParams_$63919_storage_ptr_$",
"typeString": "type(struct DataTypes.ExecuteRefinanceParams storage pointer)"
}
},
"id": 66459,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "structConstructorCall",
"lValueRequested": false,
"nameLocations": [
"12842:9:143",
"12884:8:143",
"12921:6:143",
"12954:8:143"
],
"names": [
"initiator",
"borrowId",
"amount",
"duration"
],
"nodeType": "FunctionCall",
"src": "12790:198:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_ExecuteRefinanceParams_$63919_memory_ptr",
"typeString": "struct DataTypes.ExecuteRefinanceParams memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_IAddressProvider_$45420",
"typeString": "contract IAddressProvider"
},
{
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.Reserve storage ref)"
},
{
"typeIdentifier": "t_struct$_ExecuteRefinanceParams_$63919_memory_ptr",
"typeString": "struct DataTypes.ExecuteRefinanceParams memory"
}
],
"expression": {
"id": 66447,
"name": "BorrowLogic",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 58413,
"src": "12692:11:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_BorrowLogic_$58413_$",
"typeString": "type(library BorrowLogic)"
}
},
"id": 66449,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "12704:16:143",
"memberName": "executeRefinance",
"nodeType": "MemberAccess",
"referencedDeclaration": 57313,
"src": "12692:28:143",
"typeDescriptions": {
"typeIdentifier": "t_function_delegatecall_nonpayable$_t_contract$_IAddressProvider_$45420_$_t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$_$_t_struct$_ExecuteRefinanceParams_$63919_memory_ptr_$returns$__$",
"typeString": "function (contract IAddressProvider,mapping(uint256 => struct DataTypes.Reserve storage ref),struct DataTypes.ExecuteRefinanceParams memory)"
}
},
"id": 66460,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "12692:307:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 66461,
"nodeType": "ExpressionStatement",
"src": "12692:307:143"
}
]
},
"baseFunctions": [
46820
],
"functionSelector": "044df1f2",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 66443,
"kind": "modifierInvocation",
"modifierName": {
"id": 66442,
"name": "nonReentrant",
"nameLocations": [
"12640:12:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 26307,
"src": "12640:12:143"
},
"nodeType": "ModifierInvocation",
"src": "12640:12:143"
},
{
"id": 66445,
"kind": "modifierInvocation",
"modifierName": {
"id": 66444,
"name": "whenNotPaused",
"nameLocations": [
"12662:13:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 66116,
"src": "12662:13:143"
},
"nodeType": "ModifierInvocation",
"src": "12662:13:143"
}
],
"name": "refinance",
"nameLocation": "12499:9:143",
"overrides": {
"id": 66441,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "12622:8:143"
},
"parameters": {
"id": 66440,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 66435,
"mutability": "mutable",
"name": "borrowId",
"nameLocation": "12527:8:143",
"nodeType": "VariableDeclaration",
"scope": 66463,
"src": "12519:16:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 66434,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "12519:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66437,
"mutability": "mutable",
"name": "amount",
"nameLocation": "12554:6:143",
"nodeType": "VariableDeclaration",
"scope": 66463,
"src": "12546:14:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 66436,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "12546:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66439,
"mutability": "mutable",
"name": "duration",
"nameLocation": "12579:8:143",
"nodeType": "VariableDeclaration",
"scope": 66463,
"src": "12571:16:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 66438,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "12571:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "12508:86:143"
},
"returnParameters": {
"id": 66446,
"nodeType": "ParameterList",
"parameters": [],
"src": "12681:0:143"
},
"scope": 67262,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 66496,
"nodeType": "FunctionDefinition",
"src": "13015:574:143",
"nodes": [],
"body": {
"id": 66495,
"nodeType": "Block",
"src": "13247:342:143",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 66483,
"name": "_addressProvider",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67283,
"src": "13306:16:143",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IAddressProvider_$45420",
"typeString": "contract IAddressProvider"
}
},
{
"id": 66484,
"name": "_reserves",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67288,
"src": "13337:9:143",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.Reserve storage ref)"
}
},
{
"arguments": [
{
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 66487,
"name": "_msgSender",
"nodeType": "Identifier",
"overloadedDeclarations": [
67261
],
"referencedDeclaration": 67261,
"src": "13429:10:143",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
"typeString": "function () view returns (address)"
}
},
"id": 66488,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "13429:12:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 66489,
"name": "borrowIds",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66466,
"src": "13471:9:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[] calldata"
}
},
{
"id": 66490,
"name": "amounts",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66469,
"src": "13508:7:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[] calldata"
}
},
{
"id": 66491,
"name": "durations",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66472,
"src": "13545:9:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[] calldata"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[] calldata"
},
{
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[] calldata"
},
{
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[] calldata"
}
],
"expression": {
"id": 66485,
"name": "DataTypes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 64253,
"src": "13361:9:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_DataTypes_$64253_$",
"typeString": "type(library DataTypes)"
}
},
"id": 66486,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "13371:27:143",
"memberName": "ExecuteBatchRefinanceParams",
"nodeType": "MemberAccess",
"referencedDeclaration": 63931,
"src": "13361:37:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_ExecuteBatchRefinanceParams_$63931_storage_ptr_$",
"typeString": "type(struct DataTypes.ExecuteBatchRefinanceParams storage pointer)"
}
},
"id": 66492,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "structConstructorCall",
"lValueRequested": false,
"nameLocations": [
"13418:9:143",
"13460:9:143",
"13499:7:143",
"13534:9:143"
],
"names": [
"initiator",
"borrowIds",
"amounts",
"durations"
],
"nodeType": "FunctionCall",
"src": "13361:209:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_ExecuteBatchRefinanceParams_$63931_memory_ptr",
"typeString": "struct DataTypes.ExecuteBatchRefinanceParams memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_IAddressProvider_$45420",
"typeString": "contract IAddressProvider"
},
{
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.Reserve storage ref)"
},
{
"typeIdentifier": "t_struct$_ExecuteBatchRefinanceParams_$63931_memory_ptr",
"typeString": "struct DataTypes.ExecuteBatchRefinanceParams memory"
}
],
"expression": {
"id": 66480,
"name": "BorrowLogic",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 58413,
"src": "13258:11:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_BorrowLogic_$58413_$",
"typeString": "type(library BorrowLogic)"
}
},
"id": 66482,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "13270:21:143",
"memberName": "executeBatchRefinance",
"nodeType": "MemberAccess",
"referencedDeclaration": 57386,
"src": "13258:33:143",
"typeDescriptions": {
"typeIdentifier": "t_function_delegatecall_nonpayable$_t_contract$_IAddressProvider_$45420_$_t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$_$_t_struct$_ExecuteBatchRefinanceParams_$63931_memory_ptr_$returns$__$",
"typeString": "function (contract IAddressProvider,mapping(uint256 => struct DataTypes.Reserve storage ref),struct DataTypes.ExecuteBatchRefinanceParams memory)"
}
},
"id": 66493,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "13258:323:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 66494,
"nodeType": "ExpressionStatement",
"src": "13258:323:143"
}
]
},
"baseFunctions": [
46832
],
"functionSelector": "621759de",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 66476,
"kind": "modifierInvocation",
"modifierName": {
"id": 66475,
"name": "nonReentrant",
"nameLocations": [
"13206:12:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 26307,
"src": "13206:12:143"
},
"nodeType": "ModifierInvocation",
"src": "13206:12:143"
},
{
"id": 66478,
"kind": "modifierInvocation",
"modifierName": {
"id": 66477,
"name": "whenNotPaused",
"nameLocations": [
"13228:13:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 66116,
"src": "13228:13:143"
},
"nodeType": "ModifierInvocation",
"src": "13228:13:143"
}
],
"name": "batchRefinance",
"nameLocation": "13024:14:143",
"overrides": {
"id": 66474,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "13188:8:143"
},
"parameters": {
"id": 66473,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 66466,
"mutability": "mutable",
"name": "borrowIds",
"nameLocation": "13068:9:143",
"nodeType": "VariableDeclaration",
"scope": 66496,
"src": "13049:28:143",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[]"
},
"typeName": {
"baseType": {
"id": 66464,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "13049:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 66465,
"nodeType": "ArrayTypeName",
"src": "13049:9:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66469,
"mutability": "mutable",
"name": "amounts",
"nameLocation": "13107:7:143",
"nodeType": "VariableDeclaration",
"scope": 66496,
"src": "13088:26:143",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[]"
},
"typeName": {
"baseType": {
"id": 66467,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "13088:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 66468,
"nodeType": "ArrayTypeName",
"src": "13088:9:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66472,
"mutability": "mutable",
"name": "durations",
"nameLocation": "13144:9:143",
"nodeType": "VariableDeclaration",
"scope": 66496,
"src": "13125:28:143",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[]"
},
"typeName": {
"baseType": {
"id": 66470,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "13125:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 66471,
"nodeType": "ArrayTypeName",
"src": "13125:9:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
}
},
"visibility": "internal"
}
],
"src": "13038:122:143"
},
"returnParameters": {
"id": 66479,
"nodeType": "ParameterList",
"parameters": [],
"src": "13247:0:143"
},
"scope": 67262,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 66524,
"nodeType": "FunctionDefinition",
"src": "13767:463:143",
"nodes": [],
"body": {
"id": 66523,
"nodeType": "Block",
"src": "13934:296:143",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 66512,
"name": "_addressProvider",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67283,
"src": "13989:16:143",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IAddressProvider_$45420",
"typeString": "contract IAddressProvider"
}
},
{
"id": 66513,
"name": "_reserves",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67288,
"src": "14020:9:143",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.Reserve storage ref)"
}
},
{
"arguments": [
{
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 66516,
"name": "_msgSender",
"nodeType": "Identifier",
"overloadedDeclarations": [
67261
],
"referencedDeclaration": 67261,
"src": "14105:10:143",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
"typeString": "function () view returns (address)"
}
},
"id": 66517,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "14105:12:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 66518,
"name": "borrowId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66499,
"src": "14146:8:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"id": 66519,
"name": "onBehalfOf",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66501,
"src": "14185:10:143",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"expression": {
"id": 66514,
"name": "DataTypes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 64253,
"src": "14044:9:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_DataTypes_$64253_$",
"typeString": "type(library DataTypes)"
}
},
"id": 66515,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "14054:20:143",
"memberName": "ExecuteAuctionParams",
"nodeType": "MemberAccess",
"referencedDeclaration": 63938,
"src": "14044:30:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_ExecuteAuctionParams_$63938_storage_ptr_$",
"typeString": "type(struct DataTypes.ExecuteAuctionParams storage pointer)"
}
},
"id": 66520,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "structConstructorCall",
"lValueRequested": false,
"nameLocations": [
"14094:9:143",
"14136:8:143",
"14173:10:143"
],
"names": [
"initiator",
"borrowId",
"onBehalfOf"
],
"nodeType": "FunctionCall",
"src": "14044:167:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_ExecuteAuctionParams_$63938_memory_ptr",
"typeString": "struct DataTypes.ExecuteAuctionParams memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_IAddressProvider_$45420",
"typeString": "contract IAddressProvider"
},
{
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.Reserve storage ref)"
},
{
"typeIdentifier": "t_struct$_ExecuteAuctionParams_$63938_memory_ptr",
"typeString": "struct DataTypes.ExecuteAuctionParams memory"
}
],
"expression": {
"id": 66509,
"name": "LiquidateLogic",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 60459,
"src": "13945:14:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_LiquidateLogic_$60459_$",
"typeString": "type(library LiquidateLogic)"
}
},
"id": 66511,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "13960:14:143",
"memberName": "executeAuction",
"nodeType": "MemberAccess",
"referencedDeclaration": 59677,
"src": "13945:29:143",
"typeDescriptions": {
"typeIdentifier": "t_function_delegatecall_nonpayable$_t_contract$_IAddressProvider_$45420_$_t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$_$_t_struct$_ExecuteAuctionParams_$63938_memory_ptr_$returns$__$",
"typeString": "function (contract IAddressProvider,mapping(uint256 => struct DataTypes.Reserve storage ref),struct DataTypes.ExecuteAuctionParams memory)"
}
},
"id": 66521,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "13945:277:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 66522,
"nodeType": "ExpressionStatement",
"src": "13945:277:143"
}
]
},
"baseFunctions": [
46839
],
"documentation": {
"id": 66497,
"nodeType": "StructuredDocumentation",
"src": "13597:164:143",
"text": "@notice To trigger a liquidation auction\n @param borrowId The id of the borrow.\n @param onBehalfOf The wallet to receive the auction caller fee."
},
"functionSelector": "118cfad3",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 66505,
"kind": "modifierInvocation",
"modifierName": {
"id": 66504,
"name": "nonReentrant",
"nameLocations": [
"13893:12:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 26307,
"src": "13893:12:143"
},
"nodeType": "ModifierInvocation",
"src": "13893:12:143"
},
{
"id": 66507,
"kind": "modifierInvocation",
"modifierName": {
"id": 66506,
"name": "whenNotPaused",
"nameLocations": [
"13915:13:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 66116,
"src": "13915:13:143"
},
"nodeType": "ModifierInvocation",
"src": "13915:13:143"
}
],
"name": "auction",
"nameLocation": "13776:7:143",
"overrides": {
"id": 66503,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "13875:8:143"
},
"parameters": {
"id": 66502,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 66499,
"mutability": "mutable",
"name": "borrowId",
"nameLocation": "13802:8:143",
"nodeType": "VariableDeclaration",
"scope": 66524,
"src": "13794:16:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 66498,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "13794:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66501,
"mutability": "mutable",
"name": "onBehalfOf",
"nameLocation": "13829:10:143",
"nodeType": "VariableDeclaration",
"scope": 66524,
"src": "13821:18:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 66500,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "13821:7:143",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "13783:63:143"
},
"returnParameters": {
"id": 66508,
"nodeType": "ParameterList",
"parameters": [],
"src": "13934:0:143"
},
"scope": 67262,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 66553,
"nodeType": "FunctionDefinition",
"src": "14238:506:143",
"nodes": [],
"body": {
"id": 66552,
"nodeType": "Block",
"src": "14434:310:143",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 66541,
"name": "_addressProvider",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67283,
"src": "14494:16:143",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IAddressProvider_$45420",
"typeString": "contract IAddressProvider"
}
},
{
"id": 66542,
"name": "_reserves",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67288,
"src": "14525:9:143",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.Reserve storage ref)"
}
},
{
"arguments": [
{
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 66545,
"name": "_msgSender",
"nodeType": "Identifier",
"overloadedDeclarations": [
67261
],
"referencedDeclaration": 67261,
"src": "14615:10:143",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
"typeString": "function () view returns (address)"
}
},
"id": 66546,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "14615:12:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 66547,
"name": "borrowIds",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66527,
"src": "14657:9:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[] calldata"
}
},
{
"id": 66548,
"name": "onBehalfOfs",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66530,
"src": "14698:11:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
"typeString": "address[] calldata"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[] calldata"
},
{
"typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
"typeString": "address[] calldata"
}
],
"expression": {
"id": 66543,
"name": "DataTypes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 64253,
"src": "14549:9:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_DataTypes_$64253_$",
"typeString": "type(library DataTypes)"
}
},
"id": 66544,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "14559:25:143",
"memberName": "ExecuteBatchAuctionParams",
"nodeType": "MemberAccess",
"referencedDeclaration": 63947,
"src": "14549:35:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_ExecuteBatchAuctionParams_$63947_storage_ptr_$",
"typeString": "type(struct DataTypes.ExecuteBatchAuctionParams storage pointer)"
}
},
"id": 66549,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "structConstructorCall",
"lValueRequested": false,
"nameLocations": [
"14604:9:143",
"14646:9:143",
"14685:11:143"
],
"names": [
"initiator",
"borrowIds",
"onBehalfOfs"
],
"nodeType": "FunctionCall",
"src": "14549:176:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_ExecuteBatchAuctionParams_$63947_memory_ptr",
"typeString": "struct DataTypes.ExecuteBatchAuctionParams memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_IAddressProvider_$45420",
"typeString": "contract IAddressProvider"
},
{
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.Reserve storage ref)"
},
{
"typeIdentifier": "t_struct$_ExecuteBatchAuctionParams_$63947_memory_ptr",
"typeString": "struct DataTypes.ExecuteBatchAuctionParams memory"
}
],
"expression": {
"id": 66538,
"name": "LiquidateLogic",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 60459,
"src": "14445:14:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_LiquidateLogic_$60459_$",
"typeString": "type(library LiquidateLogic)"
}
},
"id": 66540,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "14460:19:143",
"memberName": "executeBatchAuction",
"nodeType": "MemberAccess",
"referencedDeclaration": 59724,
"src": "14445:34:143",
"typeDescriptions": {
"typeIdentifier": "t_function_delegatecall_nonpayable$_t_contract$_IAddressProvider_$45420_$_t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$_$_t_struct$_ExecuteBatchAuctionParams_$63947_memory_ptr_$returns$__$",
"typeString": "function (contract IAddressProvider,mapping(uint256 => struct DataTypes.Reserve storage ref),struct DataTypes.ExecuteBatchAuctionParams memory)"
}
},
"id": 66550,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "14445:291:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 66551,
"nodeType": "ExpressionStatement",
"src": "14445:291:143"
}
]
},
"baseFunctions": [
46848
],
"functionSelector": "34e69b62",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 66534,
"kind": "modifierInvocation",
"modifierName": {
"id": 66533,
"name": "nonReentrant",
"nameLocations": [
"14393:12:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 26307,
"src": "14393:12:143"
},
"nodeType": "ModifierInvocation",
"src": "14393:12:143"
},
{
"id": 66536,
"kind": "modifierInvocation",
"modifierName": {
"id": 66535,
"name": "whenNotPaused",
"nameLocations": [
"14415:13:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 66116,
"src": "14415:13:143"
},
"nodeType": "ModifierInvocation",
"src": "14415:13:143"
}
],
"name": "batchAuction",
"nameLocation": "14247:12:143",
"overrides": {
"id": 66532,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "14375:8:143"
},
"parameters": {
"id": 66531,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 66527,
"mutability": "mutable",
"name": "borrowIds",
"nameLocation": "14289:9:143",
"nodeType": "VariableDeclaration",
"scope": 66553,
"src": "14270:28:143",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[]"
},
"typeName": {
"baseType": {
"id": 66525,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "14270:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 66526,
"nodeType": "ArrayTypeName",
"src": "14270:9:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66530,
"mutability": "mutable",
"name": "onBehalfOfs",
"nameLocation": "14328:11:143",
"nodeType": "VariableDeclaration",
"scope": 66553,
"src": "14309:30:143",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
"typeString": "address[]"
},
"typeName": {
"baseType": {
"id": 66528,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "14309:7:143",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 66529,
"nodeType": "ArrayTypeName",
"src": "14309:9:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
"typeString": "address[]"
}
},
"visibility": "internal"
}
],
"src": "14259:87:143"
},
"returnParameters": {
"id": 66537,
"nodeType": "ParameterList",
"parameters": [],
"src": "14434:0:143"
},
"scope": 67262,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 66587,
"nodeType": "FunctionDefinition",
"src": "15061:565:143",
"nodes": [],
"body": {
"id": 66586,
"nodeType": "Block",
"src": "15274:352:143",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 66573,
"name": "_addressProvider",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67283,
"src": "15325:16:143",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IAddressProvider_$45420",
"typeString": "contract IAddressProvider"
}
},
{
"id": 66574,
"name": "_reserves",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67288,
"src": "15356:9:143",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.Reserve storage ref)"
}
},
{
"arguments": [
{
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 66577,
"name": "_msgSender",
"nodeType": "Identifier",
"overloadedDeclarations": [
67261
],
"referencedDeclaration": 67261,
"src": "15437:10:143",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
"typeString": "function () view returns (address)"
}
},
"id": 66578,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "15437:12:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 66579,
"name": "asset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66556,
"src": "15475:5:143",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 66580,
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66558,
"src": "15507:6:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"id": 66581,
"name": "borrowId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66560,
"src": "15542:8:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"id": 66582,
"name": "onBehalfOf",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66562,
"src": "15581:10:143",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"expression": {
"id": 66575,
"name": "DataTypes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 64253,
"src": "15380:9:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_DataTypes_$64253_$",
"typeString": "type(library DataTypes)"
}
},
"id": 66576,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "15390:16:143",
"memberName": "ExecuteBidParams",
"nodeType": "MemberAccess",
"referencedDeclaration": 63958,
"src": "15380:26:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_ExecuteBidParams_$63958_storage_ptr_$",
"typeString": "type(struct DataTypes.ExecuteBidParams storage pointer)"
}
},
"id": 66583,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "structConstructorCall",
"lValueRequested": false,
"nameLocations": [
"15426:9:143",
"15468:5:143",
"15499:6:143",
"15532:8:143",
"15569:10:143"
],
"names": [
"initiator",
"asset",
"amount",
"borrowId",
"onBehalfOf"
],
"nodeType": "FunctionCall",
"src": "15380:227:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_ExecuteBidParams_$63958_memory_ptr",
"typeString": "struct DataTypes.ExecuteBidParams memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_IAddressProvider_$45420",
"typeString": "contract IAddressProvider"
},
{
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.Reserve storage ref)"
},
{
"typeIdentifier": "t_struct$_ExecuteBidParams_$63958_memory_ptr",
"typeString": "struct DataTypes.ExecuteBidParams memory"
}
],
"expression": {
"id": 66570,
"name": "LiquidateLogic",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 60459,
"src": "15285:14:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_LiquidateLogic_$60459_$",
"typeString": "type(library LiquidateLogic)"
}
},
"id": 66572,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "15300:10:143",
"memberName": "executeBid",
"nodeType": "MemberAccess",
"referencedDeclaration": 59745,
"src": "15285:25:143",
"typeDescriptions": {
"typeIdentifier": "t_function_delegatecall_nonpayable$_t_contract$_IAddressProvider_$45420_$_t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$_$_t_struct$_ExecuteBidParams_$63958_memory_ptr_$returns$__$",
"typeString": "function (contract IAddressProvider,mapping(uint256 => struct DataTypes.Reserve storage ref),struct DataTypes.ExecuteBidParams memory)"
}
},
"id": 66584,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "15285:333:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 66585,
"nodeType": "ExpressionStatement",
"src": "15285:333:143"
}
]
},
"baseFunctions": [
46859
],
"documentation": {
"id": 66554,
"nodeType": "StructuredDocumentation",
"src": "14752:303:143",
"text": "@notice To purchase the underlying NFT of a defaulted borrow.\n @param asset The asset contract address.\n @param amount The amount of ERC20 tokens to be paid.\n @param borrowId The id of the defaulted borrow.\n @param onBehalfOf The wallet to receive the underlying NFT."
},
"functionSelector": "a7ff3b23",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 66566,
"kind": "modifierInvocation",
"modifierName": {
"id": 66565,
"name": "nonReentrant",
"nameLocations": [
"15233:12:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 26307,
"src": "15233:12:143"
},
"nodeType": "ModifierInvocation",
"src": "15233:12:143"
},
{
"id": 66568,
"kind": "modifierInvocation",
"modifierName": {
"id": 66567,
"name": "whenNotPaused",
"nameLocations": [
"15255:13:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 66116,
"src": "15255:13:143"
},
"nodeType": "ModifierInvocation",
"src": "15255:13:143"
}
],
"name": "bid",
"nameLocation": "15070:3:143",
"overrides": {
"id": 66564,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "15215:8:143"
},
"parameters": {
"id": 66563,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 66556,
"mutability": "mutable",
"name": "asset",
"nameLocation": "15092:5:143",
"nodeType": "VariableDeclaration",
"scope": 66587,
"src": "15084:13:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 66555,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "15084:7:143",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66558,
"mutability": "mutable",
"name": "amount",
"nameLocation": "15116:6:143",
"nodeType": "VariableDeclaration",
"scope": 66587,
"src": "15108:14:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 66557,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "15108:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66560,
"mutability": "mutable",
"name": "borrowId",
"nameLocation": "15142:8:143",
"nodeType": "VariableDeclaration",
"scope": 66587,
"src": "15134:16:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 66559,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "15134:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66562,
"mutability": "mutable",
"name": "onBehalfOf",
"nameLocation": "15169:10:143",
"nodeType": "VariableDeclaration",
"scope": 66587,
"src": "15161:18:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 66561,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "15161:7:143",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "15073:113:143"
},
"returnParameters": {
"id": 66569,
"nodeType": "ParameterList",
"parameters": [],
"src": "15274:0:143"
},
"scope": 67262,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 66624,
"nodeType": "FunctionDefinition",
"src": "15634:636:143",
"nodes": [],
"body": {
"id": 66623,
"nodeType": "Block",
"src": "15900:370:143",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 66610,
"name": "_addressProvider",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67283,
"src": "15956:16:143",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IAddressProvider_$45420",
"typeString": "contract IAddressProvider"
}
},
{
"id": 66611,
"name": "_reserves",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67288,
"src": "15987:9:143",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.Reserve storage ref)"
}
},
{
"arguments": [
{
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 66614,
"name": "_msgSender",
"nodeType": "Identifier",
"overloadedDeclarations": [
67261
],
"referencedDeclaration": 67261,
"src": "16073:10:143",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
"typeString": "function () view returns (address)"
}
},
"id": 66615,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "16073:12:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 66616,
"name": "assets",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66590,
"src": "16112:6:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
"typeString": "address[] calldata"
}
},
{
"id": 66617,
"name": "amounts",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66593,
"src": "16146:7:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[] calldata"
}
},
{
"id": 66618,
"name": "borrowIds",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66596,
"src": "16183:9:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[] calldata"
}
},
{
"id": 66619,
"name": "onBehalfOfs",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66599,
"src": "16224:11:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
"typeString": "address[] calldata"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
"typeString": "address[] calldata"
},
{
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[] calldata"
},
{
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[] calldata"
},
{
"typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
"typeString": "address[] calldata"
}
],
"expression": {
"id": 66612,
"name": "DataTypes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 64253,
"src": "16011:9:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_DataTypes_$64253_$",
"typeString": "type(library DataTypes)"
}
},
"id": 66613,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "16021:21:143",
"memberName": "ExecuteBatchBidParams",
"nodeType": "MemberAccess",
"referencedDeclaration": 63973,
"src": "16011:31:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_ExecuteBatchBidParams_$63973_storage_ptr_$",
"typeString": "type(struct DataTypes.ExecuteBatchBidParams storage pointer)"
}
},
"id": 66620,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "structConstructorCall",
"lValueRequested": false,
"nameLocations": [
"16062:9:143",
"16104:6:143",
"16137:7:143",
"16172:9:143",
"16211:11:143"
],
"names": [
"initiator",
"assets",
"amounts",
"borrowIds",
"onBehalfOfs"
],
"nodeType": "FunctionCall",
"src": "16011:240:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_ExecuteBatchBidParams_$63973_memory_ptr",
"typeString": "struct DataTypes.ExecuteBatchBidParams memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_IAddressProvider_$45420",
"typeString": "contract IAddressProvider"
},
{
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.Reserve storage ref)"
},
{
"typeIdentifier": "t_struct$_ExecuteBatchBidParams_$63973_memory_ptr",
"typeString": "struct DataTypes.ExecuteBatchBidParams memory"
}
],
"expression": {
"id": 66607,
"name": "LiquidateLogic",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 60459,
"src": "15911:14:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_LiquidateLogic_$60459_$",
"typeString": "type(library LiquidateLogic)"
}
},
"id": 66609,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "15926:15:143",
"memberName": "executeBatchBid",
"nodeType": "MemberAccess",
"referencedDeclaration": 59822,
"src": "15911:30:143",
"typeDescriptions": {
"typeIdentifier": "t_function_delegatecall_nonpayable$_t_contract$_IAddressProvider_$45420_$_t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$_$_t_struct$_ExecuteBatchBidParams_$63973_memory_ptr_$returns$__$",
"typeString": "function (contract IAddressProvider,mapping(uint256 => struct DataTypes.Reserve storage ref),struct DataTypes.ExecuteBatchBidParams memory)"
}
},
"id": 66621,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "15911:351:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 66622,
"nodeType": "ExpressionStatement",
"src": "15911:351:143"
}
]
},
"baseFunctions": [
46874
],
"functionSelector": "2684dd09",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 66603,
"kind": "modifierInvocation",
"modifierName": {
"id": 66602,
"name": "nonReentrant",
"nameLocations": [
"15859:12:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 26307,
"src": "15859:12:143"
},
"nodeType": "ModifierInvocation",
"src": "15859:12:143"
},
{
"id": 66605,
"kind": "modifierInvocation",
"modifierName": {
"id": 66604,
"name": "whenNotPaused",
"nameLocations": [
"15881:13:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 66116,
"src": "15881:13:143"
},
"nodeType": "ModifierInvocation",
"src": "15881:13:143"
}
],
"name": "batchBid",
"nameLocation": "15643:8:143",
"overrides": {
"id": 66601,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "15841:8:143"
},
"parameters": {
"id": 66600,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 66590,
"mutability": "mutable",
"name": "assets",
"nameLocation": "15681:6:143",
"nodeType": "VariableDeclaration",
"scope": 66624,
"src": "15662:25:143",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
"typeString": "address[]"
},
"typeName": {
"baseType": {
"id": 66588,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "15662:7:143",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 66589,
"nodeType": "ArrayTypeName",
"src": "15662:9:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
"typeString": "address[]"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66593,
"mutability": "mutable",
"name": "amounts",
"nameLocation": "15717:7:143",
"nodeType": "VariableDeclaration",
"scope": 66624,
"src": "15698:26:143",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[]"
},
"typeName": {
"baseType": {
"id": 66591,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "15698:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 66592,
"nodeType": "ArrayTypeName",
"src": "15698:9:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66596,
"mutability": "mutable",
"name": "borrowIds",
"nameLocation": "15755:9:143",
"nodeType": "VariableDeclaration",
"scope": 66624,
"src": "15736:28:143",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[]"
},
"typeName": {
"baseType": {
"id": 66594,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "15736:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 66595,
"nodeType": "ArrayTypeName",
"src": "15736:9:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66599,
"mutability": "mutable",
"name": "onBehalfOfs",
"nameLocation": "15794:11:143",
"nodeType": "VariableDeclaration",
"scope": 66624,
"src": "15775:30:143",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
"typeString": "address[]"
},
"typeName": {
"baseType": {
"id": 66597,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "15775:7:143",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 66598,
"nodeType": "ArrayTypeName",
"src": "15775:9:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
"typeString": "address[]"
}
},
"visibility": "internal"
}
],
"src": "15651:161:143"
},
"returnParameters": {
"id": 66606,
"nodeType": "ParameterList",
"parameters": [],
"src": "15900:0:143"
},
"scope": 67262,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 66640,
"nodeType": "FunctionDefinition",
"src": "16447:227:143",
"nodes": [],
"body": {
"id": 66639,
"nodeType": "Block",
"src": "16614:60:143",
"nodes": [],
"statements": [
{
"expression": {
"expression": {
"baseExpression": {
"id": 66634,
"name": "_reserves",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67288,
"src": "16632:9:143",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.Reserve storage ref)"
}
},
"id": 66636,
"indexExpression": {
"id": 66635,
"name": "reserveId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66627,
"src": "16642:9:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "16632:20:143",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Reserve_$63713_storage",
"typeString": "struct DataTypes.Reserve storage ref"
}
},
"id": 66637,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "16653:13:143",
"memberName": "configuration",
"nodeType": "MemberAccess",
"referencedDeclaration": 63680,
"src": "16632:34:143",
"typeDescriptions": {
"typeIdentifier": "t_struct$_ReserveConfigurationMap_$63746_storage",
"typeString": "struct DataTypes.ReserveConfigurationMap storage ref"
}
},
"functionReturnParameters": 66633,
"id": 66638,
"nodeType": "Return",
"src": "16625:41:143"
}
]
},
"baseFunctions": [
46882
],
"documentation": {
"id": 66625,
"nodeType": "StructuredDocumentation",
"src": "16278:163:143",
"text": " @dev Returns the configuration of the reserve\n @param reserveId The id of the reserve\n @return The configuration of the reserve*"
},
"functionSelector": "eadff055",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getReserveConfiguration",
"nameLocation": "16456:23:143",
"overrides": {
"id": 66629,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "16540:8:143"
},
"parameters": {
"id": 66628,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 66627,
"mutability": "mutable",
"name": "reserveId",
"nameLocation": "16488:9:143",
"nodeType": "VariableDeclaration",
"scope": 66640,
"src": "16480:17:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 66626,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "16480:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "16479:19:143"
},
"returnParameters": {
"id": 66633,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 66632,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 66640,
"src": "16567:40:143",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_ReserveConfigurationMap_$63746_memory_ptr",
"typeString": "struct DataTypes.ReserveConfigurationMap"
},
"typeName": {
"id": 66631,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 66630,
"name": "DataTypes.ReserveConfigurationMap",
"nameLocations": [
"16567:9:143",
"16577:23:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 63746,
"src": "16567:33:143"
},
"referencedDeclaration": 63746,
"src": "16567:33:143",
"typeDescriptions": {
"typeIdentifier": "t_struct$_ReserveConfigurationMap_$63746_storage_ptr",
"typeString": "struct DataTypes.ReserveConfigurationMap"
}
},
"visibility": "internal"
}
],
"src": "16566:42:143"
},
"scope": 67262,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 66658,
"nodeType": "FunctionDefinition",
"src": "16682:203:143",
"nodes": [],
"body": {
"id": 66657,
"nodeType": "Block",
"src": "16814:71:143",
"nodes": [],
"statements": [
{
"expression": {
"id": 66655,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"expression": {
"baseExpression": {
"id": 66650,
"name": "_reserves",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67288,
"src": "16825:9:143",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.Reserve storage ref)"
}
},
"id": 66652,
"indexExpression": {
"id": 66651,
"name": "reserveId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66642,
"src": "16835:9:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "16825:20:143",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Reserve_$63713_storage",
"typeString": "struct DataTypes.Reserve storage ref"
}
},
"id": 66653,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "16846:14:143",
"memberName": "maxTokenSupply",
"nodeType": "MemberAccess",
"referencedDeclaration": 63698,
"src": "16825:35:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 66654,
"name": "maxTokenSupply",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66644,
"src": "16863:14:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "16825:52:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 66656,
"nodeType": "ExpressionStatement",
"src": "16825:52:143"
}
]
},
"baseFunctions": [
47017
],
"functionSelector": "d6ee0f73",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 66648,
"kind": "modifierInvocation",
"modifierName": {
"id": 66647,
"name": "onlyConfigurator",
"nameLocations": [
"16797:16:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 66109,
"src": "16797:16:143"
},
"nodeType": "ModifierInvocation",
"src": "16797:16:143"
}
],
"name": "setReserveMaxSupply",
"nameLocation": "16691:19:143",
"overrides": {
"id": 66646,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "16788:8:143"
},
"parameters": {
"id": 66645,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 66642,
"mutability": "mutable",
"name": "reserveId",
"nameLocation": "16729:9:143",
"nodeType": "VariableDeclaration",
"scope": 66658,
"src": "16721:17:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 66641,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "16721:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66644,
"mutability": "mutable",
"name": "maxTokenSupply",
"nameLocation": "16757:14:143",
"nodeType": "VariableDeclaration",
"scope": 66658,
"src": "16749:22:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 66643,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "16749:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "16710:68:143"
},
"returnParameters": {
"id": 66649,
"nodeType": "ParameterList",
"parameters": [],
"src": "16814:0:143"
},
"scope": 67262,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 66699,
"nodeType": "FunctionDefinition",
"src": "17086:365:143",
"nodes": [],
"body": {
"id": 66698,
"nodeType": "Block",
"src": "17149:302:143",
"nodes": [],
"statements": [
{
"condition": {
"commonType": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"id": 66669,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 66667,
"name": "_paused",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67325,
"src": "17164:7:143",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"id": 66668,
"name": "val",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66661,
"src": "17175:3:143",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"src": "17164:14:143",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 66697,
"nodeType": "IfStatement",
"src": "17160:284:143",
"trueBody": {
"id": 66696,
"nodeType": "Block",
"src": "17180:264:143",
"statements": [
{
"expression": {
"id": 66672,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 66670,
"name": "_paused",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67325,
"src": "17191:7:143",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 66671,
"name": "val",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66661,
"src": "17201:3:143",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"src": "17191:13:143",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 66673,
"nodeType": "ExpressionStatement",
"src": "17191:13:143"
},
{
"condition": {
"id": 66674,
"name": "_paused",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67325,
"src": "17219:7:143",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": {
"id": 66694,
"nodeType": "Block",
"src": "17322:111:143",
"statements": [
{
"expression": {
"id": 66689,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 66684,
"name": "_pauseDurationTime",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67329,
"src": "17337:18:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 66688,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"expression": {
"id": 66685,
"name": "block",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -4,
"src": "17358:5:143",
"typeDescriptions": {
"typeIdentifier": "t_magic_block",
"typeString": "block"
}
},
"id": 66686,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "17364:9:143",
"memberName": "timestamp",
"nodeType": "MemberAccess",
"src": "17358:15:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "-",
"rightExpression": {
"id": 66687,
"name": "_pauseStartTime",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67327,
"src": "17376:15:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "17358:33:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "17337:54:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 66690,
"nodeType": "ExpressionStatement",
"src": "17337:54:143"
},
{
"eventCall": {
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 66691,
"name": "Unpaused",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 46563,
"src": "17411:8:143",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$__$returns$__$",
"typeString": "function ()"
}
},
"id": 66692,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "17411:10:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 66693,
"nodeType": "EmitStatement",
"src": "17406:15:143"
}
]
},
"id": 66695,
"nodeType": "IfStatement",
"src": "17215:218:143",
"trueBody": {
"id": 66683,
"nodeType": "Block",
"src": "17228:88:143",
"statements": [
{
"expression": {
"id": 66678,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 66675,
"name": "_pauseStartTime",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67327,
"src": "17243:15:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"expression": {
"id": 66676,
"name": "block",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -4,
"src": "17261:5:143",
"typeDescriptions": {
"typeIdentifier": "t_magic_block",
"typeString": "block"
}
},
"id": 66677,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "17267:9:143",
"memberName": "timestamp",
"nodeType": "MemberAccess",
"src": "17261:15:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "17243:33:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 66679,
"nodeType": "ExpressionStatement",
"src": "17243:33:143"
},
{
"eventCall": {
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 66680,
"name": "Paused",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 46560,
"src": "17296:6:143",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$__$returns$__$",
"typeString": "function ()"
}
},
"id": 66681,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "17296:8:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 66682,
"nodeType": "EmitStatement",
"src": "17291:13:143"
}
]
}
}
]
}
}
]
},
"baseFunctions": [
46913
],
"documentation": {
"id": 66659,
"nodeType": "StructuredDocumentation",
"src": "16893:187:143",
"text": " @dev Set the _pause state of the pool\n - Only callable by the LendPoolConfigurator contract\n @param val `true` to pause the pool, `false` to un-pause it"
},
"functionSelector": "bedb86fb",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 66665,
"kind": "modifierInvocation",
"modifierName": {
"id": 66664,
"name": "onlyConfigurator",
"nameLocations": [
"17132:16:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 66109,
"src": "17132:16:143"
},
"nodeType": "ModifierInvocation",
"src": "17132:16:143"
}
],
"name": "setPause",
"nameLocation": "17095:8:143",
"overrides": {
"id": 66663,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "17123:8:143"
},
"parameters": {
"id": 66662,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 66661,
"mutability": "mutable",
"name": "val",
"nameLocation": "17109:3:143",
"nodeType": "VariableDeclaration",
"scope": 66699,
"src": "17104:8:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 66660,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "17104:4:143",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
}
],
"src": "17103:10:143"
},
"returnParameters": {
"id": 66666,
"nodeType": "ParameterList",
"parameters": [],
"src": "17149:0:143"
},
"scope": 67262,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 66709,
"nodeType": "FunctionDefinition",
"src": "17522:89:143",
"nodes": [],
"body": {
"id": 66708,
"nodeType": "Block",
"src": "17578:33:143",
"nodes": [],
"statements": [
{
"expression": {
"id": 66706,
"name": "_paused",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67325,
"src": "17596:7:143",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 66705,
"id": 66707,
"nodeType": "Return",
"src": "17589:14:143"
}
]
},
"baseFunctions": [
46926
],
"documentation": {
"id": 66700,
"nodeType": "StructuredDocumentation",
"src": "17459:57:143",
"text": " @dev Returns if the LendPool is paused"
},
"functionSelector": "5c975abb",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "paused",
"nameLocation": "17531:6:143",
"overrides": {
"id": 66702,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "17554:8:143"
},
"parameters": {
"id": 66701,
"nodeType": "ParameterList",
"parameters": [],
"src": "17537:2:143"
},
"returnParameters": {
"id": 66705,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 66704,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 66709,
"src": "17572:4:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 66703,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "17572:4:143",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
}
],
"src": "17571:6:143"
},
"scope": 67262,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 66733,
"nodeType": "FunctionDefinition",
"src": "17619:247:143",
"nodes": [],
"body": {
"id": 66732,
"nodeType": "Block",
"src": "17718:148:143",
"nodes": [],
"statements": [
{
"expression": {
"id": 66721,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 66719,
"name": "_pauseStartTime",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67327,
"src": "17729:15:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 66720,
"name": "startTime",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66711,
"src": "17747:9:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "17729:27:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 66722,
"nodeType": "ExpressionStatement",
"src": "17729:27:143"
},
{
"expression": {
"id": 66725,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 66723,
"name": "_pauseDurationTime",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67329,
"src": "17767:18:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 66724,
"name": "durationTime",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66713,
"src": "17788:12:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "17767:33:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 66726,
"nodeType": "ExpressionStatement",
"src": "17767:33:143"
},
{
"eventCall": {
"arguments": [
{
"id": 66728,
"name": "startTime",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66711,
"src": "17834:9:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"id": 66729,
"name": "durationTime",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66713,
"src": "17845:12:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 66727,
"name": "PausedTimeUpdated",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 46570,
"src": "17816:17:143",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
"typeString": "function (uint256,uint256)"
}
},
"id": 66730,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "17816:42:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 66731,
"nodeType": "EmitStatement",
"src": "17811:47:143"
}
]
},
"baseFunctions": [
46920
],
"functionSelector": "2f923ff7",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 66717,
"kind": "modifierInvocation",
"modifierName": {
"id": 66716,
"name": "onlyConfigurator",
"nameLocations": [
"17701:16:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 66109,
"src": "17701:16:143"
},
"nodeType": "ModifierInvocation",
"src": "17701:16:143"
}
],
"name": "setPausedTime",
"nameLocation": "17628:13:143",
"overrides": {
"id": 66715,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "17692:8:143"
},
"parameters": {
"id": 66714,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 66711,
"mutability": "mutable",
"name": "startTime",
"nameLocation": "17650:9:143",
"nodeType": "VariableDeclaration",
"scope": 66733,
"src": "17642:17:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 66710,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "17642:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66713,
"mutability": "mutable",
"name": "durationTime",
"nameLocation": "17669:12:143",
"nodeType": "VariableDeclaration",
"scope": 66733,
"src": "17661:20:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 66712,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "17661:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "17641:41:143"
},
"returnParameters": {
"id": 66718,
"nodeType": "ParameterList",
"parameters": [],
"src": "17718:0:143"
},
"scope": 67262,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 66746,
"nodeType": "FunctionDefinition",
"src": "17874:138:143",
"nodes": [],
"body": {
"id": 66745,
"nodeType": "Block",
"src": "17949:63:143",
"nodes": [],
"statements": [
{
"expression": {
"components": [
{
"id": 66741,
"name": "_pauseStartTime",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67327,
"src": "17968:15:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"id": 66742,
"name": "_pauseDurationTime",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67329,
"src": "17985:18:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 66743,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "17967:37:143",
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
"typeString": "tuple(uint256,uint256)"
}
},
"functionReturnParameters": 66740,
"id": 66744,
"nodeType": "Return",
"src": "17960:44:143"
}
]
},
"baseFunctions": [
46933
],
"functionSelector": "8fc42188",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getPausedTime",
"nameLocation": "17883:13:143",
"overrides": {
"id": 66735,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "17913:8:143"
},
"parameters": {
"id": 66734,
"nodeType": "ParameterList",
"parameters": [],
"src": "17896:2:143"
},
"returnParameters": {
"id": 66740,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 66737,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 66746,
"src": "17931:7:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 66736,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "17931:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66739,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 66746,
"src": "17940:7:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 66738,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "17940:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "17930:18:143"
},
"scope": 67262,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 66757,
"nodeType": "FunctionDefinition",
"src": "18112:122:143",
"nodes": [],
"body": {
"id": 66756,
"nodeType": "Block",
"src": "18192:42:143",
"nodes": [],
"statements": [
{
"expression": {
"id": 66754,
"name": "_addressProvider",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67283,
"src": "18210:16:143",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IAddressProvider_$45420",
"typeString": "contract IAddressProvider"
}
},
"functionReturnParameters": 66753,
"id": 66755,
"nodeType": "Return",
"src": "18203:23:143"
}
]
},
"baseFunctions": [
46939
],
"documentation": {
"id": 66747,
"nodeType": "StructuredDocumentation",
"src": "18020:86:143",
"text": " @dev Returns the cached AddressProvider connected to this contract*"
},
"functionSelector": "f8c68934",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getAddressProvider",
"nameLocation": "18121:18:143",
"overrides": {
"id": 66749,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "18156:8:143"
},
"parameters": {
"id": 66748,
"nodeType": "ParameterList",
"parameters": [],
"src": "18139:2:143"
},
"returnParameters": {
"id": 66753,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 66752,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 66757,
"src": "18174:16:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IAddressProvider_$45420",
"typeString": "contract IAddressProvider"
},
"typeName": {
"id": 66751,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 66750,
"name": "IAddressProvider",
"nameLocations": [
"18174:16:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 45420,
"src": "18174:16:143"
},
"referencedDeclaration": 45420,
"src": "18174:16:143",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IAddressProvider_$45420",
"typeString": "contract IAddressProvider"
}
},
"visibility": "internal"
}
],
"src": "18173:18:143"
},
"scope": 67262,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 66770,
"nodeType": "FunctionDefinition",
"src": "18242:125:143",
"nodes": [],
"body": {
"id": 66769,
"nodeType": "Block",
"src": "18322:45:143",
"nodes": [],
"statements": [
{
"expression": {
"id": 66767,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 66765,
"name": "_maxNumberOfReserves",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67314,
"src": "18333:20:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 66766,
"name": "val",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66759,
"src": "18356:3:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "18333:26:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 66768,
"nodeType": "ExpressionStatement",
"src": "18333:26:143"
}
]
},
"baseFunctions": [
47005
],
"functionSelector": "746c35a2",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 66763,
"kind": "modifierInvocation",
"modifierName": {
"id": 66762,
"name": "onlyConfigurator",
"nameLocations": [
"18305:16:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 66109,
"src": "18305:16:143"
},
"nodeType": "ModifierInvocation",
"src": "18305:16:143"
}
],
"name": "setMaxNumberOfReserves",
"nameLocation": "18251:22:143",
"overrides": {
"id": 66761,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "18296:8:143"
},
"parameters": {
"id": 66760,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 66759,
"mutability": "mutable",
"name": "val",
"nameLocation": "18282:3:143",
"nodeType": "VariableDeclaration",
"scope": 66770,
"src": "18274:11:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 66758,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "18274:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "18273:13:143"
},
"returnParameters": {
"id": 66764,
"nodeType": "ParameterList",
"parameters": [],
"src": "18322:0:143"
},
"scope": 67262,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 66785,
"nodeType": "FunctionDefinition",
"src": "18546:201:143",
"nodes": [],
"body": {
"id": 66784,
"nodeType": "Block",
"src": "18701:46:143",
"nodes": [],
"statements": [
{
"expression": {
"baseExpression": {
"id": 66780,
"name": "_reserves",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67288,
"src": "18719:9:143",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.Reserve storage ref)"
}
},
"id": 66782,
"indexExpression": {
"id": 66781,
"name": "reserveId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66773,
"src": "18729:9:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "18719:20:143",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Reserve_$63713_storage",
"typeString": "struct DataTypes.Reserve storage ref"
}
},
"functionReturnParameters": 66779,
"id": 66783,
"nodeType": "Return",
"src": "18712:27:143"
}
]
},
"baseFunctions": [
46969
],
"documentation": {
"id": 66771,
"nodeType": "StructuredDocumentation",
"src": "18375:165:143",
"text": " @dev Returns the state and configuration of the reserve\n @param reserveId The id of the reserve\n @return The state of the reserve*"
},
"functionSelector": "77778db3",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getReserve",
"nameLocation": "18555:10:143",
"overrides": {
"id": 66775,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "18642:8:143"
},
"parameters": {
"id": 66774,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 66773,
"mutability": "mutable",
"name": "reserveId",
"nameLocation": "18584:9:143",
"nodeType": "VariableDeclaration",
"scope": 66785,
"src": "18576:17:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 66772,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "18576:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "18565:35:143"
},
"returnParameters": {
"id": 66779,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 66778,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 66785,
"src": "18669:24:143",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Reserve_$63713_memory_ptr",
"typeString": "struct DataTypes.Reserve"
},
"typeName": {
"id": 66777,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 66776,
"name": "DataTypes.Reserve",
"nameLocations": [
"18669:9:143",
"18679:7:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 63713,
"src": "18669:17:143"
},
"referencedDeclaration": 63713,
"src": "18669:17:143",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Reserve_$63713_storage_ptr",
"typeString": "struct DataTypes.Reserve"
}
},
"visibility": "internal"
}
],
"src": "18668:26:143"
},
"scope": 67262,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 66810,
"nodeType": "FunctionDefinition",
"src": "18755:307:143",
"nodes": [],
"body": {
"id": 66809,
"nodeType": "Block",
"src": "18981:81:143",
"nodes": [],
"statements": [
{
"expression": {
"baseExpression": {
"baseExpression": {
"baseExpression": {
"id": 66799,
"name": "_reserveIds",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67296,
"src": "18999:11:143",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$_$",
"typeString": "mapping(address => mapping(address => mapping(uint256 => uint256)))"
}
},
"id": 66801,
"indexExpression": {
"id": 66800,
"name": "collateral",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66787,
"src": "19011:10:143",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "18999:23:143",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$",
"typeString": "mapping(address => mapping(uint256 => uint256))"
}
},
"id": 66803,
"indexExpression": {
"id": 66802,
"name": "asset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66789,
"src": "19023:5:143",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "18999:30:143",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
}
},
"id": 66807,
"indexExpression": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 66806,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 66804,
"name": "maxTokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66791,
"src": "19030:10:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"id": 66805,
"name": "minTokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66793,
"src": "19043:10:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "19030:23:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "18999:55:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 66798,
"id": 66808,
"nodeType": "Return",
"src": "18992:62:143"
}
]
},
"baseFunctions": [
46982
],
"functionSelector": "52120e23",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getReserveId",
"nameLocation": "18764:12:143",
"overrides": {
"id": 66795,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "18938:8:143"
},
"parameters": {
"id": 66794,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 66787,
"mutability": "mutable",
"name": "collateral",
"nameLocation": "18795:10:143",
"nodeType": "VariableDeclaration",
"scope": 66810,
"src": "18787:18:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 66786,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "18787:7:143",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66789,
"mutability": "mutable",
"name": "asset",
"nameLocation": "18824:5:143",
"nodeType": "VariableDeclaration",
"scope": 66810,
"src": "18816:13:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 66788,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "18816:7:143",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66791,
"mutability": "mutable",
"name": "maxTokenId",
"nameLocation": "18849:10:143",
"nodeType": "VariableDeclaration",
"scope": 66810,
"src": "18841:18:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 66790,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "18841:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66793,
"mutability": "mutable",
"name": "minTokenId",
"nameLocation": "18878:10:143",
"nodeType": "VariableDeclaration",
"scope": 66810,
"src": "18870:18:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 66792,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "18870:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "18776:119:143"
},
"returnParameters": {
"id": 66798,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 66797,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 66810,
"src": "18966:7:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 66796,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "18966:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "18965:9:143"
},
"scope": 67262,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 66847,
"nodeType": "FunctionDefinition",
"src": "19070:308:143",
"nodes": [],
"body": {
"id": 66846,
"nodeType": "Block",
"src": "19203:175:143",
"nodes": [],
"statements": [
{
"expression": {
"id": 66823,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 66817,
"name": "reservesList",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66815,
"src": "19214:12:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
"typeString": "uint256[] memory"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"arguments": [
{
"id": 66821,
"name": "_reservesCount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67312,
"src": "19243:14:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 66820,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "NewExpression",
"src": "19229:13:143",
"typeDescriptions": {
"typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
"typeString": "function (uint256) pure returns (uint256[] memory)"
},
"typeName": {
"baseType": {
"id": 66818,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "19233:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 66819,
"nodeType": "ArrayTypeName",
"src": "19233:9:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
}
}
},
"id": 66822,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "19229:29:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
"typeString": "uint256[] memory"
}
},
"src": "19214:44:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
"typeString": "uint256[] memory"
}
},
"id": 66824,
"nodeType": "ExpressionStatement",
"src": "19214:44:143"
},
{
"body": {
"id": 66844,
"nodeType": "Block",
"src": "19311:60:143",
"statements": [
{
"expression": {
"id": 66842,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"id": 66835,
"name": "reservesList",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66815,
"src": "19326:12:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
"typeString": "uint256[] memory"
}
},
"id": 66837,
"indexExpression": {
"id": 66836,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66826,
"src": "19339:1:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "19326:15:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"expression": {
"baseExpression": {
"id": 66838,
"name": "_reserves",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67288,
"src": "19344:9:143",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.Reserve storage ref)"
}
},
"id": 66840,
"indexExpression": {
"id": 66839,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66826,
"src": "19354:1:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "19344:12:143",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Reserve_$63713_storage",
"typeString": "struct DataTypes.Reserve storage ref"
}
},
"id": 66841,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "19357:2:143",
"memberName": "id",
"nodeType": "MemberAccess",
"referencedDeclaration": 63696,
"src": "19344:15:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "19326:33:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 66843,
"nodeType": "ExpressionStatement",
"src": "19326:33:143"
}
]
},
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 66831,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 66829,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66826,
"src": "19286:1:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"id": 66830,
"name": "_reservesCount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67312,
"src": "19290:14:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "19286:18:143",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 66845,
"initializationExpression": {
"assignments": [
66826
],
"declarations": [
{
"constant": false,
"id": 66826,
"mutability": "mutable",
"name": "i",
"nameLocation": "19279:1:143",
"nodeType": "VariableDeclaration",
"scope": 66845,
"src": "19274:6:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 66825,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "19274:4:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 66828,
"initialValue": {
"hexValue": "30",
"id": 66827,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "19283:1:143",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"nodeType": "VariableDeclarationStatement",
"src": "19274:10:143"
},
"loopExpression": {
"expression": {
"id": 66833,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "19306:3:143",
"subExpression": {
"id": 66832,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66826,
"src": "19306:1:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 66834,
"nodeType": "ExpressionStatement",
"src": "19306:3:143"
},
"nodeType": "ForStatement",
"src": "19269:102:143"
}
]
},
"baseFunctions": [
46988
],
"functionSelector": "d1946dbc",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getReservesList",
"nameLocation": "19079:15:143",
"overrides": {
"id": 66812,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "19139:8:143"
},
"parameters": {
"id": 66811,
"nodeType": "ParameterList",
"parameters": [],
"src": "19094:2:143"
},
"returnParameters": {
"id": 66816,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 66815,
"mutability": "mutable",
"name": "reservesList",
"nameLocation": "19183:12:143",
"nodeType": "VariableDeclaration",
"scope": 66847,
"src": "19166:29:143",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
"typeString": "uint256[]"
},
"typeName": {
"baseType": {
"id": 66813,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "19166:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 66814,
"nodeType": "ArrayTypeName",
"src": "19166:9:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
}
},
"visibility": "internal"
}
],
"src": "19165:31:143"
},
"scope": 67262,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 66857,
"nodeType": "FunctionDefinition",
"src": "19386:182:143",
"nodes": [],
"body": {
"id": 66856,
"nodeType": "Block",
"src": "19516:52:143",
"nodes": [],
"statements": [
{
"expression": {
"id": 66854,
"name": "_initializedCollateralList",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67303,
"src": "19534:26:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage",
"typeString": "address[] storage ref"
}
},
"functionReturnParameters": 66853,
"id": 66855,
"nodeType": "Return",
"src": "19527:33:143"
}
]
},
"baseFunctions": [
46994
],
"functionSelector": "31e884bb",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getInitializedCollaterals",
"nameLocation": "19395:25:143",
"overrides": {
"id": 66849,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "19465:8:143"
},
"parameters": {
"id": 66848,
"nodeType": "ParameterList",
"parameters": [],
"src": "19420:2:143"
},
"returnParameters": {
"id": 66853,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 66852,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 66857,
"src": "19492:16:143",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[]"
},
"typeName": {
"baseType": {
"id": 66850,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "19492:7:143",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 66851,
"nodeType": "ArrayTypeName",
"src": "19492:9:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
"typeString": "address[]"
}
},
"visibility": "internal"
}
],
"src": "19491:18:143"
},
"scope": 67262,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 66867,
"nodeType": "FunctionDefinition",
"src": "19576:172:143",
"nodes": [],
"body": {
"id": 66866,
"nodeType": "Block",
"src": "19701:47:143",
"nodes": [],
"statements": [
{
"expression": {
"id": 66864,
"name": "_initializedAssetList",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67310,
"src": "19719:21:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage",
"typeString": "address[] storage ref"
}
},
"functionReturnParameters": 66863,
"id": 66865,
"nodeType": "Return",
"src": "19712:28:143"
}
]
},
"baseFunctions": [
47000
],
"functionSelector": "3b4ecdb2",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getInitializedAssets",
"nameLocation": "19585:20:143",
"overrides": {
"id": 66859,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "19650:8:143"
},
"parameters": {
"id": 66858,
"nodeType": "ParameterList",
"parameters": [],
"src": "19605:2:143"
},
"returnParameters": {
"id": 66863,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 66862,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 66867,
"src": "19677:16:143",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[]"
},
"typeName": {
"baseType": {
"id": 66860,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "19677:7:143",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 66861,
"nodeType": "ArrayTypeName",
"src": "19677:9:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
"typeString": "address[]"
}
},
"visibility": "internal"
}
],
"src": "19676:18:143"
},
"scope": 67262,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 66877,
"nodeType": "FunctionDefinition",
"src": "19866:119:143",
"nodes": [],
"body": {
"id": 66876,
"nodeType": "Block",
"src": "19939:46:143",
"nodes": [],
"statements": [
{
"expression": {
"id": 66874,
"name": "_maxNumberOfReserves",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67314,
"src": "19957:20:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 66873,
"id": 66875,
"nodeType": "Return",
"src": "19950:27:143"
}
]
},
"baseFunctions": [
47010
],
"documentation": {
"id": 66868,
"nodeType": "StructuredDocumentation",
"src": "19756:104:143",
"text": " @dev Returns the maximum number of reserves supported to be listed in this LendPool"
},
"functionSelector": "08ac08b9",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getMaxNumberOfReserves",
"nameLocation": "19875:22:143",
"overrides": {
"id": 66870,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "19912:8:143"
},
"parameters": {
"id": 66869,
"nodeType": "ParameterList",
"parameters": [],
"src": "19897:2:143"
},
"returnParameters": {
"id": 66873,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 66872,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 66877,
"src": "19930:7:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 66871,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "19930:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "19929:9:143"
},
"scope": 67262,
"stateMutability": "view",
"virtual": false,
"visibility": "public"
},
{
"id": 66933,
"nodeType": "FunctionDefinition",
"src": "20541:613:143",
"nodes": [],
"body": {
"id": 66932,
"nodeType": "Block",
"src": "20824:330:143",
"nodes": [],
"statements": [
{
"expression": {
"id": 66896,
"name": "from",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66882,
"src": "20835:4:143",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 66897,
"nodeType": "ExpressionStatement",
"src": "20835:4:143"
},
{
"expression": {
"id": 66898,
"name": "to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66884,
"src": "20850:2:143",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 66899,
"nodeType": "ExpressionStatement",
"src": "20850:2:143"
},
{
"expression": {
"id": 66900,
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66886,
"src": "20863:6:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 66901,
"nodeType": "ExpressionStatement",
"src": "20863:6:143"
},
{
"expression": {
"id": 66902,
"name": "balanceFromBefore",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66888,
"src": "20880:17:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 66903,
"nodeType": "ExpressionStatement",
"src": "20880:17:143"
},
{
"expression": {
"id": 66904,
"name": "balanceToBefore",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66890,
"src": "20908:15:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 66905,
"nodeType": "ExpressionStatement",
"src": "20908:15:143"
},
{
"assignments": [
66910
],
"declarations": [
{
"constant": false,
"id": 66910,
"mutability": "mutable",
"name": "reserve",
"nameLocation": "20962:7:143",
"nodeType": "VariableDeclaration",
"scope": 66932,
"src": "20936:33:143",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Reserve_$63713_storage_ptr",
"typeString": "struct DataTypes.Reserve"
},
"typeName": {
"id": 66909,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 66908,
"name": "DataTypes.Reserve",
"nameLocations": [
"20936:9:143",
"20946:7:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 63713,
"src": "20936:17:143"
},
"referencedDeclaration": 63713,
"src": "20936:17:143",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Reserve_$63713_storage_ptr",
"typeString": "struct DataTypes.Reserve"
}
},
"visibility": "internal"
}
],
"id": 66914,
"initialValue": {
"baseExpression": {
"id": 66911,
"name": "_reserves",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67288,
"src": "20972:9:143",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.Reserve storage ref)"
}
},
"id": 66913,
"indexExpression": {
"id": 66912,
"name": "reserveId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66880,
"src": "20982:9:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "20972:20:143",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Reserve_$63713_storage",
"typeString": "struct DataTypes.Reserve storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "20936:56:143"
},
{
"expression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 66920,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 66916,
"name": "_msgSender",
"nodeType": "Identifier",
"overloadedDeclarations": [
67261
],
"referencedDeclaration": 67261,
"src": "21011:10:143",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
"typeString": "function () view returns (address)"
}
},
"id": 66917,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "21011:12:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"expression": {
"id": 66918,
"name": "reserve",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66910,
"src": "21027:7:143",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Reserve_$63713_storage_ptr",
"typeString": "struct DataTypes.Reserve storage pointer"
}
},
"id": 66919,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "21035:13:143",
"memberName": "fTokenAddress",
"nodeType": "MemberAccess",
"referencedDeclaration": 63686,
"src": "21027:21:143",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "21011:37:143",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"expression": {
"id": 66921,
"name": "Errors",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 56900,
"src": "21050:6:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_Errors_$56900_$",
"typeString": "type(library Errors)"
}
},
"id": 66922,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "21057:27:143",
"memberName": "LP_CALLER_MUST_BE_AN_FTOKEN",
"nodeType": "MemberAccess",
"referencedDeclaration": 56638,
"src": "21050:34:143",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 66915,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "21003:7:143",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 66923,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "21003:82:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 66924,
"nodeType": "ExpressionStatement",
"src": "21003:82:143"
},
{
"expression": {
"arguments": [
{
"id": 66928,
"name": "from",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66882,
"src": "21131:4:143",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 66929,
"name": "reserve",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66910,
"src": "21137:7:143",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Reserve_$63713_storage_ptr",
"typeString": "struct DataTypes.Reserve storage pointer"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_struct$_Reserve_$63713_storage_ptr",
"typeString": "struct DataTypes.Reserve storage pointer"
}
],
"expression": {
"id": 66925,
"name": "ValidationLogic",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 62908,
"src": "21098:15:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_ValidationLogic_$62908_$",
"typeString": "type(library ValidationLogic)"
}
},
"id": 66927,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "21114:16:143",
"memberName": "validateTransfer",
"nodeType": "MemberAccess",
"referencedDeclaration": 62661,
"src": "21098:32:143",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_address_$_t_struct$_Reserve_$63713_storage_ptr_$returns$__$",
"typeString": "function (address,struct DataTypes.Reserve storage pointer) pure"
}
},
"id": 66930,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "21098:47:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 66931,
"nodeType": "ExpressionStatement",
"src": "21098:47:143"
}
]
},
"baseFunctions": [
46954
],
"documentation": {
"id": 66878,
"nodeType": "StructuredDocumentation",
"src": "19993:542:143",
"text": " @dev Validates and finalizes an fToken transfer\n - Only callable by the overlying fToken of the `asset` \n @param reserveId The id of the fToken reserve\n @param from The user from which the fToken are transferred\n @param to The user receiving the fTokens\n @param amount The amount being transferred/withdrawn\n @param balanceFromBefore The fToken balance of the `from` user before the transfer\n @param balanceToBefore The fToken balance of the `to` user before the transfer"
},
"functionSelector": "6c130dc7",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 66894,
"kind": "modifierInvocation",
"modifierName": {
"id": 66893,
"name": "whenNotPaused",
"nameLocations": [
"20804:13:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 66116,
"src": "20804:13:143"
},
"nodeType": "ModifierInvocation",
"src": "20804:13:143"
}
],
"name": "finalizeTransfer",
"nameLocation": "20550:16:143",
"overrides": {
"id": 66892,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "20786:8:143"
},
"parameters": {
"id": 66891,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 66880,
"mutability": "mutable",
"name": "reserveId",
"nameLocation": "20585:9:143",
"nodeType": "VariableDeclaration",
"scope": 66933,
"src": "20577:17:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 66879,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "20577:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66882,
"mutability": "mutable",
"name": "from",
"nameLocation": "20613:4:143",
"nodeType": "VariableDeclaration",
"scope": 66933,
"src": "20605:12:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 66881,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "20605:7:143",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66884,
"mutability": "mutable",
"name": "to",
"nameLocation": "20636:2:143",
"nodeType": "VariableDeclaration",
"scope": 66933,
"src": "20628:10:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 66883,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "20628:7:143",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66886,
"mutability": "mutable",
"name": "amount",
"nameLocation": "20657:6:143",
"nodeType": "VariableDeclaration",
"scope": 66933,
"src": "20649:14:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 66885,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "20649:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66888,
"mutability": "mutable",
"name": "balanceFromBefore",
"nameLocation": "20682:17:143",
"nodeType": "VariableDeclaration",
"scope": 66933,
"src": "20674:25:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 66887,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "20674:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66890,
"mutability": "mutable",
"name": "balanceToBefore",
"nameLocation": "20718:15:143",
"nodeType": "VariableDeclaration",
"scope": 66933,
"src": "20710:23:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 66889,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "20710:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "20566:174:143"
},
"returnParameters": {
"id": 66895,
"nodeType": "ParameterList",
"parameters": [],
"src": "20824:0:143"
},
"scope": 67262,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 66948,
"nodeType": "FunctionDefinition",
"src": "21162:164:143",
"nodes": [],
"body": {
"id": 66947,
"nodeType": "Block",
"src": "21258:68:143",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"baseExpression": {
"id": 66941,
"name": "_reserves",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67288,
"src": "21276:9:143",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.Reserve storage ref)"
}
},
"id": 66943,
"indexExpression": {
"id": 66942,
"name": "reserveId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66935,
"src": "21286:9:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "21276:20:143",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Reserve_$63713_storage",
"typeString": "struct DataTypes.Reserve storage ref"
}
},
"id": 66944,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "21297:19:143",
"memberName": "getNormalizedIncome",
"nodeType": "MemberAccess",
"referencedDeclaration": 60773,
"src": "21276:40:143",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_Reserve_$63713_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Reserve_$63713_storage_ptr_$",
"typeString": "function (struct DataTypes.Reserve storage pointer) view returns (uint256)"
}
},
"id": 66945,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "21276:42:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 66940,
"id": 66946,
"nodeType": "Return",
"src": "21269:49:143"
}
]
},
"baseFunctions": [
46898
],
"functionSelector": "dcc5cded",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getReserveNormalizedIncome",
"nameLocation": "21171:26:143",
"overrides": {
"id": 66937,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "21231:8:143"
},
"parameters": {
"id": 66936,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 66935,
"mutability": "mutable",
"name": "reserveId",
"nameLocation": "21206:9:143",
"nodeType": "VariableDeclaration",
"scope": 66948,
"src": "21198:17:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 66934,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "21198:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "21197:19:143"
},
"returnParameters": {
"id": 66940,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 66939,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 66948,
"src": "21249:7:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 66938,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "21249:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "21248:9:143"
},
"scope": 67262,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 66964,
"nodeType": "FunctionDefinition",
"src": "21520:168:143",
"nodes": [],
"body": {
"id": 66963,
"nodeType": "Block",
"src": "21622:66:143",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"baseExpression": {
"id": 66957,
"name": "_reserves",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67288,
"src": "21640:9:143",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.Reserve storage ref)"
}
},
"id": 66959,
"indexExpression": {
"id": 66958,
"name": "reserveId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66951,
"src": "21650:9:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "21640:20:143",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Reserve_$63713_storage",
"typeString": "struct DataTypes.Reserve storage ref"
}
},
"id": 66960,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "21661:17:143",
"memberName": "getNormalizedDebt",
"nodeType": "MemberAccess",
"referencedDeclaration": 60815,
"src": "21640:38:143",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_Reserve_$63713_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Reserve_$63713_storage_ptr_$",
"typeString": "function (struct DataTypes.Reserve storage pointer) view returns (uint256)"
}
},
"id": 66961,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "21640:40:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 66956,
"id": 66962,
"nodeType": "Return",
"src": "21633:47:143"
}
]
},
"baseFunctions": [
46961
],
"documentation": {
"id": 66949,
"nodeType": "StructuredDocumentation",
"src": "21334:180:143",
"text": " @dev Returns the normalized variable debt per unit of asset\n @param reserveId The min id of the reserve\n @return The reserve normalized variable debt"
},
"functionSelector": "9034c18c",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getReserveNormalizedVariableDebt",
"nameLocation": "21529:32:143",
"overrides": {
"id": 66953,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "21595:8:143"
},
"parameters": {
"id": 66952,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 66951,
"mutability": "mutable",
"name": "reserveId",
"nameLocation": "21570:9:143",
"nodeType": "VariableDeclaration",
"scope": 66964,
"src": "21562:17:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 66950,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "21562:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "21561:19:143"
},
"returnParameters": {
"id": 66956,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 66955,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 66964,
"src": "21613:7:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 66954,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "21613:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "21612:9:143"
},
"scope": 67262,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 66983,
"nodeType": "FunctionDefinition",
"src": "21899:185:143",
"nodes": [],
"body": {
"id": 66982,
"nodeType": "Block",
"src": "22007:77:143",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 66979,
"name": "user",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66969,
"src": "22071:4:143",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"expression": {
"baseExpression": {
"id": 66975,
"name": "_reserves",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67288,
"src": "22025:9:143",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.Reserve storage ref)"
}
},
"id": 66977,
"indexExpression": {
"id": 66976,
"name": "reserveId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66967,
"src": "22035:9:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "22025:20:143",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Reserve_$63713_storage",
"typeString": "struct DataTypes.Reserve storage ref"
}
},
"id": 66978,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "22046:24:143",
"memberName": "getReserveUserStableRate",
"nodeType": "MemberAccess",
"referencedDeclaration": 60835,
"src": "22025:45:143",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_Reserve_$63713_storage_ptr_$_t_address_$returns$_t_uint256_$bound_to$_t_struct$_Reserve_$63713_storage_ptr_$",
"typeString": "function (struct DataTypes.Reserve storage pointer,address) view returns (uint256)"
}
},
"id": 66980,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "22025:51:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 66974,
"id": 66981,
"nodeType": "Return",
"src": "22018:58:143"
}
]
},
"baseFunctions": [
46907
],
"documentation": {
"id": 66965,
"nodeType": "StructuredDocumentation",
"src": "21696:197:143",
"text": " @dev Returns the reserve user stable rate\n @param reserveId The min id of the reserve\n @param user The address of the user\n @return The reserve user stable rate"
},
"functionSelector": "2e4e8eb4",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getReserveUserStableRate",
"nameLocation": "21908:24:143",
"overrides": {
"id": 66971,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "21980:8:143"
},
"parameters": {
"id": 66970,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 66967,
"mutability": "mutable",
"name": "reserveId",
"nameLocation": "21941:9:143",
"nodeType": "VariableDeclaration",
"scope": 66983,
"src": "21933:17:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 66966,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "21933:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66969,
"mutability": "mutable",
"name": "user",
"nameLocation": "21960:4:143",
"nodeType": "VariableDeclaration",
"scope": 66983,
"src": "21952:12:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 66968,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "21952:7:143",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "21932:33:143"
},
"returnParameters": {
"id": 66974,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 66973,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 66983,
"src": "21998:7:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 66972,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "21998:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "21997:9:143"
},
"scope": 67262,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 67005,
"nodeType": "FunctionDefinition",
"src": "22246:285:143",
"nodes": [],
"body": {
"id": 67004,
"nodeType": "Block",
"src": "22460:71:143",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"expression": {
"baseExpression": {
"id": 66997,
"name": "_reserves",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67288,
"src": "22478:9:143",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.Reserve storage ref)"
}
},
"id": 66999,
"indexExpression": {
"id": 66998,
"name": "reserveId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66986,
"src": "22488:9:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "22478:20:143",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Reserve_$63713_storage",
"typeString": "struct DataTypes.Reserve storage ref"
}
},
"id": 67000,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "22499:13:143",
"memberName": "configuration",
"nodeType": "MemberAccess",
"referencedDeclaration": 63680,
"src": "22478:34:143",
"typeDescriptions": {
"typeIdentifier": "t_struct$_ReserveConfigurationMap_$63746_storage",
"typeString": "struct DataTypes.ReserveConfigurationMap storage ref"
}
},
"id": 67001,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "22513:8:143",
"memberName": "getFlags",
"nodeType": "MemberAccess",
"referencedDeclaration": 56338,
"src": "22478:43:143",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_ReserveConfigurationMap_$63746_storage_ptr_$returns$_t_bool_$_t_bool_$_t_bool_$_t_bool_$bound_to$_t_struct$_ReserveConfigurationMap_$63746_storage_ptr_$",
"typeString": "function (struct DataTypes.ReserveConfigurationMap storage pointer) view returns (bool,bool,bool,bool)"
}
},
"id": 67002,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "22478:45:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_bool_$_t_bool_$_t_bool_$_t_bool_$",
"typeString": "tuple(bool,bool,bool,bool)"
}
},
"functionReturnParameters": 66996,
"id": 67003,
"nodeType": "Return",
"src": "22471:52:143"
}
]
},
"documentation": {
"id": 66984,
"nodeType": "StructuredDocumentation",
"src": "22092:148:143",
"text": " @dev Returns the state of the resev\n @param reserveId The min id of the reserve\n @return The reserve user stable rate"
},
"functionSelector": "993ff816",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getReserveFlags",
"nameLocation": "22255:15:143",
"parameters": {
"id": 66987,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 66986,
"mutability": "mutable",
"name": "reserveId",
"nameLocation": "22279:9:143",
"nodeType": "VariableDeclaration",
"scope": 67005,
"src": "22271:17:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 66985,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "22271:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "22270:19:143"
},
"returnParameters": {
"id": 66996,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 66989,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 67005,
"src": "22379:4:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 66988,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "22379:4:143",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66991,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 67005,
"src": "22399:4:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 66990,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "22399:4:143",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66993,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 67005,
"src": "22418:4:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 66992,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "22418:4:143",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 66995,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 67005,
"src": "22438:4:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 66994,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "22438:4:143",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
}
],
"src": "22364:89:143"
},
"scope": 67262,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 67024,
"nodeType": "FunctionDefinition",
"src": "22812:219:143",
"nodes": [],
"body": {
"id": 67023,
"nodeType": "Block",
"src": "22958:73:143",
"nodes": [],
"statements": [
{
"expression": {
"id": 67021,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"expression": {
"baseExpression": {
"id": 67016,
"name": "_reserves",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67288,
"src": "22969:9:143",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.Reserve storage ref)"
}
},
"id": 67018,
"indexExpression": {
"id": 67017,
"name": "reserveId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67008,
"src": "22979:9:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "22969:20:143",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Reserve_$63713_storage",
"typeString": "struct DataTypes.Reserve storage ref"
}
},
"id": 67019,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "22990:19:143",
"memberName": "interestRateAddress",
"nodeType": "MemberAccess",
"referencedDeclaration": 63692,
"src": "22969:40:143",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 67020,
"name": "rateAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67010,
"src": "23012:11:143",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "22969:54:143",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 67022,
"nodeType": "ExpressionStatement",
"src": "22969:54:143"
}
]
},
"baseFunctions": [
47024
],
"documentation": {
"id": 67006,
"nodeType": "StructuredDocumentation",
"src": "22539:267:143",
"text": " @dev Updates the address of the interest rate strategy contract\n - Only callable by the Configurator contract\n @param reserveId The min id of the reserve\n @param rateAddress The address of the interest rate strategy contract*"
},
"functionSelector": "19322775",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 67014,
"kind": "modifierInvocation",
"modifierName": {
"id": 67013,
"name": "onlyConfigurator",
"nameLocations": [
"22936:16:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 66109,
"src": "22936:16:143"
},
"nodeType": "ModifierInvocation",
"src": "22936:16:143"
}
],
"name": "setReserveInterestRateAddress",
"nameLocation": "22821:29:143",
"overrides": {
"id": 67012,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "22918:8:143"
},
"parameters": {
"id": 67011,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 67008,
"mutability": "mutable",
"name": "reserveId",
"nameLocation": "22859:9:143",
"nodeType": "VariableDeclaration",
"scope": 67024,
"src": "22851:17:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 67007,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "22851:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 67010,
"mutability": "mutable",
"name": "rateAddress",
"nameLocation": "22878:11:143",
"nodeType": "VariableDeclaration",
"scope": 67024,
"src": "22870:19:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 67009,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "22870:7:143",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "22850:40:143"
},
"returnParameters": {
"id": 67015,
"nodeType": "ParameterList",
"parameters": [],
"src": "22958:0:143"
},
"scope": 67262,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 67044,
"nodeType": "FunctionDefinition",
"src": "23289:184:143",
"nodes": [],
"body": {
"id": 67043,
"nodeType": "Block",
"src": "23399:74:143",
"nodes": [],
"statements": [
{
"expression": {
"id": 67041,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"expression": {
"expression": {
"baseExpression": {
"id": 67035,
"name": "_reserves",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67288,
"src": "23410:9:143",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.Reserve storage ref)"
}
},
"id": 67037,
"indexExpression": {
"id": 67036,
"name": "reserveId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67027,
"src": "23420:9:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "23410:20:143",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Reserve_$63713_storage",
"typeString": "struct DataTypes.Reserve storage ref"
}
},
"id": 67038,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "23431:13:143",
"memberName": "configuration",
"nodeType": "MemberAccess",
"referencedDeclaration": 63680,
"src": "23410:34:143",
"typeDescriptions": {
"typeIdentifier": "t_struct$_ReserveConfigurationMap_$63746_storage",
"typeString": "struct DataTypes.ReserveConfigurationMap storage ref"
}
},
"id": 67039,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "23445:4:143",
"memberName": "data",
"nodeType": "MemberAccess",
"referencedDeclaration": 63745,
"src": "23410:39:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 67040,
"name": "configuration",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67029,
"src": "23452:13:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "23410:55:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 67042,
"nodeType": "ExpressionStatement",
"src": "23410:55:143"
}
]
},
"baseFunctions": [
47031
],
"documentation": {
"id": 67025,
"nodeType": "StructuredDocumentation",
"src": "23039:244:143",
"text": " @dev Sets the configuration bitmap of the reserve as a whole\n - Only callable by the Configurator contract\n @param reserveId The min id of the reserve\n @param configuration The new configuration bitmap*"
},
"functionSelector": "89a7245d",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 67033,
"kind": "modifierInvocation",
"modifierName": {
"id": 67032,
"name": "onlyConfigurator",
"nameLocations": [
"23382:16:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 66109,
"src": "23382:16:143"
},
"nodeType": "ModifierInvocation",
"src": "23382:16:143"
}
],
"name": "setReserveConfiguration",
"nameLocation": "23298:23:143",
"overrides": {
"id": 67031,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "23373:8:143"
},
"parameters": {
"id": 67030,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 67027,
"mutability": "mutable",
"name": "reserveId",
"nameLocation": "23330:9:143",
"nodeType": "VariableDeclaration",
"scope": 67044,
"src": "23322:17:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 67026,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "23322:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 67029,
"mutability": "mutable",
"name": "configuration",
"nameLocation": "23349:13:143",
"nodeType": "VariableDeclaration",
"scope": 67044,
"src": "23341:21:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 67028,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "23341:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "23321:42:143"
},
"returnParameters": {
"id": 67034,
"nodeType": "ParameterList",
"parameters": [],
"src": "23399:0:143"
},
"scope": 67262,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 67065,
"nodeType": "FunctionDefinition",
"src": "23481:201:143",
"nodes": [],
"body": {
"id": 67064,
"nodeType": "Block",
"src": "23586:96:143",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 67061,
"name": "creator",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67048,
"src": "23666:7:143",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"expression": {
"arguments": [
{
"expression": {
"baseExpression": {
"id": 67055,
"name": "_reserves",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67288,
"src": "23605:9:143",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.Reserve storage ref)"
}
},
"id": 67057,
"indexExpression": {
"id": 67056,
"name": "reserveId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67046,
"src": "23615:9:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "23605:20:143",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Reserve_$63713_storage",
"typeString": "struct DataTypes.Reserve storage ref"
}
},
"id": 67058,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "23626:13:143",
"memberName": "fTokenAddress",
"nodeType": "MemberAccess",
"referencedDeclaration": 63686,
"src": "23605:34:143",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 67054,
"name": "IFToken",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 46422,
"src": "23597:7:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_IFToken_$46422_$",
"typeString": "type(contract IFToken)"
}
},
"id": 67059,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "23597:43:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_contract$_IFToken_$46422",
"typeString": "contract IFToken"
}
},
"id": 67060,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "23641:24:143",
"memberName": "setReserveCreatorAddress",
"nodeType": "MemberAccess",
"referencedDeclaration": 46361,
"src": "23597:68:143",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
"typeString": "function (address) external"
}
},
"id": 67062,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "23597:77:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 67063,
"nodeType": "ExpressionStatement",
"src": "23597:77:143"
}
]
},
"baseFunctions": [
47038
],
"functionSelector": "bbce5cf3",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 67052,
"kind": "modifierInvocation",
"modifierName": {
"id": 67051,
"name": "onlyConfigurator",
"nameLocations": [
"23569:16:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 66109,
"src": "23569:16:143"
},
"nodeType": "ModifierInvocation",
"src": "23569:16:143"
}
],
"name": "setReserveCreatorAddress",
"nameLocation": "23490:24:143",
"overrides": {
"id": 67050,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "23560:8:143"
},
"parameters": {
"id": 67049,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 67046,
"mutability": "mutable",
"name": "reserveId",
"nameLocation": "23523:9:143",
"nodeType": "VariableDeclaration",
"scope": 67065,
"src": "23515:17:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 67045,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "23515:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 67048,
"mutability": "mutable",
"name": "creator",
"nameLocation": "23542:7:143",
"nodeType": "VariableDeclaration",
"scope": 67065,
"src": "23534:15:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 67047,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "23534:7:143",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "23514:36:143"
},
"returnParameters": {
"id": 67053,
"nodeType": "ParameterList",
"parameters": [],
"src": "23586:0:143"
},
"scope": 67262,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 67086,
"nodeType": "FunctionDefinition",
"src": "23690:213:143",
"nodes": [],
"body": {
"id": 67085,
"nodeType": "Block",
"src": "23801:102:143",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 67082,
"name": "percentage",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67069,
"src": "23884:10:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"arguments": [
{
"expression": {
"baseExpression": {
"id": 67076,
"name": "_reserves",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67288,
"src": "23820:9:143",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.Reserve storage ref)"
}
},
"id": 67078,
"indexExpression": {
"id": 67077,
"name": "reserveId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67067,
"src": "23830:9:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "23820:20:143",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Reserve_$63713_storage",
"typeString": "struct DataTypes.Reserve storage ref"
}
},
"id": 67079,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "23841:13:143",
"memberName": "fTokenAddress",
"nodeType": "MemberAccess",
"referencedDeclaration": 63686,
"src": "23820:34:143",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 67075,
"name": "IFToken",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 46422,
"src": "23812:7:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_IFToken_$46422_$",
"typeString": "type(contract IFToken)"
}
},
"id": 67080,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "23812:43:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_contract$_IFToken_$46422",
"typeString": "contract IFToken"
}
},
"id": 67081,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "23856:27:143",
"memberName": "setReserveCreatorPercentage",
"nodeType": "MemberAccess",
"referencedDeclaration": 46371,
"src": "23812:71:143",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
"typeString": "function (uint256) external"
}
},
"id": 67083,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "23812:83:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 67084,
"nodeType": "ExpressionStatement",
"src": "23812:83:143"
}
]
},
"baseFunctions": [
47045
],
"functionSelector": "e49c8a52",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 67073,
"kind": "modifierInvocation",
"modifierName": {
"id": 67072,
"name": "onlyConfigurator",
"nameLocations": [
"23784:16:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 66109,
"src": "23784:16:143"
},
"nodeType": "ModifierInvocation",
"src": "23784:16:143"
}
],
"name": "setReserveCreatorPercentage",
"nameLocation": "23699:27:143",
"overrides": {
"id": 67071,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "23775:8:143"
},
"parameters": {
"id": 67070,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 67067,
"mutability": "mutable",
"name": "reserveId",
"nameLocation": "23735:9:143",
"nodeType": "VariableDeclaration",
"scope": 67086,
"src": "23727:17:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 67066,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "23727:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 67069,
"mutability": "mutable",
"name": "percentage",
"nameLocation": "23754:10:143",
"nodeType": "VariableDeclaration",
"scope": 67086,
"src": "23746:18:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 67068,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "23746:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "23726:39:143"
},
"returnParameters": {
"id": 67074,
"nodeType": "ParameterList",
"parameters": [],
"src": "23801:0:143"
},
"scope": 67262,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 67105,
"nodeType": "FunctionDefinition",
"src": "23913:252:143",
"nodes": [],
"body": {
"id": 67104,
"nodeType": "Block",
"src": "24012:153:143",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 67099,
"name": "_addressProvider",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67283,
"src": "24081:16:143",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IAddressProvider_$45420",
"typeString": "contract IAddressProvider"
}
},
{
"id": 67100,
"name": "_reserves",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67288,
"src": "24113:9:143",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.Reserve storage ref)"
}
},
{
"id": 67101,
"name": "borrowId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67088,
"src": "24138:8:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_IAddressProvider_$45420",
"typeString": "contract IAddressProvider"
},
{
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.Reserve storage ref)"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"id": 67097,
"name": "LiquidateLogic",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 60459,
"src": "24030:14:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_LiquidateLogic_$60459_$",
"typeString": "type(library LiquidateLogic)"
}
},
"id": 67098,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "24045:21:143",
"memberName": "getBorrowHealthFactor",
"nodeType": "MemberAccess",
"referencedDeclaration": 60458,
"src": "24030:36:143",
"typeDescriptions": {
"typeIdentifier": "t_function_delegatecall_view$_t_contract$_IAddressProvider_$45420_$_t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$_$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$",
"typeString": "function (contract IAddressProvider,mapping(uint256 => struct DataTypes.Reserve storage ref),uint256) view returns (uint256,uint256,uint256)"
}
},
"id": 67102,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "24030:127:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$",
"typeString": "tuple(uint256,uint256,uint256)"
}
},
"functionReturnParameters": 67096,
"id": 67103,
"nodeType": "Return",
"src": "24023:134:143"
}
]
},
"baseFunctions": [
47056
],
"functionSelector": "c46a90f5",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getBorrowHealthFactor",
"nameLocation": "23922:21:143",
"parameters": {
"id": 67089,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 67088,
"mutability": "mutable",
"name": "borrowId",
"nameLocation": "23952:8:143",
"nodeType": "VariableDeclaration",
"scope": 67105,
"src": "23944:16:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 67087,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "23944:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "23943:18:143"
},
"returnParameters": {
"id": 67096,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 67091,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 67105,
"src": "23985:7:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 67090,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "23985:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 67093,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 67105,
"src": "23994:7:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 67092,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "23994:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 67095,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 67105,
"src": "24003:7:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 67094,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "24003:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "23984:27:143"
},
"scope": 67262,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 67130,
"nodeType": "FunctionDefinition",
"src": "24173:280:143",
"nodes": [],
"body": {
"id": 67129,
"nodeType": "Block",
"src": "24275:178:143",
"nodes": [],
"statements": [
{
"expression": {
"components": [
{
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"expression": {
"baseExpression": {
"id": 67115,
"name": "_reserves",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67288,
"src": "24308:9:143",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.Reserve storage ref)"
}
},
"id": 67117,
"indexExpression": {
"id": 67116,
"name": "reserveId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67107,
"src": "24318:9:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "24308:20:143",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Reserve_$63713_storage",
"typeString": "struct DataTypes.Reserve storage ref"
}
},
"id": 67118,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "24329:13:143",
"memberName": "configuration",
"nodeType": "MemberAccess",
"referencedDeclaration": 63680,
"src": "24308:34:143",
"typeDescriptions": {
"typeIdentifier": "t_struct$_ReserveConfigurationMap_$63746_storage",
"typeString": "struct DataTypes.ReserveConfigurationMap storage ref"
}
},
"id": 67119,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "24343:19:143",
"memberName": "getLiquidationBonus",
"nodeType": "MemberAccess",
"referencedDeclaration": 55827,
"src": "24308:54:143",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_ReserveConfigurationMap_$63746_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_ReserveConfigurationMap_$63746_storage_ptr_$",
"typeString": "function (struct DataTypes.ReserveConfigurationMap storage pointer) view returns (uint256)"
}
},
"id": 67120,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "24308:56:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"expression": {
"baseExpression": {
"id": 67121,
"name": "_reserves",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67288,
"src": "24379:9:143",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Reserve_$63713_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.Reserve storage ref)"
}
},
"id": 67123,
"indexExpression": {
"id": 67122,
"name": "reserveId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67107,
"src": "24389:9:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "24379:20:143",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Reserve_$63713_storage",
"typeString": "struct DataTypes.Reserve storage ref"
}
},
"id": 67124,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "24400:13:143",
"memberName": "configuration",
"nodeType": "MemberAccess",
"referencedDeclaration": 63680,
"src": "24379:34:143",
"typeDescriptions": {
"typeIdentifier": "t_struct$_ReserveConfigurationMap_$63746_storage",
"typeString": "struct DataTypes.ReserveConfigurationMap storage ref"
}
},
"id": 67125,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "24414:18:143",
"memberName": "getAuctionDuration",
"nodeType": "MemberAccess",
"referencedDeclaration": 56202,
"src": "24379:53:143",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_ReserveConfigurationMap_$63746_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_ReserveConfigurationMap_$63746_storage_ptr_$",
"typeString": "function (struct DataTypes.ReserveConfigurationMap storage pointer) view returns (uint256)"
}
},
"id": 67126,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "24379:55:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 67127,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "24293:152:143",
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
"typeString": "tuple(uint256,uint256)"
}
},
"functionReturnParameters": 67114,
"id": 67128,
"nodeType": "Return",
"src": "24286:159:143"
}
]
},
"baseFunctions": [
46891
],
"functionSelector": "a58497a5",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getAuctionConfiguration",
"nameLocation": "24182:23:143",
"overrides": {
"id": 67109,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "24239:8:143"
},
"parameters": {
"id": 67108,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 67107,
"mutability": "mutable",
"name": "reserveId",
"nameLocation": "24214:9:143",
"nodeType": "VariableDeclaration",
"scope": 67130,
"src": "24206:17:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 67106,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "24206:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "24205:19:143"
},
"returnParameters": {
"id": 67114,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 67111,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 67130,
"src": "24257:7:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 67110,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "24257:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 67113,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 67130,
"src": "24266:7:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 67112,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "24266:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "24256:18:143"
},
"scope": 67262,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 67150,
"nodeType": "FunctionDefinition",
"src": "24714:164:143",
"nodes": [],
"body": {
"id": 67149,
"nodeType": "Block",
"src": "24822:56:143",
"nodes": [],
"statements": [
{
"expression": {
"expression": {
"expression": {
"id": 67145,
"name": "this",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -28,
"src": "24840:4:143",
"typeDescriptions": {
"typeIdentifier": "t_contract$_LendingPool_$67262",
"typeString": "contract LendingPool"
}
},
"id": 67146,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "24845:16:143",
"memberName": "onERC721Received",
"nodeType": "MemberAccess",
"referencedDeclaration": 67150,
"src": "24840:21:143",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$",
"typeString": "function (address,address,uint256,bytes memory) external returns (bytes4)"
}
},
"id": 67147,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "24862:8:143",
"memberName": "selector",
"nodeType": "MemberAccess",
"src": "24840:30:143",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"functionReturnParameters": 67144,
"id": 67148,
"nodeType": "Return",
"src": "24833:37:143"
}
]
},
"baseFunctions": [
28518
],
"documentation": {
"id": 67131,
"nodeType": "StructuredDocumentation",
"src": "24461:247:143",
"text": "@notice For the receiving of ERC721 tokens to this contract address.\n @dev An ERC721 `safeTransferFrom` will revert unless this Solidity selector is returned.\n @return Always returns `IERC721Receiver.onERC721Received.selector`."
},
"functionSelector": "150b7a02",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "onERC721Received",
"nameLocation": "24723:16:143",
"overrides": {
"id": 67141,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "24796:8:143"
},
"parameters": {
"id": 67140,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 67133,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 67150,
"src": "24740:7:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 67132,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "24740:7:143",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 67135,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 67150,
"src": "24749:7:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 67134,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "24749:7:143",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 67137,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 67150,
"src": "24758:7:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 67136,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "24758:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 67139,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 67150,
"src": "24767:12:143",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 67138,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "24767:5:143",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"src": "24739:41:143"
},
"returnParameters": {
"id": 67144,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 67143,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 67150,
"src": "24814:6:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 67142,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "24814:6:143",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"visibility": "internal"
}
],
"src": "24813:8:143"
},
"scope": 67262,
"stateMutability": "nonpayable",
"virtual": true,
"visibility": "public"
},
{
"id": 67172,
"nodeType": "FunctionDefinition",
"src": "25143:175:143",
"nodes": [],
"body": {
"id": 67171,
"nodeType": "Block",
"src": "25261:57:143",
"nodes": [],
"statements": [
{
"expression": {
"expression": {
"expression": {
"id": 67167,
"name": "this",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -28,
"src": "25279:4:143",
"typeDescriptions": {
"typeIdentifier": "t_contract$_LendingPool_$67262",
"typeString": "contract LendingPool"
}
},
"id": 67168,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "25284:17:143",
"memberName": "onERC1155Received",
"nodeType": "MemberAccess",
"referencedDeclaration": 67172,
"src": "25279:22:143",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$",
"typeString": "function (address,address,uint256,uint256,bytes memory) external returns (bytes4)"
}
},
"id": 67169,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "25302:8:143",
"memberName": "selector",
"nodeType": "MemberAccess",
"src": "25279:31:143",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"functionReturnParameters": 67166,
"id": 67170,
"nodeType": "Return",
"src": "25272:38:143"
}
]
},
"baseFunctions": [
26358
],
"documentation": {
"id": 67151,
"nodeType": "StructuredDocumentation",
"src": "24886:251:143",
"text": "@notice For the receiving of ERC1155 tokens to this contract address.\n @dev An ERC1155 `safeTransferFrom` will revert unless this Solidity selector is returned.\n @return Always returns `IERC1155Receiver.onERC1155Received.selector`."
},
"functionSelector": "f23a6e61",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "onERC1155Received",
"nameLocation": "25152:17:143",
"overrides": {
"id": 67163,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "25235:8:143"
},
"parameters": {
"id": 67162,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 67153,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 67172,
"src": "25170:7:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 67152,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "25170:7:143",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 67155,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 67172,
"src": "25179:7:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 67154,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "25179:7:143",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 67157,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 67172,
"src": "25188:7:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 67156,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "25188:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 67159,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 67172,
"src": "25197:7:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 67158,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "25197:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 67161,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 67172,
"src": "25206:12:143",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 67160,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "25206:5:143",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"src": "25169:50:143"
},
"returnParameters": {
"id": 67166,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 67165,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 67172,
"src": "25253:6:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 67164,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "25253:6:143",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"visibility": "internal"
}
],
"src": "25252:8:143"
},
"scope": 67262,
"stateMutability": "nonpayable",
"virtual": true,
"visibility": "public"
},
{
"id": 67197,
"nodeType": "FunctionDefinition",
"src": "25608:213:143",
"nodes": [],
"body": {
"id": 67196,
"nodeType": "Block",
"src": "25757:64:143",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"expression": {
"id": 67192,
"name": "Errors",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 56900,
"src": "25775:6:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_Errors_$56900_$",
"typeString": "type(library Errors)"
}
},
"id": 67193,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "25782:30:143",
"memberName": "CT_ERC1155_BATCH_NOT_SUPPORTED",
"nodeType": "MemberAccess",
"referencedDeclaration": 56746,
"src": "25775:37:143",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 67191,
"name": "revert",
"nodeType": "Identifier",
"overloadedDeclarations": [
-19,
-19
],
"referencedDeclaration": -19,
"src": "25768:6:143",
"typeDescriptions": {
"typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
"typeString": "function (string memory) pure"
}
},
"id": 67194,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "25768:45:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 67195,
"nodeType": "ExpressionStatement",
"src": "25768:45:143"
}
]
},
"baseFunctions": [
26376
],
"documentation": {
"id": 67173,
"nodeType": "StructuredDocumentation",
"src": "25326:276:143",
"text": "@notice For the receiving of multiple ERC1155 tokens types to this contract address.\n @dev An ERC1155 `safeBatchTransferFrom` will revert unless this Solidity selector is returned.\n @return Always returns `IERC1155Receiver.onERC1155BatchReceived.selector`."
},
"functionSelector": "bc197c81",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "onERC1155BatchReceived",
"nameLocation": "25617:22:143",
"overrides": {
"id": 67187,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "25731:8:143"
},
"parameters": {
"id": 67186,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 67175,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 67197,
"src": "25640:7:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 67174,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "25640:7:143",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 67177,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 67197,
"src": "25649:7:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 67176,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "25649:7:143",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 67180,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 67197,
"src": "25658:18:143",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[]"
},
"typeName": {
"baseType": {
"id": 67178,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "25658:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 67179,
"nodeType": "ArrayTypeName",
"src": "25658:9:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 67183,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 67197,
"src": "25678:18:143",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
"typeString": "uint256[]"
},
"typeName": {
"baseType": {
"id": 67181,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "25678:7:143",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 67182,
"nodeType": "ArrayTypeName",
"src": "25678:9:143",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 67185,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 67197,
"src": "25698:14:143",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 67184,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "25698:5:143",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"src": "25639:74:143"
},
"returnParameters": {
"id": 67190,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 67189,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 67197,
"src": "25749:6:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 67188,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "25749:6:143",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"visibility": "internal"
}
],
"src": "25748:8:143"
},
"scope": 67262,
"stateMutability": "nonpayable",
"virtual": true,
"visibility": "external"
},
{
"id": 67228,
"nodeType": "FunctionDefinition",
"src": "26036:338:143",
"nodes": [],
"body": {
"id": 67227,
"nodeType": "Block",
"src": "26128:246:143",
"nodes": [],
"statements": [
{
"expression": {
"commonType": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"id": 67225,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"commonType": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"id": 67218,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"commonType": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"id": 67211,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 67206,
"name": "_interfaceId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67200,
"src": "26159:12:143",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"expression": {
"arguments": [
{
"id": 67208,
"name": "IERC1155ReceiverUpgradeable",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 26377,
"src": "26180:27:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_IERC1155ReceiverUpgradeable_$26377_$",
"typeString": "type(contract IERC1155ReceiverUpgradeable)"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_type$_t_contract$_IERC1155ReceiverUpgradeable_$26377_$",
"typeString": "type(contract IERC1155ReceiverUpgradeable)"
}
],
"id": 67207,
"name": "type",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -27,
"src": "26175:4:143",
"typeDescriptions": {
"typeIdentifier": "t_function_metatype_pure$__$returns$__$",
"typeString": "function () pure"
}
},
"id": 67209,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "26175:33:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_magic_meta_type_t_contract$_IERC1155ReceiverUpgradeable_$26377",
"typeString": "type(contract IERC1155ReceiverUpgradeable)"
}
},
"id": 67210,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "26209:11:143",
"memberName": "interfaceId",
"nodeType": "MemberAccess",
"src": "26175:45:143",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"src": "26159:61:143",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "BinaryOperation",
"operator": "||",
"rightExpression": {
"commonType": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"id": 67217,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 67212,
"name": "_interfaceId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67200,
"src": "26237:12:143",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"expression": {
"arguments": [
{
"id": 67214,
"name": "IERC721ReceiverUpgradeable",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 28519,
"src": "26258:26:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_IERC721ReceiverUpgradeable_$28519_$",
"typeString": "type(contract IERC721ReceiverUpgradeable)"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_type$_t_contract$_IERC721ReceiverUpgradeable_$28519_$",
"typeString": "type(contract IERC721ReceiverUpgradeable)"
}
],
"id": 67213,
"name": "type",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -27,
"src": "26253:4:143",
"typeDescriptions": {
"typeIdentifier": "t_function_metatype_pure$__$returns$__$",
"typeString": "function () pure"
}
},
"id": 67215,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "26253:32:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_magic_meta_type_t_contract$_IERC721ReceiverUpgradeable_$28519",
"typeString": "type(contract IERC721ReceiverUpgradeable)"
}
},
"id": 67216,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "26286:11:143",
"memberName": "interfaceId",
"nodeType": "MemberAccess",
"src": "26253:44:143",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"src": "26237:60:143",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"src": "26159:138:143",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "BinaryOperation",
"operator": "||",
"rightExpression": {
"commonType": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"id": 67224,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 67219,
"name": "_interfaceId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67200,
"src": "26314:12:143",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"expression": {
"arguments": [
{
"id": 67221,
"name": "IERC165Upgradeable",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 29293,
"src": "26335:18:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_IERC165Upgradeable_$29293_$",
"typeString": "type(contract IERC165Upgradeable)"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_type$_t_contract$_IERC165Upgradeable_$29293_$",
"typeString": "type(contract IERC165Upgradeable)"
}
],
"id": 67220,
"name": "type",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -27,
"src": "26330:4:143",
"typeDescriptions": {
"typeIdentifier": "t_function_metatype_pure$__$returns$__$",
"typeString": "function () pure"
}
},
"id": 67222,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "26330:24:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_magic_meta_type_t_contract$_IERC165Upgradeable_$29293",
"typeString": "type(contract IERC165Upgradeable)"
}
},
"id": 67223,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "26355:11:143",
"memberName": "interfaceId",
"nodeType": "MemberAccess",
"src": "26330:36:143",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"src": "26314:52:143",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"src": "26159:207:143",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 67205,
"id": 67226,
"nodeType": "Return",
"src": "26139:227:143"
}
]
},
"baseFunctions": [
29292
],
"documentation": {
"id": 67198,
"nodeType": "StructuredDocumentation",
"src": "25829:201:143",
"text": "@dev Checks whether this contract implements the interface defined by `interfaceId`.\n @param _interfaceId Id of the interface\n @return true if this contract implements the interface"
},
"functionSelector": "01ffc9a7",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "supportsInterface",
"nameLocation": "26045:17:143",
"overrides": {
"id": 67202,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "26104:8:143"
},
"parameters": {
"id": 67201,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 67200,
"mutability": "mutable",
"name": "_interfaceId",
"nameLocation": "26070:12:143",
"nodeType": "VariableDeclaration",
"scope": 67228,
"src": "26063:19:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 67199,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "26063:6:143",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"visibility": "internal"
}
],
"src": "26062:21:143"
},
"returnParameters": {
"id": 67205,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 67204,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 67228,
"src": "26122:4:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 67203,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "26122:4:143",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
}
],
"src": "26121:6:143"
},
"scope": 67262,
"stateMutability": "view",
"virtual": true,
"visibility": "public"
},
{
"id": 67242,
"nodeType": "FunctionDefinition",
"src": "26415:153:143",
"nodes": [],
"body": {
"id": 67241,
"nodeType": "Block",
"src": "26491:77:143",
"nodes": [],
"statements": [
{
"expression": {
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 67239,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 67235,
"name": "forwarder",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67230,
"src": "26509:9:143",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"id": 67236,
"name": "_addressProvider",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67283,
"src": "26522:16:143",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IAddressProvider_$45420",
"typeString": "contract IAddressProvider"
}
},
"id": 67237,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "26539:19:143",
"memberName": "getExecutionManager",
"nodeType": "MemberAccess",
"referencedDeclaration": 45169,
"src": "26522:36:143",
"typeDescriptions": {
"typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
"typeString": "function () view external returns (address)"
}
},
"id": 67238,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "26522:38:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "26509:51:143",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 67234,
"id": 67240,
"nodeType": "Return",
"src": "26502:58:143"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "isTrustedForwarder",
"nameLocation": "26424:18:143",
"parameters": {
"id": 67231,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 67230,
"mutability": "mutable",
"name": "forwarder",
"nameLocation": "26451:9:143",
"nodeType": "VariableDeclaration",
"scope": 67242,
"src": "26443:17:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 67229,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "26443:7:143",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "26442:19:143"
},
"returnParameters": {
"id": 67234,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 67233,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 67242,
"src": "26485:4:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 67232,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "26485:4:143",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
}
],
"src": "26484:6:143"
},
"scope": 67262,
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"id": 67261,
"nodeType": "FunctionDefinition",
"src": "26576:410:143",
"nodes": [],
"body": {
"id": 67260,
"nodeType": "Block",
"src": "26654:332:143",
"nodes": [],
"statements": [
{
"condition": {
"arguments": [
{
"expression": {
"id": 67249,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "26688:3:143",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 67250,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "26692:6:143",
"memberName": "sender",
"nodeType": "MemberAccess",
"src": "26688:10:143",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 67248,
"name": "isTrustedForwarder",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67242,
"src": "26669:18:143",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$",
"typeString": "function (address) view returns (bool)"
}
},
"id": 67251,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "26669:30:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": {
"id": 67258,
"nodeType": "Block",
"src": "26927:52:143",
"statements": [
{
"expression": {
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"id": 67254,
"name": "super",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -25,
"src": "26949:5:143",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_super$_LendingPool_$67262_$",
"typeString": "type(contract super LendingPool)"
}
},
"id": 67255,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "26955:10:143",
"memberName": "_msgSender",
"nodeType": "MemberAccess",
"referencedDeclaration": 28973,
"src": "26949:16:143",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
"typeString": "function () view returns (address)"
}
},
"id": 67256,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "26949:18:143",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"functionReturnParameters": 67247,
"id": 67257,
"nodeType": "Return",
"src": "26942:25:143"
}
]
},
"id": 67259,
"nodeType": "IfStatement",
"src": "26665:314:143",
"trueBody": {
"id": 67253,
"nodeType": "Block",
"src": "26701:220:143",
"statements": [
{
"AST": {
"nodeType": "YulBlock",
"src": "26820:90:143",
"statements": [
{
"nodeType": "YulAssignment",
"src": "26839:56:143",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "26853:2:143",
"type": "",
"value": "96"
},
{
"arguments": [
{
"arguments": [
{
"arguments": [],
"functionName": {
"name": "calldatasize",
"nodeType": "YulIdentifier",
"src": "26874:12:143"
},
"nodeType": "YulFunctionCall",
"src": "26874:14:143"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "26890:2:143",
"type": "",
"value": "20"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "26870:3:143"
},
"nodeType": "YulFunctionCall",
"src": "26870:23:143"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "26857:12:143"
},
"nodeType": "YulFunctionCall",
"src": "26857:37:143"
}
],
"functionName": {
"name": "shr",
"nodeType": "YulIdentifier",
"src": "26849:3:143"
},
"nodeType": "YulFunctionCall",
"src": "26849:46:143"
},
"variableNames": [
{
"name": "sender",
"nodeType": "YulIdentifier",
"src": "26839:6:143"
}
]
}
]
},
"evmVersion": "london",
"externalReferences": [
{
"declaration": 67246,
"isOffset": false,
"isSlot": false,
"src": "26839:6:143",
"valueSize": 1
}
],
"id": 67252,
"nodeType": "InlineAssembly",
"src": "26811:99:143"
}
]
}
}
]
},
"baseFunctions": [
28973
],
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "_msgSender",
"nameLocation": "26585:10:143",
"overrides": {
"id": 67244,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "26620:8:143"
},
"parameters": {
"id": 67243,
"nodeType": "ParameterList",
"parameters": [],
"src": "26595:2:143"
},
"returnParameters": {
"id": 67247,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 67246,
"mutability": "mutable",
"name": "sender",
"nameLocation": "26646:6:143",
"nodeType": "VariableDeclaration",
"scope": 67261,
"src": "26638:14:143",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 67245,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "26638:7:143",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "26637:16:143"
},
"scope": 67262,
"stateMutability": "view",
"virtual": true,
"visibility": "internal"
}
],
"abstract": false,
"baseContracts": [
{
"baseName": {
"id": 66047,
"name": "ILendingPool",
"nameLocations": [
"2529:12:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 47057,
"src": "2529:12:143"
},
"id": 66048,
"nodeType": "InheritanceSpecifier",
"src": "2529:12:143"
},
{
"baseName": {
"id": 66049,
"name": "ContextUpgradeable",
"nameLocations": [
"2549:18:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 28988,
"src": "2549:18:143"
},
"id": 66050,
"nodeType": "InheritanceSpecifier",
"src": "2549:18:143"
},
{
"baseName": {
"id": 66051,
"name": "ReentrancyGuardUpgradeable",
"nameLocations": [
"2575:26:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 26336,
"src": "2575:26:143"
},
"id": 66052,
"nodeType": "InheritanceSpecifier",
"src": "2575:26:143"
},
{
"baseName": {
"id": 66053,
"name": "IERC721ReceiverUpgradeable",
"nameLocations": [
"2608:26:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 28519,
"src": "2608:26:143"
},
"id": 66054,
"nodeType": "InheritanceSpecifier",
"src": "2608:26:143"
},
{
"baseName": {
"id": 66055,
"name": "IERC1155ReceiverUpgradeable",
"nameLocations": [
"2641:27:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 26377,
"src": "2641:27:143"
},
"id": 66056,
"nodeType": "InheritanceSpecifier",
"src": "2641:27:143"
},
{
"baseName": {
"id": 66057,
"name": "LendingPoolStorage",
"nameLocations": [
"2675:18:143"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 67334,
"src": "2675:18:143"
},
"id": 66058,
"nodeType": "InheritanceSpecifier",
"src": "2675:18:143"
}
],
"canonicalName": "LendingPool",
"contractDependencies": [],
"contractKind": "contract",
"documentation": {
"id": 66046,
"nodeType": "StructuredDocumentation",
"src": "2211:288:143",
"text": "@title Lending Pool contract for instant, permissionless NFT-backed loans\n @author FluidNFT\n @notice Allows for the borrow/repay of loans and deposit/withdraw of assets.\n @dev This is our protocol's point of access.\n - For Upgradeable DO NOT ADJUST inheritance order"
},
"fullyImplemented": true,
"linearizedBaseContracts": [
67262,
67334,
26377,
29293,
28519,
26336,
28988,
26136,
47057
],
"name": "LendingPool",
"nameLocation": "2508:11:143",
"scope": 67263,
"usedErrors": []
}
],
"license": "AGPL-3.0"
},
"id": 143
}
Last updated