Created
October 25, 2023 15:35
-
-
Save tomrpl/4b9d184a5c326410040df13be187df93 to your computer and use it in GitHub Desktop.
Entire Blue ABI
This file has been truncated, but you can view the full file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"abi": [ | |
{ | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "newOwner", | |
"type": "address" | |
} | |
], | |
"stateMutability": "nonpayable", | |
"type": "constructor" | |
}, | |
{ | |
"inputs": [], | |
"name": "DOMAIN_SEPARATOR", | |
"outputs": [ | |
{ | |
"internalType": "bytes32", | |
"name": "", | |
"type": "bytes32" | |
} | |
], | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"components": [ | |
{ | |
"internalType": "address", | |
"name": "borrowableToken", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "collateralToken", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "oracle", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "irm", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "lltv", | |
"type": "uint256" | |
} | |
], | |
"internalType": "struct MarketParams", | |
"name": "marketParams", | |
"type": "tuple" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "assets", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "shares", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "address", | |
"name": "onBehalf", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "receiver", | |
"type": "address" | |
} | |
], | |
"name": "borrow", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"components": [ | |
{ | |
"internalType": "address", | |
"name": "borrowableToken", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "collateralToken", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "oracle", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "irm", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "lltv", | |
"type": "uint256" | |
} | |
], | |
"internalType": "struct MarketParams", | |
"name": "marketParams", | |
"type": "tuple" | |
} | |
], | |
"name": "createMarket", | |
"outputs": [], | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "irm", | |
"type": "address" | |
} | |
], | |
"name": "enableIrm", | |
"outputs": [], | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "lltv", | |
"type": "uint256" | |
} | |
], | |
"name": "enableLltv", | |
"outputs": [], | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "bytes32[]", | |
"name": "slots", | |
"type": "bytes32[]" | |
} | |
], | |
"name": "extSloads", | |
"outputs": [ | |
{ | |
"internalType": "bytes32[]", | |
"name": "res", | |
"type": "bytes32[]" | |
} | |
], | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"inputs": [], | |
"name": "feeRecipient", | |
"outputs": [ | |
{ | |
"internalType": "address", | |
"name": "", | |
"type": "address" | |
} | |
], | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "token", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "assets", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "bytes", | |
"name": "data", | |
"type": "bytes" | |
} | |
], | |
"name": "flashLoan", | |
"outputs": [], | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "Id", | |
"name": "", | |
"type": "bytes32" | |
} | |
], | |
"name": "idToMarketParams", | |
"outputs": [ | |
{ | |
"internalType": "address", | |
"name": "borrowableToken", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "collateralToken", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "oracle", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "irm", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "lltv", | |
"type": "uint256" | |
} | |
], | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "", | |
"type": "address" | |
} | |
], | |
"name": "isAuthorized", | |
"outputs": [ | |
{ | |
"internalType": "bool", | |
"name": "", | |
"type": "bool" | |
} | |
], | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "", | |
"type": "address" | |
} | |
], | |
"name": "isIrmEnabled", | |
"outputs": [ | |
{ | |
"internalType": "bool", | |
"name": "", | |
"type": "bool" | |
} | |
], | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"name": "isLltvEnabled", | |
"outputs": [ | |
{ | |
"internalType": "bool", | |
"name": "", | |
"type": "bool" | |
} | |
], | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"components": [ | |
{ | |
"internalType": "address", | |
"name": "borrowableToken", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "collateralToken", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "oracle", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "irm", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "lltv", | |
"type": "uint256" | |
} | |
], | |
"internalType": "struct MarketParams", | |
"name": "marketParams", | |
"type": "tuple" | |
}, | |
{ | |
"internalType": "address", | |
"name": "borrower", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "seizedAssets", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "repaidShares", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "bytes", | |
"name": "data", | |
"type": "bytes" | |
} | |
], | |
"name": "liquidate", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "Id", | |
"name": "", | |
"type": "bytes32" | |
} | |
], | |
"name": "market", | |
"outputs": [ | |
{ | |
"internalType": "uint128", | |
"name": "totalSupplyAssets", | |
"type": "uint128" | |
}, | |
{ | |
"internalType": "uint128", | |
"name": "totalSupplyShares", | |
"type": "uint128" | |
}, | |
{ | |
"internalType": "uint128", | |
"name": "totalBorrowAssets", | |
"type": "uint128" | |
}, | |
{ | |
"internalType": "uint128", | |
"name": "totalBorrowShares", | |
"type": "uint128" | |
}, | |
{ | |
"internalType": "uint128", | |
"name": "lastUpdate", | |
"type": "uint128" | |
}, | |
{ | |
"internalType": "uint128", | |
"name": "fee", | |
"type": "uint128" | |
} | |
], | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "", | |
"type": "address" | |
} | |
], | |
"name": "nonce", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"inputs": [], | |
"name": "owner", | |
"outputs": [ | |
{ | |
"internalType": "address", | |
"name": "", | |
"type": "address" | |
} | |
], | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "Id", | |
"name": "", | |
"type": "bytes32" | |
}, | |
{ | |
"internalType": "address", | |
"name": "", | |
"type": "address" | |
} | |
], | |
"name": "position", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "supplyShares", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint128", | |
"name": "borrowShares", | |
"type": "uint128" | |
}, | |
{ | |
"internalType": "uint128", | |
"name": "collateral", | |
"type": "uint128" | |
} | |
], | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"components": [ | |
{ | |
"internalType": "address", | |
"name": "borrowableToken", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "collateralToken", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "oracle", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "irm", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "lltv", | |
"type": "uint256" | |
} | |
], | |
"internalType": "struct MarketParams", | |
"name": "marketParams", | |
"type": "tuple" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "assets", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "shares", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "address", | |
"name": "onBehalf", | |
"type": "address" | |
}, | |
{ | |
"internalType": "bytes", | |
"name": "data", | |
"type": "bytes" | |
} | |
], | |
"name": "repay", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "authorized", | |
"type": "address" | |
}, | |
{ | |
"internalType": "bool", | |
"name": "newIsAuthorized", | |
"type": "bool" | |
} | |
], | |
"name": "setAuthorization", | |
"outputs": [], | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"components": [ | |
{ | |
"internalType": "address", | |
"name": "authorizer", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "authorized", | |
"type": "address" | |
}, | |
{ | |
"internalType": "bool", | |
"name": "isAuthorized", | |
"type": "bool" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "nonce", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "deadline", | |
"type": "uint256" | |
} | |
], | |
"internalType": "struct Authorization", | |
"name": "authorization", | |
"type": "tuple" | |
}, | |
{ | |
"components": [ | |
{ | |
"internalType": "uint8", | |
"name": "v", | |
"type": "uint8" | |
}, | |
{ | |
"internalType": "bytes32", | |
"name": "r", | |
"type": "bytes32" | |
}, | |
{ | |
"internalType": "bytes32", | |
"name": "s", | |
"type": "bytes32" | |
} | |
], | |
"internalType": "struct Signature", | |
"name": "signature", | |
"type": "tuple" | |
} | |
], | |
"name": "setAuthorizationWithSig", | |
"outputs": [], | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"components": [ | |
{ | |
"internalType": "address", | |
"name": "borrowableToken", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "collateralToken", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "oracle", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "irm", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "lltv", | |
"type": "uint256" | |
} | |
], | |
"internalType": "struct MarketParams", | |
"name": "marketParams", | |
"type": "tuple" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "newFee", | |
"type": "uint256" | |
} | |
], | |
"name": "setFee", | |
"outputs": [], | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "newFeeRecipient", | |
"type": "address" | |
} | |
], | |
"name": "setFeeRecipient", | |
"outputs": [], | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "newOwner", | |
"type": "address" | |
} | |
], | |
"name": "setOwner", | |
"outputs": [], | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"components": [ | |
{ | |
"internalType": "address", | |
"name": "borrowableToken", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "collateralToken", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "oracle", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "irm", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "lltv", | |
"type": "uint256" | |
} | |
], | |
"internalType": "struct MarketParams", | |
"name": "marketParams", | |
"type": "tuple" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "assets", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "shares", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "address", | |
"name": "onBehalf", | |
"type": "address" | |
}, | |
{ | |
"internalType": "bytes", | |
"name": "data", | |
"type": "bytes" | |
} | |
], | |
"name": "supply", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"components": [ | |
{ | |
"internalType": "address", | |
"name": "borrowableToken", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "collateralToken", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "oracle", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "irm", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "lltv", | |
"type": "uint256" | |
} | |
], | |
"internalType": "struct MarketParams", | |
"name": "marketParams", | |
"type": "tuple" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "assets", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "address", | |
"name": "onBehalf", | |
"type": "address" | |
}, | |
{ | |
"internalType": "bytes", | |
"name": "data", | |
"type": "bytes" | |
} | |
], | |
"name": "supplyCollateral", | |
"outputs": [], | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"components": [ | |
{ | |
"internalType": "address", | |
"name": "borrowableToken", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "collateralToken", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "oracle", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "irm", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "lltv", | |
"type": "uint256" | |
} | |
], | |
"internalType": "struct MarketParams", | |
"name": "marketParams", | |
"type": "tuple" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "assets", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "shares", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "address", | |
"name": "onBehalf", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "receiver", | |
"type": "address" | |
} | |
], | |
"name": "withdraw", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"components": [ | |
{ | |
"internalType": "address", | |
"name": "borrowableToken", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "collateralToken", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "oracle", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "irm", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "lltv", | |
"type": "uint256" | |
} | |
], | |
"internalType": "struct MarketParams", | |
"name": "marketParams", | |
"type": "tuple" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "assets", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "address", | |
"name": "onBehalf", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "receiver", | |
"type": "address" | |
} | |
], | |
"name": "withdrawCollateral", | |
"outputs": [], | |
"stateMutability": "nonpayable", | |
"type": "function" | |
} | |
], | |
"bytecode": { | |
"object": "0x60a034620001805762003bfb80380391601f1980601f85011682019260018060401b0394838510868611176200010f57808492604096875283396020938491810103126200018057516001600160a01b038116919082900362000180578351848101818110878211176200010f578552600c81526b7a65726f206164647265737360a01b8482015282156200012557505060018060a01b031960005416176000558151908101917f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a7946921883524681830152306060830152606082526080820193828510908511176200010f57839052519020608052613a75908162000186823960805181818161177c01526123ab0152f35b634e487b7160e01b600052604160045260246000fd5b83855192839162461bcd60e51b835280600484015283519081602485015260005b828110620001685750506044935080600085601f938601015201168101030190fd5b80860182015187820160440152869450810162000146565b600080fdfe6080604052600436101561001257600080fd5b6000803560e01c806313af403514612a1257806320b76e81146127b3578063238d6579146125e95780632b4f013c146124605780632c3c9157146123ce5780633644e5151461237557806346904840146123235780634d98a93b1461220757806350d8cd4b14611f735780635a64f51e14611e9b5780635c2bea4914611c3a5780635c60e39a14611ba957806365e4ad9e14611b2957806370ae92d214611ac65780637784c6851461195a5780638069218f146115725780638720316d146114025780638c1358a2146111855780638da5cb5b1461113457806393c520621461109b578063a99aad8914610e5f578063b485f3b814610e12578063d8eabcb81461049b578063e0232b4214610361578063e74b981b14610290578063eecea000146101b05763f2b863ce1461014657600080fd5b346101ad5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ad5760ff604060209273ffffffffffffffffffffffffffffffffffffffff610199612adc565b168152600484522054166040519015158152f35b80fd5b50346101ad5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ad576101e8612adc565b6024358015159081810361028b5761025a90338552600660205273ffffffffffffffffffffffffffffffffffffffff604086209416938460005260205260406000209060ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0083541691151516179055565b60405190815233907fd5e969f01efe921d3f766bdebad25f0a05e3f237311f56482bf132d0326309c060203392a480f35b600080fd5b50346101ad5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ad576103356102cb612adc565b7fffffffffffffffffffffffff000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff91610319838654163314610313612d8a565b90612dc3565b82600154911693849361032a612e5f565b908316851415612dc3565b16176001557f2e979f80fe4d43055c584cf4a8467c55875ea36728fc37176c05acd784eb7a738280a280f35b50346101ad5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ad57610399612adc565b6024358260443567ffffffffffffffff8111610497576103d273ffffffffffffffffffffffffffffffffffffffff913690600401612c6a565b91909416936103e284338761377c565b846040518581527fc76f1b4fe4396ac07a9fa55a415d4ca430e72651d37d3401f3bed7cb13fc4f1260203392a3333b156104885761045191839160405193849283927f31f570720000000000000000000000000000000000000000000000000000000084528860048501612f74565b038183335af1801561048c57610474575b50506104719130903390613869565b80f35b61047d90612b45565b610488578238610462565b8280fd5b6040513d84823e3d90fd5b5080fd5b50346101ad576101207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ad576104d536612bd2565b9073ffffffffffffffffffffffffffffffffffffffff60a4351660a4350361028b576101043567ffffffffffffffff811161049757610518903690600401612c6a565b9160c4359260e4359260a086209384845260036020526105556fffffffffffffffffffffffffffffffff6002604087200154161515610313612e98565b61056a610560612ed1565b8215881518612dc3565b6105748588613146565b6004602073ffffffffffffffffffffffffffffffffffffffff60408a015116604051928380927fa035b1fe0000000000000000000000000000000000000000000000000000000082525afa908115610e07578591610dd5575b5061061c6105df8260a435898c6135d8565b15604051906105ed82612b75565b601382527f706f736974696f6e206973206865616c746879000000000000000000000000006020830152612dc3565b6080880151670de0b6b3a764000003670de0b6b3a76400008111610c8c57670429d069189e00009080820291820403610cb957670de0b6b3a7640000900491670de0b6b3a764000083810311610c8c5782670de0b6b3a764000014610da6578715610ce8575061068c90876136a6565b6ec097ce7bc90715b34b9f0fffffffff8101809111610cb9576ec097ce7bc90715b34b9f1000000000900480670de0b6b3a7640000810204670de0b6b3a76400001481151715610cb957670ff59ee833b30000670de0b6b3a76400008390036ec097ce7bc90715b34b9f1000000000048082189082110281187fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810111610c8c5761078c92670de0b6b3a76400009081036ec097ce7bc90715b34b9f1000000000048083189083110290911891610787917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84019102612f43565b6136b9565b9380845260036020526107bd60016040862001546fffffffffffffffffffffffffffffffff8160801c911687613956565b6107c6816139e6565b82865260026020526040862073ffffffffffffffffffffffffffffffffffffffff60a435166000526020526001604060002001907fffffffffffffffffffffffffffffffff000000000000000000000000000000006fffffffffffffffffffffffffffffffff61083a845493828516613006565b1691161790556108a961084c826139e6565b83875260036020526108696001604089200191825460801c613006565b6fffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffff0000000000000000000000000000000083549260801b169116179055565b81855260036020526108da6fffffffffffffffffffffffffffffffff600160408820015416878082039111026139e6565b82865260036020526fffffffffffffffffffffffffffffffff6001604088200191167fffffffffffffffffffffffffffffffff0000000000000000000000000000000082541617905561097061092f886139e6565b83875260026020526040872073ffffffffffffffffffffffffffffffffffffffff60a43516600052602052610869600160406000200191825460801c613006565b8482865260026020526040862073ffffffffffffffffffffffffffffffffffffffff60a4351660005260205260016040600020015460801c15610ad4575b6109d48873ffffffffffffffffffffffffffffffffffffffff60208c015116339061377c565b604051918783526020830152876040830152606082015273ffffffffffffffffffffffffffffffffffffffff60a43516917f2a956e32ed8787cac03e680198b6ce3dcfb819aad578b3a5658f2c110a7d7c5560803393a481610a67575b505050610a5b8173ffffffffffffffffffffffffffffffffffffffff604095511630903390613869565b82519182526020820152f35b333b1561048857610aa991839160405193849283927fcf7ea1960000000000000000000000000000000000000000000000000000000084528860048501612f74565b038183335af1801561048c57610ac0575b80610a31565b610aca8291612b45565b6101ad5780610aba565b5081855260026020526040852073ffffffffffffffffffffffffffffffffffffffff60a435166000526020526fffffffffffffffffffffffffffffffff600160406000200154168286526003602052610baf610b4e60016040892001546fffffffffffffffffffffffffffffffff8160801c9116846139c3565b610b57816139e6565b858952600360205260408920907fffffffffffffffffffffffffffffffff000000000000000000000000000000006fffffffffffffffffffffffffffffffff610ba4845493828516613006565b1691161790556139e6565b838752600360205260016040882001907fffffffffffffffffffffffffffffffff000000000000000000000000000000006fffffffffffffffffffffffffffffffff610bff845493828516613006565b169116179055610c2e610c11826139e6565b8488526003602052610869600160408a200191825460801c613006565b82865260026020526040862073ffffffffffffffffffffffffffffffffffffffff60a4351660005260205260016040600020017fffffffffffffffffffffffffffffffff0000000000000000000000000000000081541690556109ae565b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b96508585969296526003602052670de0b6b3a7640000610d57610d2960016040892001546fffffffffffffffffffffffffffffffff8160801c91168b6139c3565b9782036ec097ce7bc90715b34b9f100000000004670ff59ee833b300008181189181119190910218886136a6565b04806ec097ce7bc90715b34b9f10000000008102046ec097ce7bc90715b34b9f10000000001481151715610c8c57906ec097ce7bc90715b34b9f1000000000610da092026136b9565b956107bd565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b90506020813d602011610dff575b81610df060209383612b91565b8101031261028b5751386105cd565b3d9150610de3565b6040513d87823e3d90fd5b50346101ad5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ad5760ff60406020926004358152600584522054166040519015158152f35b50346101ad57610e6e36612c98565b849691959296958460a08520808552602096600388526fffffffffffffffffffffffffffffffff98610ead8a600260408a200154161515610313612e98565b1592610ec3610eba612ed1565b82158618612dc3565b73ffffffffffffffffffffffffffffffffffffffff809c1693610eef610ee7612f0a565b861515612dc3565b610ef9848a613146565b61107457505080855260038752610f1b6040862054898160801c91168b613956565b975b81865260028852604086208360005288526040600020610f3e8a8254612f43565b9055610f65610f4c8a6139e6565b83885260038a526108696040892091825460801c612f50565b610f6e8a6139e6565b828752600389527fffffffffffffffffffffffffffffffff000000000000000000000000000000006040882092610fa9845493828516612f50565b1691161790556040519089825288888301527fedf8870433c83823eb071d3df1caa8d008f12f6440918c20d75a3602cda30fe060403393a481611007575b50505083604095610ffd92511630903390613869565b8351928352820152f35b333b156104885761104991839160405193849283927f2075be030000000000000000000000000000000000000000000000000000000084528b60048501612f74565b038183335af1801561048c57611060575b80610fe7565b61106a8291612b45565b6101ad578061105a565b61109591999a50828752600389526040872054908b8260801c9216906139c3565b98610f1d565b50346101ad5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ad5773ffffffffffffffffffffffffffffffffffffffff60406110ea612b22565b926004358152600260205220911660005260205260606040600020600181549101546040519182526fffffffffffffffffffffffffffffffff8116602083015260801c6040820152f35b50346101ad57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ad5773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b50346101ad5760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ad576111be36612bd2565b7fac4b2400f169220b0c0afdde7a0b32e775ba727ea1cb30b35f935cdaab8683ac60a08083209260608101600473ffffffffffffffffffffffffffffffffffffffff9182815116885260209082825261125360ff60408b2054166040519061122582612b75565b600f82527f49524d206e6f7420656e61626c6564000000000000000000000000000000000085830152612dc3565b608085019182518a52600581526112a660ff60408c2054166040519061127882612b75565b601082527f4c4c5456206e6f7420656e61626c65640000000000000000000000000000000084830152612dc3565b888a526003815260406113098b60026fffffffffffffffffffffffffffffffff9384922001541615604051906112db82612b75565b601682527f6d61726b657420616c726561647920637265617465640000000000000000000085830152612dc3565b898b5260038252600260408c20019042167fffffffffffffffffffffffffffffffff000000000000000000000000000000008254161790556008815260408a209480875116917fffffffffffffffffffffffff0000000000000000000000000000000000000000928388541617875581600188019189015116838254161790556002860181604089015116838254161790556003860192511690825416179055519101556113fe60405180926080809173ffffffffffffffffffffffffffffffffffffffff80825116855280602083015116602086015280604083015116604086015260608201511660608501520151910152565ba280f35b50346101ad576101007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ad5761143c36612bd2565b60a435611447612aff565b60e4359073ffffffffffffffffffffffffffffffffffffffff908183169485840361028b57610471958760209361153861153060a0862092838552600388526114ad6fffffffffffffffffffffffffffffffff6002604088200154161515610313612e98565b6114c06114b861309a565b8c1515612dc3565b6114d36114cb612f0a565b871515612dc3565b6114e76114df82613100565b610313612fc0565b6114f18488613146565b61152960406114ff8d6139e6565b9686815260028b5220958a831696876000528a52610869600160406000200191825460801c613006565b83876134e7565b610313613061565b60408051338152602081018a90527fe80ebd7cc9223d7382aab2e0d1d6155c65651f83d53c8b9b06901d167e3211429190a401511661377c565b50346101ad57610100367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc018181126104885760a013610497576040516115b881612b59565b6115c0612adc565b81526115ca612b22565b9060209081810192835260443593841515850361028b5760408201948552606082016064358152608435608084019080825260607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5c360112611956576040516116669161163682612b75565b601182527f7369676e61747572652065787069726564000000000000000000000000000000888301524210612dc3565b8151926116da73ffffffffffffffffffffffffffffffffffffffff94858751168b526007885260408b2080549061169c826130d3565b9055604051916116ab83612b75565b600d83527f696e76616c6964206e6f6e6365000000000000000000000000000000000000008a84015214612dc3565b60405191868301907f81d0284fb0e2cde18d0553b06189d6f7613c96a01bb5b5e7828eade6a0dcac918252858751166040850152858951166060850152895115156080850152845160a08501525160c084015260c0835260e083019167ffffffffffffffff9184841083851117611927578360405284519020908401907f190100000000000000000000000000000000000000000000000000000000000082527f00000000000000000000000000000000000000000000000000000000000000006101028601526101228501526042835261016084019183831090831117611927578a92826040525190209060a4359360ff8516809503611923578894608093835261018082015260c4356101a08201526101c060e43591015282805260015afa15611918577fd5e969f01efe921d3f766bdebad25f0a05e3f237311f56482bf132d0326309c0928291611871838a5116801515908161190b575b506040519061184382612b75565b601182527f696e76616c6964207369676e617475726500000000000000000000000000000089830152612dc3565b8282511690516040519081527fa58af1a0c70dba0c7aa60d1a1a147ebd61000d1690a968828ac718bca927f2c7873392a36118f587511515838351168a526006875260408a2084895116600052875260406000209060ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0083541691151516179055565b511693511693511515916040519283523392a480f35b9050848451161438611835565b6040513d88823e3d90fd5b8380fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b8880fd5b50346101ad576020807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610497576004359067ffffffffffffffff90818311611923573660238401121561192357826004013591821161192357602491600590368482841b87010111611ac2578491816119d7889361368e565b956119e56040519788612b91565b8187526119f18261368e565b947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08789019601368737845b838110611a6757505050505060405193838594850191818652518092526040850193925b828110611a5057505050500390f35b835185528695509381019392810192600101611a41565b9497959694611a75816130d3565b9084811015611a9657851b82018301355481861b8801529597949695611a1d565b838a7f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b8580fd5b50346101ad5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ad57604060209173ffffffffffffffffffffffffffffffffffffffff611b18612adc565b168152600783522054604051908152f35b50346101ad5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ad57611b61612adc565b6040611b6b612b22565b9273ffffffffffffffffffffffffffffffffffffffff80931681526006602052209116600052602052602060ff604060002054166040519015158152f35b50346101ad5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ad57604060c091600435815260036020522080546002600183015492015490604051926fffffffffffffffffffffffffffffffff91828116855260801c6020850152818116604085015260801c60608401528116608083015260801c60a0820152f35b50346101ad57604090611c4c36612d1a565b9294939190858260a08520918288526003602052611c866fffffffffffffffffffffffffffffffff60028c8b200154161515610313612e98565b1593611c9c611c93612ed1565b82158718612dc3565b73ffffffffffffffffffffffffffffffffffffffff871694611cbf6114cb612f0a565b611ccb6114df86613100565b611cd58488613146565b611e4057505092610a5b949273ffffffffffffffffffffffffffffffffffffffff9285899689526003602052611e008b611d29818c20546fffffffffffffffffffffffffffffffff8160801c91168b6139a1565b9a5b8381526002602052878282209516948560005260205281600020611d508d8254612ff9565b9055611d77611d5e8d6139e6565b858352600360205261086984842091825460801c613006565b611d808a6139e6565b8482526003602052828220907fffffffffffffffffffffffffffffffff000000000000000000000000000000006fffffffffffffffffffffffffffffffff611dcc845493828516613006565b1691161790558381526003602052206fffffffffffffffffffffffffffffffff806001830154169154161015610313613028565b8a5133815260208101889052604081018a90527fa56fc0ad5702ec05ce63666221f796fb62437c32db1aa1aa075fc6484cf58fbf90606090a4511661377c565b8998509282611e00611e9373ffffffffffffffffffffffffffffffffffffffff968b9996610a5b9b99969c5260036020528c8a2054906fffffffffffffffffffffffffffffffff8260801c92169061397b565b9a8b98611d2b565b50346101ad5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ad57611ed3612adc565b73ffffffffffffffffffffffffffffffffffffffff90611efa828454163314610313612d8a565b168082526004602052611f1760ff60408420541615610313612e5f565b80825260046020526040822060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008254161790557f590e04cdebeccba40f566186b9746ad295a4cd358ea4fefaaea6ce79630d96c08280a280f35b50346101ad57611f8236612d1a565b909291948294869160a08220958682526003966020968888526fffffffffffffffffffffffffffffffff90611fc4826002604088200154161515610313612e98565b1593611fda611fd1612ed1565b8d158718612dc3565b73ffffffffffffffffffffffffffffffffffffffff9687891695612007611fff612f0a565b881515612dc3565b6120136114df87613100565b61201d8589613146565b6121d857508a9b5082819b98999a9b528a8a526120486001604083200154838160801c91168a6139a1565b9a8b945b612055866139e6565b85845260028d528c8360408620988c8516998a60005283526040600020600101888154958187169061208691612f50565b167fffffffffffffffffffffffffffffffff000000000000000000000000000000008096161790556120b7906139e6565b91888752526040852060010190815460801c906120d391612f50565b81546fffffffffffffffffffffffffffffffff1660809190911b7fffffffffffffffffffffffffffffffff00000000000000000000000000000000161790558c8361211d8d6139e6565b91888752526040852060010191868354928184169061213b91612f50565b16911617905561214c9085896134e7565b612154613061565b61215d91612dc3565b8382528a52604090209080600183015416915416101561217b613028565b61218491612dc3565b60408051338152602081018890529081018a90527f570954540bed6b1304a87dfe815a5eda4a648f7097a16240dcd85c9b5fd42a4390606090a45116916121ca9261377c565b604051928352820152604090f35b9a506121ff8b9498999a9c8483528d8c52600160408420015490848260801c92169061397b565b9b8c9861204c565b50346101ad5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ad577f297b80e7a896fad470c630f6575072d609bde997260ff3db851939405ec29139602060043561228273ffffffffffffffffffffffffffffffffffffffff8554163314610313612d8a565b8084526005825261229d60ff60408620541615610313612e5f565b6122e56040516122ac81612b75565b601181527f6d6178204c4c545620657863656564656400000000000000000000000000000084820152670de0b6b3a76400008310612dc3565b808452600582526040842060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055604051908152a180f35b50346101ad57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ad57602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b50346101ad57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ad5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b50346101ad5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ad57604060a091600435815260086020522073ffffffffffffffffffffffffffffffffffffffff8082541691816001820154169160048160028401541691600384015416920154926040519485526020850152604084015260608301526080820152f35b50346101ad5760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ad5761249936612bd2565b7f139d6f58e9a127229667c8e3b36e88890a66cfc8ab1024ddc513e189e125b75b602060a4356124e473ffffffffffffffffffffffffffffffffffffffff8654163314610313612d8a565b6125df60a08520948587526003845261258e866fffffffffffffffffffffffffffffffff9261252084600260408d200154161515610313612e98565b818a5260038752612540600260408c20015460801c871415610313612e5f565b61258960405161254f81612b75565b601081527f6d61782066656520657863656564656400000000000000000000000000000000898201526703782dace9d90000881115612dc3565b613146565b85875260038452821660026040882001906fffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffff0000000000000000000000000000000083549260801b169116179055565b604051908152a280f35b50346101ad576101007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ad5761262336612bd2565b9060a43561262f612aff565b60e43567ffffffffffffffff81116119235761264f903690600401612c6a565b9060a0862080865260036020526126836fffffffffffffffffffffffffffffffff6002604089200154161515610313612e98565b61268e610ee761309a565b73ffffffffffffffffffffffffffffffffffffffff809416906126ba6126b2612f0a565b831515612dc3565b6126ed6126c6876139e6565b828952600260205260408920848a52602052610869600160408b200191825460801c612f50565b604051908682527fa3b9472a1399e17e123f3c2e6586c23e504184d504de59cdaa2b375e880c618460203393a481612735575b50506020610471939401511630903390613869565b333b156127af5761277791859160405193849283927fb1022fdf0000000000000000000000000000000000000000000000000000000084528860048501612f74565b038183335af180156127a45761278e575b80612720565b6104719361279d602092612b45565b9350612788565b6040513d86823e3d90fd5b8480fd5b50346101ad576127c236612c98565b849691959296958460a0852080855260036020978189526fffffffffffffffffffffffffffffffff996128028b600260408b200154161515610313612e98565b159361280f611c93612ed1565b73ffffffffffffffffffffffffffffffffffffffff809d16946128336114cb612f0a565b61283d858b613146565b6129e957505081865280885261286160016040882001548a8160801c91168c613956565b985b61286c8a6139e6565b9083885260028a52604088208589528a526001604089200181612893825494828616613006565b167fffffffffffffffffffffffffffffffff000000000000000000000000000000008094161790556128e26128c78c6139e6565b858a52848c52610869600160408c200191825460801c613006565b838852828a5261290181600160408b200154168d8082039111026139e6565b928489528a52600160408920019216908254161790556040519089825288888301527f52acb05cebbd3cd39715469f22afbf5a17496295ef3bc9bb5944056c63ccaa0960403393a4816129645750505083604095610ffd92511630903390613869565b333b15610488579180916129a79360405194859283927f05b4591c0000000000000000000000000000000000000000000000000000000084528b60048501612f74565b038183335af19081156129dd575095610ffd9286926040986129ce575b5092819750610fe7565b6129d790612b45565b386129c4565b604051903d90823e3d90fd5b612a0c919a9b50838852828a526001604089200154908c8260801c9216906139c3565b99612863565b50346101ad5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ad57612ab1612a4d612adc565b7fffffffffffffffffffffffff0000000000000000000000000000000000000000835473ffffffffffffffffffffffffffffffffffffffff80821693612a9c612a94612d8a565b863314612dc3565b16938493612aa8612e5f565b90851415612dc3565b161782557f167d3e9c1016ab80e58802ca9da10ce5c6a0f4debc46a2e7a2cd9e56899a4fb58280a280f35b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361028b57565b60c4359073ffffffffffffffffffffffffffffffffffffffff8216820361028b57565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361028b57565b67ffffffffffffffff811161192757604052565b60a0810190811067ffffffffffffffff82111761192757604052565b6040810190811067ffffffffffffffff82111761192757604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761192757604052565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60a091011261028b5760405190612c0982612b59565b8173ffffffffffffffffffffffffffffffffffffffff600435818116810361028b578252602435818116810361028b576020830152604435818116810361028b576040830152606435908116810361028b5760608201526080608435910152565b9181601f8401121561028b5782359167ffffffffffffffff831161028b576020838186019501011161028b57565b6101207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc82011261028b57612ccc81612bd2565b9160a4359160c4359160e43573ffffffffffffffffffffffffffffffffffffffff8116810361028b5791610104359067ffffffffffffffff821161028b57612d1691600401612c6a565b9091565b6101207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc82011261028b57612d4e90612bd2565b9060a4359060c4359073ffffffffffffffffffffffffffffffffffffffff9060e435828116810361028b579161010435908116810361028b5790565b60405190612d9782612b75565b600982527f6e6f74206f776e657200000000000000000000000000000000000000000000006020830152565b15612dcb5750565b604051907f08c379a000000000000000000000000000000000000000000000000000000000825281602080600483015282519283602484015260005b848110612e48575050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f836000604480968601015201168101030190fd5b818101830151868201604401528593508201612e07565b60405190612e6c82612b75565b600b82527f616c7265616479207365740000000000000000000000000000000000000000006020830152565b60405190612ea582612b75565b601282527f6d61726b6574206e6f74206372656174656400000000000000000000000000006020830152565b60405190612ede82612b75565b601282527f696e636f6e73697374656e7420696e70757400000000000000000000000000006020830152565b60405190612f1782612b75565b600c82527f7a65726f206164647265737300000000000000000000000000000000000000006020830152565b91908201809211610cb957565b9190916fffffffffffffffffffffffffffffffff80809416911601918211610cb957565b9183606094601f927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0948652604060208701528160408701528686013760008582860101520116010190565b60405190612fcd82612b75565b600c82527f756e617574686f72697a656400000000000000000000000000000000000000006020830152565b91908203918211610cb957565b6fffffffffffffffffffffffffffffffff9182169082160391908211610cb957565b6040519061303582612b75565b601682527f696e73756666696369656e74206c6971756964697479000000000000000000006020830152565b6040519061306e82612b75565b601782527f696e73756666696369656e7420636f6c6c61746572616c0000000000000000006020830152565b604051906130a782612b75565b600b82527f7a65726f206173736574730000000000000000000000000000000000000000006020830152565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610cb95760010190565b73ffffffffffffffffffffffffffffffffffffffff16803314908115613124575090565b9050600052600660205260406000203360005260205260ff6040600020541690565b91906000908082526003916020928084526fffffffffffffffffffffffffffffffff9360409361317e86600287872001541642612ff9565b9788156134dc578185528383528585209860018a0154908882166131d7575b50505060029596975083525220019042167fffffffffffffffffffffffffffffffff00000000000000000000000000000000825416179055565b8473ffffffffffffffffffffffffffffffffffffffff93846060820151168a519d8e927f9451fed40000000000000000000000000000000000000000000000000000000084526004840161326e916080809173ffffffffffffffffffffffffffffffffffffffff80825116855280602083015116602086015280604083015116604086015260608201511660608501520151910152565b8054958d871660a4850152608096871c60c48501528d811660e4850152861c610104840152600201548c8116610124840152851c610144830152818a5a9261016493f19a8b156134d257879b61349e575b5088999a61335060029a86957f9d9bd501d0657d7dfe415f779a620a62b78bc508ddc0891fbbd8b7ac0f8fce8795898d8d8d6060998c835281855261335b613310896001878720015416928c6136a6565b91613355671bc16d674ec8000061332785806136a6565b0493670de0b6b3a76400009c856729a2241af62c00008f9784613349916136a6565b0492612f43565b612f43565b906136a6565b0496613366886139e6565b8d845282865260018585200182613381825493828516612f50565b167fffffffffffffffffffffffffffffffff000000000000000000000000000000008093161790558d6133b38a6139e6565b90855283875285852091836133cc845493828516612f50565b1691161790558c839981855283875260028686200154881c8061340b575b50505050505092505050519283528783015289820152a2879695388061319d565b61348d999b509161343e61086998979695949261342b613450958e6136a6565b048093838852868a528888205416612ff9565b90855283875285852054891c91613956565b988d8352600285528383209060015416835284528282206134728a8254612f43565b905561347d896139e6565b938d83525220928354901c612f50565b3880898f8d8f918e908c86806133ea565b909a508481813d83116134cb575b6134b68183612b91565b810103126134c757519960606132bf565b8680fd5b503d6134ac565b88513d89823e3d90fd5b505050505050509050565b909291600093808552602092600284526040862073ffffffffffffffffffffffffffffffffffffffff90818516885285526fffffffffffffffffffffffffffffffff600160408920015416156135cd5784600491604084015116604051928380927fa035b1fe0000000000000000000000000000000000000000000000000000000082525afa9485156135c257879561358b575b50506135889495506135d8565b90565b9080929550813d83116135bb575b6135a38183612b91565b81010312611ac257613588949550519285943861357b565b503d613599565b6040513d89823e3d90fd5b506001955050505050565b60806ec097ce7bc90715b34b9f100000000061367e613688949660016040670de0b6b3a7640000986000908b8252600260205273ffffffffffffffffffffffffffffffffffffffff8383209116908183526020526136636fffffffffffffffffffffffffffffffff8d8187878720015416908552600360205286868620015491828c1c9216906139c3565b9b82526002602052828220908252602052200154841c6136a6565b04910151906136a6565b04101590565b67ffffffffffffffff81116119275760051b60200190565b81810292918115918404141715610cb957565b8115610da6570490565b906136cd916136a6565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810191818311610cb9576135889261078791612f43565b3d1561375f573d9067ffffffffffffffff8211611927576040519161375360207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160184612b91565b82523d6000602084013e565b606090565b9081602091031261028b5751801515810361028b5790565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000006020820190815273ffffffffffffffffffffffffffffffffffffffff9384166024830152604480830195909552938152613838936000938493928491906137e8606482612b91565b5193165af16137f5613706565b8161383a575b506040519061380982612b75565b600f82527f7472616e73666572206661696c656400000000000000000000000000000000006020830152612dc3565b565b805180159250821561384f575b5050386137fb565b6138629250602080918301019101613764565b3880613847565b60009291838093613838966040519060208201947f23b872dd00000000000000000000000000000000000000000000000000000000865273ffffffffffffffffffffffffffffffffffffffff938480921660248501521660448301526064820152606481526138d781612b59565b5193165af16138e4613706565b81613927575b50604051906138f882612b75565b601382527f7472616e7366657246726f6d206661696c6564000000000000000000000000006020830152612dc3565b805180159250821561393c575b5050386138ea565b61394f9250602080918301019101613764565b3880613934565b620f42408301809311610cb95760018201809211610cb95761358892610787916136a6565b6001820192918310610cb957620f42408201809211610cb95761358892610787916136a6565b91620f42408101809111610cb95760018201809211610cb957613588926136c3565b919060018101809111610cb957620f42408201809211610cb957613588926136c3565b604051906139f382612b75565b601482527f6d61782075696e743132382065786365656465640000000000000000000000006020830152613a3b6fffffffffffffffffffffffffffffffff9283831115612dc3565b169056fea26469706673582212201a12e6c0cbebcc2e94f0becd304cd3364e2a02af402b04065babc8a5fc1f23c764736f6c63430008130033", | |
"sourceMap": "1076:19638:23:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1076:19638:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1076:19638:23;;;;2300:22;;1645:14:30;;1076:19638:23;;;;;;;1645:14:30;-1:-1:-1;1645:14:30;;;-1:-1:-1;1645:14:30;1076:19638:23;;2413:57;;;495:68:29;;;;2441:13:23;495:68:29;;;;2464:4:23;495:68:29;;;;;2413:57:23;;495:68:29;1076:19638:23;;;;;;;;;;;;;;;1645:14:30;2403:68:23;;495::29;2384:87:23;1076:19638;;;;;;495:68:29;1076:19638:23;;;;;;;;;;;;;;;-1:-1:-1;1076:19638:23;;;;;-1:-1:-1;1076:19638:23;1645:14:30;1076:19638:23;;;1645:14:30;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1645:14:30;;;;;;;;;;;;-1:-1:-1;1645:14:30;1076:19638:23;1645:14:30;;;;;1076:19638:23;;1645:14:30;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1645:14:30;;;;1076:19638:23;-1:-1:-1;1076:19638:23;", | |
"linkReferences": {} | |
}, | |
"deployedBytecode": { | |
"object": "0x6080604052600436101561001257600080fd5b6000803560e01c806313af403514612a1257806320b76e81146127b3578063238d6579146125e95780632b4f013c146124605780632c3c9157146123ce5780633644e5151461237557806346904840146123235780634d98a93b1461220757806350d8cd4b14611f735780635a64f51e14611e9b5780635c2bea4914611c3a5780635c60e39a14611ba957806365e4ad9e14611b2957806370ae92d214611ac65780637784c6851461195a5780638069218f146115725780638720316d146114025780638c1358a2146111855780638da5cb5b1461113457806393c520621461109b578063a99aad8914610e5f578063b485f3b814610e12578063d8eabcb81461049b578063e0232b4214610361578063e74b981b14610290578063eecea000146101b05763f2b863ce1461014657600080fd5b346101ad5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ad5760ff604060209273ffffffffffffffffffffffffffffffffffffffff610199612adc565b168152600484522054166040519015158152f35b80fd5b50346101ad5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ad576101e8612adc565b6024358015159081810361028b5761025a90338552600660205273ffffffffffffffffffffffffffffffffffffffff604086209416938460005260205260406000209060ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0083541691151516179055565b60405190815233907fd5e969f01efe921d3f766bdebad25f0a05e3f237311f56482bf132d0326309c060203392a480f35b600080fd5b50346101ad5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ad576103356102cb612adc565b7fffffffffffffffffffffffff000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff91610319838654163314610313612d8a565b90612dc3565b82600154911693849361032a612e5f565b908316851415612dc3565b16176001557f2e979f80fe4d43055c584cf4a8467c55875ea36728fc37176c05acd784eb7a738280a280f35b50346101ad5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ad57610399612adc565b6024358260443567ffffffffffffffff8111610497576103d273ffffffffffffffffffffffffffffffffffffffff913690600401612c6a565b91909416936103e284338761377c565b846040518581527fc76f1b4fe4396ac07a9fa55a415d4ca430e72651d37d3401f3bed7cb13fc4f1260203392a3333b156104885761045191839160405193849283927f31f570720000000000000000000000000000000000000000000000000000000084528860048501612f74565b038183335af1801561048c57610474575b50506104719130903390613869565b80f35b61047d90612b45565b610488578238610462565b8280fd5b6040513d84823e3d90fd5b5080fd5b50346101ad576101207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ad576104d536612bd2565b9073ffffffffffffffffffffffffffffffffffffffff60a4351660a4350361028b576101043567ffffffffffffffff811161049757610518903690600401612c6a565b9160c4359260e4359260a086209384845260036020526105556fffffffffffffffffffffffffffffffff6002604087200154161515610313612e98565b61056a610560612ed1565b8215881518612dc3565b6105748588613146565b6004602073ffffffffffffffffffffffffffffffffffffffff60408a015116604051928380927fa035b1fe0000000000000000000000000000000000000000000000000000000082525afa908115610e07578591610dd5575b5061061c6105df8260a435898c6135d8565b15604051906105ed82612b75565b601382527f706f736974696f6e206973206865616c746879000000000000000000000000006020830152612dc3565b6080880151670de0b6b3a764000003670de0b6b3a76400008111610c8c57670429d069189e00009080820291820403610cb957670de0b6b3a7640000900491670de0b6b3a764000083810311610c8c5782670de0b6b3a764000014610da6578715610ce8575061068c90876136a6565b6ec097ce7bc90715b34b9f0fffffffff8101809111610cb9576ec097ce7bc90715b34b9f1000000000900480670de0b6b3a7640000810204670de0b6b3a76400001481151715610cb957670ff59ee833b30000670de0b6b3a76400008390036ec097ce7bc90715b34b9f1000000000048082189082110281187fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810111610c8c5761078c92670de0b6b3a76400009081036ec097ce7bc90715b34b9f1000000000048083189083110290911891610787917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84019102612f43565b6136b9565b9380845260036020526107bd60016040862001546fffffffffffffffffffffffffffffffff8160801c911687613956565b6107c6816139e6565b82865260026020526040862073ffffffffffffffffffffffffffffffffffffffff60a435166000526020526001604060002001907fffffffffffffffffffffffffffffffff000000000000000000000000000000006fffffffffffffffffffffffffffffffff61083a845493828516613006565b1691161790556108a961084c826139e6565b83875260036020526108696001604089200191825460801c613006565b6fffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffff0000000000000000000000000000000083549260801b169116179055565b81855260036020526108da6fffffffffffffffffffffffffffffffff600160408820015416878082039111026139e6565b82865260036020526fffffffffffffffffffffffffffffffff6001604088200191167fffffffffffffffffffffffffffffffff0000000000000000000000000000000082541617905561097061092f886139e6565b83875260026020526040872073ffffffffffffffffffffffffffffffffffffffff60a43516600052602052610869600160406000200191825460801c613006565b8482865260026020526040862073ffffffffffffffffffffffffffffffffffffffff60a4351660005260205260016040600020015460801c15610ad4575b6109d48873ffffffffffffffffffffffffffffffffffffffff60208c015116339061377c565b604051918783526020830152876040830152606082015273ffffffffffffffffffffffffffffffffffffffff60a43516917f2a956e32ed8787cac03e680198b6ce3dcfb819aad578b3a5658f2c110a7d7c5560803393a481610a67575b505050610a5b8173ffffffffffffffffffffffffffffffffffffffff604095511630903390613869565b82519182526020820152f35b333b1561048857610aa991839160405193849283927fcf7ea1960000000000000000000000000000000000000000000000000000000084528860048501612f74565b038183335af1801561048c57610ac0575b80610a31565b610aca8291612b45565b6101ad5780610aba565b5081855260026020526040852073ffffffffffffffffffffffffffffffffffffffff60a435166000526020526fffffffffffffffffffffffffffffffff600160406000200154168286526003602052610baf610b4e60016040892001546fffffffffffffffffffffffffffffffff8160801c9116846139c3565b610b57816139e6565b858952600360205260408920907fffffffffffffffffffffffffffffffff000000000000000000000000000000006fffffffffffffffffffffffffffffffff610ba4845493828516613006565b1691161790556139e6565b838752600360205260016040882001907fffffffffffffffffffffffffffffffff000000000000000000000000000000006fffffffffffffffffffffffffffffffff610bff845493828516613006565b169116179055610c2e610c11826139e6565b8488526003602052610869600160408a200191825460801c613006565b82865260026020526040862073ffffffffffffffffffffffffffffffffffffffff60a4351660005260205260016040600020017fffffffffffffffffffffffffffffffff0000000000000000000000000000000081541690556109ae565b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b96508585969296526003602052670de0b6b3a7640000610d57610d2960016040892001546fffffffffffffffffffffffffffffffff8160801c91168b6139c3565b9782036ec097ce7bc90715b34b9f100000000004670ff59ee833b300008181189181119190910218886136a6565b04806ec097ce7bc90715b34b9f10000000008102046ec097ce7bc90715b34b9f10000000001481151715610c8c57906ec097ce7bc90715b34b9f1000000000610da092026136b9565b956107bd565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b90506020813d602011610dff575b81610df060209383612b91565b8101031261028b5751386105cd565b3d9150610de3565b6040513d87823e3d90fd5b50346101ad5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ad5760ff60406020926004358152600584522054166040519015158152f35b50346101ad57610e6e36612c98565b849691959296958460a08520808552602096600388526fffffffffffffffffffffffffffffffff98610ead8a600260408a200154161515610313612e98565b1592610ec3610eba612ed1565b82158618612dc3565b73ffffffffffffffffffffffffffffffffffffffff809c1693610eef610ee7612f0a565b861515612dc3565b610ef9848a613146565b61107457505080855260038752610f1b6040862054898160801c91168b613956565b975b81865260028852604086208360005288526040600020610f3e8a8254612f43565b9055610f65610f4c8a6139e6565b83885260038a526108696040892091825460801c612f50565b610f6e8a6139e6565b828752600389527fffffffffffffffffffffffffffffffff000000000000000000000000000000006040882092610fa9845493828516612f50565b1691161790556040519089825288888301527fedf8870433c83823eb071d3df1caa8d008f12f6440918c20d75a3602cda30fe060403393a481611007575b50505083604095610ffd92511630903390613869565b8351928352820152f35b333b156104885761104991839160405193849283927f2075be030000000000000000000000000000000000000000000000000000000084528b60048501612f74565b038183335af1801561048c57611060575b80610fe7565b61106a8291612b45565b6101ad578061105a565b61109591999a50828752600389526040872054908b8260801c9216906139c3565b98610f1d565b50346101ad5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ad5773ffffffffffffffffffffffffffffffffffffffff60406110ea612b22565b926004358152600260205220911660005260205260606040600020600181549101546040519182526fffffffffffffffffffffffffffffffff8116602083015260801c6040820152f35b50346101ad57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ad5773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b50346101ad5760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ad576111be36612bd2565b7fac4b2400f169220b0c0afdde7a0b32e775ba727ea1cb30b35f935cdaab8683ac60a08083209260608101600473ffffffffffffffffffffffffffffffffffffffff9182815116885260209082825261125360ff60408b2054166040519061122582612b75565b600f82527f49524d206e6f7420656e61626c6564000000000000000000000000000000000085830152612dc3565b608085019182518a52600581526112a660ff60408c2054166040519061127882612b75565b601082527f4c4c5456206e6f7420656e61626c65640000000000000000000000000000000084830152612dc3565b888a526003815260406113098b60026fffffffffffffffffffffffffffffffff9384922001541615604051906112db82612b75565b601682527f6d61726b657420616c726561647920637265617465640000000000000000000085830152612dc3565b898b5260038252600260408c20019042167fffffffffffffffffffffffffffffffff000000000000000000000000000000008254161790556008815260408a209480875116917fffffffffffffffffffffffff0000000000000000000000000000000000000000928388541617875581600188019189015116838254161790556002860181604089015116838254161790556003860192511690825416179055519101556113fe60405180926080809173ffffffffffffffffffffffffffffffffffffffff80825116855280602083015116602086015280604083015116604086015260608201511660608501520151910152565ba280f35b50346101ad576101007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ad5761143c36612bd2565b60a435611447612aff565b60e4359073ffffffffffffffffffffffffffffffffffffffff908183169485840361028b57610471958760209361153861153060a0862092838552600388526114ad6fffffffffffffffffffffffffffffffff6002604088200154161515610313612e98565b6114c06114b861309a565b8c1515612dc3565b6114d36114cb612f0a565b871515612dc3565b6114e76114df82613100565b610313612fc0565b6114f18488613146565b61152960406114ff8d6139e6565b9686815260028b5220958a831696876000528a52610869600160406000200191825460801c613006565b83876134e7565b610313613061565b60408051338152602081018a90527fe80ebd7cc9223d7382aab2e0d1d6155c65651f83d53c8b9b06901d167e3211429190a401511661377c565b50346101ad57610100367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc018181126104885760a013610497576040516115b881612b59565b6115c0612adc565b81526115ca612b22565b9060209081810192835260443593841515850361028b5760408201948552606082016064358152608435608084019080825260607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5c360112611956576040516116669161163682612b75565b601182527f7369676e61747572652065787069726564000000000000000000000000000000888301524210612dc3565b8151926116da73ffffffffffffffffffffffffffffffffffffffff94858751168b526007885260408b2080549061169c826130d3565b9055604051916116ab83612b75565b600d83527f696e76616c6964206e6f6e6365000000000000000000000000000000000000008a84015214612dc3565b60405191868301907f81d0284fb0e2cde18d0553b06189d6f7613c96a01bb5b5e7828eade6a0dcac918252858751166040850152858951166060850152895115156080850152845160a08501525160c084015260c0835260e083019167ffffffffffffffff9184841083851117611927578360405284519020908401907f190100000000000000000000000000000000000000000000000000000000000082527f00000000000000000000000000000000000000000000000000000000000000006101028601526101228501526042835261016084019183831090831117611927578a92826040525190209060a4359360ff8516809503611923578894608093835261018082015260c4356101a08201526101c060e43591015282805260015afa15611918577fd5e969f01efe921d3f766bdebad25f0a05e3f237311f56482bf132d0326309c0928291611871838a5116801515908161190b575b506040519061184382612b75565b601182527f696e76616c6964207369676e617475726500000000000000000000000000000089830152612dc3565b8282511690516040519081527fa58af1a0c70dba0c7aa60d1a1a147ebd61000d1690a968828ac718bca927f2c7873392a36118f587511515838351168a526006875260408a2084895116600052875260406000209060ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0083541691151516179055565b511693511693511515916040519283523392a480f35b9050848451161438611835565b6040513d88823e3d90fd5b8380fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b8880fd5b50346101ad576020807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610497576004359067ffffffffffffffff90818311611923573660238401121561192357826004013591821161192357602491600590368482841b87010111611ac2578491816119d7889361368e565b956119e56040519788612b91565b8187526119f18261368e565b947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08789019601368737845b838110611a6757505050505060405193838594850191818652518092526040850193925b828110611a5057505050500390f35b835185528695509381019392810192600101611a41565b9497959694611a75816130d3565b9084811015611a9657851b82018301355481861b8801529597949695611a1d565b838a7f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b8580fd5b50346101ad5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ad57604060209173ffffffffffffffffffffffffffffffffffffffff611b18612adc565b168152600783522054604051908152f35b50346101ad5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ad57611b61612adc565b6040611b6b612b22565b9273ffffffffffffffffffffffffffffffffffffffff80931681526006602052209116600052602052602060ff604060002054166040519015158152f35b50346101ad5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ad57604060c091600435815260036020522080546002600183015492015490604051926fffffffffffffffffffffffffffffffff91828116855260801c6020850152818116604085015260801c60608401528116608083015260801c60a0820152f35b50346101ad57604090611c4c36612d1a565b9294939190858260a08520918288526003602052611c866fffffffffffffffffffffffffffffffff60028c8b200154161515610313612e98565b1593611c9c611c93612ed1565b82158718612dc3565b73ffffffffffffffffffffffffffffffffffffffff871694611cbf6114cb612f0a565b611ccb6114df86613100565b611cd58488613146565b611e4057505092610a5b949273ffffffffffffffffffffffffffffffffffffffff9285899689526003602052611e008b611d29818c20546fffffffffffffffffffffffffffffffff8160801c91168b6139a1565b9a5b8381526002602052878282209516948560005260205281600020611d508d8254612ff9565b9055611d77611d5e8d6139e6565b858352600360205261086984842091825460801c613006565b611d808a6139e6565b8482526003602052828220907fffffffffffffffffffffffffffffffff000000000000000000000000000000006fffffffffffffffffffffffffffffffff611dcc845493828516613006565b1691161790558381526003602052206fffffffffffffffffffffffffffffffff806001830154169154161015610313613028565b8a5133815260208101889052604081018a90527fa56fc0ad5702ec05ce63666221f796fb62437c32db1aa1aa075fc6484cf58fbf90606090a4511661377c565b8998509282611e00611e9373ffffffffffffffffffffffffffffffffffffffff968b9996610a5b9b99969c5260036020528c8a2054906fffffffffffffffffffffffffffffffff8260801c92169061397b565b9a8b98611d2b565b50346101ad5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ad57611ed3612adc565b73ffffffffffffffffffffffffffffffffffffffff90611efa828454163314610313612d8a565b168082526004602052611f1760ff60408420541615610313612e5f565b80825260046020526040822060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008254161790557f590e04cdebeccba40f566186b9746ad295a4cd358ea4fefaaea6ce79630d96c08280a280f35b50346101ad57611f8236612d1a565b909291948294869160a08220958682526003966020968888526fffffffffffffffffffffffffffffffff90611fc4826002604088200154161515610313612e98565b1593611fda611fd1612ed1565b8d158718612dc3565b73ffffffffffffffffffffffffffffffffffffffff9687891695612007611fff612f0a565b881515612dc3565b6120136114df87613100565b61201d8589613146565b6121d857508a9b5082819b98999a9b528a8a526120486001604083200154838160801c91168a6139a1565b9a8b945b612055866139e6565b85845260028d528c8360408620988c8516998a60005283526040600020600101888154958187169061208691612f50565b167fffffffffffffffffffffffffffffffff000000000000000000000000000000008096161790556120b7906139e6565b91888752526040852060010190815460801c906120d391612f50565b81546fffffffffffffffffffffffffffffffff1660809190911b7fffffffffffffffffffffffffffffffff00000000000000000000000000000000161790558c8361211d8d6139e6565b91888752526040852060010191868354928184169061213b91612f50565b16911617905561214c9085896134e7565b612154613061565b61215d91612dc3565b8382528a52604090209080600183015416915416101561217b613028565b61218491612dc3565b60408051338152602081018890529081018a90527f570954540bed6b1304a87dfe815a5eda4a648f7097a16240dcd85c9b5fd42a4390606090a45116916121ca9261377c565b604051928352820152604090f35b9a506121ff8b9498999a9c8483528d8c52600160408420015490848260801c92169061397b565b9b8c9861204c565b50346101ad5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ad577f297b80e7a896fad470c630f6575072d609bde997260ff3db851939405ec29139602060043561228273ffffffffffffffffffffffffffffffffffffffff8554163314610313612d8a565b8084526005825261229d60ff60408620541615610313612e5f565b6122e56040516122ac81612b75565b601181527f6d6178204c4c545620657863656564656400000000000000000000000000000084820152670de0b6b3a76400008310612dc3565b808452600582526040842060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055604051908152a180f35b50346101ad57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ad57602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b50346101ad57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ad5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b50346101ad5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ad57604060a091600435815260086020522073ffffffffffffffffffffffffffffffffffffffff8082541691816001820154169160048160028401541691600384015416920154926040519485526020850152604084015260608301526080820152f35b50346101ad5760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ad5761249936612bd2565b7f139d6f58e9a127229667c8e3b36e88890a66cfc8ab1024ddc513e189e125b75b602060a4356124e473ffffffffffffffffffffffffffffffffffffffff8654163314610313612d8a565b6125df60a08520948587526003845261258e866fffffffffffffffffffffffffffffffff9261252084600260408d200154161515610313612e98565b818a5260038752612540600260408c20015460801c871415610313612e5f565b61258960405161254f81612b75565b601081527f6d61782066656520657863656564656400000000000000000000000000000000898201526703782dace9d90000881115612dc3565b613146565b85875260038452821660026040882001906fffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffff0000000000000000000000000000000083549260801b169116179055565b604051908152a280f35b50346101ad576101007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ad5761262336612bd2565b9060a43561262f612aff565b60e43567ffffffffffffffff81116119235761264f903690600401612c6a565b9060a0862080865260036020526126836fffffffffffffffffffffffffffffffff6002604089200154161515610313612e98565b61268e610ee761309a565b73ffffffffffffffffffffffffffffffffffffffff809416906126ba6126b2612f0a565b831515612dc3565b6126ed6126c6876139e6565b828952600260205260408920848a52602052610869600160408b200191825460801c612f50565b604051908682527fa3b9472a1399e17e123f3c2e6586c23e504184d504de59cdaa2b375e880c618460203393a481612735575b50506020610471939401511630903390613869565b333b156127af5761277791859160405193849283927fb1022fdf0000000000000000000000000000000000000000000000000000000084528860048501612f74565b038183335af180156127a45761278e575b80612720565b6104719361279d602092612b45565b9350612788565b6040513d86823e3d90fd5b8480fd5b50346101ad576127c236612c98565b849691959296958460a0852080855260036020978189526fffffffffffffffffffffffffffffffff996128028b600260408b200154161515610313612e98565b159361280f611c93612ed1565b73ffffffffffffffffffffffffffffffffffffffff809d16946128336114cb612f0a565b61283d858b613146565b6129e957505081865280885261286160016040882001548a8160801c91168c613956565b985b61286c8a6139e6565b9083885260028a52604088208589528a526001604089200181612893825494828616613006565b167fffffffffffffffffffffffffffffffff000000000000000000000000000000008094161790556128e26128c78c6139e6565b858a52848c52610869600160408c200191825460801c613006565b838852828a5261290181600160408b200154168d8082039111026139e6565b928489528a52600160408920019216908254161790556040519089825288888301527f52acb05cebbd3cd39715469f22afbf5a17496295ef3bc9bb5944056c63ccaa0960403393a4816129645750505083604095610ffd92511630903390613869565b333b15610488579180916129a79360405194859283927f05b4591c0000000000000000000000000000000000000000000000000000000084528b60048501612f74565b038183335af19081156129dd575095610ffd9286926040986129ce575b5092819750610fe7565b6129d790612b45565b386129c4565b604051903d90823e3d90fd5b612a0c919a9b50838852828a526001604089200154908c8260801c9216906139c3565b99612863565b50346101ad5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ad57612ab1612a4d612adc565b7fffffffffffffffffffffffff0000000000000000000000000000000000000000835473ffffffffffffffffffffffffffffffffffffffff80821693612a9c612a94612d8a565b863314612dc3565b16938493612aa8612e5f565b90851415612dc3565b161782557f167d3e9c1016ab80e58802ca9da10ce5c6a0f4debc46a2e7a2cd9e56899a4fb58280a280f35b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361028b57565b60c4359073ffffffffffffffffffffffffffffffffffffffff8216820361028b57565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361028b57565b67ffffffffffffffff811161192757604052565b60a0810190811067ffffffffffffffff82111761192757604052565b6040810190811067ffffffffffffffff82111761192757604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761192757604052565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60a091011261028b5760405190612c0982612b59565b8173ffffffffffffffffffffffffffffffffffffffff600435818116810361028b578252602435818116810361028b576020830152604435818116810361028b576040830152606435908116810361028b5760608201526080608435910152565b9181601f8401121561028b5782359167ffffffffffffffff831161028b576020838186019501011161028b57565b6101207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc82011261028b57612ccc81612bd2565b9160a4359160c4359160e43573ffffffffffffffffffffffffffffffffffffffff8116810361028b5791610104359067ffffffffffffffff821161028b57612d1691600401612c6a565b9091565b6101207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc82011261028b57612d4e90612bd2565b9060a4359060c4359073ffffffffffffffffffffffffffffffffffffffff9060e435828116810361028b579161010435908116810361028b5790565b60405190612d9782612b75565b600982527f6e6f74206f776e657200000000000000000000000000000000000000000000006020830152565b15612dcb5750565b604051907f08c379a000000000000000000000000000000000000000000000000000000000825281602080600483015282519283602484015260005b848110612e48575050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f836000604480968601015201168101030190fd5b818101830151868201604401528593508201612e07565b60405190612e6c82612b75565b600b82527f616c7265616479207365740000000000000000000000000000000000000000006020830152565b60405190612ea582612b75565b601282527f6d61726b6574206e6f74206372656174656400000000000000000000000000006020830152565b60405190612ede82612b75565b601282527f696e636f6e73697374656e7420696e70757400000000000000000000000000006020830152565b60405190612f1782612b75565b600c82527f7a65726f206164647265737300000000000000000000000000000000000000006020830152565b91908201809211610cb957565b9190916fffffffffffffffffffffffffffffffff80809416911601918211610cb957565b9183606094601f927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0948652604060208701528160408701528686013760008582860101520116010190565b60405190612fcd82612b75565b600c82527f756e617574686f72697a656400000000000000000000000000000000000000006020830152565b91908203918211610cb957565b6fffffffffffffffffffffffffffffffff9182169082160391908211610cb957565b6040519061303582612b75565b601682527f696e73756666696369656e74206c6971756964697479000000000000000000006020830152565b6040519061306e82612b75565b601782527f696e73756666696369656e7420636f6c6c61746572616c0000000000000000006020830152565b604051906130a782612b75565b600b82527f7a65726f206173736574730000000000000000000000000000000000000000006020830152565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610cb95760010190565b73ffffffffffffffffffffffffffffffffffffffff16803314908115613124575090565b9050600052600660205260406000203360005260205260ff6040600020541690565b91906000908082526003916020928084526fffffffffffffffffffffffffffffffff9360409361317e86600287872001541642612ff9565b9788156134dc578185528383528585209860018a0154908882166131d7575b50505060029596975083525220019042167fffffffffffffffffffffffffffffffff00000000000000000000000000000000825416179055565b8473ffffffffffffffffffffffffffffffffffffffff93846060820151168a519d8e927f9451fed40000000000000000000000000000000000000000000000000000000084526004840161326e916080809173ffffffffffffffffffffffffffffffffffffffff80825116855280602083015116602086015280604083015116604086015260608201511660608501520151910152565b8054958d871660a4850152608096871c60c48501528d811660e4850152861c610104840152600201548c8116610124840152851c610144830152818a5a9261016493f19a8b156134d257879b61349e575b5088999a61335060029a86957f9d9bd501d0657d7dfe415f779a620a62b78bc508ddc0891fbbd8b7ac0f8fce8795898d8d8d6060998c835281855261335b613310896001878720015416928c6136a6565b91613355671bc16d674ec8000061332785806136a6565b0493670de0b6b3a76400009c856729a2241af62c00008f9784613349916136a6565b0492612f43565b612f43565b906136a6565b0496613366886139e6565b8d845282865260018585200182613381825493828516612f50565b167fffffffffffffffffffffffffffffffff000000000000000000000000000000008093161790558d6133b38a6139e6565b90855283875285852091836133cc845493828516612f50565b1691161790558c839981855283875260028686200154881c8061340b575b50505050505092505050519283528783015289820152a2879695388061319d565b61348d999b509161343e61086998979695949261342b613450958e6136a6565b048093838852868a528888205416612ff9565b90855283875285852054891c91613956565b988d8352600285528383209060015416835284528282206134728a8254612f43565b905561347d896139e6565b938d83525220928354901c612f50565b3880898f8d8f918e908c86806133ea565b909a508481813d83116134cb575b6134b68183612b91565b810103126134c757519960606132bf565b8680fd5b503d6134ac565b88513d89823e3d90fd5b505050505050509050565b909291600093808552602092600284526040862073ffffffffffffffffffffffffffffffffffffffff90818516885285526fffffffffffffffffffffffffffffffff600160408920015416156135cd5784600491604084015116604051928380927fa035b1fe0000000000000000000000000000000000000000000000000000000082525afa9485156135c257879561358b575b50506135889495506135d8565b90565b9080929550813d83116135bb575b6135a38183612b91565b81010312611ac257613588949550519285943861357b565b503d613599565b6040513d89823e3d90fd5b506001955050505050565b60806ec097ce7bc90715b34b9f100000000061367e613688949660016040670de0b6b3a7640000986000908b8252600260205273ffffffffffffffffffffffffffffffffffffffff8383209116908183526020526136636fffffffffffffffffffffffffffffffff8d8187878720015416908552600360205286868620015491828c1c9216906139c3565b9b82526002602052828220908252602052200154841c6136a6565b04910151906136a6565b04101590565b67ffffffffffffffff81116119275760051b60200190565b81810292918115918404141715610cb957565b8115610da6570490565b906136cd916136a6565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810191818311610cb9576135889261078791612f43565b3d1561375f573d9067ffffffffffffffff8211611927576040519161375360207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160184612b91565b82523d6000602084013e565b606090565b9081602091031261028b5751801515810361028b5790565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000006020820190815273ffffffffffffffffffffffffffffffffffffffff9384166024830152604480830195909552938152613838936000938493928491906137e8606482612b91565b5193165af16137f5613706565b8161383a575b506040519061380982612b75565b600f82527f7472616e73666572206661696c656400000000000000000000000000000000006020830152612dc3565b565b805180159250821561384f575b5050386137fb565b6138629250602080918301019101613764565b3880613847565b60009291838093613838966040519060208201947f23b872dd00000000000000000000000000000000000000000000000000000000865273ffffffffffffffffffffffffffffffffffffffff938480921660248501521660448301526064820152606481526138d781612b59565b5193165af16138e4613706565b81613927575b50604051906138f882612b75565b601382527f7472616e7366657246726f6d206661696c6564000000000000000000000000006020830152612dc3565b805180159250821561393c575b5050386138ea565b61394f9250602080918301019101613764565b3880613934565b620f42408301809311610cb95760018201809211610cb95761358892610787916136a6565b6001820192918310610cb957620f42408201809211610cb95761358892610787916136a6565b91620f42408101809111610cb95760018201809211610cb957613588926136c3565b919060018101809111610cb957620f42408201809211610cb957613588926136c3565b604051906139f382612b75565b601482527f6d61782075696e743132382065786365656465640000000000000000000000006020830152613a3b6fffffffffffffffffffffffffffffffff9283831115612dc3565b169056fea26469706673582212201a12e6c0cbebcc2e94f0becd304cd3364e2a02af402b04065babc8a5fc1f23c764736f6c63430008130033", | |
"sourceMap": "1076:19638:23:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;15995:54;16008:10;;1076:19638;;15995:12;1076:19638;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15995:54;1076:19638;;;;;16008:10;;16065:79;1076:19638;16008:10;16065:79;;1076:19638;;;;;;;;;;;;;;;;;;4164:63;1076:19638;;:::i;:::-;710:13:30;1076:19638:23;;2592:49;1076:19638;;;;2600:10;:19;1076:19638;;:::i;:::-;2592:49;;:::i;:::-;1076:19638;4191:12;1076:19638;;;;;;;;:::i;:::-;;;;4172:31;;;4164:63;:::i;:::-;710:13:30;;4191:12:23;710:13:30;4284:42:23;;;;1076:19638;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;15606:10;15618:6;15606:10;;15618:6;;:::i;:::-;1076:19638;;;;;;15641:46;1076:19638;15606:10;15641:46;;15606:10;15698:68;;;;;1076:19638;;;;;15698:68;;;;;1645:14:30;15698:68:23;;;1076:19638;15698:68;;;:::i;:::-;;15606:10;;;15698:68;;;;;;;;1076:19638;15828:4;;15835:6;15828:4;;15606:10;;15835:6;;:::i;:::-;1076:19638;;15698:68;;;;:::i;:::-;1076:19638;;15698:68;;;;1076:19638;;;;15698:68;1076:19638;;1645:14:30;1076:19638:23;;1645:14:30;;;;1076:19638:23;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;463:102:32;1076:19638:23;463:102:32;;1076:19638:23;;;;12673:6;1076:19638;;12665:65;1076:19638;12673:21;1076:19638;;;12673:21;1076:19638;;12673:26;;1076:19638;;:::i;12665:65::-;12740:90;1076:19638;;:::i;:::-;496:63:36;;;;;12740:90:23;:::i;:::-;12871:2;;;;:::i;:::-;1076:19638;;;;12919:19;;1076:19638;;;;12911:36;;;;1645:14:30;12911:36:23;;;;;;;;;;;;;1076:19638;;12958:93;12967:55;1076:19638;;;12967:55;;;:::i;:::-;12966:56;1076:19638;;;;;;:::i;:::-;;;;;;;;;12958:93;:::i;:::-;13368:17;;;844::30;93:4:33;1785:14:30;93:4:33;1785:14:30;;;;298:6:29;1076:19638:23;;;;;;;;;;93:4:33;1076:19638:23;;1785:14:30;93:4:33;1785:14:30;;;;;;1076:19638:23;93:4:33;1076:19638:23;;;496:63:36;;1076:19638:23;;1048:5:33;;;;;:::i;:::-;1785:14:30;1645;;;;;;;1076:19638:23;;;;93:4:33;1076:19638:23;;;93:4:33;1076:19638:23;;;;;;;402:7:29;93:4:33;1785:14:30;;;1076:19638:23;;695:70:36;;;;;-1:-1:-1;695:70:36;;;1785:14:30;;;;;;1047:21:33;;93:4;1785:14:30;;;1076:19638:23;;695:70:36;;;;;-1:-1:-1;695:70:36;;;;;1048:15:33;;1785:14:30;;;;1076:19638:23;1048:15:33;:::i;:::-;1047:21;:::i;:::-;1076:19638:23;;;;12673:6;1076:19638;;13586:85;1076:19638;;;;13612:28;1076:19638;;;13368:17;1076:19638;;;13586:85;;:::i;:::-;14001:24;;;:::i;:::-;1076:19638;;;12673:21;1076:19638;;;;;;;;;;;;;;;;;13962:35;1076:19638;1118:24:30;1076:19638:23;13962:63;1076:19638;;;;;;13962:63;:::i;:::-;1076:19638;1118:24:30;;;;;14035:56:23;14067:24;;;:::i;:::-;1076:19638;;;12673:6;1076:19638;;14035:56;1076:19638;;;;14035:28;1076:19638;;;13368:17;1076:19638;14035:56;:::i;:::-;1076:19638;592:18:30;;;;;;;;;;;;;14035:56:23;1076:19638;;;12673:6;1076:19638;;14132:77;1076:19638;;;;;14154:28;1076:19638;;1125:62:36;;;;;;;14132:77:23;:::i;:::-;1076:19638;;;12673:6;1076:19638;;;;;;;14101:28;1076:19638;;1118:24:30;;;;;;;14220:61:23;14257:24;;;:::i;:::-;1076:19638;;;12673:21;1076:19638;;;;;;;;;;;;;14220:61;1076:19638;;;;14220:33;1076:19638;;;13368:17;1076:19638;14220:61;:::i;:::-;14372:21;1076:19638;;;12673:21;1076:19638;;;;;;;;;;;;;;;;;14407:33;1076:19638;13368:17;1076:19638;14407:38;14403:490;;13416:526;14965:12;14910:28;1076:19638;;14910:28;;1076:19638;;14953:10;14965:12;;:::i;:::-;1076:19638;;;;;;;224:4:29;;1076:19638:23;224:4:29;1076:19638:23;224:4:29;;1076:19638:23;224:4:29;;;1076:19638:23;;;;;14953:10;15066:102;13368:17;14953:10;15066:102;;15183:15;15179:95;;13416:526;1076:19638;;;15366:12;1076:19638;;;;;;15359:4;14953:10;;15366:12;;:::i;:::-;1076:19638;;;;;;;;;;15179:95;14953:10;15200:74;;;;;1076:19638;;;;;15200:74;;;;;1645:14:30;15200:74:23;;;1076:19638;15200:74;;;:::i;:::-;;14953:10;;;15200:74;;;;;;;;15179:95;;;;15200:74;;;;;:::i;:::-;1076:19638;;15200:74;;;14403:490;1076:19638;;;;12673:21;1076:19638;;;;;;;;;;;;;;;;;;14477:35;1076:19638;;;;;12673:6;1076:19638;;14739:19;14544:84;1076:19638;;;;14569:28;1076:19638;;;13368:17;1076:19638;;;14544:84;;:::i;:::-;14674:19;;;:::i;:::-;1076:19638;;;12673:6;1076:19638;;;;;;1118:24:30;1076:19638:23;14642:51;1076:19638;;;;;;14642:51;:::i;:::-;1076:19638;1118:24:30;;;;;14739:19:23;:::i;:::-;1076:19638;;;12673:6;1076:19638;;;;;;14707:28;1076:19638;1118:24:30;1076:19638:23;14707:51;1076:19638;;;;;;14707:51;:::i;:::-;1076:19638;1118:24:30;;;;;14772:57:23;14804:25;;;:::i;:::-;1076:19638;;;12673:6;1076:19638;;14772:57;1076:19638;;;;14772:28;1076:19638;;;13368:17;1076:19638;14772:57;:::i;:::-;1076:19638;;;12673:21;1076:19638;;;;;;;;;;;;;;;;;14843:35;1118:24:30;;;;;;14403:490:23;;1785:14:30;1645;;;;;;1076:19638:23;1645:14:30;;1076:19638:23;1645:14:30;1076:19638:23;1645:14:30;;1076:19638:23;1645:14:30;;1076:19638:23;1645:14:30;13416:526:23;1076:19638;;;;;;;;12673:6;1076:19638;;93:4:33;887:5;13725:83:23;1076:19638;;;;13749:28;1076:19638;;;13368:17;1076:19638;;;13725:83;;:::i;:::-;402:7:29;1785:14:30;;1076:19638:23;;402:7:29;695:70:36;;;;;-1:-1:-1;695:70:36;;;;;402:7:29;887:5:33;:::i;:::-;1076:19638:23;;;;;;;;;;;;;;;;886:11:33;1076:19638:23;;886:11:33;:::i;:::-;13416:526:23;;;1076:19638;;;;;;;;;;12911:36;;;1076:19638;12911:36;;1076:19638;12911:36;;;;;;1076:19638;12911:36;;;:::i;:::-;;;1076:19638;;;;;12911:36;;;;;;-1:-1:-1;12911:36:23;;;1076:19638;;1645:14:30;1076:19638:23;;1645:14:30;;;;1076:19638:23;;;;;;;;;;;;;;;;;;;;1823:45;1076:19638;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;463:102:32;;;1076:19638:23;;;;;5248:6;1076:19638;;;;5240:65;1076:19638;5248:21;1076:19638;;;5248:21;1076:19638;;5248:26;;1076:19638;;:::i;5240:65::-;496:63:36;1076:19638:23;5315:78;1076:19638;;:::i;:::-;496:63:36;;;;5315:78:23;:::i;:::-;1076:19638;;;;1396:20:30;5403:55:23;1396:20:30;;:::i;:::-;5411:22:23;;;5403:55;:::i;:::-;5499:2;;;;:::i;:::-;5517:10;;1076:19638;;;;;5248:6;1076:19638;;5538:79;1076:19638;;;;;;;;;;5538:79;;:::i;:::-;5513:205;;1076:19638;;;5248:21;1076:19638;;;;;;;;;;;;;5729:45;1076:19638;;;5729:45;:::i;:::-;1118:24:30;;5784:50:23;5816:18;;;:::i;:::-;1076:19638;;;5248:6;1076:19638;;5784:50;1076:19638;;;;;;;;5784:50;:::i;:::-;5876:18;;;:::i;:::-;1076:19638;;;5248:6;1076:19638;;1118:24:30;1076:19638:23;;;;5844:50;1076:19638;;;;;;5844:50;:::i;:::-;1076:19638;1118:24:30;;;;;1076:19638:23;;;;;;;;;;;5910:58;1076:19638;5931:10;5910:58;;5983:15;5979:83;;5513:205;1076:19638;;;;;;6154:6;1076:19638;;;6147:4;5931:10;;6154:6;;:::i;:::-;1076:19638;;;;;;;;;5979:83;5931:10;6000:62;;;;;1076:19638;;;;;6000:62;;;;;1645:14:30;6000:62:23;;;1076:19638;6000:62;;;:::i;:::-;;5931:10;;;6000:62;;;;;;;;5979:83;;;;6000:62;;;;;:::i;:::-;1076:19638;;6000:62;;;5513:205;5641:77;1076:19638;;;;;;;5248:6;1076:19638;;;;;;;;;;;;;5641:77;;:::i;:::-;5513:205;;;1076:19638;;;;;;;;;;;;;;;;:::i;:::-;;;;;;1583:59;1076:19638;;;;;;;;;;;;;;;;1583:59;;1076:19638;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4882:40;1076:19638;463:102:32;;;4525:16:23;;;;1076:19638;;;;;;;;;;;;;;4504:66;1076:19638;;;;;;;;;;;;:::i;:::-;;;;;;;;;4504:66;:::i;:::-;4602:17;;;844::30;;;1076:19638:23;;4588:13;1076:19638;;4580:69;1076:19638;;;;;;;;;;;;:::i;:::-;844:17:30;1076:19638:23;;844:17:30;;;;;4580:69:23;:::i;:::-;1076:19638;;;4667:6;1076:19638;;;4659:69;1076:19638;4667:21;1076:19638;;;;;4667:21;1076:19638;;4667:26;1076:19638;;;;;;:::i;:::-;984:18:30;1076:19638:23;;984:18:30;;;;;4659:69:23;:::i;:::-;1076:19638;;;4667:6;1076:19638;;4667:21;1076:19638;;;4773:21;4805:15;;1076:19638;1118:24:30;;;;;;;4831:16:23;1076:19638;;;;;;;;;;710:13:30;;;;;;;;;;1118:24;;;;;;;1076:19638:23;;710:13:30;;;;;;;4667:21:23;1118:24:30;;;1076:19638:23;1118:24:30;;1076:19638:23;;710:13:30;;;;;;;4667:6:23;1118:24:30;;1076:19638:23;;;710:13:30;;;;;;;844:17;1118:24;;;;1076:19638:23;;1118:24:30;;;;;1076:19638:23;1118:24:30;;;1076:19638:23;;;1118:24:30;;;;;1076:19638:23;1118:24:30;;;1076:19638:23;1118:24:30;;;;;1076:19638:23;1118:24:30;;;1076:19638:23;1118:24:30;;;;1076:19638:23;1118:24:30;;;1076:19638:23;1118:24:30;;;;1076:19638:23;1118:24:30;;4882:40:23;1076:19638;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;12331:6;463:102:32;;1076:19638:23;463:102:32;12090:82:23;12098:38;1076:19638;463:102:32;;1076:19638:23;;;;11630:6;1076:19638;;11622:65;1076:19638;11630:21;1076:19638;;;11630:21;1076:19638;;11630:26;;1076:19638;;:::i;11622:65::-;11697:43;1076:19638;;:::i;:::-;11705:11;;;11697:43;:::i;:::-;11842:55;1396:20:30;;:::i;:::-;11850:22:23;;;11842:55;:::i;:::-;11907:62;11915:29;;;:::i;:::-;1076:19638;;:::i;11907:62::-;12010:2;;;;:::i;:::-;12024:55;1076:19638;12061:18;;;:::i;:::-;1076:19638;;;;11630:21;1076:19638;;;;;;;;;;;;;12024:55;1076:19638;;;;12024:33;1076:19638;;;;;12024:55;:::i;:::-;12098:38;;;:::i;:::-;1076:19638;;:::i;12090:82::-;1076:19638;;;12221:10;1076:19638;;;;;;;;12188:72;;1076:19638;12188:72;12278:28;1076:19638;;12331:6;:::i;1076:19638::-;;;;;;;;;;;;;;;-1:-1:-1;1076:19638:23;;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16303:78;;1076:19638;;;:::i;:::-;;;;;;;;;16311:15;:40;16303:78;:::i;:::-;844:17:30;;1076:19638:23;16391:90;1076:19638;;;;;;;;16422:5;1076:19638;;;;;;;16422:33;;;;:::i;:::-;1118:24:30;;1076:19638:23;;;;;;:::i;:::-;2541:19:30;1076:19638:23;;2541:19:30;;;;;16399:56:23;16391:90;:::i;:::-;1076:19638;;16523:49;;;;1076:19638;661:114:29;1076:19638:23;;661:114:29;;;1076:19638:23;;661:114:29;;1076:19638:23;661:114:29;;;1076:19638:23;;661:114:29;;1076:19638:23;661:114:29;;1076:19638:23;;;661:114:29;;1076:19638:23;661:114:29;;1076:19638:23;661:114:29;;1076:19638:23;661:114:29;;;;1076:19638:23;661:114:29;16523:49:23;;1076:19638;;;;;;;;;;;;;;;;;;;;16513:60;;16610:58;;;661:114:29;;;;16639:16:23;661:114:29;;;1076:19638:23;661:114:29;;;1076:19638:23;661:114:29;16610:58:23;;1076:19638;;;;;;;;;;;;;;;;;;;16600:69;;661:114:29;1076:19638:23;661:114:29;1076:19638:23;;;;661:114:29;;;;;1076:19638:23;;;;;;661:114:29;;;;16730:11:23;661:114:29;;;;1076:19638:23;661:114:29;16743:11:23;661:114:29;;;1076:19638:23;16699:56;;;1076:19638;16699:56;;;;;17087:140;16699:56;;;16766:102;16699:56;;;1076:19638;16774:23;;;:64;;;;1076:19638;;;;;;;;:::i;:::-;;;;661:114:29;;;;;16766:102:23;:::i;:::-;1076:19638;;;;844:17:30;;1076:19638:23;;;;;16884:83;16909:10;;16884:83;;16978:93;2402:19:30;;1076:19638:23;;;;;;;;16978:12;1076:19638;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16978:93;1076:19638;;;;;2402:19:30;;1076:19638:23;;;;;;;;16909:10;17087:140;;1076:19638;;16774:64;1076:19638;;;;;;16801:37;16774:64;;;16699:56;1076:19638;;1645:14:30;1076:19638:23;;1645:14:30;;;;661:114:29;;;;1076:19638:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;20520:9;20531:10;;;;;;1076:19638;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1076:19638:23;;;;;;;;;;;;20520:9;20579:3;;;;;;;;:::i;:::-;1076:19638;;;;;;;;;;;;;661:114:29;20598:98:23;;;;;;;;;20520:9;;;;;1076:19638;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;2000:40;1076:19638;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;1902:64;1076:19638;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1676:35;1076:19638;;;;;1676:35;1076:19638;1676:35;;1076:19638;1676:35;;1076:19638;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;463:102:32;;;1076:19638:23;;;;6491:6;1076:19638;;6483:65;1076:19638;6491:21;1076:19638;;;6491:21;1076:19638;;6491:26;;1076:19638;;:::i;6483:65::-;496:63:36;1076:19638:23;6558:78;1076:19638;;:::i;:::-;496:63:36;;;;6558:78:23;:::i;:::-;1076:19638;;;1396:20:30;6738:55:23;1396:20:30;;:::i;6738:55:23:-;6803:62;6811:29;;;:::i;6803:62::-;6906:2;;;;:::i;:::-;6924:10;;1076:19638;;;7572:6;1076:19638;;;;;;;;;6491:6;1076:19638;;7312:103;1076:19638;6945:77;1076:19638;;;;;;;;;;6945:77;;:::i;:::-;6920:205;;1076:19638;;;6491:21;1076:19638;;;;;;;;;;;;;;;;;7136:45;1076:19638;;;7136:45;:::i;:::-;1118:24:30;;7191:50:23;7223:18;;;:::i;:::-;1076:19638;;;6491:6;1076:19638;;7191:50;1076:19638;;;;;;;;7191:50;:::i;:::-;7283:18;;;:::i;:::-;1076:19638;;;6491:6;1076:19638;;;;;;1118:24:30;1076:19638:23;7251:50;1076:19638;;;;;;7251:50;:::i;:::-;1076:19638;1118:24:30;;;;;1076:19638:23;;;6491:6;1076:19638;;;;7320:28;;;;1076:19638;;;;;-1:-1:-1;7320:60:23;1785:14:30;;:::i;7312:103:23:-;1076:19638;;7454:10;1076:19638;;2120:24:30;;;1076:19638:23;;;2120:24:30;;;1076:19638:23;;;7431:70;;2120:24:30;;7431:70:23;1076:19638;;7572:6;:::i;6920:205::-;1076:19638;;;;;7312:103;7046:79;1076:19638;;;;;7572:6;1076:19638;;;;;6491:6;1076:19638;;;;;;;;;;;;;7046:79;;:::i;:::-;6920:205;;;;;1076:19638;;;;;;;;;;;;;;:::i;:::-;;;2592:49;1076:19638;;;;2600:10;:19;1076:19638;;:::i;2592:49::-;1076:19638;;;;;;;3012:50;1076:19638;;;;;;3020:18;1076:19638;;:::i;3012:50::-;1076:19638;;;;;;;;;3093:4;1076:19638;;;;;;;3113:33;;;;1076:19638;;;;;;;;;;:::i;:::-;;;;;;;;463:102:32;;;;1076:19638:23;;;;7936:6;1076:19638;;;;;;;;7928:65;1076:19638;7936:21;1076:19638;;;7936:21;1076:19638;;7936:26;;1076:19638;;:::i;7928:65::-;496:63:36;1076:19638:23;8003:78;1076:19638;;:::i;:::-;496:63:36;;;;8003:78:23;:::i;:::-;1076:19638;;;;;1396:20:30;8183:55:23;1396:20:30;;:::i;:::-;8191:22:23;;;8183:55;:::i;:::-;8248:62;8256:29;;;:::i;8248:62::-;8351:2;;;;:::i;:::-;8369:10;;1076:19638;;;;;;;;;;;;;;;8390:77;8408:28;1076:19638;;;8408:28;1076:19638;;;;;;;8390:77;;:::i;:::-;8365:205;;;;8620:18;;;:::i;:::-;1076:19638;;;7936:21;1076:19638;;;;;;;;;;;;;;;;;;;;8581:35;;1076:19638;;;;;;;8581:57;;;;:::i;:::-;1076:19638;1118:24:30;;;;;;;8680:18:23;;;:::i;:::-;1076:19638;;;;;;;;8581:35;8648:28;1076:19638;;;;;8648:50;;;;:::i;:::-;592:18:30;;1076:19638:23;592:18:30;;;;;;;;;;;8740::23;;;;;:::i;:::-;1076:19638;;;;;;;;8581:35;8708:28;1076:19638;;;;;;;;8708:50;;;;:::i;:::-;1076:19638;1118:24:30;;;;;8777:38:23;;;;;:::i;:::-;1076:19638;;:::i;:::-;8769:82;;;:::i;:::-;1076:19638;;;;;;;;8869:28;;8581:35;8869:28;;1076:19638;;;;;-1:-1:-1;8869:60:23;1785:14:30;;:::i;:::-;8861:103:23;;;:::i;:::-;1076:19638;;;9001:10;1076:19638;;2120:24:30;;;1076:19638:23;;;2120:24:30;;;1076:19638:23;;;8980:68;;2120:24:30;;8980:68:23;1076:19638;;9119:6;;;;:::i;:::-;1076:19638;;;;;;;;;;;8365:205;1076:19638;;8491:79;1076:19638;;;;;;;;;;;;8511:28;1076:19638;;;8511:28;1076:19638;;;;;;;;8491:79;;:::i;:::-;8365:205;;;;;1076:19638;;;;;;;;;;;;3413:26;1076:19638;;;2592:49;1076:19638;;;;2600:10;:19;1076:19638;;:::i;2592:49::-;1076:19638;;;3259:13;1076:19638;;3250:52;1076:19638;;;;;;3258:20;1076:19638;;:::i;3250:52::-;3312:48;1076:19638;;;;;:::i;:::-;93:4:33;1076:19638:23;;93:4:33;;;;;;3320:10:23;;3312:48;:::i;:::-;1076:19638;;;3259:13;1076:19638;;;;;;;;;;;;;;;;;;3413:26;1076:19638;;;;;;;;;;;;;;;;1522:27;1076:19638;;;;;;;;;;;;;;;;;;;;;;;1373:41;1076:19638;;;;;;;;;;;;;;;;;;;;;;2074:51;1076:19638;;;;;;;;2074:51;;1076:19638;2074:51;;1076:19638;;2074:51;1076:19638;2074:51;;;;1076:19638;;2074:51;;;;1076:19638;;2074:51;;1076:19638;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4016:28;1076:19638;;;2592:49;1076:19638;;;;2600:10;:19;1076:19638;;:::i;2592:49::-;3968:32;1076:19638;463:102:32;;1076:19638:23;;;;3618:6;1076:19638;;3920:2;1076:19638;;;3610:65;1076:19638;3618:21;1076:19638;;;3618:21;1076:19638;;3618:26;;1076:19638;;:::i;3610:65::-;1076:19638;;;3618:6;1076:19638;;3685:56;3618:21;1076:19638;;;3703:14;1076:19638;;;3693:24;;;1076:19638;;:::i;3685:56::-;3751:54;1076:19638;;;;;:::i;:::-;147:7:29;1076:19638:23;;147:7:29;;;;;;3759:17:23;;;3751:54;:::i;:::-;3920:2;:::i;:::-;1076:19638;;;3618:6;1076:19638;;;;3618:21;1076:19638;;;3968:14;592:18:30;1076:19638:23;592:18:30;;;;;;;;;;;;;3968:32:23;1076:19638;;;;;4016:28;1076:19638;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;463:102:32;1076:19638:23;463:102:32;;1076:19638:23;;;10793:6;1076:19638;;10785:65;1076:19638;10793:21;1076:19638;;;10793:21;1076:19638;;10793:26;;1076:19638;;:::i;10785:65::-;10860:43;1076:19638;;:::i;10860:43::-;1076:19638;;;;1396:20:30;10913:55:23;1396:20:30;;:::i;:::-;10921:22:23;;;10913:55;:::i;:::-;11057;11094:18;;;:::i;:::-;1076:19638;;;10793:21;1076:19638;;;;;;;;;;11057:55;1076:19638;;;;11057:33;1076:19638;;;;;11057:55;:::i;:::-;1076:19638;;;;;;11128:60;1076:19638;11159:10;11128:60;;11203:15;11199:103;;1076:19638;11320:28;;1076:19638;11394:6;11320:28;;;1076:19638;;11387:4;11159:10;;11394:6;;:::i;11199:103::-;11159:10;11220:82;;;;;1076:19638;;;;;11220:82;;;;;1645:14:30;11220:82:23;;;1076:19638;11220:82;;;:::i;:::-;;11159:10;;;11220:82;;;;;;;;11199:103;;;;11220:82;11394:6;11220:82;;1076:19638;11220:82;;:::i;:::-;;;;;;1076:19638;;1645:14:30;1076:19638:23;;1645:14:30;;;;11220:82:23;1076:19638;;;;;;;;;;;:::i;:::-;;;;;;;;;463:102:32;;;1076:19638:23;;;9456:6;1076:19638;;;;;;;9448:65;1076:19638;9456:21;1076:19638;;;9456:21;1076:19638;;9456:26;;1076:19638;;:::i;9448:65::-;496:63:36;1076:19638:23;9523:78;1076:19638;;:::i;9523:78::-;1076:19638;;;;1396:20:30;9611:55:23;1396:20:30;;:::i;9611:55:23:-;9707:2;;;;:::i;:::-;9725:10;;1076:19638;;;;;;;;9746:79;9766:28;1076:19638;;;9766:28;1076:19638;;;;;;;9746:79;;:::i;:::-;9721:205;;9976:18;;;:::i;:::-;1076:19638;;;;9456:21;1076:19638;;;;;;;;;;9937:35;1076:19638;;;9937:35;1076:19638;9937:57;1076:19638;;;;;;9937:57;:::i;:::-;1076:19638;1118:24:30;;;;;;;10004:50:23;10036:18;;;:::i;:::-;1076:19638;;;;;;10004:50;9937:35;1076:19638;;;10004:28;1076:19638;;;;;10004:50;:::i;:::-;1076:19638;;;;;;10095:71;1076:19638;9937:35;1076:19638;;;10117:28;1076:19638;;1125:62:36;;;;;;;10095:71:23;:::i;:::-;1076:19638;;;;;;9937:35;1076:19638;;;10064:28;1076:19638;;1118:24:30;;;;;;;1076:19638:23;;;;;;;;;;;10248:57;1076:19638;10268:10;10248:57;;10320:15;10316:81;;1076:19638;;;;;;10489:6;1076:19638;;;10482:4;10268:10;;10489:6;;:::i;10316:81::-;10268:10;10337:60;;;;1076:19638;;;10337:60;1076:19638;;;10337:60;;;;;1645:14:30;10337:60:23;;;1076:19638;10337:60;;;:::i;:::-;;10268:10;;;10337:60;;;;;;;;;10489:6;10337:60;;;1076:19638;10337:60;;;10316:81;;;;;;;;10337:60;;;;:::i;:::-;;;;;1076:19638;;1645:14:30;;;;;;;;9721:205:23;9849:77;1076:19638;;;;;;;;;;9867:28;1076:19638;;;9867:28;1076:19638;;;;;;;;9849:77;;:::i;:::-;9721:205;;;1076:19638;;;;;;;;;;;;2790:49;1076:19638;;:::i;:::-;710:13:30;1076:19638:23;;;;;;;2592:49;1076:19638;;:::i;:::-;2600:10;;:19;2592:49;:::i;:::-;1076:19638;;;;;;:::i;:::-;2798:17;;;;2790:49;:::i;:::-;710:13:30;;;;2882:28:23;;;;1076:19638;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;318:11:30:-;;;;;:::o;:::-;1076:19638:23;;318:11:30;;;;;;;;;;;1076:19638:23;;318:11:30;;;;;1076:19638:23;-1:-1:-1;318:11:30;;;;;;;;;1076:19638:23;;318:11:30;-1:-1:-1;1076:19638:23;318:11:30;;;;;;1076:19638:23;;318:11:30;;;;;;;;;;;;;;;;1076:19638:23;318:11:30;;;;-1:-1:-1;318:11:30;;;;1076:19638:23;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;1396:20:30:-;1076:19638:23;;;;;;:::i;:::-;1396:20:30;1076:19638:23;;1396:20:30;;;;;:::o;1645:14::-;;;;;;;;;;:::o;:::-;;;;1076:19638:23;;;;;;;1645:14:30;;;;;;:::o;:::-;;;1076:19638:23;1645:14:30;1076:19638:23;1645:14:30;1076:19638:23;1645:14:30;1076:19638:23;;1645:14:30;;;;;;;;;1076:19638:23;;;;1645:14:30;;;;;;;;1076:19638:23;;1645:14:30;;;:::o;1076:19638:23:-;;;;;;;:::i;:::-;;;;;;;;;:::o;1785:14:30:-;;;;;;;;;;:::o;:::-;1076:19638:23;;;;;;;1785:14:30;;;;;;;:::o;:::-;1076:19638:23;;;;;;:::i;:::-;1785:14:30;1076:19638:23;;1785:14:30;;;;;:::o;1076:19638:23:-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;2541:19:30:-;;;;;;;;;:::o;17240:160:23:-;1076:19638;;17333:10;;:22;:60;;;;;17326:67;17240:160;:::o;17333:60::-;1076:19638;;-1:-1:-1;1076:19638:23;17359:12;1076:19638;;;-1:-1:-1;1076:19638:23;17333:10;-1:-1:-1;1076:19638:23;;;;;-1:-1:-1;1076:19638:23;;;17240:160;:::o;17572:1418::-;;;-1:-1:-1;1076:19638:23;;;;17693:6;1076:19638;;;;;;;;;;17675:39;1076:19638;17693:21;1076:19638;;;17693:21;1076:19638;;17675:15;:39;:::i;:::-;17729:12;;;17725:25;;1076:19638;;;;;;;;;17764:28;;;;1076:19638;;;;;17760:1131;;17572:1418;1076:19638;;;17693:21;1076:19638;;;;;;;;18935:21;17675:15;;1076:19638;1118:24:30;;;;;;;17572:1418:23:o;17760:1131::-;1076:19638;;17839:16;;;;;1076:19638;;;;17834:59;;;1645:14:30;17834:59:23;;;;;1076:19638;;1118:24:30;;;1076:19638:23;1118:24:30;;;1076:19638:23;;;1118:24:30;;;;;1076:19638:23;1118:24:30;;;1076:19638:23;1118:24:30;;;;;1076:19638:23;1118:24:30;;;1076:19638:23;1118:24:30;;;;1076:19638:23;1118:24:30;;;1076:19638:23;1118:24:30;;;;1076:19638:23;1118:24:30;1076:19638:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17693:21;1076:19638;;;;;;;;;;;;;;;17834:59;;;;1076:19638;17834:59;;;;;;;;;;;17760:1131;1076:19638;;;;1516:22:33;17693:21:23;1076:19638;;;18819:61;1076:19638;;;;;17839:16;1076:19638;;;;;;;887:5:33;1349;1076:19638:23;17764:28;1076:19638;;;17926:28;1076:19638;;1349:5:33;;;:::i;:::-;887;1516:34;1076:19638:23;887:5:33;;;;:::i;:::-;1076:19638:23;93:4:33;;887:5;;1076:19638:23;887:5:33;;;;;;:::i;:::-;1076:19638:23;1516:22:33;;:::i;:::-;:34;:::i;:::-;887:5;;:::i;:::-;1076:19638:23;18048:20;;;;:::i;:::-;1076:19638;;;;;;17764:28;1076:19638;;;18016:28;1076:19638;18016:52;1076:19638;;;;;;18016:52;:::i;:::-;1076:19638;1118:24:30;;;;;;;18114:20:23;;;;:::i;:::-;1076:19638;;;;;;;;;;;18082:52;1076:19638;;;;;;18082:52;:::i;:::-;1076:19638;1118:24:30;;;;;18149:17:23;;1076:19638;;;;;;;17693:21;1076:19638;;;18184:14;1076:19638;;;18184:19;18180:620;;17760:1131;1076:19638;;;;;;;;;;;;;;;;;;;;;;18819:61;17760:1131;;;;;;;18180:620;18732:53;887:5:33;;;;18573:40:23;18732:53;887:5:33;;;;;;;18550:94:23;887:5:33;;;:::i;:::-;1076:19638:23;;;;;;;;;;;;;;18573:40;:::i;:::-;1076:19638;;;;;;;;;;;;18550:94;;:::i;:::-;1076:19638;;;;17693:21;1076:19638;;;;;;17764:28;1076:19638;;;;;;;;;18662:52;1076:19638;;;18662:52;:::i;:::-;1118:24:30;;18764:21:23;;;:::i;:::-;1076:19638;;;;;;;;;;;18732:53;:::i;:::-;18180:620;;;;;;;;;;;;;;17834:59;;;;;;;;;;;;;;;;;:::i;:::-;;;1076:19638;;;;;;17839:16;17834:59;;1076:19638;;;;17834:59;;;;;;1076:19638;;1645:14:30;1076:19638:23;;1645:14:30;;;;17725:25:23;17743:7;;;;;;;;;:::o;19191:328::-;;;;-1:-1:-1;1076:19638:23;;;;;;19313:8;1076:19638;;;;;;;;;;;;;;;19313:35;1076:19638;;;19313:35;1076:19638;;19313:40;19309:57;;19411:19;19403:36;19411:19;1076:19638;19411:19;;1076:19638;;;;19403:36;;;;1645:14:30;19403:36:23;;;;;;;;;;;;;19191:328;19457:55;;;;;;;:::i;:::-;19191:328;:::o;19403:36::-;;;;;;;;;;;;;;;;;:::i;:::-;;;1076:19638;;;;19457:55;1076:19638;;;;19403:36;;;;;;;;;;;;1076:19638;;1645:14:30;1076:19638:23;;1645:14:30;;;;19309:57:23;-1:-1:-1;19313:35:23;;-1:-1:-1;;;;;19355:11:23:o;19745:534::-;1076:19638;224:4:29;887:5:33;;19745:534:23;;19943:35;1076:19638;93:4:33;19745:534:23;-1:-1:-1;1076:19638:23;;;;19943:8;1076:19638;;;;;;;;;;;;;;19935:137;1076:19638;;;;;;;19943:35;1076:19638;;;;;20004:6;1076:19638;;;;;;20004:28;1076:19638;;;;;;;19935:137;;:::i;:::-;1076:19638;;;19943:8;1076:19638;;;;;;;;;;;20110:33;1076:19638;;;887:5:33;:::i;:::-;1076:19638:23;20215:17;;844::30;887:5:33;;:::i;:::-;1076:19638:23;20251:21;;19745:534;:::o;1076:19638::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::o;947:128:33:-;;1048:5;947:128;1048:5;:::i;:::-;1785:14:30;;;;;;;;;;1047:21:33;1048:15;;;;:::i;1076:19638:23:-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;1076:19638:23;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;756:331:34:-;1076:19638:23;;912:52:34;;;;;;;1076:19638:23;;;;912:52:34;;;1076:19638:23;;;;;;;;;912:52:34;;;975:105;;-1:-1:-1;;;;892:73:34;-1:-1:-1;;1076:19638:23;912:52:34;1076:19638:23;;912:52:34;:::i;:::-;892:73;1076:19638:23;;892:73:34;;;;:::i;:::-;983:69;;;756:331;1076:19638:23;;;;;;;:::i;:::-;;;;;912:52:34;1076:19638:23;;;975:105:34;:::i;:::-;756:331::o;983:69::-;1076:19638:23;;995:22:34;;;-1:-1:-1;995:56:34;;;;983:69;;;;;;995:56;1021:30;;;912:52;1021:30;;;;;;;;:::i;:::-;995:56;;;;1093:364;-1:-1:-1;1093:364:34;;;;;1340:110;1093:364;1076:19638:23;;1267:62:34;;;;;;;;1076:19638:23;;;;;;1267:62:34;;;1076:19638:23;;;;;;;;;;;1267:62:34;;;;;:::i;:::-;1247:83;1076:19638:23;;1247:83:34;;;;:::i;:::-;1348:69;;;1093:364;1076:19638:23;;;;;;;:::i;:::-;;;;;1267:62:34;1076:19638:23;;;1340:110:34;:::i;1348:69::-;1076:19638:23;;1360:22:34;;;-1:-1:-1;1360:56:34;;;;1348:69;;;;;;1360:56;1386:30;;;1267:62;1386:30;;;;;;;;:::i;:::-;1360:56;;;;952:213:35;682:3;1645:14:30;;;;;;;865:1:35;1645:14:30;;;;;;;886:11:33;887:5;;;;:::i;1250:213:35:-;865:1;1645:14:30;;;1250:213:35;1645:14:30;-1:-1:-1;1645:14:30;;682:3:35;1645:14:30;;;;;;;886:11:33;887:5;;;;:::i;1546:209:35:-;;682:3;1645:14:30;;;;;;;865:1:35;1645:14:30;;;;;;;1673:75:35;;;:::i;1838:209::-;;;865:1;1645:14:30;;;;;;;682:3:35;1645:14:30;;;;;;;1965:75:35;;;:::i;826:169:36:-;1076:19638:23;;;;;;:::i;:::-;;;;;;;;;898:63:36;1076:19638:23;906:22:36;;;;;898:63;:::i;:::-;1076:19638:23;826:169:36;:::o", | |
"linkReferences": {}, | |
"immutableReferences": { | |
"30107": [ | |
{ | |
"start": 6012, | |
"length": 32 | |
}, | |
{ | |
"start": 9131, | |
"length": 32 | |
} | |
] | |
} | |
}, | |
"methodIdentifiers": { | |
"DOMAIN_SEPARATOR()": "3644e515", | |
"borrow((address,address,address,address,uint256),uint256,uint256,address,address)": "50d8cd4b", | |
"createMarket((address,address,address,address,uint256))": "8c1358a2", | |
"enableIrm(address)": "5a64f51e", | |
"enableLltv(uint256)": "4d98a93b", | |
"extSloads(bytes32[])": "7784c685", | |
"feeRecipient()": "46904840", | |
"flashLoan(address,uint256,bytes)": "e0232b42", | |
"idToMarketParams(bytes32)": "2c3c9157", | |
"isAuthorized(address,address)": "65e4ad9e", | |
"isIrmEnabled(address)": "f2b863ce", | |
"isLltvEnabled(uint256)": "b485f3b8", | |
"liquidate((address,address,address,address,uint256),address,uint256,uint256,bytes)": "d8eabcb8", | |
"market(bytes32)": "5c60e39a", | |
"nonce(address)": "70ae92d2", | |
"owner()": "8da5cb5b", | |
"position(bytes32,address)": "93c52062", | |
"repay((address,address,address,address,uint256),uint256,uint256,address,bytes)": "20b76e81", | |
"setAuthorization(address,bool)": "eecea000", | |
"setAuthorizationWithSig((address,address,bool,uint256,uint256),(uint8,bytes32,bytes32))": "8069218f", | |
"setFee((address,address,address,address,uint256),uint256)": "2b4f013c", | |
"setFeeRecipient(address)": "e74b981b", | |
"setOwner(address)": "13af4035", | |
"supply((address,address,address,address,uint256),uint256,uint256,address,bytes)": "a99aad89", | |
"supplyCollateral((address,address,address,address,uint256),uint256,address,bytes)": "238d6579", | |
"withdraw((address,address,address,address,uint256),uint256,uint256,address,address)": "5c2bea49", | |
"withdrawCollateral((address,address,address,address,uint256),uint256,address,address)": "8720316d" | |
}, | |
"rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"borrowableToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"collateralToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"oracle\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"irm\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"lltv\",\"type\":\"uint256\"}],\"internalType\":\"struct MarketParams\",\"name\":\"marketParams\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"onBehalf\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"borrow\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"borrowableToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"collateralToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"oracle\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"irm\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"lltv\",\"type\":\"uint256\"}],\"internalType\":\"struct MarketParams\",\"name\":\"marketParams\",\"type\":\"tuple\"}],\"name\":\"createMarket\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"irm\",\"type\":\"address\"}],\"name\":\"enableIrm\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"lltv\",\"type\":\"uint256\"}],\"name\":\"enableLltv\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"slots\",\"type\":\"bytes32[]\"}],\"name\":\"extSloads\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"res\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeRecipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"flashLoan\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"Id\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"idToMarketParams\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"borrowableToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"collateralToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"oracle\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"irm\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"lltv\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isAuthorized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isIrmEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"isLltvEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"borrowableToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"collateralToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"oracle\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"irm\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"lltv\",\"type\":\"uint256\"}],\"internalType\":\"struct MarketParams\",\"name\":\"marketParams\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"seizedAssets\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"repaidShares\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"liquidate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"Id\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"market\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"totalSupplyAssets\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"totalSupplyShares\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"totalBorrowAssets\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"totalBorrowShares\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"lastUpdate\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"fee\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"nonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"Id\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"position\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"supplyShares\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"borrowShares\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"collateral\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"borrowableToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"collateralToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"oracle\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"irm\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"lltv\",\"type\":\"uint256\"}],\"internalType\":\"struct MarketParams\",\"name\":\"marketParams\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"onBehalf\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"repay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authorized\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"newIsAuthorized\",\"type\":\"bool\"}],\"name\":\"setAuthorization\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"authorizer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"authorized\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isAuthorized\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"internalType\":\"struct Authorization\",\"name\":\"authorization\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"struct Signature\",\"name\":\"signature\",\"type\":\"tuple\"}],\"name\":\"setAuthorizationWithSig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"borrowableToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"collateralToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"oracle\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"irm\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"lltv\",\"type\":\"uint256\"}],\"internalType\":\"struct MarketParams\",\"name\":\"marketParams\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"newFee\",\"type\":\"uint256\"}],\"name\":\"setFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newFeeRecipient\",\"type\":\"address\"}],\"name\":\"setFeeRecipient\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"setOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"borrowableToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"collateralToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"oracle\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"irm\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"lltv\",\"type\":\"uint256\"}],\"internalType\":\"struct MarketParams\",\"name\":\"marketParams\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"onBehalf\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"supply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"borrowableToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"collateralToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"oracle\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"irm\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"lltv\",\"type\":\"uint256\"}],\"internalType\":\"struct MarketParams\",\"name\":\"marketParams\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"onBehalf\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"supplyCollateral\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"borrowableToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"collateralToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"oracle\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"irm\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"lltv\",\"type\":\"uint256\"}],\"internalType\":\"struct MarketParams\",\"name\":\"marketParams\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"onBehalf\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"borrowableToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"collateralToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"oracle\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"irm\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"lltv\",\"type\":\"uint256\"}],\"internalType\":\"struct MarketParams\",\"name\":\"marketParams\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"onBehalf\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"withdrawCollateral\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Morpho Labs\",\"custom:contact\":\"security@morpho.xyz\",\"kind\":\"dev\",\"methods\":{\"borrow((address,address,address,address,uint256),uint256,uint256,address,address)\":{\"details\":\"Either `assets` or `shares` should be zero. Most usecases should rely on `assets` as an input so the caller is guaranteed to borrow `assets` of tokens, but the possibility to mint a specific amount of shares is given for full compatibility and precision.`msg.sender` must be authorized to manage `onBehalf`'s positions.Borrowing a large amount can revert for overflow.\",\"params\":{\"assets\":\"The amount of assets to borrow.\",\"marketParams\":\"The market to borrow assets from.\",\"onBehalf\":\"The address that will own the increased borrow position.\",\"receiver\":\"The address that will receive the borrowed assets.\",\"shares\":\"The amount of shares to mint.\"},\"returns\":{\"_0\":\"The amount of assets borrowed.\",\"_1\":\"The amount of shares minted.\"}},\"constructor\":{\"params\":{\"newOwner\":\"The new owner of the contract.\"}},\"createMarket((address,address,address,address,uint256))\":{\"details\":\"Here is the list of assumptions on the market's dependencies (tokens, IRM and oracle) that guarantees Morpho behaves as expected: - The token should be ERC-20 compliant, except that it can omit return values on `transfer` and `transferFrom`. - The token balance of Morpho should only decrease on `transfer` and `transferFrom`. In particular, tokens with burn functions are not supported. - The token should not re-enter Morpho on `transfer` nor `transferFrom`. - The token balance of the sender (resp. receiver) should decrease (resp. increase) by exactly the given amount on `transfer` and `transferFrom`. In particular, tokens with fees on transfer are not supported. - The IRM should not re-enter Morpho.Here is a list of properties on the market's dependencies that could break Morpho's liveness properties: - The token can revert on `transfer` and `transferFrom` for a reason other than an approval or balance issue. - A very high amount of assets (~1e35) supplied or borrowed can make the computation of `toSharesUp` and `toSharesDown` overflow. - The IRM can revert on `borrowRate`. - A very high borrow rate returned by the IRM can make the computation of `interest` in `_accrueInterest` overflow. - The oracle can revert on `price`. Note that this can be used to prevent `borrow`, `withdrawCollateral` and `liquidate` from being used under certain market conditions. - A very high price returned by the oracle can make the computation of `maxBorrow` in `_isHealthy` overflow, or the computation of `assetsRepaid` in `liquidate` overflow.\"},\"enableIrm(address)\":{\"details\":\"Warning: It is not possible to disable an IRM.\"},\"enableLltv(uint256)\":{\"details\":\"Warning: It is not possible to disable a LLTV.\"},\"flashLoan(address,uint256,bytes)\":{\"details\":\"Flash loans have access to the whole balance of the contract (the liquidity and deposited collateral of all markets combined, plus donations).\",\"params\":{\"assets\":\"The amount of assets to flash loan.\",\"data\":\"Arbitrary data to pass to the `onMorphoFlashLoan` callback.\",\"token\":\"The token to flash loan.\"}},\"liquidate((address,address,address,address,uint256),address,uint256,uint256,bytes)\":{\"details\":\"Either `seizedAssets` or `repaidShares` should be zero.Seizing more than the collateral balance will underflow and revert without any error message.Repaying more than the borrow balance will underflow and revert without any error message.\",\"params\":{\"borrower\":\"The owner of the position.\",\"data\":\"Arbitrary data to pass to the `onMorphoLiquidate` callback. Pass empty data if not needed.\",\"marketParams\":\"The market of the position.\",\"repaidShares\":\"The amount of shares to repay.\",\"seizedAssets\":\"The amount of collateral to seize.\"},\"returns\":{\"_0\":\"The amount of assets seized.\",\"_1\":\"The amount of assets repaid.\"}},\"repay((address,address,address,address,uint256),uint256,uint256,address,bytes)\":{\"details\":\"Either `assets` or `shares` should be zero. To repay max, pass the `shares`'s balance of `onBehalf`.Repaying an amount corresponding to more shares than borrowed will revert for underflow.\",\"params\":{\"assets\":\"The amount of assets to repay.\",\"data\":\"Arbitrary data to pass to the `onMorphoRepay` callback. Pass empty data if not needed.\",\"marketParams\":\"The market to repay assets to.\",\"onBehalf\":\"The address of the owner of the debt position.\",\"shares\":\"The amount of shares to burn.\"},\"returns\":{\"_0\":\"The amount of assets repaid.\",\"_1\":\"The amount of shares burned.\"}},\"setAuthorization(address,bool)\":{\"params\":{\"authorized\":\"The authorized address.\",\"newIsAuthorized\":\"The new authorization status.\"}},\"setAuthorizationWithSig((address,address,bool,uint256,uint256),(uint8,bytes32,bytes32))\":{\"details\":\"Warning: Reverts if the signature has already been submitted.The signature is malleable, but it has no impact on the security here.The nonce is passed as argument to be able to revert with a different error message.\",\"params\":{\"authorization\":\"The `Authorization` struct.\",\"signature\":\"The signature.\"}},\"setFee((address,address,address,address,uint256),uint256)\":{\"details\":\"Warning: The recipient can be the zero address.\"},\"setFeeRecipient(address)\":{\"details\":\"Warning: The fee recipient can be set to the zero address.Warning: The fee to be accrued on each market won't belong to the old fee recipient after calling this function.\"},\"setOwner(address)\":{\"details\":\"Warning: No two-step transfer ownership.Warning: The owner can be set to the zero address.\"},\"supply((address,address,address,address,uint256),uint256,uint256,address,bytes)\":{\"details\":\"Either `assets` or `shares` should be zero. Most usecases should rely on `assets` as an input so the caller is guaranteed to have `assets` tokens pulled from their balance, but the possibility to mint a specific amount of shares is given for full compatibility and precision.Supplying a large amount can revert for overflow.\",\"params\":{\"assets\":\"The amount of assets to supply.\",\"data\":\"Arbitrary data to pass to the `onMorphoSupply` callback. Pass empty data if not needed.\",\"marketParams\":\"The market to supply assets to.\",\"onBehalf\":\"The address that will own the increased supply position.\",\"shares\":\"The amount of shares to mint.\"},\"returns\":{\"_0\":\"The amount of assets supplied.\",\"_1\":\"The amount of shares minted.\"}},\"supplyCollateral((address,address,address,address,uint256),uint256,address,bytes)\":{\"details\":\"Interest are not accrued since it's not required and it saves gas.Supplying a large amount can revert for overflow.\",\"params\":{\"assets\":\"The amount of collateral to supply.\",\"data\":\"Arbitrary data to pass to the `onMorphoSupplyCollateral` callback. Pass empty data if not needed.\",\"marketParams\":\"The market to supply collateral to.\",\"onBehalf\":\"The address that will own the increased collateral position.\"}},\"withdraw((address,address,address,address,uint256),uint256,uint256,address,address)\":{\"details\":\"Either `assets` or `shares` should be zero. To withdraw max, pass the `shares`'s balance of `onBehalf`.`msg.sender` must be authorized to manage `onBehalf`'s positions.Withdrawing an amount corresponding to more shares than supplied will revert for underflow.\",\"params\":{\"assets\":\"The amount of assets to withdraw.\",\"marketParams\":\"The market to withdraw assets from.\",\"onBehalf\":\"The address of the owner of the supply position.\",\"receiver\":\"The address that will receive the withdrawn assets.\",\"shares\":\"The amount of shares to burn.\"},\"returns\":{\"_0\":\"The amount of assets withdrawn.\",\"_1\":\"The amount of shares burned.\"}},\"withdrawCollateral((address,address,address,address,uint256),uint256,address,address)\":{\"details\":\"`msg.sender` must be authorized to manage `onBehalf`'s positions.Withdrawing an amount corresponding to more collateral than supplied will revert for underflow.\",\"params\":{\"assets\":\"The amount of collateral to withdraw.\",\"marketParams\":\"The market to withdraw collateral from.\",\"onBehalf\":\"The address of the owner of the collateral position.\",\"receiver\":\"The address that will receive the collateral assets.\"}}},\"stateVariables\":{\"feeRecipient\":{\"details\":\"The recipient receives the fees of a given market through a supply position on that market.\"},\"idToMarketParams\":{\"details\":\"This mapping is not used in Morpho. It is there to enable reducing the cost associated to calldata on layer 2s by creating a wrapper contract with functions that take `id` as input instead of `marketParams`.\"},\"isAuthorized\":{\"details\":\"Anyone is authorized to modify their own positions, regardless of this variable.\"},\"owner\":{\"details\":\"It has the power to change the owner.It has the power to set fees on markets and set the fee recipient.It has the power to enable but not disable IRMs and LLTVs.\"}},\"title\":\"Morpho\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"notice\":\"The EIP-712 domain separator.\"},\"borrow((address,address,address,address,uint256),uint256,uint256,address,address)\":{\"notice\":\"Borrows `assets` or `shares` on behalf of `onBehalf` to `receiver`.\"},\"constructor\":{\"notice\":\"Initializes the contract.\"},\"createMarket((address,address,address,address,uint256))\":{\"notice\":\"Creates the market `marketParams`.\"},\"enableIrm(address)\":{\"notice\":\"Enables `irm` as a possible IRM for market creation.\"},\"enableLltv(uint256)\":{\"notice\":\"Enables `lltv` as a possible LLTV for market creation.\"},\"extSloads(bytes32[])\":{\"notice\":\"Returns the data stored on the different `slots`.\"},\"feeRecipient()\":{\"notice\":\"The fee recipient of all markets.\"},\"flashLoan(address,uint256,bytes)\":{\"notice\":\"Executes a flash loan.\"},\"idToMarketParams(bytes32)\":{\"notice\":\"The market params corresponding to `id`.\"},\"isAuthorized(address,address)\":{\"notice\":\"Whether `authorized` is authorized to modify `authorizer`'s positions.\"},\"isIrmEnabled(address)\":{\"notice\":\"Whether the `irm` is enabled.\"},\"isLltvEnabled(uint256)\":{\"notice\":\"Whether the `lltv` is enabled.\"},\"liquidate((address,address,address,address,uint256),address,uint256,uint256,bytes)\":{\"notice\":\"Liquidates the given `repaidShares` of debt asset or seize the given `seizedAssets` of collateral on the given market `marketParams` of the given `borrower`'s position, optionally calling back the caller's `onMorphoLiquidate` function with the given `data`.\"},\"market(bytes32)\":{\"notice\":\"The state of the market corresponding to `id`.\"},\"nonce(address)\":{\"notice\":\"The `authorizer`'s current nonce. Used to prevent replay attacks with EIP-712 signatures.\"},\"owner()\":{\"notice\":\"The owner of the contract.\"},\"position(bytes32,address)\":{\"notice\":\"The state of the position of `user` on the market corresponding to `id`.\"},\"repay((address,address,address,address,uint256),uint256,uint256,address,bytes)\":{\"notice\":\"Repays `assets` or `shares` on behalf of `onBehalf`, optionally calling back the caller's `onMorphoReplay` function with the given `data`.\"},\"setAuthorization(address,bool)\":{\"notice\":\"Sets the authorization for `authorized` to manage `msg.sender`'s positions.\"},\"setAuthorizationWithSig((address,address,bool,uint256,uint256),(uint8,bytes32,bytes32))\":{\"notice\":\"Sets the authorization for `authorization.authorized` to manage `authorization.authorizer`'s positions.\"},\"setFee((address,address,address,address,uint256),uint256)\":{\"notice\":\"Sets the `newFee` for the given market `marketParams`.\"},\"setFeeRecipient(address)\":{\"notice\":\"Sets `newFeeRecipient` as recipient of the fee.\"},\"setOwner(address)\":{\"notice\":\"Sets `newOwner` as owner of the contract.\"},\"supply((address,address,address,address,uint256),uint256,uint256,address,bytes)\":{\"notice\":\"Supplies `assets` or `shares` on behalf of `onBehalf`, optionally calling back the caller's `onMorphoSupply` function with the given `data`.\"},\"supplyCollateral((address,address,address,address,uint256),uint256,address,bytes)\":{\"notice\":\"Supplies `assets` of collateral on behalf of `onBehalf`, optionally calling back the caller's `onMorphoSupplyCollateral` function with the given `data`.\"},\"withdraw((address,address,address,address,uint256),uint256,uint256,address,address)\":{\"notice\":\"Withdraws `assets` or `shares` on behalf of `onBehalf` to `receiver`.\"},\"withdrawCollateral((address,address,address,address,uint256),uint256,address,address)\":{\"notice\":\"Withdraws `assets` of collateral on behalf of `onBehalf` to `receiver`.\"}},\"notice\":\"The Morpho contract.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Morpho.sol\":\"Morpho\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":4294967295},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":solmate/=lib/solmate/src/\"],\"viaIR\":true},\"sources\":{\"src/Morpho.sol\":{\"keccak256\":\"0x6df7aca60c2893658a3e40152fc917527b8c1fba860ae67a62b023ca13f06e54\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3d37ec38f9554c393e125b7fb0578510f2cdd3ce06a8ea7d5788cbb9bbe43341\",\"dweb:/ipfs/QmTq4GtEFQNQPTEJ4wHZR7viV2MiUZLPTEQwMaAiTnvDCz\"]},\"src/interfaces/IERC20.sol\":{\"keccak256\":\"0x0c7c2b3fa79ea7c74c251b0584d34a8a2802614eeffcc6f9d9822909f2813b7e\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://911b686245f8039bfd4ec5ff3130f03b8b18f05f52782d9a8c64a487ba727a70\",\"dweb:/ipfs/QmRFw3FPzfTsPBmjHT6uv1DhsXfj1zbnvwRxQT5YKkjFQa\"]},\"src/interfaces/IIrm.sol\":{\"keccak256\":\"0xddaeaeea11e94d7c93b8d09f7daa3d63bf81bdae0275706e2ab17772985aef49\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://94aff1d90af4e24400261371b37eb13c45998307e9b3dc92542abfa68331626f\",\"dweb:/ipfs/QmXms3rqe7sQBExbYgA7e75AxUUnEn37E8BSTGYtpc8nQc\"]},\"src/interfaces/IMorpho.sol\":{\"keccak256\":\"0x1f6581a03d25d416df170b83c9d52e7015d503bc9721794482fba57746b53b5e\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ac308e5e321bfad283b2a3b446a2fcb9e8471f598057854db4d5178edfcf0d06\",\"dweb:/ipfs/QmUHCJZkWsTGb6XAXm9F16DNxLXXEH8M67W44HhAv15GDx\"]},\"src/interfaces/IMorphoCallbacks.sol\":{\"keccak256\":\"0x7258d6dc3a32fccb9b05206f7643fcbb6992e29f4d6df9b7f4815147d9c7aafd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://46da02be43c0f396033c447af774c2a06781686afb3df9d4c697ec02ae39aec6\",\"dweb:/ipfs/QmWzstqJRHxajiAguSr7zHQHhz37YaFQ22pxXD7LfomRx5\"]},\"src/interfaces/IOracle.sol\":{\"keccak256\":\"0xd682c688f9d19ae6e7c7a023b85bd28c902e79a258472250595a561c86a88480\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f1be6c749a6f30c1f39006db1c1721633f90cd917e7216d81ff9fcfb218d67ab\",\"dweb:/ipfs/QmPD9HR7cXZ1Wi15ysSChdUBiLnJWiP5W6HAiqZ29gKPac\"]},\"src/libraries/ConstantsLib.sol\":{\"keccak256\":\"0x34f33fef6867defa982f42d0d543ec23d62a17580ba628dd109ad3a547e58637\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d5447f6ea5b7d83d5be7eab207d2a448caa82ce8b202090008b2fadcf87a8bfd\",\"dweb:/ipfs/Qme7ZvdhCmMrHA12AqDW5FCLwhdt5Z1c1HQ5pEkgi89YwQ\"]},\"src/libraries/ErrorsLib.sol\":{\"keccak256\":\"0xa75548857261e9edf937b0540fb6a508b9e479c8d89730b490bdf42acfcb22ca\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://130ab3751e643049ac148e6c44fd2b3b4bd4060870a1bce6e59b85769ac8bc6b\",\"dweb:/ipfs/QmRDpo55KajizDqVwfF1JsdFZmfPkMGRciXEUWt7q4aGkB\"]},\"src/libraries/EventsLib.sol\":{\"keccak256\":\"0xe337b0499820a64353386a6089c426f3985346f67035ca777e610c4e2b98c85d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://51cfa605b159273f1ecebbae6dc605a6e2c0acf70f7f39f662391fa92283b2f0\",\"dweb:/ipfs/QmZGxxfv7mVBqdH7Cs6RYiZ25YUv8zykgX5zj4hBsyabGB\"]},\"src/libraries/MarketParamsLib.sol\":{\"keccak256\":\"0x816c3f61b2d2f2cf7b3ad071b496318b463f56c9dcd01bdca3727a80ee43662a\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f50a724cc23d540d56cf95fcf673502bd9c1a5d435b89951ab9c286311022a80\",\"dweb:/ipfs/QmcJiLXw7BJGcYzCdpVajhDo6esHvu5fziaXje4ufX3G28\"]},\"src/libraries/MathLib.sol\":{\"keccak256\":\"0x1f86f8b6eea4487fbbfc206ecbbf904ddfce880f937d621d985e4e9487d8fddb\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://2f0020f26376b9015df50c1fc32ddf0a6a68601945213c34234cae3990ce33f8\",\"dweb:/ipfs/QmZcpP2wPeWmovaUNGvXQL6bkxtPzk5G5o356oNGJAEEZA\"]},\"src/libraries/SafeTransferLib.sol\":{\"keccak256\":\"0x6010465ff0fdc28a1ae5665eda31cf14302653e047c70c175673c59c5833c366\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ab3b2e1d652c987a2443d0bfffd870fc58f242cdb0eda8977d234f994d184bbe\",\"dweb:/ipfs/QmX51ivMGh9rMsz9sjR62C932Q2XuarTn5jXDcqzn48XAX\"]},\"src/libraries/SharesMathLib.sol\":{\"keccak256\":\"0x7fb38b7dfb06ca008e94f1bd53ca7353114b28d1131c7bc95d53bbc847c24d4f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://29ad2985e0cbb34c69971fd1f4faa61a589ca97aa6ddb98cb986433b9c8bf5e9\",\"dweb:/ipfs/QmdJddyCDgsL7fVNxfYbAsvpbX8uVP3w2tMmiPEi3ubTRY\"]},\"src/libraries/UtilsLib.sol\":{\"keccak256\":\"0x9069de1da6dd0f83993b82e91e1d35e81da89934b76a1fa405665f9a969e1fe9\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bcc0f2b20e92e329bf63230aff690fe5c8fc462da242999d63116024afc6b96f\",\"dweb:/ipfs/QmVrJggfaYsQnByCiN1WbHCsyTjn5KEYkyTzFRxJ2p1pU3\"]}},\"version\":1}", | |
"metadata": { | |
"compiler": { | |
"version": "0.8.19+commit.7dd6d404" | |
}, | |
"language": "Solidity", | |
"output": { | |
"abi": [ | |
{ | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "newOwner", | |
"type": "address" | |
} | |
], | |
"stateMutability": "nonpayable", | |
"type": "constructor" | |
}, | |
{ | |
"inputs": [], | |
"stateMutability": "view", | |
"type": "function", | |
"name": "DOMAIN_SEPARATOR", | |
"outputs": [ | |
{ | |
"internalType": "bytes32", | |
"name": "", | |
"type": "bytes32" | |
} | |
] | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "struct MarketParams", | |
"name": "marketParams", | |
"type": "tuple", | |
"components": [ | |
{ | |
"internalType": "address", | |
"name": "borrowableToken", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "collateralToken", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "oracle", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "irm", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "lltv", | |
"type": "uint256" | |
} | |
] | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "assets", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "shares", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "address", | |
"name": "onBehalf", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "receiver", | |
"type": "address" | |
} | |
], | |
"stateMutability": "nonpayable", | |
"type": "function", | |
"name": "borrow", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
] | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "struct MarketParams", | |
"name": "marketParams", | |
"type": "tuple", | |
"components": [ | |
{ | |
"internalType": "address", | |
"name": "borrowableToken", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "collateralToken", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "oracle", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "irm", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "lltv", | |
"type": "uint256" | |
} | |
] | |
} | |
], | |
"stateMutability": "nonpayable", | |
"type": "function", | |
"name": "createMarket" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "irm", | |
"type": "address" | |
} | |
], | |
"stateMutability": "nonpayable", | |
"type": "function", | |
"name": "enableIrm" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "lltv", | |
"type": "uint256" | |
} | |
], | |
"stateMutability": "nonpayable", | |
"type": "function", | |
"name": "enableLltv" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "bytes32[]", | |
"name": "slots", | |
"type": "bytes32[]" | |
} | |
], | |
"stateMutability": "view", | |
"type": "function", | |
"name": "extSloads", | |
"outputs": [ | |
{ | |
"internalType": "bytes32[]", | |
"name": "res", | |
"type": "bytes32[]" | |
} | |
] | |
}, | |
{ | |
"inputs": [], | |
"stateMutability": "view", | |
"type": "function", | |
"name": "feeRecipient", | |
"outputs": [ | |
{ | |
"internalType": "address", | |
"name": "", | |
"type": "address" | |
} | |
] | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "token", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "assets", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "bytes", | |
"name": "data", | |
"type": "bytes" | |
} | |
], | |
"stateMutability": "nonpayable", | |
"type": "function", | |
"name": "flashLoan" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "Id", | |
"name": "", | |
"type": "bytes32" | |
} | |
], | |
"stateMutability": "view", | |
"type": "function", | |
"name": "idToMarketParams", | |
"outputs": [ | |
{ | |
"internalType": "address", | |
"name": "borrowableToken", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "collateralToken", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "oracle", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "irm", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "lltv", | |
"type": "uint256" | |
} | |
] | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "", | |
"type": "address" | |
} | |
], | |
"stateMutability": "view", | |
"type": "function", | |
"name": "isAuthorized", | |
"outputs": [ | |
{ | |
"internalType": "bool", | |
"name": "", | |
"type": "bool" | |
} | |
] | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "", | |
"type": "address" | |
} | |
], | |
"stateMutability": "view", | |
"type": "function", | |
"name": "isIrmEnabled", | |
"outputs": [ | |
{ | |
"internalType": "bool", | |
"name": "", | |
"type": "bool" | |
} | |
] | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"stateMutability": "view", | |
"type": "function", | |
"name": "isLltvEnabled", | |
"outputs": [ | |
{ | |
"internalType": "bool", | |
"name": "", | |
"type": "bool" | |
} | |
] | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "struct MarketParams", | |
"name": "marketParams", | |
"type": "tuple", | |
"components": [ | |
{ | |
"internalType": "address", | |
"name": "borrowableToken", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "collateralToken", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "oracle", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "irm", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "lltv", | |
"type": "uint256" | |
} | |
] | |
}, | |
{ | |
"internalType": "address", | |
"name": "borrower", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "seizedAssets", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "repaidShares", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "bytes", | |
"name": "data", | |
"type": "bytes" | |
} | |
], | |
"stateMutability": "nonpayable", | |
"type": "function", | |
"name": "liquidate", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
] | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "Id", | |
"name": "", | |
"type": "bytes32" | |
} | |
], | |
"stateMutability": "view", | |
"type": "function", | |
"name": "market", | |
"outputs": [ | |
{ | |
"internalType": "uint128", | |
"name": "totalSupplyAssets", | |
"type": "uint128" | |
}, | |
{ | |
"internalType": "uint128", | |
"name": "totalSupplyShares", | |
"type": "uint128" | |
}, | |
{ | |
"internalType": "uint128", | |
"name": "totalBorrowAssets", | |
"type": "uint128" | |
}, | |
{ | |
"internalType": "uint128", | |
"name": "totalBorrowShares", | |
"type": "uint128" | |
}, | |
{ | |
"internalType": "uint128", | |
"name": "lastUpdate", | |
"type": "uint128" | |
}, | |
{ | |
"internalType": "uint128", | |
"name": "fee", | |
"type": "uint128" | |
} | |
] | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "", | |
"type": "address" | |
} | |
], | |
"stateMutability": "view", | |
"type": "function", | |
"name": "nonce", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
] | |
}, | |
{ | |
"inputs": [], | |
"stateMutability": "view", | |
"type": "function", | |
"name": "owner", | |
"outputs": [ | |
{ | |
"internalType": "address", | |
"name": "", | |
"type": "address" | |
} | |
] | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "Id", | |
"name": "", | |
"type": "bytes32" | |
}, | |
{ | |
"internalType": "address", | |
"name": "", | |
"type": "address" | |
} | |
], | |
"stateMutability": "view", | |
"type": "function", | |
"name": "position", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "supplyShares", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint128", | |
"name": "borrowShares", | |
"type": "uint128" | |
}, | |
{ | |
"internalType": "uint128", | |
"name": "collateral", | |
"type": "uint128" | |
} | |
] | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "struct MarketParams", | |
"name": "marketParams", | |
"type": "tuple", | |
"components": [ | |
{ | |
"internalType": "address", | |
"name": "borrowableToken", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "collateralToken", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "oracle", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "irm", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "lltv", | |
"type": "uint256" | |
} | |
] | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "assets", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "shares", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "address", | |
"name": "onBehalf", | |
"type": "address" | |
}, | |
{ | |
"internalType": "bytes", | |
"name": "data", | |
"type": "bytes" | |
} | |
], | |
"stateMutability": "nonpayable", | |
"type": "function", | |
"name": "repay", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
] | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "authorized", | |
"type": "address" | |
}, | |
{ | |
"internalType": "bool", | |
"name": "newIsAuthorized", | |
"type": "bool" | |
} | |
], | |
"stateMutability": "nonpayable", | |
"type": "function", | |
"name": "setAuthorization" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "struct Authorization", | |
"name": "authorization", | |
"type": "tuple", | |
"components": [ | |
{ | |
"internalType": "address", | |
"name": "authorizer", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "authorized", | |
"type": "address" | |
}, | |
{ | |
"internalType": "bool", | |
"name": "isAuthorized", | |
"type": "bool" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "nonce", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "deadline", | |
"type": "uint256" | |
} | |
] | |
}, | |
{ | |
"internalType": "struct Signature", | |
"name": "signature", | |
"type": "tuple", | |
"components": [ | |
{ | |
"internalType": "uint8", | |
"name": "v", | |
"type": "uint8" | |
}, | |
{ | |
"internalType": "bytes32", | |
"name": "r", | |
"type": "bytes32" | |
}, | |
{ | |
"internalType": "bytes32", | |
"name": "s", | |
"type": "bytes32" | |
} | |
] | |
} | |
], | |
"stateMutability": "nonpayable", | |
"type": "function", | |
"name": "setAuthorizationWithSig" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "struct MarketParams", | |
"name": "marketParams", | |
"type": "tuple", | |
"components": [ | |
{ | |
"internalType": "address", | |
"name": "borrowableToken", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "collateralToken", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "oracle", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "irm", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "lltv", | |
"type": "uint256" | |
} | |
] | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "newFee", | |
"type": "uint256" | |
} | |
], | |
"stateMutability": "nonpayable", | |
"type": "function", | |
"name": "setFee" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "newFeeRecipient", | |
"type": "address" | |
} | |
], | |
"stateMutability": "nonpayable", | |
"type": "function", | |
"name": "setFeeRecipient" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "newOwner", | |
"type": "address" | |
} | |
], | |
"stateMutability": "nonpayable", | |
"type": "function", | |
"name": "setOwner" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "struct MarketParams", | |
"name": "marketParams", | |
"type": "tuple", | |
"components": [ | |
{ | |
"internalType": "address", | |
"name": "borrowableToken", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "collateralToken", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "oracle", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "irm", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "lltv", | |
"type": "uint256" | |
} | |
] | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "assets", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "shares", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "address", | |
"name": "onBehalf", | |
"type": "address" | |
}, | |
{ | |
"internalType": "bytes", | |
"name": "data", | |
"type": "bytes" | |
} | |
], | |
"stateMutability": "nonpayable", | |
"type": "function", | |
"name": "supply", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
] | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "struct MarketParams", | |
"name": "marketParams", | |
"type": "tuple", | |
"components": [ | |
{ | |
"internalType": "address", | |
"name": "borrowableToken", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "collateralToken", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "oracle", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "irm", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "lltv", | |
"type": "uint256" | |
} | |
] | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "assets", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "address", | |
"name": "onBehalf", | |
"type": "address" | |
}, | |
{ | |
"internalType": "bytes", | |
"name": "data", | |
"type": "bytes" | |
} | |
], | |
"stateMutability": "nonpayable", | |
"type": "function", | |
"name": "supplyCollateral" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "struct MarketParams", | |
"name": "marketParams", | |
"type": "tuple", | |
"components": [ | |
{ | |
"internalType": "address", | |
"name": "borrowableToken", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "collateralToken", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "oracle", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "irm", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "lltv", | |
"type": "uint256" | |
} | |
] | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "assets", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "shares", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "address", | |
"name": "onBehalf", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "receiver", | |
"type": "address" | |
} | |
], | |
"stateMutability": "nonpayable", | |
"type": "function", | |
"name": "withdraw", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
] | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "struct MarketParams", | |
"name": "marketParams", | |
"type": "tuple", | |
"components": [ | |
{ | |
"internalType": "address", | |
"name": "borrowableToken", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "collateralToken", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "oracle", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "irm", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "lltv", | |
"type": "uint256" | |
} | |
] | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "assets", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "address", | |
"name": "onBehalf", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "receiver", | |
"type": "address" | |
} | |
], | |
"stateMutability": "nonpayable", | |
"type": "function", | |
"name": "withdrawCollateral" | |
} | |
], | |
"devdoc": { | |
"kind": "dev", | |
"methods": { | |
"borrow((address,address,address,address,uint256),uint256,uint256,address,address)": { | |
"details": "Either `assets` or `shares` should be zero. Most usecases should rely on `assets` as an input so the caller is guaranteed to borrow `assets` of tokens, but the possibility to mint a specific amount of shares is given for full compatibility and precision.`msg.sender` must be authorized to manage `onBehalf`'s positions.Borrowing a large amount can revert for overflow.", | |
"params": { | |
"assets": "The amount of assets to borrow.", | |
"marketParams": "The market to borrow assets from.", | |
"onBehalf": "The address that will own the increased borrow position.", | |
"receiver": "The address that will receive the borrowed assets.", | |
"shares": "The amount of shares to mint." | |
}, | |
"returns": { | |
"_0": "The amount of assets borrowed.", | |
"_1": "The amount of shares minted." | |
} | |
}, | |
"constructor": { | |
"params": { | |
"newOwner": "The new owner of the contract." | |
} | |
}, | |
"createMarket((address,address,address,address,uint256))": { | |
"details": "Here is the list of assumptions on the market's dependencies (tokens, IRM and oracle) that guarantees Morpho behaves as expected: - The token should be ERC-20 compliant, except that it can omit return values on `transfer` and `transferFrom`. - The token balance of Morpho should only decrease on `transfer` and `transferFrom`. In particular, tokens with burn functions are not supported. - The token should not re-enter Morpho on `transfer` nor `transferFrom`. - The token balance of the sender (resp. receiver) should decrease (resp. increase) by exactly the given amount on `transfer` and `transferFrom`. In particular, tokens with fees on transfer are not supported. - The IRM should not re-enter Morpho.Here is a list of properties on the market's dependencies that could break Morpho's liveness properties: - The token can revert on `transfer` and `transferFrom` for a reason other than an approval or balance issue. - A very high amount of assets (~1e35) supplied or borrowed can make the computation of `toSharesUp` and `toSharesDown` overflow. - The IRM can revert on `borrowRate`. - A very high borrow rate returned by the IRM can make the computation of `interest` in `_accrueInterest` overflow. - The oracle can revert on `price`. Note that this can be used to prevent `borrow`, `withdrawCollateral` and `liquidate` from being used under certain market conditions. - A very high price returned by the oracle can make the computation of `maxBorrow` in `_isHealthy` overflow, or the computation of `assetsRepaid` in `liquidate` overflow." | |
}, | |
"enableIrm(address)": { | |
"details": "Warning: It is not possible to disable an IRM." | |
}, | |
"enableLltv(uint256)": { | |
"details": "Warning: It is not possible to disable a LLTV." | |
}, | |
"flashLoan(address,uint256,bytes)": { | |
"details": "Flash loans have access to the whole balance of the contract (the liquidity and deposited collateral of all markets combined, plus donations).", | |
"params": { | |
"assets": "The amount of assets to flash loan.", | |
"data": "Arbitrary data to pass to the `onMorphoFlashLoan` callback.", | |
"token": "The token to flash loan." | |
} | |
}, | |
"liquidate((address,address,address,address,uint256),address,uint256,uint256,bytes)": { | |
"details": "Either `seizedAssets` or `repaidShares` should be zero.Seizing more than the collateral balance will underflow and revert without any error message.Repaying more than the borrow balance will underflow and revert without any error message.", | |
"params": { | |
"borrower": "The owner of the position.", | |
"data": "Arbitrary data to pass to the `onMorphoLiquidate` callback. Pass empty data if not needed.", | |
"marketParams": "The market of the position.", | |
"repaidShares": "The amount of shares to repay.", | |
"seizedAssets": "The amount of collateral to seize." | |
}, | |
"returns": { | |
"_0": "The amount of assets seized.", | |
"_1": "The amount of assets repaid." | |
} | |
}, | |
"repay((address,address,address,address,uint256),uint256,uint256,address,bytes)": { | |
"details": "Either `assets` or `shares` should be zero. To repay max, pass the `shares`'s balance of `onBehalf`.Repaying an amount corresponding to more shares than borrowed will revert for underflow.", | |
"params": { | |
"assets": "The amount of assets to repay.", | |
"data": "Arbitrary data to pass to the `onMorphoRepay` callback. Pass empty data if not needed.", | |
"marketParams": "The market to repay assets to.", | |
"onBehalf": "The address of the owner of the debt position.", | |
"shares": "The amount of shares to burn." | |
}, | |
"returns": { | |
"_0": "The amount of assets repaid.", | |
"_1": "The amount of shares burned." | |
} | |
}, | |
"setAuthorization(address,bool)": { | |
"params": { | |
"authorized": "The authorized address.", | |
"newIsAuthorized": "The new authorization status." | |
} | |
}, | |
"setAuthorizationWithSig((address,address,bool,uint256,uint256),(uint8,bytes32,bytes32))": { | |
"details": "Warning: Reverts if the signature has already been submitted.The signature is malleable, but it has no impact on the security here.The nonce is passed as argument to be able to revert with a different error message.", | |
"params": { | |
"authorization": "The `Authorization` struct.", | |
"signature": "The signature." | |
} | |
}, | |
"setFee((address,address,address,address,uint256),uint256)": { | |
"details": "Warning: The recipient can be the zero address." | |
}, | |
"setFeeRecipient(address)": { | |
"details": "Warning: The fee recipient can be set to the zero address.Warning: The fee to be accrued on each market won't belong to the old fee recipient after calling this function." | |
}, | |
"setOwner(address)": { | |
"details": "Warning: No two-step transfer ownership.Warning: The owner can be set to the zero address." | |
}, | |
"supply((address,address,address,address,uint256),uint256,uint256,address,bytes)": { | |
"details": "Either `assets` or `shares` should be zero. Most usecases should rely on `assets` as an input so the caller is guaranteed to have `assets` tokens pulled from their balance, but the possibility to mint a specific amount of shares is given for full compatibility and precision.Supplying a large amount can revert for overflow.", | |
"params": { | |
"assets": "The amount of assets to supply.", | |
"data": "Arbitrary data to pass to the `onMorphoSupply` callback. Pass empty data if not needed.", | |
"marketParams": "The market to supply assets to.", | |
"onBehalf": "The address that will own the increased supply position.", | |
"shares": "The amount of shares to mint." | |
}, | |
"returns": { | |
"_0": "The amount of assets supplied.", | |
"_1": "The amount of shares minted." | |
} | |
}, | |
"supplyCollateral((address,address,address,address,uint256),uint256,address,bytes)": { | |
"details": "Interest are not accrued since it's not required and it saves gas.Supplying a large amount can revert for overflow.", | |
"params": { | |
"assets": "The amount of collateral to supply.", | |
"data": "Arbitrary data to pass to the `onMorphoSupplyCollateral` callback. Pass empty data if not needed.", | |
"marketParams": "The market to supply collateral to.", | |
"onBehalf": "The address that will own the increased collateral position." | |
} | |
}, | |
"withdraw((address,address,address,address,uint256),uint256,uint256,address,address)": { | |
"details": "Either `assets` or `shares` should be zero. To withdraw max, pass the `shares`'s balance of `onBehalf`.`msg.sender` must be authorized to manage `onBehalf`'s positions.Withdrawing an amount corresponding to more shares than supplied will revert for underflow.", | |
"params": { | |
"assets": "The amount of assets to withdraw.", | |
"marketParams": "The market to withdraw assets from.", | |
"onBehalf": "The address of the owner of the supply position.", | |
"receiver": "The address that will receive the withdrawn assets.", | |
"shares": "The amount of shares to burn." | |
}, | |
"returns": { | |
"_0": "The amount of assets withdrawn.", | |
"_1": "The amount of shares burned." | |
} | |
}, | |
"withdrawCollateral((address,address,address,address,uint256),uint256,address,address)": { | |
"details": "`msg.sender` must be authorized to manage `onBehalf`'s positions.Withdrawing an amount corresponding to more collateral than supplied will revert for underflow.", | |
"params": { | |
"assets": "The amount of collateral to withdraw.", | |
"marketParams": "The market to withdraw collateral from.", | |
"onBehalf": "The address of the owner of the collateral position.", | |
"receiver": "The address that will receive the collateral assets." | |
} | |
} | |
}, | |
"version": 1 | |
}, | |
"userdoc": { | |
"kind": "user", | |
"methods": { | |
"DOMAIN_SEPARATOR()": { | |
"notice": "The EIP-712 domain separator." | |
}, | |
"borrow((address,address,address,address,uint256),uint256,uint256,address,address)": { | |
"notice": "Borrows `assets` or `shares` on behalf of `onBehalf` to `receiver`." | |
}, | |
"constructor": { | |
"notice": "Initializes the contract." | |
}, | |
"createMarket((address,address,address,address,uint256))": { | |
"notice": "Creates the market `marketParams`." | |
}, | |
"enableIrm(address)": { | |
"notice": "Enables `irm` as a possible IRM for market creation." | |
}, | |
"enableLltv(uint256)": { | |
"notice": "Enables `lltv` as a possible LLTV for market creation." | |
}, | |
"extSloads(bytes32[])": { | |
"notice": "Returns the data stored on the different `slots`." | |
}, | |
"feeRecipient()": { | |
"notice": "The fee recipient of all markets." | |
}, | |
"flashLoan(address,uint256,bytes)": { | |
"notice": "Executes a flash loan." | |
}, | |
"idToMarketParams(bytes32)": { | |
"notice": "The market params corresponding to `id`." | |
}, | |
"isAuthorized(address,address)": { | |
"notice": "Whether `authorized` is authorized to modify `authorizer`'s positions." | |
}, | |
"isIrmEnabled(address)": { | |
"notice": "Whether the `irm` is enabled." | |
}, | |
"isLltvEnabled(uint256)": { | |
"notice": "Whether the `lltv` is enabled." | |
}, | |
"liquidate((address,address,address,address,uint256),address,uint256,uint256,bytes)": { | |
"notice": "Liquidates the given `repaidShares` of debt asset or seize the given `seizedAssets` of collateral on the given market `marketParams` of the given `borrower`'s position, optionally calling back the caller's `onMorphoLiquidate` function with the given `data`." | |
}, | |
"market(bytes32)": { | |
"notice": "The state of the market corresponding to `id`." | |
}, | |
"nonce(address)": { | |
"notice": "The `authorizer`'s current nonce. Used to prevent replay attacks with EIP-712 signatures." | |
}, | |
"owner()": { | |
"notice": "The owner of the contract." | |
}, | |
"position(bytes32,address)": { | |
"notice": "The state of the position of `user` on the market corresponding to `id`." | |
}, | |
"repay((address,address,address,address,uint256),uint256,uint256,address,bytes)": { | |
"notice": "Repays `assets` or `shares` on behalf of `onBehalf`, optionally calling back the caller's `onMorphoReplay` function with the given `data`." | |
}, | |
"setAuthorization(address,bool)": { | |
"notice": "Sets the authorization for `authorized` to manage `msg.sender`'s positions." | |
}, | |
"setAuthorizationWithSig((address,address,bool,uint256,uint256),(uint8,bytes32,bytes32))": { | |
"notice": "Sets the authorization for `authorization.authorized` to manage `authorization.authorizer`'s positions." | |
}, | |
"setFee((address,address,address,address,uint256),uint256)": { | |
"notice": "Sets the `newFee` for the given market `marketParams`." | |
}, | |
"setFeeRecipient(address)": { | |
"notice": "Sets `newFeeRecipient` as recipient of the fee." | |
}, | |
"setOwner(address)": { | |
"notice": "Sets `newOwner` as owner of the contract." | |
}, | |
"supply((address,address,address,address,uint256),uint256,uint256,address,bytes)": { | |
"notice": "Supplies `assets` or `shares` on behalf of `onBehalf`, optionally calling back the caller's `onMorphoSupply` function with the given `data`." | |
}, | |
"supplyCollateral((address,address,address,address,uint256),uint256,address,bytes)": { | |
"notice": "Supplies `assets` of collateral on behalf of `onBehalf`, optionally calling back the caller's `onMorphoSupplyCollateral` function with the given `data`." | |
}, | |
"withdraw((address,address,address,address,uint256),uint256,uint256,address,address)": { | |
"notice": "Withdraws `assets` or `shares` on behalf of `onBehalf` to `receiver`." | |
}, | |
"withdrawCollateral((address,address,address,address,uint256),uint256,address,address)": { | |
"notice": "Withdraws `assets` of collateral on behalf of `onBehalf` to `receiver`." | |
} | |
}, | |
"version": 1 | |
} | |
}, | |
"settings": { | |
"remappings": [ | |
"ds-test/=lib/forge-std/lib/ds-test/src/", | |
"erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/", | |
"eth-gas-reporter/=node_modules/eth-gas-reporter/", | |
"forge-std/=lib/forge-std/src/", | |
"hardhat/=node_modules/hardhat/", | |
"openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/", | |
"openzeppelin/=lib/openzeppelin-contracts/contracts/", | |
"solmate/=lib/solmate/src/" | |
], | |
"optimizer": { | |
"enabled": true, | |
"runs": 4294967295 | |
}, | |
"metadata": { | |
"bytecodeHash": "ipfs" | |
}, | |
"compilationTarget": { | |
"src/Morpho.sol": "Morpho" | |
}, | |
"libraries": {}, | |
"viaIR": true | |
}, | |
"sources": { | |
"src/Morpho.sol": { | |
"keccak256": "0x6df7aca60c2893658a3e40152fc917527b8c1fba860ae67a62b023ca13f06e54", | |
"urls": [ | |
"bzz-raw://3d37ec38f9554c393e125b7fb0578510f2cdd3ce06a8ea7d5788cbb9bbe43341", | |
"dweb:/ipfs/QmTq4GtEFQNQPTEJ4wHZR7viV2MiUZLPTEQwMaAiTnvDCz" | |
], | |
"license": "BUSL-1.1" | |
}, | |
"src/interfaces/IERC20.sol": { | |
"keccak256": "0x0c7c2b3fa79ea7c74c251b0584d34a8a2802614eeffcc6f9d9822909f2813b7e", | |
"urls": [ | |
"bzz-raw://911b686245f8039bfd4ec5ff3130f03b8b18f05f52782d9a8c64a487ba727a70", | |
"dweb:/ipfs/QmRFw3FPzfTsPBmjHT6uv1DhsXfj1zbnvwRxQT5YKkjFQa" | |
], | |
"license": "GPL-2.0-or-later" | |
}, | |
"src/interfaces/IIrm.sol": { | |
"keccak256": "0xddaeaeea11e94d7c93b8d09f7daa3d63bf81bdae0275706e2ab17772985aef49", | |
"urls": [ | |
"bzz-raw://94aff1d90af4e24400261371b37eb13c45998307e9b3dc92542abfa68331626f", | |
"dweb:/ipfs/QmXms3rqe7sQBExbYgA7e75AxUUnEn37E8BSTGYtpc8nQc" | |
], | |
"license": "GPL-2.0-or-later" | |
}, | |
"src/interfaces/IMorpho.sol": { | |
"keccak256": "0x1f6581a03d25d416df170b83c9d52e7015d503bc9721794482fba57746b53b5e", | |
"urls": [ | |
"bzz-raw://ac308e5e321bfad283b2a3b446a2fcb9e8471f598057854db4d5178edfcf0d06", | |
"dweb:/ipfs/QmUHCJZkWsTGb6XAXm9F16DNxLXXEH8M67W44HhAv15GDx" | |
], | |
"license": "GPL-2.0-or-later" | |
}, | |
"src/interfaces/IMorphoCallbacks.sol": { | |
"keccak256": "0x7258d6dc3a32fccb9b05206f7643fcbb6992e29f4d6df9b7f4815147d9c7aafd", | |
"urls": [ | |
"bzz-raw://46da02be43c0f396033c447af774c2a06781686afb3df9d4c697ec02ae39aec6", | |
"dweb:/ipfs/QmWzstqJRHxajiAguSr7zHQHhz37YaFQ22pxXD7LfomRx5" | |
], | |
"license": "GPL-2.0-or-later" | |
}, | |
"src/interfaces/IOracle.sol": { | |
"keccak256": "0xd682c688f9d19ae6e7c7a023b85bd28c902e79a258472250595a561c86a88480", | |
"urls": [ | |
"bzz-raw://f1be6c749a6f30c1f39006db1c1721633f90cd917e7216d81ff9fcfb218d67ab", | |
"dweb:/ipfs/QmPD9HR7cXZ1Wi15ysSChdUBiLnJWiP5W6HAiqZ29gKPac" | |
], | |
"license": "GPL-2.0-or-later" | |
}, | |
"src/libraries/ConstantsLib.sol": { | |
"keccak256": "0x34f33fef6867defa982f42d0d543ec23d62a17580ba628dd109ad3a547e58637", | |
"urls": [ | |
"bzz-raw://d5447f6ea5b7d83d5be7eab207d2a448caa82ce8b202090008b2fadcf87a8bfd", | |
"dweb:/ipfs/Qme7ZvdhCmMrHA12AqDW5FCLwhdt5Z1c1HQ5pEkgi89YwQ" | |
], | |
"license": "GPL-2.0-or-later" | |
}, | |
"src/libraries/ErrorsLib.sol": { | |
"keccak256": "0xa75548857261e9edf937b0540fb6a508b9e479c8d89730b490bdf42acfcb22ca", | |
"urls": [ | |
"bzz-raw://130ab3751e643049ac148e6c44fd2b3b4bd4060870a1bce6e59b85769ac8bc6b", | |
"dweb:/ipfs/QmRDpo55KajizDqVwfF1JsdFZmfPkMGRciXEUWt7q4aGkB" | |
], | |
"license": "GPL-2.0-or-later" | |
}, | |
"src/libraries/EventsLib.sol": { | |
"keccak256": "0xe337b0499820a64353386a6089c426f3985346f67035ca777e610c4e2b98c85d", | |
"urls": [ | |
"bzz-raw://51cfa605b159273f1ecebbae6dc605a6e2c0acf70f7f39f662391fa92283b2f0", | |
"dweb:/ipfs/QmZGxxfv7mVBqdH7Cs6RYiZ25YUv8zykgX5zj4hBsyabGB" | |
], | |
"license": "GPL-2.0-or-later" | |
}, | |
"src/libraries/MarketParamsLib.sol": { | |
"keccak256": "0x816c3f61b2d2f2cf7b3ad071b496318b463f56c9dcd01bdca3727a80ee43662a", | |
"urls": [ | |
"bzz-raw://f50a724cc23d540d56cf95fcf673502bd9c1a5d435b89951ab9c286311022a80", | |
"dweb:/ipfs/QmcJiLXw7BJGcYzCdpVajhDo6esHvu5fziaXje4ufX3G28" | |
], | |
"license": "GPL-2.0-or-later" | |
}, | |
"src/libraries/MathLib.sol": { | |
"keccak256": "0x1f86f8b6eea4487fbbfc206ecbbf904ddfce880f937d621d985e4e9487d8fddb", | |
"urls": [ | |
"bzz-raw://2f0020f26376b9015df50c1fc32ddf0a6a68601945213c34234cae3990ce33f8", | |
"dweb:/ipfs/QmZcpP2wPeWmovaUNGvXQL6bkxtPzk5G5o356oNGJAEEZA" | |
], | |
"license": "GPL-2.0-or-later" | |
}, | |
"src/libraries/SafeTransferLib.sol": { | |
"keccak256": "0x6010465ff0fdc28a1ae5665eda31cf14302653e047c70c175673c59c5833c366", | |
"urls": [ | |
"bzz-raw://ab3b2e1d652c987a2443d0bfffd870fc58f242cdb0eda8977d234f994d184bbe", | |
"dweb:/ipfs/QmX51ivMGh9rMsz9sjR62C932Q2XuarTn5jXDcqzn48XAX" | |
], | |
"license": "GPL-2.0-or-later" | |
}, | |
"src/libraries/SharesMathLib.sol": { | |
"keccak256": "0x7fb38b7dfb06ca008e94f1bd53ca7353114b28d1131c7bc95d53bbc847c24d4f", | |
"urls": [ | |
"bzz-raw://29ad2985e0cbb34c69971fd1f4faa61a589ca97aa6ddb98cb986433b9c8bf5e9", | |
"dweb:/ipfs/QmdJddyCDgsL7fVNxfYbAsvpbX8uVP3w2tMmiPEi3ubTRY" | |
], | |
"license": "GPL-2.0-or-later" | |
}, | |
"src/libraries/UtilsLib.sol": { | |
"keccak256": "0x9069de1da6dd0f83993b82e91e1d35e81da89934b76a1fa405665f9a969e1fe9", | |
"urls": [ | |
"bzz-raw://bcc0f2b20e92e329bf63230aff690fe5c8fc462da242999d63116024afc6b96f", | |
"dweb:/ipfs/QmVrJggfaYsQnByCiN1WbHCsyTjn5KEYkyTzFRxJ2p1pU3" | |
], | |
"license": "GPL-2.0-or-later" | |
} | |
}, | |
"version": 1 | |
}, | |
"ast": { | |
"absolutePath": "src/Morpho.sol", | |
"id": 32216, | |
"exportedSymbols": { | |
"AUTHORIZATION_TYPEHASH": [ | |
32699 | |
], | |
"Authorization": [ | |
32296 | |
], | |
"DOMAIN_TYPEHASH": [ | |
32693 | |
], | |
"ErrorsLib": [ | |
32787 | |
], | |
"EventsLib": [ | |
32976 | |
], | |
"IERC20": [ | |
32219 | |
], | |
"IIrm": [ | |
32250 | |
], | |
"IMorpho": [ | |
32607 | |
], | |
"IMorphoFlashLoanCallback": [ | |
32659 | |
], | |
"IMorphoLiquidateCallback": [ | |
32619 | |
], | |
"IMorphoRepayCallback": [ | |
32629 | |
], | |
"IMorphoSupplyCallback": [ | |
32639 | |
], | |
"IMorphoSupplyCollateralCallback": [ | |
32649 | |
], | |
"IOracle": [ | |
32669 | |
], | |
"Id": [ | |
32254 | |
], | |
"LIQUIDATION_CURSOR": [ | |
32683 | |
], | |
"MAX_FEE": [ | |
32675 | |
], | |
"MAX_LIQUIDATION_INCENTIVE_FACTOR": [ | |
32687 | |
], | |
"Market": [ | |
32285 | |
], | |
"MarketParams": [ | |
32265 | |
], | |
"MarketParamsLib": [ | |
32995 | |
], | |
"MathLib": [ | |
33141 | |
], | |
"Morpho": [ | |
32215 | |
], | |
"ORACLE_PRICE_SCALE": [ | |
32679 | |
], | |
"Position": [ | |
32272 | |
], | |
"SafeTransferLib": [ | |
33273 | |
], | |
"SharesMathLib": [ | |
33382 | |
], | |
"Signature": [ | |
32303 | |
], | |
"UtilsLib": [ | |
33450 | |
], | |
"WAD": [ | |
33000 | |
] | |
}, | |
"nodeType": "SourceUnit", | |
"src": "37:20678:23", | |
"nodes": [ | |
{ | |
"id": 30045, | |
"nodeType": "PragmaDirective", | |
"src": "37:23:23", | |
"nodes": [], | |
"literals": [ | |
"solidity", | |
"0.8", | |
".19" | |
] | |
}, | |
{ | |
"id": 30053, | |
"nodeType": "ImportDirective", | |
"src": "62:111:23", | |
"nodes": [], | |
"absolutePath": "src/interfaces/IMorpho.sol", | |
"file": "./interfaces/IMorpho.sol", | |
"nameLocation": "-1:-1:-1", | |
"scope": 32216, | |
"sourceUnit": 32608, | |
"symbolAliases": [ | |
{ | |
"foreign": { | |
"id": 30046, | |
"name": "Id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32254, | |
"src": "70:2:23", | |
"typeDescriptions": {} | |
}, | |
"nameLocation": "-1:-1:-1" | |
}, | |
{ | |
"foreign": { | |
"id": 30047, | |
"name": "IMorpho", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32607, | |
"src": "74:7:23", | |
"typeDescriptions": {} | |
}, | |
"nameLocation": "-1:-1:-1" | |
}, | |
{ | |
"foreign": { | |
"id": 30048, | |
"name": "MarketParams", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32265, | |
"src": "83:12:23", | |
"typeDescriptions": {} | |
}, | |
"nameLocation": "-1:-1:-1" | |
}, | |
{ | |
"foreign": { | |
"id": 30049, | |
"name": "Position", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32272, | |
"src": "97:8:23", | |
"typeDescriptions": {} | |
}, | |
"nameLocation": "-1:-1:-1" | |
}, | |
{ | |
"foreign": { | |
"id": 30050, | |
"name": "Market", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32285, | |
"src": "107:6:23", | |
"typeDescriptions": {} | |
}, | |
"nameLocation": "-1:-1:-1" | |
}, | |
{ | |
"foreign": { | |
"id": 30051, | |
"name": "Authorization", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32296, | |
"src": "115:13:23", | |
"typeDescriptions": {} | |
}, | |
"nameLocation": "-1:-1:-1" | |
}, | |
{ | |
"foreign": { | |
"id": 30052, | |
"name": "Signature", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32303, | |
"src": "130:9:23", | |
"typeDescriptions": {} | |
}, | |
"nameLocation": "-1:-1:-1" | |
} | |
], | |
"unitAlias": "" | |
}, | |
{ | |
"id": 30059, | |
"nodeType": "ImportDirective", | |
"src": "174:201:23", | |
"nodes": [], | |
"absolutePath": "src/interfaces/IMorphoCallbacks.sol", | |
"file": "./interfaces/IMorphoCallbacks.sol", | |
"nameLocation": "-1:-1:-1", | |
"scope": 32216, | |
"sourceUnit": 32660, | |
"symbolAliases": [ | |
{ | |
"foreign": { | |
"id": 30054, | |
"name": "IMorphoLiquidateCallback", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32619, | |
"src": "187:24:23", | |
"typeDescriptions": {} | |
}, | |
"nameLocation": "-1:-1:-1" | |
}, | |
{ | |
"foreign": { | |
"id": 30055, | |
"name": "IMorphoRepayCallback", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32629, | |
"src": "217:20:23", | |
"typeDescriptions": {} | |
}, | |
"nameLocation": "-1:-1:-1" | |
}, | |
{ | |
"foreign": { | |
"id": 30056, | |
"name": "IMorphoSupplyCallback", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32639, | |
"src": "243:21:23", | |
"typeDescriptions": {} | |
}, | |
"nameLocation": "-1:-1:-1" | |
}, | |
{ | |
"foreign": { | |
"id": 30057, | |
"name": "IMorphoSupplyCollateralCallback", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32649, | |
"src": "270:31:23", | |
"typeDescriptions": {} | |
}, | |
"nameLocation": "-1:-1:-1" | |
}, | |
{ | |
"foreign": { | |
"id": 30058, | |
"name": "IMorphoFlashLoanCallback", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32659, | |
"src": "307:24:23", | |
"typeDescriptions": {} | |
}, | |
"nameLocation": "-1:-1:-1" | |
} | |
], | |
"unitAlias": "" | |
}, | |
{ | |
"id": 30061, | |
"nodeType": "ImportDirective", | |
"src": "376:43:23", | |
"nodes": [], | |
"absolutePath": "src/interfaces/IIrm.sol", | |
"file": "./interfaces/IIrm.sol", | |
"nameLocation": "-1:-1:-1", | |
"scope": 32216, | |
"sourceUnit": 32251, | |
"symbolAliases": [ | |
{ | |
"foreign": { | |
"id": 30060, | |
"name": "IIrm", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32250, | |
"src": "384:4:23", | |
"typeDescriptions": {} | |
}, | |
"nameLocation": "-1:-1:-1" | |
} | |
], | |
"unitAlias": "" | |
}, | |
{ | |
"id": 30063, | |
"nodeType": "ImportDirective", | |
"src": "420:47:23", | |
"nodes": [], | |
"absolutePath": "src/interfaces/IERC20.sol", | |
"file": "./interfaces/IERC20.sol", | |
"nameLocation": "-1:-1:-1", | |
"scope": 32216, | |
"sourceUnit": 32220, | |
"symbolAliases": [ | |
{ | |
"foreign": { | |
"id": 30062, | |
"name": "IERC20", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32219, | |
"src": "428:6:23", | |
"typeDescriptions": {} | |
}, | |
"nameLocation": "-1:-1:-1" | |
} | |
], | |
"unitAlias": "" | |
}, | |
{ | |
"id": 30065, | |
"nodeType": "ImportDirective", | |
"src": "468:49:23", | |
"nodes": [], | |
"absolutePath": "src/interfaces/IOracle.sol", | |
"file": "./interfaces/IOracle.sol", | |
"nameLocation": "-1:-1:-1", | |
"scope": 32216, | |
"sourceUnit": 32670, | |
"symbolAliases": [ | |
{ | |
"foreign": { | |
"id": 30064, | |
"name": "IOracle", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32669, | |
"src": "476:7:23", | |
"typeDescriptions": {} | |
}, | |
"nameLocation": "-1:-1:-1" | |
} | |
], | |
"unitAlias": "" | |
}, | |
{ | |
"id": 30066, | |
"nodeType": "ImportDirective", | |
"src": "519:38:23", | |
"nodes": [], | |
"absolutePath": "src/libraries/ConstantsLib.sol", | |
"file": "./libraries/ConstantsLib.sol", | |
"nameLocation": "-1:-1:-1", | |
"scope": 32216, | |
"sourceUnit": 32700, | |
"symbolAliases": [], | |
"unitAlias": "" | |
}, | |
{ | |
"id": 30068, | |
"nodeType": "ImportDirective", | |
"src": "558:50:23", | |
"nodes": [], | |
"absolutePath": "src/libraries/UtilsLib.sol", | |
"file": "./libraries/UtilsLib.sol", | |
"nameLocation": "-1:-1:-1", | |
"scope": 32216, | |
"sourceUnit": 33451, | |
"symbolAliases": [ | |
{ | |
"foreign": { | |
"id": 30067, | |
"name": "UtilsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 33450, | |
"src": "566:8:23", | |
"typeDescriptions": {} | |
}, | |
"nameLocation": "-1:-1:-1" | |
} | |
], | |
"unitAlias": "" | |
}, | |
{ | |
"id": 30070, | |
"nodeType": "ImportDirective", | |
"src": "609:52:23", | |
"nodes": [], | |
"absolutePath": "src/libraries/EventsLib.sol", | |
"file": "./libraries/EventsLib.sol", | |
"nameLocation": "-1:-1:-1", | |
"scope": 32216, | |
"sourceUnit": 32977, | |
"symbolAliases": [ | |
{ | |
"foreign": { | |
"id": 30069, | |
"name": "EventsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32976, | |
"src": "617:9:23", | |
"typeDescriptions": {} | |
}, | |
"nameLocation": "-1:-1:-1" | |
} | |
], | |
"unitAlias": "" | |
}, | |
{ | |
"id": 30072, | |
"nodeType": "ImportDirective", | |
"src": "662:52:23", | |
"nodes": [], | |
"absolutePath": "src/libraries/ErrorsLib.sol", | |
"file": "./libraries/ErrorsLib.sol", | |
"nameLocation": "-1:-1:-1", | |
"scope": 32216, | |
"sourceUnit": 32788, | |
"symbolAliases": [ | |
{ | |
"foreign": { | |
"id": 30071, | |
"name": "ErrorsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32787, | |
"src": "670:9:23", | |
"typeDescriptions": {} | |
}, | |
"nameLocation": "-1:-1:-1" | |
} | |
], | |
"unitAlias": "" | |
}, | |
{ | |
"id": 30075, | |
"nodeType": "ImportDirective", | |
"src": "715:53:23", | |
"nodes": [], | |
"absolutePath": "src/libraries/MathLib.sol", | |
"file": "./libraries/MathLib.sol", | |
"nameLocation": "-1:-1:-1", | |
"scope": 32216, | |
"sourceUnit": 33142, | |
"symbolAliases": [ | |
{ | |
"foreign": { | |
"id": 30073, | |
"name": "MathLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 33141, | |
"src": "723:7:23", | |
"typeDescriptions": {} | |
}, | |
"nameLocation": "-1:-1:-1" | |
}, | |
{ | |
"foreign": { | |
"id": 30074, | |
"name": "WAD", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 33000, | |
"src": "732:3:23", | |
"typeDescriptions": {} | |
}, | |
"nameLocation": "-1:-1:-1" | |
} | |
], | |
"unitAlias": "" | |
}, | |
{ | |
"id": 30077, | |
"nodeType": "ImportDirective", | |
"src": "769:60:23", | |
"nodes": [], | |
"absolutePath": "src/libraries/SharesMathLib.sol", | |
"file": "./libraries/SharesMathLib.sol", | |
"nameLocation": "-1:-1:-1", | |
"scope": 32216, | |
"sourceUnit": 33383, | |
"symbolAliases": [ | |
{ | |
"foreign": { | |
"id": 30076, | |
"name": "SharesMathLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 33382, | |
"src": "777:13:23", | |
"typeDescriptions": {} | |
}, | |
"nameLocation": "-1:-1:-1" | |
} | |
], | |
"unitAlias": "" | |
}, | |
{ | |
"id": 30079, | |
"nodeType": "ImportDirective", | |
"src": "830:64:23", | |
"nodes": [], | |
"absolutePath": "src/libraries/MarketParamsLib.sol", | |
"file": "./libraries/MarketParamsLib.sol", | |
"nameLocation": "-1:-1:-1", | |
"scope": 32216, | |
"sourceUnit": 32996, | |
"symbolAliases": [ | |
{ | |
"foreign": { | |
"id": 30078, | |
"name": "MarketParamsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32995, | |
"src": "838:15:23", | |
"typeDescriptions": {} | |
}, | |
"nameLocation": "-1:-1:-1" | |
} | |
], | |
"unitAlias": "" | |
}, | |
{ | |
"id": 30081, | |
"nodeType": "ImportDirective", | |
"src": "895:64:23", | |
"nodes": [], | |
"absolutePath": "src/libraries/SafeTransferLib.sol", | |
"file": "./libraries/SafeTransferLib.sol", | |
"nameLocation": "-1:-1:-1", | |
"scope": 32216, | |
"sourceUnit": 33274, | |
"symbolAliases": [ | |
{ | |
"foreign": { | |
"id": 30080, | |
"name": "SafeTransferLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 33273, | |
"src": "903:15:23", | |
"typeDescriptions": {} | |
}, | |
"nameLocation": "-1:-1:-1" | |
} | |
], | |
"unitAlias": "" | |
}, | |
{ | |
"id": 32215, | |
"nodeType": "ContractDefinition", | |
"src": "1076:19638:23", | |
"nodes": [ | |
{ | |
"id": 30087, | |
"nodeType": "UsingForDirective", | |
"src": "1109:26:23", | |
"nodes": [], | |
"global": false, | |
"libraryName": { | |
"id": 30085, | |
"name": "MathLib", | |
"nameLocations": [ | |
"1115:7:23" | |
], | |
"nodeType": "IdentifierPath", | |
"referencedDeclaration": 33141, | |
"src": "1115:7:23" | |
}, | |
"typeName": { | |
"id": 30086, | |
"name": "uint128", | |
"nodeType": "ElementaryTypeName", | |
"src": "1127:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
} | |
}, | |
{ | |
"id": 30090, | |
"nodeType": "UsingForDirective", | |
"src": "1140:26:23", | |
"nodes": [], | |
"global": false, | |
"libraryName": { | |
"id": 30088, | |
"name": "MathLib", | |
"nameLocations": [ | |
"1146:7:23" | |
], | |
"nodeType": "IdentifierPath", | |
"referencedDeclaration": 33141, | |
"src": "1146:7:23" | |
}, | |
"typeName": { | |
"id": 30089, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "1158:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
}, | |
{ | |
"id": 30093, | |
"nodeType": "UsingForDirective", | |
"src": "1171:27:23", | |
"nodes": [], | |
"global": false, | |
"libraryName": { | |
"id": 30091, | |
"name": "UtilsLib", | |
"nameLocations": [ | |
"1177:8:23" | |
], | |
"nodeType": "IdentifierPath", | |
"referencedDeclaration": 33450, | |
"src": "1177:8:23" | |
}, | |
"typeName": { | |
"id": 30092, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "1190:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
}, | |
{ | |
"id": 30096, | |
"nodeType": "UsingForDirective", | |
"src": "1203:32:23", | |
"nodes": [], | |
"global": false, | |
"libraryName": { | |
"id": 30094, | |
"name": "SharesMathLib", | |
"nameLocations": [ | |
"1209:13:23" | |
], | |
"nodeType": "IdentifierPath", | |
"referencedDeclaration": 33382, | |
"src": "1209:13:23" | |
}, | |
"typeName": { | |
"id": 30095, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "1227:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
}, | |
{ | |
"id": 30100, | |
"nodeType": "UsingForDirective", | |
"src": "1240:33:23", | |
"nodes": [], | |
"global": false, | |
"libraryName": { | |
"id": 30097, | |
"name": "SafeTransferLib", | |
"nameLocations": [ | |
"1246:15:23" | |
], | |
"nodeType": "IdentifierPath", | |
"referencedDeclaration": 33273, | |
"src": "1246:15:23" | |
}, | |
"typeName": { | |
"id": 30099, | |
"nodeType": "UserDefinedTypeName", | |
"pathNode": { | |
"id": 30098, | |
"name": "IERC20", | |
"nameLocations": [ | |
"1266:6:23" | |
], | |
"nodeType": "IdentifierPath", | |
"referencedDeclaration": 32219, | |
"src": "1266:6:23" | |
}, | |
"referencedDeclaration": 32219, | |
"src": "1266:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_contract$_IERC20_$32219", | |
"typeString": "contract IERC20" | |
} | |
} | |
}, | |
{ | |
"id": 30104, | |
"nodeType": "UsingForDirective", | |
"src": "1278:39:23", | |
"nodes": [], | |
"global": false, | |
"libraryName": { | |
"id": 30101, | |
"name": "MarketParamsLib", | |
"nameLocations": [ | |
"1284:15:23" | |
], | |
"nodeType": "IdentifierPath", | |
"referencedDeclaration": 32995, | |
"src": "1284:15:23" | |
}, | |
"typeName": { | |
"id": 30103, | |
"nodeType": "UserDefinedTypeName", | |
"pathNode": { | |
"id": 30102, | |
"name": "MarketParams", | |
"nameLocations": [ | |
"1304:12:23" | |
], | |
"nodeType": "IdentifierPath", | |
"referencedDeclaration": 32265, | |
"src": "1304:12:23" | |
}, | |
"referencedDeclaration": 32265, | |
"src": "1304:12:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_MarketParams_$32265_storage_ptr", | |
"typeString": "struct MarketParams" | |
} | |
} | |
}, | |
{ | |
"id": 30107, | |
"nodeType": "VariableDeclaration", | |
"src": "1373:41:23", | |
"nodes": [], | |
"baseFunctions": [ | |
32310 | |
], | |
"constant": false, | |
"documentation": { | |
"id": 30105, | |
"nodeType": "StructuredDocumentation", | |
"src": "1345:23:23", | |
"text": "@inheritdoc IMorpho" | |
}, | |
"functionSelector": "3644e515", | |
"mutability": "immutable", | |
"name": "DOMAIN_SEPARATOR", | |
"nameLocation": "1398:16:23", | |
"scope": 32215, | |
"stateVariable": true, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
}, | |
"typeName": { | |
"id": 30106, | |
"name": "bytes32", | |
"nodeType": "ElementaryTypeName", | |
"src": "1373:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
} | |
}, | |
"visibility": "public" | |
}, | |
{ | |
"id": 30110, | |
"nodeType": "VariableDeclaration", | |
"src": "1468:20:23", | |
"nodes": [], | |
"baseFunctions": [ | |
32316 | |
], | |
"constant": false, | |
"documentation": { | |
"id": 30108, | |
"nodeType": "StructuredDocumentation", | |
"src": "1440:23:23", | |
"text": "@inheritdoc IMorpho" | |
}, | |
"functionSelector": "8da5cb5b", | |
"mutability": "mutable", | |
"name": "owner", | |
"nameLocation": "1483:5:23", | |
"scope": 32215, | |
"stateVariable": true, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 30109, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "1468:7:23", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"visibility": "public" | |
}, | |
{ | |
"id": 30113, | |
"nodeType": "VariableDeclaration", | |
"src": "1522:27:23", | |
"nodes": [], | |
"baseFunctions": [ | |
32322 | |
], | |
"constant": false, | |
"documentation": { | |
"id": 30111, | |
"nodeType": "StructuredDocumentation", | |
"src": "1494:23:23", | |
"text": "@inheritdoc IMorpho" | |
}, | |
"functionSelector": "46904840", | |
"mutability": "mutable", | |
"name": "feeRecipient", | |
"nameLocation": "1537:12:23", | |
"scope": 32215, | |
"stateVariable": true, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 30112, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "1522:7:23", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"visibility": "public" | |
}, | |
{ | |
"id": 30122, | |
"nodeType": "VariableDeclaration", | |
"src": "1583:59:23", | |
"nodes": [], | |
"baseFunctions": [ | |
32337 | |
], | |
"constant": false, | |
"documentation": { | |
"id": 30114, | |
"nodeType": "StructuredDocumentation", | |
"src": "1555:23:23", | |
"text": "@inheritdoc IMorpho" | |
}, | |
"functionSelector": "93c52062", | |
"mutability": "mutable", | |
"name": "position", | |
"nameLocation": "1634:8:23", | |
"scope": 32215, | |
"stateVariable": true, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_mapping$_t_address_$_t_struct$_Position_$32272_storage_$_$", | |
"typeString": "mapping(Id => mapping(address => struct Position))" | |
}, | |
"typeName": { | |
"id": 30121, | |
"keyName": "", | |
"keyNameLocation": "-1:-1:-1", | |
"keyType": { | |
"id": 30116, | |
"nodeType": "UserDefinedTypeName", | |
"pathNode": { | |
"id": 30115, | |
"name": "Id", | |
"nameLocations": [ | |
"1591:2:23" | |
], | |
"nodeType": "IdentifierPath", | |
"referencedDeclaration": 32254, | |
"src": "1591:2:23" | |
}, | |
"referencedDeclaration": 32254, | |
"src": "1591:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"nodeType": "Mapping", | |
"src": "1583:43:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_mapping$_t_address_$_t_struct$_Position_$32272_storage_$_$", | |
"typeString": "mapping(Id => mapping(address => struct Position))" | |
}, | |
"valueName": "", | |
"valueNameLocation": "-1:-1:-1", | |
"valueType": { | |
"id": 30120, | |
"keyName": "", | |
"keyNameLocation": "-1:-1:-1", | |
"keyType": { | |
"id": 30117, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "1605:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "Mapping", | |
"src": "1597:28:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Position_$32272_storage_$", | |
"typeString": "mapping(address => struct Position)" | |
}, | |
"valueName": "", | |
"valueNameLocation": "-1:-1:-1", | |
"valueType": { | |
"id": 30119, | |
"nodeType": "UserDefinedTypeName", | |
"pathNode": { | |
"id": 30118, | |
"name": "Position", | |
"nameLocations": [ | |
"1616:8:23" | |
], | |
"nodeType": "IdentifierPath", | |
"referencedDeclaration": 32272, | |
"src": "1616:8:23" | |
}, | |
"referencedDeclaration": 32272, | |
"src": "1616:8:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Position_$32272_storage_ptr", | |
"typeString": "struct Position" | |
} | |
} | |
} | |
}, | |
"visibility": "public" | |
}, | |
{ | |
"id": 30129, | |
"nodeType": "VariableDeclaration", | |
"src": "1676:35:23", | |
"nodes": [], | |
"baseFunctions": [ | |
32356 | |
], | |
"constant": false, | |
"documentation": { | |
"id": 30123, | |
"nodeType": "StructuredDocumentation", | |
"src": "1648:23:23", | |
"text": "@inheritdoc IMorpho" | |
}, | |
"functionSelector": "5c60e39a", | |
"mutability": "mutable", | |
"name": "market", | |
"nameLocation": "1705:6:23", | |
"scope": 32215, | |
"stateVariable": true, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_struct$_Market_$32285_storage_$", | |
"typeString": "mapping(Id => struct Market)" | |
}, | |
"typeName": { | |
"id": 30128, | |
"keyName": "", | |
"keyNameLocation": "-1:-1:-1", | |
"keyType": { | |
"id": 30125, | |
"nodeType": "UserDefinedTypeName", | |
"pathNode": { | |
"id": 30124, | |
"name": "Id", | |
"nameLocations": [ | |
"1684:2:23" | |
], | |
"nodeType": "IdentifierPath", | |
"referencedDeclaration": 32254, | |
"src": "1684:2:23" | |
}, | |
"referencedDeclaration": 32254, | |
"src": "1684:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"nodeType": "Mapping", | |
"src": "1676:21:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_struct$_Market_$32285_storage_$", | |
"typeString": "mapping(Id => struct Market)" | |
}, | |
"valueName": "", | |
"valueNameLocation": "-1:-1:-1", | |
"valueType": { | |
"id": 30127, | |
"nodeType": "UserDefinedTypeName", | |
"pathNode": { | |
"id": 30126, | |
"name": "Market", | |
"nameLocations": [ | |
"1690:6:23" | |
], | |
"nodeType": "IdentifierPath", | |
"referencedDeclaration": 32285, | |
"src": "1690:6:23" | |
}, | |
"referencedDeclaration": 32285, | |
"src": "1690:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Market_$32285_storage_ptr", | |
"typeString": "struct Market" | |
} | |
} | |
}, | |
"visibility": "public" | |
}, | |
{ | |
"id": 30134, | |
"nodeType": "VariableDeclaration", | |
"src": "1745:44:23", | |
"nodes": [], | |
"baseFunctions": [ | |
32364 | |
], | |
"constant": false, | |
"documentation": { | |
"id": 30130, | |
"nodeType": "StructuredDocumentation", | |
"src": "1717:23:23", | |
"text": "@inheritdoc IMorpho" | |
}, | |
"functionSelector": "f2b863ce", | |
"mutability": "mutable", | |
"name": "isIrmEnabled", | |
"nameLocation": "1777:12:23", | |
"scope": 32215, | |
"stateVariable": true, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_bool_$", | |
"typeString": "mapping(address => bool)" | |
}, | |
"typeName": { | |
"id": 30133, | |
"keyName": "", | |
"keyNameLocation": "-1:-1:-1", | |
"keyType": { | |
"id": 30131, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "1753:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "Mapping", | |
"src": "1745:24:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_bool_$", | |
"typeString": "mapping(address => bool)" | |
}, | |
"valueName": "", | |
"valueNameLocation": "-1:-1:-1", | |
"valueType": { | |
"id": 30132, | |
"name": "bool", | |
"nodeType": "ElementaryTypeName", | |
"src": "1764:4:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
} | |
}, | |
"visibility": "public" | |
}, | |
{ | |
"id": 30139, | |
"nodeType": "VariableDeclaration", | |
"src": "1823:45:23", | |
"nodes": [], | |
"baseFunctions": [ | |
32372 | |
], | |
"constant": false, | |
"documentation": { | |
"id": 30135, | |
"nodeType": "StructuredDocumentation", | |
"src": "1795:23:23", | |
"text": "@inheritdoc IMorpho" | |
}, | |
"functionSelector": "b485f3b8", | |
"mutability": "mutable", | |
"name": "isLltvEnabled", | |
"nameLocation": "1855:13:23", | |
"scope": 32215, | |
"stateVariable": true, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", | |
"typeString": "mapping(uint256 => bool)" | |
}, | |
"typeName": { | |
"id": 30138, | |
"keyName": "", | |
"keyNameLocation": "-1:-1:-1", | |
"keyType": { | |
"id": 30136, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "1831:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "Mapping", | |
"src": "1823:24:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", | |
"typeString": "mapping(uint256 => bool)" | |
}, | |
"valueName": "", | |
"valueNameLocation": "-1:-1:-1", | |
"valueType": { | |
"id": 30137, | |
"name": "bool", | |
"nodeType": "ElementaryTypeName", | |
"src": "1842:4:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
} | |
}, | |
"visibility": "public" | |
}, | |
{ | |
"id": 30146, | |
"nodeType": "VariableDeclaration", | |
"src": "1902:64:23", | |
"nodes": [], | |
"baseFunctions": [ | |
32382 | |
], | |
"constant": false, | |
"documentation": { | |
"id": 30140, | |
"nodeType": "StructuredDocumentation", | |
"src": "1874:23:23", | |
"text": "@inheritdoc IMorpho" | |
}, | |
"functionSelector": "65e4ad9e", | |
"mutability": "mutable", | |
"name": "isAuthorized", | |
"nameLocation": "1954:12:23", | |
"scope": 32215, | |
"stateVariable": true, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", | |
"typeString": "mapping(address => mapping(address => bool))" | |
}, | |
"typeName": { | |
"id": 30145, | |
"keyName": "", | |
"keyNameLocation": "-1:-1:-1", | |
"keyType": { | |
"id": 30141, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "1910:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "Mapping", | |
"src": "1902:44:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", | |
"typeString": "mapping(address => mapping(address => bool))" | |
}, | |
"valueName": "", | |
"valueNameLocation": "-1:-1:-1", | |
"valueType": { | |
"id": 30144, | |
"keyName": "", | |
"keyNameLocation": "-1:-1:-1", | |
"keyType": { | |
"id": 30142, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "1929:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "Mapping", | |
"src": "1921:24:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_bool_$", | |
"typeString": "mapping(address => bool)" | |
}, | |
"valueName": "", | |
"valueNameLocation": "-1:-1:-1", | |
"valueType": { | |
"id": 30143, | |
"name": "bool", | |
"nodeType": "ElementaryTypeName", | |
"src": "1940:4:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
} | |
} | |
}, | |
"visibility": "public" | |
}, | |
{ | |
"id": 30151, | |
"nodeType": "VariableDeclaration", | |
"src": "2000:40:23", | |
"nodes": [], | |
"baseFunctions": [ | |
32390 | |
], | |
"constant": false, | |
"documentation": { | |
"id": 30147, | |
"nodeType": "StructuredDocumentation", | |
"src": "1972:23:23", | |
"text": "@inheritdoc IMorpho" | |
}, | |
"functionSelector": "70ae92d2", | |
"mutability": "mutable", | |
"name": "nonce", | |
"nameLocation": "2035:5:23", | |
"scope": 32215, | |
"stateVariable": true, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", | |
"typeString": "mapping(address => uint256)" | |
}, | |
"typeName": { | |
"id": 30150, | |
"keyName": "", | |
"keyNameLocation": "-1:-1:-1", | |
"keyType": { | |
"id": 30148, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "2008:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "Mapping", | |
"src": "2000:27:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", | |
"typeString": "mapping(address => uint256)" | |
}, | |
"valueName": "", | |
"valueNameLocation": "-1:-1:-1", | |
"valueType": { | |
"id": 30149, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "2019:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
}, | |
"visibility": "public" | |
}, | |
{ | |
"id": 30158, | |
"nodeType": "VariableDeclaration", | |
"src": "2074:51:23", | |
"nodes": [], | |
"baseFunctions": [ | |
32407 | |
], | |
"constant": false, | |
"documentation": { | |
"id": 30152, | |
"nodeType": "StructuredDocumentation", | |
"src": "2046:23:23", | |
"text": "@inheritdoc IMorpho" | |
}, | |
"functionSelector": "2c3c9157", | |
"mutability": "mutable", | |
"name": "idToMarketParams", | |
"nameLocation": "2109:16:23", | |
"scope": 32215, | |
"stateVariable": true, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_struct$_MarketParams_$32265_storage_$", | |
"typeString": "mapping(Id => struct MarketParams)" | |
}, | |
"typeName": { | |
"id": 30157, | |
"keyName": "", | |
"keyNameLocation": "-1:-1:-1", | |
"keyType": { | |
"id": 30154, | |
"nodeType": "UserDefinedTypeName", | |
"pathNode": { | |
"id": 30153, | |
"name": "Id", | |
"nameLocations": [ | |
"2082:2:23" | |
], | |
"nodeType": "IdentifierPath", | |
"referencedDeclaration": 32254, | |
"src": "2082:2:23" | |
}, | |
"referencedDeclaration": 32254, | |
"src": "2082:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"nodeType": "Mapping", | |
"src": "2074:27:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_struct$_MarketParams_$32265_storage_$", | |
"typeString": "mapping(Id => struct MarketParams)" | |
}, | |
"valueName": "", | |
"valueNameLocation": "-1:-1:-1", | |
"valueType": { | |
"id": 30156, | |
"nodeType": "UserDefinedTypeName", | |
"pathNode": { | |
"id": 30155, | |
"name": "MarketParams", | |
"nameLocations": [ | |
"2088:12:23" | |
], | |
"nodeType": "IdentifierPath", | |
"referencedDeclaration": 32265, | |
"src": "2088:12:23" | |
}, | |
"referencedDeclaration": 32265, | |
"src": "2088:12:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_MarketParams_$32265_storage_ptr", | |
"typeString": "struct MarketParams" | |
} | |
} | |
}, | |
"visibility": "public" | |
}, | |
{ | |
"id": 30195, | |
"nodeType": "FunctionDefinition", | |
"src": "2252:226:23", | |
"nodes": [], | |
"body": { | |
"id": 30194, | |
"nodeType": "Block", | |
"src": "2282:196:23", | |
"nodes": [], | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"commonType": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"id": 30170, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"id": 30165, | |
"name": "newOwner", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30161, | |
"src": "2300:8:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "!=", | |
"rightExpression": { | |
"arguments": [ | |
{ | |
"hexValue": "30", | |
"id": 30168, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "2320:1:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
}, | |
"value": "0" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
} | |
], | |
"id": 30167, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"nodeType": "ElementaryTypeNameExpression", | |
"src": "2312:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_address_$", | |
"typeString": "type(address)" | |
}, | |
"typeName": { | |
"id": 30166, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "2312:7:23", | |
"typeDescriptions": {} | |
} | |
}, | |
"id": 30169, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "2312:10:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"src": "2300:22:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"expression": { | |
"id": 30171, | |
"name": "ErrorsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32787, | |
"src": "2324:9:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_ErrorsLib_$32787_$", | |
"typeString": "type(library ErrorsLib)" | |
} | |
}, | |
"id": 30172, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"memberLocation": "2334:12:23", | |
"memberName": "ZERO_ADDRESS", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32746, | |
"src": "2324:22:23", | |
"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": 30164, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
-18, | |
-18 | |
], | |
"referencedDeclaration": -18, | |
"src": "2292:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 30173, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "2292:55:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 30174, | |
"nodeType": "ExpressionStatement", | |
"src": "2292:55:23" | |
}, | |
{ | |
"expression": { | |
"id": 30177, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"id": 30175, | |
"name": "owner", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30110, | |
"src": "2358:5:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"id": 30176, | |
"name": "newOwner", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30161, | |
"src": "2366:8:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"src": "2358:16:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"id": 30178, | |
"nodeType": "ExpressionStatement", | |
"src": "2358:16:23" | |
}, | |
{ | |
"expression": { | |
"id": 30192, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"id": 30179, | |
"name": "DOMAIN_SEPARATOR", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30107, | |
"src": "2384:16:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"id": 30183, | |
"name": "DOMAIN_TYPEHASH", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32693, | |
"src": "2424:15:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
} | |
}, | |
{ | |
"expression": { | |
"id": 30184, | |
"name": "block", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": -4, | |
"src": "2441:5:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_block", | |
"typeString": "block" | |
} | |
}, | |
"id": 30185, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "2447:7:23", | |
"memberName": "chainid", | |
"nodeType": "MemberAccess", | |
"src": "2441:13:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"arguments": [ | |
{ | |
"id": 30188, | |
"name": "this", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": -28, | |
"src": "2464:4:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_contract$_Morpho_$32215", | |
"typeString": "contract Morpho" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_contract$_Morpho_$32215", | |
"typeString": "contract Morpho" | |
} | |
], | |
"id": 30187, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"nodeType": "ElementaryTypeNameExpression", | |
"src": "2456:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_address_$", | |
"typeString": "type(address)" | |
}, | |
"typeName": { | |
"id": 30186, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "2456:7:23", | |
"typeDescriptions": {} | |
} | |
}, | |
"id": 30189, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "2456:13:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
], | |
"expression": { | |
"id": 30181, | |
"name": "abi", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": -1, | |
"src": "2413:3:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_abi", | |
"typeString": "abi" | |
} | |
}, | |
"id": 30182, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"memberLocation": "2417:6:23", | |
"memberName": "encode", | |
"nodeType": "MemberAccess", | |
"src": "2413:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", | |
"typeString": "function () pure returns (bytes memory)" | |
} | |
}, | |
"id": 30190, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "2413:57:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes_memory_ptr", | |
"typeString": "bytes memory" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bytes_memory_ptr", | |
"typeString": "bytes memory" | |
} | |
], | |
"id": 30180, | |
"name": "keccak256", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": -8, | |
"src": "2403:9:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", | |
"typeString": "function (bytes memory) pure returns (bytes32)" | |
} | |
}, | |
"id": 30191, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "2403:68:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
} | |
}, | |
"src": "2384:87:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
} | |
}, | |
"id": 30193, | |
"nodeType": "ExpressionStatement", | |
"src": "2384:87:23" | |
} | |
] | |
}, | |
"documentation": { | |
"id": 30159, | |
"nodeType": "StructuredDocumentation", | |
"src": "2155:92:23", | |
"text": "@notice Initializes the contract.\n @param newOwner The new owner of the contract." | |
}, | |
"implemented": true, | |
"kind": "constructor", | |
"modifiers": [], | |
"name": "", | |
"nameLocation": "-1:-1:-1", | |
"parameters": { | |
"id": 30162, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 30161, | |
"mutability": "mutable", | |
"name": "newOwner", | |
"nameLocation": "2272:8:23", | |
"nodeType": "VariableDeclaration", | |
"scope": 30195, | |
"src": "2264:16:23", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 30160, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "2264:7:23", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"visibility": "internal" | |
} | |
], | |
"src": "2263:18:23" | |
}, | |
"returnParameters": { | |
"id": 30163, | |
"nodeType": "ParameterList", | |
"parameters": [], | |
"src": "2282:0:23" | |
}, | |
"scope": 32215, | |
"stateMutability": "nonpayable", | |
"virtual": false, | |
"visibility": "public" | |
}, | |
{ | |
"id": 30209, | |
"nodeType": "ModifierDefinition", | |
"src": "2561:98:23", | |
"nodes": [], | |
"body": { | |
"id": 30208, | |
"nodeType": "Block", | |
"src": "2582:77:23", | |
"nodes": [], | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"commonType": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"id": 30202, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"expression": { | |
"id": 30199, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": -15, | |
"src": "2600:3:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 30200, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "2604:6:23", | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"src": "2600:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "==", | |
"rightExpression": { | |
"id": 30201, | |
"name": "owner", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30110, | |
"src": "2614:5:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"src": "2600:19:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"expression": { | |
"id": 30203, | |
"name": "ErrorsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32787, | |
"src": "2621:9:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_ErrorsLib_$32787_$", | |
"typeString": "type(library ErrorsLib)" | |
} | |
}, | |
"id": 30204, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"memberLocation": "2631:9:23", | |
"memberName": "NOT_OWNER", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32706, | |
"src": "2621:19:23", | |
"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": 30198, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
-18, | |
-18 | |
], | |
"referencedDeclaration": -18, | |
"src": "2592:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 30205, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "2592:49:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 30206, | |
"nodeType": "ExpressionStatement", | |
"src": "2592:49:23" | |
}, | |
{ | |
"id": 30207, | |
"nodeType": "PlaceholderStatement", | |
"src": "2651:1:23" | |
} | |
] | |
}, | |
"documentation": { | |
"id": 30196, | |
"nodeType": "StructuredDocumentation", | |
"src": "2505:51:23", | |
"text": "@notice Reverts if the caller is not the owner." | |
}, | |
"name": "onlyOwner", | |
"nameLocation": "2570:9:23", | |
"parameters": { | |
"id": 30197, | |
"nodeType": "ParameterList", | |
"parameters": [], | |
"src": "2579:2:23" | |
}, | |
"virtual": false, | |
"visibility": "internal" | |
}, | |
{ | |
"id": 30236, | |
"nodeType": "FunctionDefinition", | |
"src": "2725:192:23", | |
"nodes": [], | |
"body": { | |
"id": 30235, | |
"nodeType": "Block", | |
"src": "2780:137:23", | |
"nodes": [], | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"commonType": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"id": 30220, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"id": 30218, | |
"name": "newOwner", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30212, | |
"src": "2798:8:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "!=", | |
"rightExpression": { | |
"id": 30219, | |
"name": "owner", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30110, | |
"src": "2810:5:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"src": "2798:17:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"expression": { | |
"id": 30221, | |
"name": "ErrorsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32787, | |
"src": "2817:9:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_ErrorsLib_$32787_$", | |
"typeString": "type(library ErrorsLib)" | |
} | |
}, | |
"id": 30222, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"memberLocation": "2827:11:23", | |
"memberName": "ALREADY_SET", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32718, | |
"src": "2817:21:23", | |
"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": 30217, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
-18, | |
-18 | |
], | |
"referencedDeclaration": -18, | |
"src": "2790:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 30223, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "2790:49:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 30224, | |
"nodeType": "ExpressionStatement", | |
"src": "2790:49:23" | |
}, | |
{ | |
"expression": { | |
"id": 30227, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"id": 30225, | |
"name": "owner", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30110, | |
"src": "2850:5:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"id": 30226, | |
"name": "newOwner", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30212, | |
"src": "2858:8:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"src": "2850:16:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"id": 30228, | |
"nodeType": "ExpressionStatement", | |
"src": "2850:16:23" | |
}, | |
{ | |
"eventCall": { | |
"arguments": [ | |
{ | |
"id": 30232, | |
"name": "newOwner", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30212, | |
"src": "2901:8:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
], | |
"expression": { | |
"id": 30229, | |
"name": "EventsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32976, | |
"src": "2882:9:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_EventsLib_$32976_$", | |
"typeString": "type(library EventsLib)" | |
} | |
}, | |
"id": 30231, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "2892:8:23", | |
"memberName": "SetOwner", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32798, | |
"src": "2882:18:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", | |
"typeString": "function (address)" | |
} | |
}, | |
"id": 30233, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "2882:28:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 30234, | |
"nodeType": "EmitStatement", | |
"src": "2877:33:23" | |
} | |
] | |
}, | |
"baseFunctions": [ | |
32413 | |
], | |
"documentation": { | |
"id": 30210, | |
"nodeType": "StructuredDocumentation", | |
"src": "2697:23:23", | |
"text": "@inheritdoc IMorpho" | |
}, | |
"functionSelector": "13af4035", | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [ | |
{ | |
"id": 30215, | |
"kind": "modifierInvocation", | |
"modifierName": { | |
"id": 30214, | |
"name": "onlyOwner", | |
"nameLocations": [ | |
"2770:9:23" | |
], | |
"nodeType": "IdentifierPath", | |
"referencedDeclaration": 30209, | |
"src": "2770:9:23" | |
}, | |
"nodeType": "ModifierInvocation", | |
"src": "2770:9:23" | |
} | |
], | |
"name": "setOwner", | |
"nameLocation": "2734:8:23", | |
"parameters": { | |
"id": 30213, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 30212, | |
"mutability": "mutable", | |
"name": "newOwner", | |
"nameLocation": "2751:8:23", | |
"nodeType": "VariableDeclaration", | |
"scope": 30236, | |
"src": "2743:16:23", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 30211, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "2743:7:23", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"visibility": "internal" | |
} | |
], | |
"src": "2742:18:23" | |
}, | |
"returnParameters": { | |
"id": 30216, | |
"nodeType": "ParameterList", | |
"parameters": [], | |
"src": "2780:0:23" | |
}, | |
"scope": 32215, | |
"stateMutability": "nonpayable", | |
"virtual": false, | |
"visibility": "external" | |
}, | |
{ | |
"id": 30269, | |
"nodeType": "FunctionDefinition", | |
"src": "2951:202:23", | |
"nodes": [], | |
"body": { | |
"id": 30268, | |
"nodeType": "Block", | |
"src": "3002:151:23", | |
"nodes": [], | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"id": 30248, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "UnaryOperation", | |
"operator": "!", | |
"prefix": true, | |
"src": "3020:18:23", | |
"subExpression": { | |
"baseExpression": { | |
"id": 30245, | |
"name": "isIrmEnabled", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30134, | |
"src": "3021:12:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_bool_$", | |
"typeString": "mapping(address => bool)" | |
} | |
}, | |
"id": 30247, | |
"indexExpression": { | |
"id": 30246, | |
"name": "irm", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30239, | |
"src": "3034:3:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "3021:17:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"expression": { | |
"id": 30249, | |
"name": "ErrorsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32787, | |
"src": "3040:9:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_ErrorsLib_$32787_$", | |
"typeString": "type(library ErrorsLib)" | |
} | |
}, | |
"id": 30250, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"memberLocation": "3050:11:23", | |
"memberName": "ALREADY_SET", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32718, | |
"src": "3040:21:23", | |
"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": 30244, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
-18, | |
-18 | |
], | |
"referencedDeclaration": -18, | |
"src": "3012:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 30251, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "3012:50:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 30252, | |
"nodeType": "ExpressionStatement", | |
"src": "3012:50:23" | |
}, | |
{ | |
"expression": { | |
"id": 30257, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"baseExpression": { | |
"id": 30253, | |
"name": "isIrmEnabled", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30134, | |
"src": "3073:12:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_bool_$", | |
"typeString": "mapping(address => bool)" | |
} | |
}, | |
"id": 30255, | |
"indexExpression": { | |
"id": 30254, | |
"name": "irm", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30239, | |
"src": "3086:3:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": true, | |
"nodeType": "IndexAccess", | |
"src": "3073:17:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"hexValue": "74727565", | |
"id": 30256, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "bool", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "3093:4:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
"value": "true" | |
}, | |
"src": "3073:24:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"id": 30258, | |
"nodeType": "ExpressionStatement", | |
"src": "3073:24:23" | |
}, | |
{ | |
"eventCall": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"id": 30264, | |
"name": "irm", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30239, | |
"src": "3141:3:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
], | |
"id": 30263, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"nodeType": "ElementaryTypeNameExpression", | |
"src": "3133:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_address_$", | |
"typeString": "type(address)" | |
}, | |
"typeName": { | |
"id": 30262, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "3133:7:23", | |
"typeDescriptions": {} | |
} | |
}, | |
"id": 30265, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "3133:12:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
], | |
"expression": { | |
"id": 30259, | |
"name": "EventsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32976, | |
"src": "3113:9:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_EventsLib_$32976_$", | |
"typeString": "type(library EventsLib)" | |
} | |
}, | |
"id": 30261, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "3123:9:23", | |
"memberName": "EnableIrm", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32816, | |
"src": "3113:19:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", | |
"typeString": "function (address)" | |
} | |
}, | |
"id": 30266, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "3113:33:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 30267, | |
"nodeType": "EmitStatement", | |
"src": "3108:38:23" | |
} | |
] | |
}, | |
"baseFunctions": [ | |
32419 | |
], | |
"documentation": { | |
"id": 30237, | |
"nodeType": "StructuredDocumentation", | |
"src": "2923:23:23", | |
"text": "@inheritdoc IMorpho" | |
}, | |
"functionSelector": "5a64f51e", | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [ | |
{ | |
"id": 30242, | |
"kind": "modifierInvocation", | |
"modifierName": { | |
"id": 30241, | |
"name": "onlyOwner", | |
"nameLocations": [ | |
"2992:9:23" | |
], | |
"nodeType": "IdentifierPath", | |
"referencedDeclaration": 30209, | |
"src": "2992:9:23" | |
}, | |
"nodeType": "ModifierInvocation", | |
"src": "2992:9:23" | |
} | |
], | |
"name": "enableIrm", | |
"nameLocation": "2960:9:23", | |
"parameters": { | |
"id": 30240, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 30239, | |
"mutability": "mutable", | |
"name": "irm", | |
"nameLocation": "2978:3:23", | |
"nodeType": "VariableDeclaration", | |
"scope": 30269, | |
"src": "2970:11:23", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 30238, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "2970:7:23", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"visibility": "internal" | |
} | |
], | |
"src": "2969:13:23" | |
}, | |
"returnParameters": { | |
"id": 30243, | |
"nodeType": "ParameterList", | |
"parameters": [], | |
"src": "3002:0:23" | |
}, | |
"scope": 32215, | |
"stateMutability": "nonpayable", | |
"virtual": false, | |
"visibility": "external" | |
}, | |
{ | |
"id": 30307, | |
"nodeType": "FunctionDefinition", | |
"src": "3187:259:23", | |
"nodes": [], | |
"body": { | |
"id": 30306, | |
"nodeType": "Block", | |
"src": "3240:206:23", | |
"nodes": [], | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"id": 30281, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "UnaryOperation", | |
"operator": "!", | |
"prefix": true, | |
"src": "3258:20:23", | |
"subExpression": { | |
"baseExpression": { | |
"id": 30278, | |
"name": "isLltvEnabled", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30139, | |
"src": "3259:13:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", | |
"typeString": "mapping(uint256 => bool)" | |
} | |
}, | |
"id": 30280, | |
"indexExpression": { | |
"id": 30279, | |
"name": "lltv", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30272, | |
"src": "3273:4:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "3259:19:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"expression": { | |
"id": 30282, | |
"name": "ErrorsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32787, | |
"src": "3280:9:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_ErrorsLib_$32787_$", | |
"typeString": "type(library ErrorsLib)" | |
} | |
}, | |
"id": 30283, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"memberLocation": "3290:11:23", | |
"memberName": "ALREADY_SET", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32718, | |
"src": "3280:21:23", | |
"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": 30277, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
-18, | |
-18 | |
], | |
"referencedDeclaration": -18, | |
"src": "3250:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 30284, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "3250:52:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 30285, | |
"nodeType": "ExpressionStatement", | |
"src": "3250:52:23" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"commonType": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"id": 30289, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"id": 30287, | |
"name": "lltv", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30272, | |
"src": "3320:4:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "<", | |
"rightExpression": { | |
"id": 30288, | |
"name": "WAD", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 33000, | |
"src": "3327:3:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "3320:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"expression": { | |
"id": 30290, | |
"name": "ErrorsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32787, | |
"src": "3332:9:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_ErrorsLib_$32787_$", | |
"typeString": "type(library ErrorsLib)" | |
} | |
}, | |
"id": 30291, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"memberLocation": "3342:17:23", | |
"memberName": "MAX_LLTV_EXCEEDED", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32710, | |
"src": "3332:27:23", | |
"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": 30286, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
-18, | |
-18 | |
], | |
"referencedDeclaration": -18, | |
"src": "3312:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 30292, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "3312:48:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 30293, | |
"nodeType": "ExpressionStatement", | |
"src": "3312:48:23" | |
}, | |
{ | |
"expression": { | |
"id": 30298, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"baseExpression": { | |
"id": 30294, | |
"name": "isLltvEnabled", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30139, | |
"src": "3371:13:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", | |
"typeString": "mapping(uint256 => bool)" | |
} | |
}, | |
"id": 30296, | |
"indexExpression": { | |
"id": 30295, | |
"name": "lltv", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30272, | |
"src": "3385:4:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": true, | |
"nodeType": "IndexAccess", | |
"src": "3371:19:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"hexValue": "74727565", | |
"id": 30297, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "bool", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "3393:4:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
"value": "true" | |
}, | |
"src": "3371:26:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"id": 30299, | |
"nodeType": "ExpressionStatement", | |
"src": "3371:26:23" | |
}, | |
{ | |
"eventCall": { | |
"arguments": [ | |
{ | |
"id": 30303, | |
"name": "lltv", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30272, | |
"src": "3434:4:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"expression": { | |
"id": 30300, | |
"name": "EventsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32976, | |
"src": "3413:9:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_EventsLib_$32976_$", | |
"typeString": "type(library EventsLib)" | |
} | |
}, | |
"id": 30302, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "3423:10:23", | |
"memberName": "EnableLltv", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32821, | |
"src": "3413:20:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", | |
"typeString": "function (uint256)" | |
} | |
}, | |
"id": 30304, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "3413:26:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 30305, | |
"nodeType": "EmitStatement", | |
"src": "3408:31:23" | |
} | |
] | |
}, | |
"baseFunctions": [ | |
32425 | |
], | |
"documentation": { | |
"id": 30270, | |
"nodeType": "StructuredDocumentation", | |
"src": "3159:23:23", | |
"text": "@inheritdoc IMorpho" | |
}, | |
"functionSelector": "4d98a93b", | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [ | |
{ | |
"id": 30275, | |
"kind": "modifierInvocation", | |
"modifierName": { | |
"id": 30274, | |
"name": "onlyOwner", | |
"nameLocations": [ | |
"3230:9:23" | |
], | |
"nodeType": "IdentifierPath", | |
"referencedDeclaration": 30209, | |
"src": "3230:9:23" | |
}, | |
"nodeType": "ModifierInvocation", | |
"src": "3230:9:23" | |
} | |
], | |
"name": "enableLltv", | |
"nameLocation": "3196:10:23", | |
"parameters": { | |
"id": 30273, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 30272, | |
"mutability": "mutable", | |
"name": "lltv", | |
"nameLocation": "3215:4:23", | |
"nodeType": "VariableDeclaration", | |
"scope": 30307, | |
"src": "3207:12:23", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 30271, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "3207:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"visibility": "internal" | |
} | |
], | |
"src": "3206:14:23" | |
}, | |
"returnParameters": { | |
"id": 30276, | |
"nodeType": "ParameterList", | |
"parameters": [], | |
"src": "3240:0:23" | |
}, | |
"scope": 32215, | |
"stateMutability": "nonpayable", | |
"virtual": false, | |
"visibility": "external" | |
}, | |
{ | |
"id": 30378, | |
"nodeType": "FunctionDefinition", | |
"src": "3480:571:23", | |
"nodes": [], | |
"body": { | |
"id": 30377, | |
"nodeType": "Block", | |
"src": "3565:486:23", | |
"nodes": [], | |
"statements": [ | |
{ | |
"assignments": [ | |
30320 | |
], | |
"declarations": [ | |
{ | |
"constant": false, | |
"id": 30320, | |
"mutability": "mutable", | |
"name": "id", | |
"nameLocation": "3578:2:23", | |
"nodeType": "VariableDeclaration", | |
"scope": 30377, | |
"src": "3575:5:23", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
}, | |
"typeName": { | |
"id": 30319, | |
"nodeType": "UserDefinedTypeName", | |
"pathNode": { | |
"id": 30318, | |
"name": "Id", | |
"nameLocations": [ | |
"3575:2:23" | |
], | |
"nodeType": "IdentifierPath", | |
"referencedDeclaration": 32254, | |
"src": "3575:2:23" | |
}, | |
"referencedDeclaration": 32254, | |
"src": "3575:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"visibility": "internal" | |
} | |
], | |
"id": 30324, | |
"initialValue": { | |
"arguments": [], | |
"expression": { | |
"argumentTypes": [], | |
"expression": { | |
"id": 30321, | |
"name": "marketParams", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30311, | |
"src": "3583:12:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_MarketParams_$32265_memory_ptr", | |
"typeString": "struct MarketParams memory" | |
} | |
}, | |
"id": 30322, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "3596:2:23", | |
"memberName": "id", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32994, | |
"src": "3583:15:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_struct$_MarketParams_$32265_memory_ptr_$returns$_t_userDefinedValueType$_Id_$32254_$attached_to$_t_struct$_MarketParams_$32265_memory_ptr_$", | |
"typeString": "function (struct MarketParams memory) pure returns (Id)" | |
} | |
}, | |
"id": 30323, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "3583:17:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"nodeType": "VariableDeclarationStatement", | |
"src": "3575:25:23" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"commonType": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
}, | |
"id": 30331, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"expression": { | |
"baseExpression": { | |
"id": 30326, | |
"name": "market", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30129, | |
"src": "3618:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_struct$_Market_$32285_storage_$", | |
"typeString": "mapping(Id => struct Market storage ref)" | |
} | |
}, | |
"id": 30328, | |
"indexExpression": { | |
"id": 30327, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30320, | |
"src": "3625:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "3618:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Market_$32285_storage", | |
"typeString": "struct Market storage ref" | |
} | |
}, | |
"id": 30329, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "3629:10:23", | |
"memberName": "lastUpdate", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32282, | |
"src": "3618:21:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "!=", | |
"rightExpression": { | |
"hexValue": "30", | |
"id": 30330, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "3643:1:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
}, | |
"value": "0" | |
}, | |
"src": "3618:26:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"expression": { | |
"id": 30332, | |
"name": "ErrorsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32787, | |
"src": "3646:9:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_ErrorsLib_$32787_$", | |
"typeString": "type(library ErrorsLib)" | |
} | |
}, | |
"id": 30333, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"memberLocation": "3656:18:23", | |
"memberName": "MARKET_NOT_CREATED", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32734, | |
"src": "3646:28:23", | |
"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": 30325, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
-18, | |
-18 | |
], | |
"referencedDeclaration": -18, | |
"src": "3610:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 30334, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "3610:65:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 30335, | |
"nodeType": "ExpressionStatement", | |
"src": "3610:65:23" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"commonType": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"id": 30342, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"id": 30337, | |
"name": "newFee", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30313, | |
"src": "3693:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "!=", | |
"rightExpression": { | |
"expression": { | |
"baseExpression": { | |
"id": 30338, | |
"name": "market", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30129, | |
"src": "3703:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_struct$_Market_$32285_storage_$", | |
"typeString": "mapping(Id => struct Market storage ref)" | |
} | |
}, | |
"id": 30340, | |
"indexExpression": { | |
"id": 30339, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30320, | |
"src": "3710:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "3703:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Market_$32285_storage", | |
"typeString": "struct Market storage ref" | |
} | |
}, | |
"id": 30341, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "3714:3:23", | |
"memberName": "fee", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32284, | |
"src": "3703:14:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"src": "3693:24:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"expression": { | |
"id": 30343, | |
"name": "ErrorsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32787, | |
"src": "3719:9:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_ErrorsLib_$32787_$", | |
"typeString": "type(library ErrorsLib)" | |
} | |
}, | |
"id": 30344, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"memberLocation": "3729:11:23", | |
"memberName": "ALREADY_SET", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32718, | |
"src": "3719:21:23", | |
"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": 30336, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
-18, | |
-18 | |
], | |
"referencedDeclaration": -18, | |
"src": "3685:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 30345, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "3685:56:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 30346, | |
"nodeType": "ExpressionStatement", | |
"src": "3685:56:23" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"commonType": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"id": 30350, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"id": 30348, | |
"name": "newFee", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30313, | |
"src": "3759:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "<=", | |
"rightExpression": { | |
"id": 30349, | |
"name": "MAX_FEE", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32675, | |
"src": "3769:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "3759:17:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"expression": { | |
"id": 30351, | |
"name": "ErrorsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32787, | |
"src": "3778:9:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_ErrorsLib_$32787_$", | |
"typeString": "type(library ErrorsLib)" | |
} | |
}, | |
"id": 30352, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"memberLocation": "3788:16:23", | |
"memberName": "MAX_FEE_EXCEEDED", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32714, | |
"src": "3778:26:23", | |
"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": 30347, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
-18, | |
-18 | |
], | |
"referencedDeclaration": -18, | |
"src": "3751:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 30353, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "3751:54:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 30354, | |
"nodeType": "ExpressionStatement", | |
"src": "3751:54:23" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"id": 30356, | |
"name": "marketParams", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30311, | |
"src": "3906:12:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_MarketParams_$32265_memory_ptr", | |
"typeString": "struct MarketParams memory" | |
} | |
}, | |
{ | |
"id": 30357, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30320, | |
"src": "3920:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_struct$_MarketParams_$32265_memory_ptr", | |
"typeString": "struct MarketParams memory" | |
}, | |
{ | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
], | |
"id": 30355, | |
"name": "_accrueInterest", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32069, | |
"src": "3890:15:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_MarketParams_$32265_memory_ptr_$_t_userDefinedValueType$_Id_$32254_$returns$__$", | |
"typeString": "function (struct MarketParams memory,Id)" | |
} | |
}, | |
"id": 30358, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "3890:33:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 30359, | |
"nodeType": "ExpressionStatement", | |
"src": "3890:33:23" | |
}, | |
{ | |
"expression": { | |
"id": 30368, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"expression": { | |
"baseExpression": { | |
"id": 30360, | |
"name": "market", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30129, | |
"src": "3968:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_struct$_Market_$32285_storage_$", | |
"typeString": "mapping(Id => struct Market storage ref)" | |
} | |
}, | |
"id": 30362, | |
"indexExpression": { | |
"id": 30361, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30320, | |
"src": "3975:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "3968:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Market_$32285_storage", | |
"typeString": "struct Market storage ref" | |
} | |
}, | |
"id": 30363, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": true, | |
"memberLocation": "3979:3:23", | |
"memberName": "fee", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32284, | |
"src": "3968:14:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"arguments": [ | |
{ | |
"id": 30366, | |
"name": "newFee", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30313, | |
"src": "3993:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"id": 30365, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"nodeType": "ElementaryTypeNameExpression", | |
"src": "3985:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_uint128_$", | |
"typeString": "type(uint128)" | |
}, | |
"typeName": { | |
"id": 30364, | |
"name": "uint128", | |
"nodeType": "ElementaryTypeName", | |
"src": "3985:7:23", | |
"typeDescriptions": {} | |
} | |
}, | |
"id": 30367, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "3985:15:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"src": "3968:32:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"id": 30369, | |
"nodeType": "ExpressionStatement", | |
"src": "3968:32:23" | |
}, | |
{ | |
"eventCall": { | |
"arguments": [ | |
{ | |
"id": 30373, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30320, | |
"src": "4033:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
{ | |
"id": 30374, | |
"name": "newFee", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30313, | |
"src": "4037:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"expression": { | |
"id": 30370, | |
"name": "EventsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32976, | |
"src": "4016:9:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_EventsLib_$32976_$", | |
"typeString": "type(library EventsLib)" | |
} | |
}, | |
"id": 30372, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "4026:6:23", | |
"memberName": "SetFee", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32806, | |
"src": "4016:16:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_event_nonpayable$_t_userDefinedValueType$_Id_$32254_$_t_uint256_$returns$__$", | |
"typeString": "function (Id,uint256)" | |
} | |
}, | |
"id": 30375, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "4016:28:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 30376, | |
"nodeType": "EmitStatement", | |
"src": "4011:33:23" | |
} | |
] | |
}, | |
"baseFunctions": [ | |
32434 | |
], | |
"documentation": { | |
"id": 30308, | |
"nodeType": "StructuredDocumentation", | |
"src": "3452:23:23", | |
"text": "@inheritdoc IMorpho" | |
}, | |
"functionSelector": "2b4f013c", | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [ | |
{ | |
"id": 30316, | |
"kind": "modifierInvocation", | |
"modifierName": { | |
"id": 30315, | |
"name": "onlyOwner", | |
"nameLocations": [ | |
"3555:9:23" | |
], | |
"nodeType": "IdentifierPath", | |
"referencedDeclaration": 30209, | |
"src": "3555:9:23" | |
}, | |
"nodeType": "ModifierInvocation", | |
"src": "3555:9:23" | |
} | |
], | |
"name": "setFee", | |
"nameLocation": "3489:6:23", | |
"parameters": { | |
"id": 30314, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 30311, | |
"mutability": "mutable", | |
"name": "marketParams", | |
"nameLocation": "3516:12:23", | |
"nodeType": "VariableDeclaration", | |
"scope": 30378, | |
"src": "3496:32:23", | |
"stateVariable": false, | |
"storageLocation": "memory", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_MarketParams_$32265_memory_ptr", | |
"typeString": "struct MarketParams" | |
}, | |
"typeName": { | |
"id": 30310, | |
"nodeType": "UserDefinedTypeName", | |
"pathNode": { | |
"id": 30309, | |
"name": "MarketParams", | |
"nameLocations": [ | |
"3496:12:23" | |
], | |
"nodeType": "IdentifierPath", | |
"referencedDeclaration": 32265, | |
"src": "3496:12:23" | |
}, | |
"referencedDeclaration": 32265, | |
"src": "3496:12:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_MarketParams_$32265_storage_ptr", | |
"typeString": "struct MarketParams" | |
} | |
}, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 30313, | |
"mutability": "mutable", | |
"name": "newFee", | |
"nameLocation": "3538:6:23", | |
"nodeType": "VariableDeclaration", | |
"scope": 30378, | |
"src": "3530:14:23", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 30312, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "3530:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"visibility": "internal" | |
} | |
], | |
"src": "3495:50:23" | |
}, | |
"returnParameters": { | |
"id": 30317, | |
"nodeType": "ParameterList", | |
"parameters": [], | |
"src": "3565:0:23" | |
}, | |
"scope": 32215, | |
"stateMutability": "nonpayable", | |
"virtual": false, | |
"visibility": "external" | |
}, | |
{ | |
"id": 30405, | |
"nodeType": "FunctionDefinition", | |
"src": "4085:248:23", | |
"nodes": [], | |
"body": { | |
"id": 30404, | |
"nodeType": "Block", | |
"src": "4154:179:23", | |
"nodes": [], | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"commonType": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"id": 30389, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"id": 30387, | |
"name": "newFeeRecipient", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30381, | |
"src": "4172:15:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "!=", | |
"rightExpression": { | |
"id": 30388, | |
"name": "feeRecipient", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30113, | |
"src": "4191:12:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"src": "4172:31:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"expression": { | |
"id": 30390, | |
"name": "ErrorsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32787, | |
"src": "4205:9:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_ErrorsLib_$32787_$", | |
"typeString": "type(library ErrorsLib)" | |
} | |
}, | |
"id": 30391, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"memberLocation": "4215:11:23", | |
"memberName": "ALREADY_SET", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32718, | |
"src": "4205:21:23", | |
"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": 30386, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
-18, | |
-18 | |
], | |
"referencedDeclaration": -18, | |
"src": "4164:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 30392, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "4164:63:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 30393, | |
"nodeType": "ExpressionStatement", | |
"src": "4164:63:23" | |
}, | |
{ | |
"expression": { | |
"id": 30396, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"id": 30394, | |
"name": "feeRecipient", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30113, | |
"src": "4238:12:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"id": 30395, | |
"name": "newFeeRecipient", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30381, | |
"src": "4253:15:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"src": "4238:30:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"id": 30397, | |
"nodeType": "ExpressionStatement", | |
"src": "4238:30:23" | |
}, | |
{ | |
"eventCall": { | |
"arguments": [ | |
{ | |
"id": 30401, | |
"name": "newFeeRecipient", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30381, | |
"src": "4310:15:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
], | |
"expression": { | |
"id": 30398, | |
"name": "EventsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32976, | |
"src": "4284:9:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_EventsLib_$32976_$", | |
"typeString": "type(library EventsLib)" | |
} | |
}, | |
"id": 30400, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "4294:15:23", | |
"memberName": "SetFeeRecipient", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32811, | |
"src": "4284:25:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", | |
"typeString": "function (address)" | |
} | |
}, | |
"id": 30402, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "4284:42:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 30403, | |
"nodeType": "EmitStatement", | |
"src": "4279:47:23" | |
} | |
] | |
}, | |
"baseFunctions": [ | |
32440 | |
], | |
"documentation": { | |
"id": 30379, | |
"nodeType": "StructuredDocumentation", | |
"src": "4057:23:23", | |
"text": "@inheritdoc IMorpho" | |
}, | |
"functionSelector": "e74b981b", | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [ | |
{ | |
"id": 30384, | |
"kind": "modifierInvocation", | |
"modifierName": { | |
"id": 30383, | |
"name": "onlyOwner", | |
"nameLocations": [ | |
"4144:9:23" | |
], | |
"nodeType": "IdentifierPath", | |
"referencedDeclaration": 30209, | |
"src": "4144:9:23" | |
}, | |
"nodeType": "ModifierInvocation", | |
"src": "4144:9:23" | |
} | |
], | |
"name": "setFeeRecipient", | |
"nameLocation": "4094:15:23", | |
"parameters": { | |
"id": 30382, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 30381, | |
"mutability": "mutable", | |
"name": "newFeeRecipient", | |
"nameLocation": "4118:15:23", | |
"nodeType": "VariableDeclaration", | |
"scope": 30405, | |
"src": "4110:23:23", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 30380, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "4110:7:23", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"visibility": "internal" | |
} | |
], | |
"src": "4109:25:23" | |
}, | |
"returnParameters": { | |
"id": 30385, | |
"nodeType": "ParameterList", | |
"parameters": [], | |
"src": "4154:0:23" | |
}, | |
"scope": 32215, | |
"stateMutability": "nonpayable", | |
"virtual": false, | |
"visibility": "external" | |
}, | |
{ | |
"id": 30473, | |
"nodeType": "FunctionDefinition", | |
"src": "4394:535:23", | |
"nodes": [], | |
"body": { | |
"id": 30472, | |
"nodeType": "Block", | |
"src": "4459:470:23", | |
"nodes": [], | |
"statements": [ | |
{ | |
"assignments": [ | |
30414 | |
], | |
"declarations": [ | |
{ | |
"constant": false, | |
"id": 30414, | |
"mutability": "mutable", | |
"name": "id", | |
"nameLocation": "4472:2:23", | |
"nodeType": "VariableDeclaration", | |
"scope": 30472, | |
"src": "4469:5:23", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
}, | |
"typeName": { | |
"id": 30413, | |
"nodeType": "UserDefinedTypeName", | |
"pathNode": { | |
"id": 30412, | |
"name": "Id", | |
"nameLocations": [ | |
"4469:2:23" | |
], | |
"nodeType": "IdentifierPath", | |
"referencedDeclaration": 32254, | |
"src": "4469:2:23" | |
}, | |
"referencedDeclaration": 32254, | |
"src": "4469:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"visibility": "internal" | |
} | |
], | |
"id": 30418, | |
"initialValue": { | |
"arguments": [], | |
"expression": { | |
"argumentTypes": [], | |
"expression": { | |
"id": 30415, | |
"name": "marketParams", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30409, | |
"src": "4477:12:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_MarketParams_$32265_memory_ptr", | |
"typeString": "struct MarketParams memory" | |
} | |
}, | |
"id": 30416, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "4490:2:23", | |
"memberName": "id", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32994, | |
"src": "4477:15:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_struct$_MarketParams_$32265_memory_ptr_$returns$_t_userDefinedValueType$_Id_$32254_$attached_to$_t_struct$_MarketParams_$32265_memory_ptr_$", | |
"typeString": "function (struct MarketParams memory) pure returns (Id)" | |
} | |
}, | |
"id": 30417, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "4477:17:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"nodeType": "VariableDeclarationStatement", | |
"src": "4469:25:23" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"baseExpression": { | |
"id": 30420, | |
"name": "isIrmEnabled", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30134, | |
"src": "4512:12:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_bool_$", | |
"typeString": "mapping(address => bool)" | |
} | |
}, | |
"id": 30423, | |
"indexExpression": { | |
"expression": { | |
"id": 30421, | |
"name": "marketParams", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30409, | |
"src": "4525:12:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_MarketParams_$32265_memory_ptr", | |
"typeString": "struct MarketParams memory" | |
} | |
}, | |
"id": 30422, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "4538:3:23", | |
"memberName": "irm", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32262, | |
"src": "4525:16:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "4512:30:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"expression": { | |
"id": 30424, | |
"name": "ErrorsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32787, | |
"src": "4544:9:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_ErrorsLib_$32787_$", | |
"typeString": "type(library ErrorsLib)" | |
} | |
}, | |
"id": 30425, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"memberLocation": "4554:15:23", | |
"memberName": "IRM_NOT_ENABLED", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32722, | |
"src": "4544:25:23", | |
"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": 30419, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
-18, | |
-18 | |
], | |
"referencedDeclaration": -18, | |
"src": "4504:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 30426, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "4504:66:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 30427, | |
"nodeType": "ExpressionStatement", | |
"src": "4504:66:23" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"baseExpression": { | |
"id": 30429, | |
"name": "isLltvEnabled", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30139, | |
"src": "4588:13:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", | |
"typeString": "mapping(uint256 => bool)" | |
} | |
}, | |
"id": 30432, | |
"indexExpression": { | |
"expression": { | |
"id": 30430, | |
"name": "marketParams", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30409, | |
"src": "4602:12:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_MarketParams_$32265_memory_ptr", | |
"typeString": "struct MarketParams memory" | |
} | |
}, | |
"id": 30431, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "4615:4:23", | |
"memberName": "lltv", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32264, | |
"src": "4602:17:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "4588:32:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"expression": { | |
"id": 30433, | |
"name": "ErrorsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32787, | |
"src": "4622:9:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_ErrorsLib_$32787_$", | |
"typeString": "type(library ErrorsLib)" | |
} | |
}, | |
"id": 30434, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"memberLocation": "4632:16:23", | |
"memberName": "LLTV_NOT_ENABLED", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32726, | |
"src": "4622:26:23", | |
"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": 30428, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
-18, | |
-18 | |
], | |
"referencedDeclaration": -18, | |
"src": "4580:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 30435, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "4580:69:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 30436, | |
"nodeType": "ExpressionStatement", | |
"src": "4580:69:23" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"commonType": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
}, | |
"id": 30443, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"expression": { | |
"baseExpression": { | |
"id": 30438, | |
"name": "market", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30129, | |
"src": "4667:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_struct$_Market_$32285_storage_$", | |
"typeString": "mapping(Id => struct Market storage ref)" | |
} | |
}, | |
"id": 30440, | |
"indexExpression": { | |
"id": 30439, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30414, | |
"src": "4674:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "4667:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Market_$32285_storage", | |
"typeString": "struct Market storage ref" | |
} | |
}, | |
"id": 30441, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "4678:10:23", | |
"memberName": "lastUpdate", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32282, | |
"src": "4667:21:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "==", | |
"rightExpression": { | |
"hexValue": "30", | |
"id": 30442, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "4692:1:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
}, | |
"value": "0" | |
}, | |
"src": "4667:26:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"expression": { | |
"id": 30444, | |
"name": "ErrorsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32787, | |
"src": "4695:9:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_ErrorsLib_$32787_$", | |
"typeString": "type(library ErrorsLib)" | |
} | |
}, | |
"id": 30445, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"memberLocation": "4705:22:23", | |
"memberName": "MARKET_ALREADY_CREATED", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32730, | |
"src": "4695:32:23", | |
"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": 30437, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
-18, | |
-18 | |
], | |
"referencedDeclaration": -18, | |
"src": "4659:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 30446, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "4659:69:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 30447, | |
"nodeType": "ExpressionStatement", | |
"src": "4659:69:23" | |
}, | |
{ | |
"expression": { | |
"id": 30457, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"expression": { | |
"baseExpression": { | |
"id": 30448, | |
"name": "market", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30129, | |
"src": "4773:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_struct$_Market_$32285_storage_$", | |
"typeString": "mapping(Id => struct Market storage ref)" | |
} | |
}, | |
"id": 30450, | |
"indexExpression": { | |
"id": 30449, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30414, | |
"src": "4780:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "4773:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Market_$32285_storage", | |
"typeString": "struct Market storage ref" | |
} | |
}, | |
"id": 30451, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": true, | |
"memberLocation": "4784:10:23", | |
"memberName": "lastUpdate", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32282, | |
"src": "4773:21:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"arguments": [ | |
{ | |
"expression": { | |
"id": 30454, | |
"name": "block", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": -4, | |
"src": "4805:5:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_block", | |
"typeString": "block" | |
} | |
}, | |
"id": 30455, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "4811:9:23", | |
"memberName": "timestamp", | |
"nodeType": "MemberAccess", | |
"src": "4805:15:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"id": 30453, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"nodeType": "ElementaryTypeNameExpression", | |
"src": "4797:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_uint128_$", | |
"typeString": "type(uint128)" | |
}, | |
"typeName": { | |
"id": 30452, | |
"name": "uint128", | |
"nodeType": "ElementaryTypeName", | |
"src": "4797:7:23", | |
"typeDescriptions": {} | |
} | |
}, | |
"id": 30456, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "4797:24:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"src": "4773:48:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"id": 30458, | |
"nodeType": "ExpressionStatement", | |
"src": "4773:48:23" | |
}, | |
{ | |
"expression": { | |
"id": 30463, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"baseExpression": { | |
"id": 30459, | |
"name": "idToMarketParams", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30158, | |
"src": "4831:16:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_struct$_MarketParams_$32265_storage_$", | |
"typeString": "mapping(Id => struct MarketParams storage ref)" | |
} | |
}, | |
"id": 30461, | |
"indexExpression": { | |
"id": 30460, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30414, | |
"src": "4848:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": true, | |
"nodeType": "IndexAccess", | |
"src": "4831:20:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_MarketParams_$32265_storage", | |
"typeString": "struct MarketParams storage ref" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"id": 30462, | |
"name": "marketParams", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30409, | |
"src": "4854:12:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_MarketParams_$32265_memory_ptr", | |
"typeString": "struct MarketParams memory" | |
} | |
}, | |
"src": "4831:35:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_MarketParams_$32265_storage", | |
"typeString": "struct MarketParams storage ref" | |
} | |
}, | |
"id": 30464, | |
"nodeType": "ExpressionStatement", | |
"src": "4831:35:23" | |
}, | |
{ | |
"eventCall": { | |
"arguments": [ | |
{ | |
"id": 30468, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30414, | |
"src": "4905:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
{ | |
"id": 30469, | |
"name": "marketParams", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30409, | |
"src": "4909:12:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_MarketParams_$32265_memory_ptr", | |
"typeString": "struct MarketParams memory" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
}, | |
{ | |
"typeIdentifier": "t_struct$_MarketParams_$32265_memory_ptr", | |
"typeString": "struct MarketParams memory" | |
} | |
], | |
"expression": { | |
"id": 30465, | |
"name": "EventsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32976, | |
"src": "4882:9:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_EventsLib_$32976_$", | |
"typeString": "type(library EventsLib)" | |
} | |
}, | |
"id": 30467, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "4892:12:23", | |
"memberName": "CreateMarket", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32830, | |
"src": "4882:22:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_event_nonpayable$_t_userDefinedValueType$_Id_$32254_$_t_struct$_MarketParams_$32265_memory_ptr_$returns$__$", | |
"typeString": "function (Id,struct MarketParams memory)" | |
} | |
}, | |
"id": 30470, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "4882:40:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 30471, | |
"nodeType": "EmitStatement", | |
"src": "4877:45:23" | |
} | |
] | |
}, | |
"baseFunctions": [ | |
32447 | |
], | |
"documentation": { | |
"id": 30406, | |
"nodeType": "StructuredDocumentation", | |
"src": "4366:23:23", | |
"text": "@inheritdoc IMorpho" | |
}, | |
"functionSelector": "8c1358a2", | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [], | |
"name": "createMarket", | |
"nameLocation": "4403:12:23", | |
"parameters": { | |
"id": 30410, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 30409, | |
"mutability": "mutable", | |
"name": "marketParams", | |
"nameLocation": "4436:12:23", | |
"nodeType": "VariableDeclaration", | |
"scope": 30473, | |
"src": "4416:32:23", | |
"stateVariable": false, | |
"storageLocation": "memory", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_MarketParams_$32265_memory_ptr", | |
"typeString": "struct MarketParams" | |
}, | |
"typeName": { | |
"id": 30408, | |
"nodeType": "UserDefinedTypeName", | |
"pathNode": { | |
"id": 30407, | |
"name": "MarketParams", | |
"nameLocations": [ | |
"4416:12:23" | |
], | |
"nodeType": "IdentifierPath", | |
"referencedDeclaration": 32265, | |
"src": "4416:12:23" | |
}, | |
"referencedDeclaration": 32265, | |
"src": "4416:12:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_MarketParams_$32265_storage_ptr", | |
"typeString": "struct MarketParams" | |
} | |
}, | |
"visibility": "internal" | |
} | |
], | |
"src": "4415:34:23" | |
}, | |
"returnParameters": { | |
"id": 30411, | |
"nodeType": "ParameterList", | |
"parameters": [], | |
"src": "4459:0:23" | |
}, | |
"scope": 32215, | |
"stateMutability": "nonpayable", | |
"virtual": false, | |
"visibility": "external" | |
}, | |
{ | |
"id": 30639, | |
"nodeType": "FunctionDefinition", | |
"src": "4992:1210:23", | |
"nodes": [], | |
"body": { | |
"id": 30638, | |
"nodeType": "Block", | |
"src": "5195:1007:23", | |
"nodes": [], | |
"statements": [ | |
{ | |
"assignments": [ | |
30494 | |
], | |
"declarations": [ | |
{ | |
"constant": false, | |
"id": 30494, | |
"mutability": "mutable", | |
"name": "id", | |
"nameLocation": "5208:2:23", | |
"nodeType": "VariableDeclaration", | |
"scope": 30638, | |
"src": "5205:5:23", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
}, | |
"typeName": { | |
"id": 30493, | |
"nodeType": "UserDefinedTypeName", | |
"pathNode": { | |
"id": 30492, | |
"name": "Id", | |
"nameLocations": [ | |
"5205:2:23" | |
], | |
"nodeType": "IdentifierPath", | |
"referencedDeclaration": 32254, | |
"src": "5205:2:23" | |
}, | |
"referencedDeclaration": 32254, | |
"src": "5205:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"visibility": "internal" | |
} | |
], | |
"id": 30498, | |
"initialValue": { | |
"arguments": [], | |
"expression": { | |
"argumentTypes": [], | |
"expression": { | |
"id": 30495, | |
"name": "marketParams", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30477, | |
"src": "5213:12:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_MarketParams_$32265_memory_ptr", | |
"typeString": "struct MarketParams memory" | |
} | |
}, | |
"id": 30496, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "5226:2:23", | |
"memberName": "id", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32994, | |
"src": "5213:15:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_struct$_MarketParams_$32265_memory_ptr_$returns$_t_userDefinedValueType$_Id_$32254_$attached_to$_t_struct$_MarketParams_$32265_memory_ptr_$", | |
"typeString": "function (struct MarketParams memory) pure returns (Id)" | |
} | |
}, | |
"id": 30497, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "5213:17:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"nodeType": "VariableDeclarationStatement", | |
"src": "5205:25:23" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"commonType": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
}, | |
"id": 30505, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"expression": { | |
"baseExpression": { | |
"id": 30500, | |
"name": "market", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30129, | |
"src": "5248:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_struct$_Market_$32285_storage_$", | |
"typeString": "mapping(Id => struct Market storage ref)" | |
} | |
}, | |
"id": 30502, | |
"indexExpression": { | |
"id": 30501, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30494, | |
"src": "5255:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "5248:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Market_$32285_storage", | |
"typeString": "struct Market storage ref" | |
} | |
}, | |
"id": 30503, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "5259:10:23", | |
"memberName": "lastUpdate", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32282, | |
"src": "5248:21:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "!=", | |
"rightExpression": { | |
"hexValue": "30", | |
"id": 30504, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "5273:1:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
}, | |
"value": "0" | |
}, | |
"src": "5248:26:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"expression": { | |
"id": 30506, | |
"name": "ErrorsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32787, | |
"src": "5276:9:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_ErrorsLib_$32787_$", | |
"typeString": "type(library ErrorsLib)" | |
} | |
}, | |
"id": 30507, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"memberLocation": "5286:18:23", | |
"memberName": "MARKET_NOT_CREATED", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32734, | |
"src": "5276:28:23", | |
"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": 30499, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
-18, | |
-18 | |
], | |
"referencedDeclaration": -18, | |
"src": "5240:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 30508, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "5240:65:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 30509, | |
"nodeType": "ExpressionStatement", | |
"src": "5240:65:23" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"id": 30513, | |
"name": "assets", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30479, | |
"src": "5347:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"id": 30514, | |
"name": "shares", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30481, | |
"src": "5355:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"expression": { | |
"id": 30511, | |
"name": "UtilsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 33450, | |
"src": "5323:8:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_UtilsLib_$33450_$", | |
"typeString": "type(library UtilsLib)" | |
} | |
}, | |
"id": 30512, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "5332:14:23", | |
"memberName": "exactlyOneZero", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 33399, | |
"src": "5323:23:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$", | |
"typeString": "function (uint256,uint256) pure returns (bool)" | |
} | |
}, | |
"id": 30515, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "5323:39:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"expression": { | |
"id": 30516, | |
"name": "ErrorsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32787, | |
"src": "5364:9:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_ErrorsLib_$32787_$", | |
"typeString": "type(library ErrorsLib)" | |
} | |
}, | |
"id": 30517, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"memberLocation": "5374:18:23", | |
"memberName": "INCONSISTENT_INPUT", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32738, | |
"src": "5364:28:23", | |
"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": 30510, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
-18, | |
-18 | |
], | |
"referencedDeclaration": -18, | |
"src": "5315:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 30518, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "5315:78:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 30519, | |
"nodeType": "ExpressionStatement", | |
"src": "5315:78:23" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"commonType": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"id": 30526, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"id": 30521, | |
"name": "onBehalf", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30483, | |
"src": "5411:8:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "!=", | |
"rightExpression": { | |
"arguments": [ | |
{ | |
"hexValue": "30", | |
"id": 30524, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "5431:1:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
}, | |
"value": "0" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
} | |
], | |
"id": 30523, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"nodeType": "ElementaryTypeNameExpression", | |
"src": "5423:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_address_$", | |
"typeString": "type(address)" | |
}, | |
"typeName": { | |
"id": 30522, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "5423:7:23", | |
"typeDescriptions": {} | |
} | |
}, | |
"id": 30525, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "5423:10:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"src": "5411:22:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"expression": { | |
"id": 30527, | |
"name": "ErrorsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32787, | |
"src": "5435:9:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_ErrorsLib_$32787_$", | |
"typeString": "type(library ErrorsLib)" | |
} | |
}, | |
"id": 30528, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"memberLocation": "5445:12:23", | |
"memberName": "ZERO_ADDRESS", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32746, | |
"src": "5435:22:23", | |
"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": 30520, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
-18, | |
-18 | |
], | |
"referencedDeclaration": -18, | |
"src": "5403:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 30529, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "5403:55:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 30530, | |
"nodeType": "ExpressionStatement", | |
"src": "5403:55:23" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"id": 30532, | |
"name": "marketParams", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30477, | |
"src": "5485:12:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_MarketParams_$32265_memory_ptr", | |
"typeString": "struct MarketParams memory" | |
} | |
}, | |
{ | |
"id": 30533, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30494, | |
"src": "5499:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_struct$_MarketParams_$32265_memory_ptr", | |
"typeString": "struct MarketParams memory" | |
}, | |
{ | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
], | |
"id": 30531, | |
"name": "_accrueInterest", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32069, | |
"src": "5469:15:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_MarketParams_$32265_memory_ptr_$_t_userDefinedValueType$_Id_$32254_$returns$__$", | |
"typeString": "function (struct MarketParams memory,Id)" | |
} | |
}, | |
"id": 30534, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "5469:33:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 30535, | |
"nodeType": "ExpressionStatement", | |
"src": "5469:33:23" | |
}, | |
{ | |
"condition": { | |
"commonType": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"id": 30538, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"id": 30536, | |
"name": "assets", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30479, | |
"src": "5517:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": ">", | |
"rightExpression": { | |
"hexValue": "30", | |
"id": 30537, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "5526:1:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
}, | |
"value": "0" | |
}, | |
"src": "5517:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"falseBody": { | |
"expression": { | |
"id": 30565, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"id": 30553, | |
"name": "assets", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30479, | |
"src": "5632:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"arguments": [ | |
{ | |
"expression": { | |
"baseExpression": { | |
"id": 30556, | |
"name": "market", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30129, | |
"src": "5659:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_struct$_Market_$32285_storage_$", | |
"typeString": "mapping(Id => struct Market storage ref)" | |
} | |
}, | |
"id": 30558, | |
"indexExpression": { | |
"id": 30557, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30494, | |
"src": "5666:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "5659:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Market_$32285_storage", | |
"typeString": "struct Market storage ref" | |
} | |
}, | |
"id": 30559, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "5670:17:23", | |
"memberName": "totalSupplyAssets", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32274, | |
"src": "5659:28:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
{ | |
"expression": { | |
"baseExpression": { | |
"id": 30560, | |
"name": "market", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30129, | |
"src": "5689:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_struct$_Market_$32285_storage_$", | |
"typeString": "mapping(Id => struct Market storage ref)" | |
} | |
}, | |
"id": 30562, | |
"indexExpression": { | |
"id": 30561, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30494, | |
"src": "5696:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "5689:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Market_$32285_storage", | |
"typeString": "struct Market storage ref" | |
} | |
}, | |
"id": 30563, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "5700:17:23", | |
"memberName": "totalSupplyShares", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32276, | |
"src": "5689:28:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
}, | |
{ | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
], | |
"expression": { | |
"id": 30554, | |
"name": "shares", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30481, | |
"src": "5641:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 30555, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "5648:10:23", | |
"memberName": "toAssetsUp", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 33381, | |
"src": "5641:17:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$", | |
"typeString": "function (uint256,uint256,uint256) pure returns (uint256)" | |
} | |
}, | |
"id": 30564, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "5641:77:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "5632:86:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 30566, | |
"nodeType": "ExpressionStatement", | |
"src": "5632:86:23" | |
}, | |
"id": 30567, | |
"nodeType": "IfStatement", | |
"src": "5513:205:23", | |
"trueBody": { | |
"expression": { | |
"id": 30551, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"id": 30539, | |
"name": "shares", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30481, | |
"src": "5529:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"arguments": [ | |
{ | |
"expression": { | |
"baseExpression": { | |
"id": 30542, | |
"name": "market", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30129, | |
"src": "5558:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_struct$_Market_$32285_storage_$", | |
"typeString": "mapping(Id => struct Market storage ref)" | |
} | |
}, | |
"id": 30544, | |
"indexExpression": { | |
"id": 30543, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30494, | |
"src": "5565:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "5558:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Market_$32285_storage", | |
"typeString": "struct Market storage ref" | |
} | |
}, | |
"id": 30545, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "5569:17:23", | |
"memberName": "totalSupplyAssets", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32274, | |
"src": "5558:28:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
{ | |
"expression": { | |
"baseExpression": { | |
"id": 30546, | |
"name": "market", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30129, | |
"src": "5588:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_struct$_Market_$32285_storage_$", | |
"typeString": "mapping(Id => struct Market storage ref)" | |
} | |
}, | |
"id": 30548, | |
"indexExpression": { | |
"id": 30547, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30494, | |
"src": "5595:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "5588:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Market_$32285_storage", | |
"typeString": "struct Market storage ref" | |
} | |
}, | |
"id": 30549, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "5599:17:23", | |
"memberName": "totalSupplyShares", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32276, | |
"src": "5588:28:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
}, | |
{ | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
], | |
"expression": { | |
"id": 30540, | |
"name": "assets", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30479, | |
"src": "5538:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 30541, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "5545:12:23", | |
"memberName": "toSharesDown", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 33312, | |
"src": "5538:19:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$", | |
"typeString": "function (uint256,uint256,uint256) pure returns (uint256)" | |
} | |
}, | |
"id": 30550, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "5538:79:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "5529:88:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 30552, | |
"nodeType": "ExpressionStatement", | |
"src": "5529:88:23" | |
} | |
}, | |
{ | |
"expression": { | |
"id": 30575, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"expression": { | |
"baseExpression": { | |
"baseExpression": { | |
"id": 30568, | |
"name": "position", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30122, | |
"src": "5729:8:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_mapping$_t_address_$_t_struct$_Position_$32272_storage_$_$", | |
"typeString": "mapping(Id => mapping(address => struct Position storage ref))" | |
} | |
}, | |
"id": 30571, | |
"indexExpression": { | |
"id": 30569, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30494, | |
"src": "5738:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "5729:12:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Position_$32272_storage_$", | |
"typeString": "mapping(address => struct Position storage ref)" | |
} | |
}, | |
"id": 30572, | |
"indexExpression": { | |
"id": 30570, | |
"name": "onBehalf", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30483, | |
"src": "5742:8:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "5729:22:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Position_$32272_storage", | |
"typeString": "struct Position storage ref" | |
} | |
}, | |
"id": 30573, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": true, | |
"memberLocation": "5752:12:23", | |
"memberName": "supplyShares", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32267, | |
"src": "5729:35:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "+=", | |
"rightHandSide": { | |
"id": 30574, | |
"name": "shares", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30481, | |
"src": "5768:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "5729:45:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 30576, | |
"nodeType": "ExpressionStatement", | |
"src": "5729:45:23" | |
}, | |
{ | |
"expression": { | |
"id": 30584, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"expression": { | |
"baseExpression": { | |
"id": 30577, | |
"name": "market", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30129, | |
"src": "5784:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_struct$_Market_$32285_storage_$", | |
"typeString": "mapping(Id => struct Market storage ref)" | |
} | |
}, | |
"id": 30579, | |
"indexExpression": { | |
"id": 30578, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30494, | |
"src": "5791:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "5784:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Market_$32285_storage", | |
"typeString": "struct Market storage ref" | |
} | |
}, | |
"id": 30580, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": true, | |
"memberLocation": "5795:17:23", | |
"memberName": "totalSupplyShares", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32276, | |
"src": "5784:28:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "+=", | |
"rightHandSide": { | |
"arguments": [], | |
"expression": { | |
"argumentTypes": [], | |
"expression": { | |
"id": 30581, | |
"name": "shares", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30481, | |
"src": "5816:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 30582, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "5823:9:23", | |
"memberName": "toUint128", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 33437, | |
"src": "5816:16:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint128_$attached_to$_t_uint256_$", | |
"typeString": "function (uint256) pure returns (uint128)" | |
} | |
}, | |
"id": 30583, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "5816:18:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"src": "5784:50:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"id": 30585, | |
"nodeType": "ExpressionStatement", | |
"src": "5784:50:23" | |
}, | |
{ | |
"expression": { | |
"id": 30593, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"expression": { | |
"baseExpression": { | |
"id": 30586, | |
"name": "market", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30129, | |
"src": "5844:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_struct$_Market_$32285_storage_$", | |
"typeString": "mapping(Id => struct Market storage ref)" | |
} | |
}, | |
"id": 30588, | |
"indexExpression": { | |
"id": 30587, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30494, | |
"src": "5851:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "5844:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Market_$32285_storage", | |
"typeString": "struct Market storage ref" | |
} | |
}, | |
"id": 30589, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": true, | |
"memberLocation": "5855:17:23", | |
"memberName": "totalSupplyAssets", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32274, | |
"src": "5844:28:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "+=", | |
"rightHandSide": { | |
"arguments": [], | |
"expression": { | |
"argumentTypes": [], | |
"expression": { | |
"id": 30590, | |
"name": "assets", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30479, | |
"src": "5876:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 30591, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "5883:9:23", | |
"memberName": "toUint128", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 33437, | |
"src": "5876:16:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint128_$attached_to$_t_uint256_$", | |
"typeString": "function (uint256) pure returns (uint128)" | |
} | |
}, | |
"id": 30592, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "5876:18:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"src": "5844:50:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"id": 30594, | |
"nodeType": "ExpressionStatement", | |
"src": "5844:50:23" | |
}, | |
{ | |
"eventCall": { | |
"arguments": [ | |
{ | |
"id": 30598, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30494, | |
"src": "5927:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
{ | |
"expression": { | |
"id": 30599, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": -15, | |
"src": "5931:3:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 30600, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "5935:6:23", | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"src": "5931:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"id": 30601, | |
"name": "onBehalf", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30483, | |
"src": "5943:8:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"id": 30602, | |
"name": "assets", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30479, | |
"src": "5953:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"id": 30603, | |
"name": "shares", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30481, | |
"src": "5961:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
}, | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"expression": { | |
"id": 30595, | |
"name": "EventsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32976, | |
"src": "5910:9:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_EventsLib_$32976_$", | |
"typeString": "type(library EventsLib)" | |
} | |
}, | |
"id": 30597, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "5920:6:23", | |
"memberName": "Supply", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32844, | |
"src": "5910:16:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_event_nonpayable$_t_userDefinedValueType$_Id_$32254_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", | |
"typeString": "function (Id,address,address,uint256,uint256)" | |
} | |
}, | |
"id": 30604, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "5910:58:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 30605, | |
"nodeType": "EmitStatement", | |
"src": "5905:63:23" | |
}, | |
{ | |
"condition": { | |
"commonType": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"id": 30609, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"expression": { | |
"id": 30606, | |
"name": "data", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30485, | |
"src": "5983:4:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes_calldata_ptr", | |
"typeString": "bytes calldata" | |
} | |
}, | |
"id": 30607, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "5988:6:23", | |
"memberName": "length", | |
"nodeType": "MemberAccess", | |
"src": "5983:11:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": ">", | |
"rightExpression": { | |
"hexValue": "30", | |
"id": 30608, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "5997:1:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
}, | |
"value": "0" | |
}, | |
"src": "5983:15:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"id": 30619, | |
"nodeType": "IfStatement", | |
"src": "5979:83:23", | |
"trueBody": { | |
"expression": { | |
"arguments": [ | |
{ | |
"id": 30615, | |
"name": "assets", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30479, | |
"src": "6049:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"id": 30616, | |
"name": "data", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30485, | |
"src": "6057:4:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes_calldata_ptr", | |
"typeString": "bytes calldata" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_bytes_calldata_ptr", | |
"typeString": "bytes calldata" | |
} | |
], | |
"expression": { | |
"arguments": [ | |
{ | |
"expression": { | |
"id": 30611, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": -15, | |
"src": "6022:3:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 30612, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "6026:6:23", | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"src": "6022:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
], | |
"id": 30610, | |
"name": "IMorphoSupplyCallback", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32639, | |
"src": "6000:21:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_IMorphoSupplyCallback_$32639_$", | |
"typeString": "type(contract IMorphoSupplyCallback)" | |
} | |
}, | |
"id": 30613, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "6000:33:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_contract$_IMorphoSupplyCallback_$32639", | |
"typeString": "contract IMorphoSupplyCallback" | |
} | |
}, | |
"id": 30614, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "6034:14:23", | |
"memberName": "onMorphoSupply", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32638, | |
"src": "6000:48:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", | |
"typeString": "function (uint256,bytes memory) external" | |
} | |
}, | |
"id": 30617, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "6000:62:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 30618, | |
"nodeType": "ExpressionStatement", | |
"src": "6000:62:23" | |
} | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"expression": { | |
"id": 30625, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": -15, | |
"src": "6127:3:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 30626, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "6131:6:23", | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"src": "6127:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"arguments": [ | |
{ | |
"id": 30629, | |
"name": "this", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": -28, | |
"src": "6147:4:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_contract$_Morpho_$32215", | |
"typeString": "contract Morpho" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_contract$_Morpho_$32215", | |
"typeString": "contract Morpho" | |
} | |
], | |
"id": 30628, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"nodeType": "ElementaryTypeNameExpression", | |
"src": "6139:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_address_$", | |
"typeString": "type(address)" | |
}, | |
"typeName": { | |
"id": 30627, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "6139:7:23", | |
"typeDescriptions": {} | |
} | |
}, | |
"id": 30630, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "6139:13:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"id": 30631, | |
"name": "assets", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30479, | |
"src": "6154:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"expression": { | |
"arguments": [ | |
{ | |
"expression": { | |
"id": 30621, | |
"name": "marketParams", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30477, | |
"src": "6080:12:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_MarketParams_$32265_memory_ptr", | |
"typeString": "struct MarketParams memory" | |
} | |
}, | |
"id": 30622, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "6093:15:23", | |
"memberName": "borrowableToken", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32256, | |
"src": "6080:28:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
], | |
"id": 30620, | |
"name": "IERC20", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32219, | |
"src": "6073:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_IERC20_$32219_$", | |
"typeString": "type(contract IERC20)" | |
} | |
}, | |
"id": 30623, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "6073:36:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_contract$_IERC20_$32219", | |
"typeString": "contract IERC20" | |
} | |
}, | |
"id": 30624, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "6110:16:23", | |
"memberName": "safeTransferFrom", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 33272, | |
"src": "6073:53:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$32219_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$32219_$", | |
"typeString": "function (contract IERC20,address,address,uint256)" | |
} | |
}, | |
"id": 30632, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "6073:88:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 30633, | |
"nodeType": "ExpressionStatement", | |
"src": "6073:88:23" | |
}, | |
{ | |
"expression": { | |
"components": [ | |
{ | |
"id": 30634, | |
"name": "assets", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30479, | |
"src": "6180:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"id": 30635, | |
"name": "shares", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30481, | |
"src": "6188:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"id": 30636, | |
"isConstant": false, | |
"isInlineArray": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "TupleExpression", | |
"src": "6179:16:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", | |
"typeString": "tuple(uint256,uint256)" | |
} | |
}, | |
"functionReturnParameters": 30491, | |
"id": 30637, | |
"nodeType": "Return", | |
"src": "6172:23:23" | |
} | |
] | |
}, | |
"baseFunctions": [ | |
32466 | |
], | |
"documentation": { | |
"id": 30474, | |
"nodeType": "StructuredDocumentation", | |
"src": "4964:23:23", | |
"text": "@inheritdoc IMorpho" | |
}, | |
"functionSelector": "a99aad89", | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [], | |
"name": "supply", | |
"nameLocation": "5001:6:23", | |
"parameters": { | |
"id": 30486, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 30477, | |
"mutability": "mutable", | |
"name": "marketParams", | |
"nameLocation": "5037:12:23", | |
"nodeType": "VariableDeclaration", | |
"scope": 30639, | |
"src": "5017:32:23", | |
"stateVariable": false, | |
"storageLocation": "memory", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_MarketParams_$32265_memory_ptr", | |
"typeString": "struct MarketParams" | |
}, | |
"typeName": { | |
"id": 30476, | |
"nodeType": "UserDefinedTypeName", | |
"pathNode": { | |
"id": 30475, | |
"name": "MarketParams", | |
"nameLocations": [ | |
"5017:12:23" | |
], | |
"nodeType": "IdentifierPath", | |
"referencedDeclaration": 32265, | |
"src": "5017:12:23" | |
}, | |
"referencedDeclaration": 32265, | |
"src": "5017:12:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_MarketParams_$32265_storage_ptr", | |
"typeString": "struct MarketParams" | |
} | |
}, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 30479, | |
"mutability": "mutable", | |
"name": "assets", | |
"nameLocation": "5067:6:23", | |
"nodeType": "VariableDeclaration", | |
"scope": 30639, | |
"src": "5059:14:23", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 30478, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "5059:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 30481, | |
"mutability": "mutable", | |
"name": "shares", | |
"nameLocation": "5091:6:23", | |
"nodeType": "VariableDeclaration", | |
"scope": 30639, | |
"src": "5083:14:23", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 30480, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "5083:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 30483, | |
"mutability": "mutable", | |
"name": "onBehalf", | |
"nameLocation": "5115:8:23", | |
"nodeType": "VariableDeclaration", | |
"scope": 30639, | |
"src": "5107:16:23", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 30482, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "5107:7:23", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 30485, | |
"mutability": "mutable", | |
"name": "data", | |
"nameLocation": "5148:4:23", | |
"nodeType": "VariableDeclaration", | |
"scope": 30639, | |
"src": "5133:19:23", | |
"stateVariable": false, | |
"storageLocation": "calldata", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes_calldata_ptr", | |
"typeString": "bytes" | |
}, | |
"typeName": { | |
"id": 30484, | |
"name": "bytes", | |
"nodeType": "ElementaryTypeName", | |
"src": "5133:5:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes_storage_ptr", | |
"typeString": "bytes" | |
} | |
}, | |
"visibility": "internal" | |
} | |
], | |
"src": "5007:151:23" | |
}, | |
"returnParameters": { | |
"id": 30491, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 30488, | |
"mutability": "mutable", | |
"name": "", | |
"nameLocation": "-1:-1:-1", | |
"nodeType": "VariableDeclaration", | |
"scope": 30639, | |
"src": "5177:7:23", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 30487, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "5177:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 30490, | |
"mutability": "mutable", | |
"name": "", | |
"nameLocation": "-1:-1:-1", | |
"nodeType": "VariableDeclaration", | |
"scope": 30639, | |
"src": "5186:7:23", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 30489, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "5186:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"visibility": "internal" | |
} | |
], | |
"src": "5176:18:23" | |
}, | |
"scope": 32215, | |
"stateMutability": "nonpayable", | |
"virtual": false, | |
"visibility": "external" | |
}, | |
{ | |
"id": 30809, | |
"nodeType": "FunctionDefinition", | |
"src": "6236:1384:23", | |
"nodes": [], | |
"body": { | |
"id": 30808, | |
"nodeType": "Block", | |
"src": "6438:1182:23", | |
"nodes": [], | |
"statements": [ | |
{ | |
"assignments": [ | |
30660 | |
], | |
"declarations": [ | |
{ | |
"constant": false, | |
"id": 30660, | |
"mutability": "mutable", | |
"name": "id", | |
"nameLocation": "6451:2:23", | |
"nodeType": "VariableDeclaration", | |
"scope": 30808, | |
"src": "6448:5:23", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
}, | |
"typeName": { | |
"id": 30659, | |
"nodeType": "UserDefinedTypeName", | |
"pathNode": { | |
"id": 30658, | |
"name": "Id", | |
"nameLocations": [ | |
"6448:2:23" | |
], | |
"nodeType": "IdentifierPath", | |
"referencedDeclaration": 32254, | |
"src": "6448:2:23" | |
}, | |
"referencedDeclaration": 32254, | |
"src": "6448:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"visibility": "internal" | |
} | |
], | |
"id": 30664, | |
"initialValue": { | |
"arguments": [], | |
"expression": { | |
"argumentTypes": [], | |
"expression": { | |
"id": 30661, | |
"name": "marketParams", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30643, | |
"src": "6456:12:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_MarketParams_$32265_memory_ptr", | |
"typeString": "struct MarketParams memory" | |
} | |
}, | |
"id": 30662, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "6469:2:23", | |
"memberName": "id", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32994, | |
"src": "6456:15:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_struct$_MarketParams_$32265_memory_ptr_$returns$_t_userDefinedValueType$_Id_$32254_$attached_to$_t_struct$_MarketParams_$32265_memory_ptr_$", | |
"typeString": "function (struct MarketParams memory) pure returns (Id)" | |
} | |
}, | |
"id": 30663, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "6456:17:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"nodeType": "VariableDeclarationStatement", | |
"src": "6448:25:23" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"commonType": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
}, | |
"id": 30671, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"expression": { | |
"baseExpression": { | |
"id": 30666, | |
"name": "market", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30129, | |
"src": "6491:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_struct$_Market_$32285_storage_$", | |
"typeString": "mapping(Id => struct Market storage ref)" | |
} | |
}, | |
"id": 30668, | |
"indexExpression": { | |
"id": 30667, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30660, | |
"src": "6498:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "6491:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Market_$32285_storage", | |
"typeString": "struct Market storage ref" | |
} | |
}, | |
"id": 30669, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "6502:10:23", | |
"memberName": "lastUpdate", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32282, | |
"src": "6491:21:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "!=", | |
"rightExpression": { | |
"hexValue": "30", | |
"id": 30670, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "6516:1:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
}, | |
"value": "0" | |
}, | |
"src": "6491:26:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"expression": { | |
"id": 30672, | |
"name": "ErrorsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32787, | |
"src": "6519:9:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_ErrorsLib_$32787_$", | |
"typeString": "type(library ErrorsLib)" | |
} | |
}, | |
"id": 30673, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"memberLocation": "6529:18:23", | |
"memberName": "MARKET_NOT_CREATED", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32734, | |
"src": "6519:28:23", | |
"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": 30665, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
-18, | |
-18 | |
], | |
"referencedDeclaration": -18, | |
"src": "6483:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 30674, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "6483:65:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 30675, | |
"nodeType": "ExpressionStatement", | |
"src": "6483:65:23" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"id": 30679, | |
"name": "assets", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30645, | |
"src": "6590:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"id": 30680, | |
"name": "shares", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30647, | |
"src": "6598:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"expression": { | |
"id": 30677, | |
"name": "UtilsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 33450, | |
"src": "6566:8:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_UtilsLib_$33450_$", | |
"typeString": "type(library UtilsLib)" | |
} | |
}, | |
"id": 30678, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "6575:14:23", | |
"memberName": "exactlyOneZero", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 33399, | |
"src": "6566:23:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$", | |
"typeString": "function (uint256,uint256) pure returns (bool)" | |
} | |
}, | |
"id": 30681, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "6566:39:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"expression": { | |
"id": 30682, | |
"name": "ErrorsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32787, | |
"src": "6607:9:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_ErrorsLib_$32787_$", | |
"typeString": "type(library ErrorsLib)" | |
} | |
}, | |
"id": 30683, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"memberLocation": "6617:18:23", | |
"memberName": "INCONSISTENT_INPUT", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32738, | |
"src": "6607:28:23", | |
"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": 30676, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
-18, | |
-18 | |
], | |
"referencedDeclaration": -18, | |
"src": "6558:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 30684, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "6558:78:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 30685, | |
"nodeType": "ExpressionStatement", | |
"src": "6558:78:23" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"commonType": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"id": 30692, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"id": 30687, | |
"name": "receiver", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30651, | |
"src": "6746:8:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "!=", | |
"rightExpression": { | |
"arguments": [ | |
{ | |
"hexValue": "30", | |
"id": 30690, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "6766:1:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
}, | |
"value": "0" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
} | |
], | |
"id": 30689, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"nodeType": "ElementaryTypeNameExpression", | |
"src": "6758:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_address_$", | |
"typeString": "type(address)" | |
}, | |
"typeName": { | |
"id": 30688, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "6758:7:23", | |
"typeDescriptions": {} | |
} | |
}, | |
"id": 30691, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "6758:10:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"src": "6746:22:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"expression": { | |
"id": 30693, | |
"name": "ErrorsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32787, | |
"src": "6770:9:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_ErrorsLib_$32787_$", | |
"typeString": "type(library ErrorsLib)" | |
} | |
}, | |
"id": 30694, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"memberLocation": "6780:12:23", | |
"memberName": "ZERO_ADDRESS", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32746, | |
"src": "6770:22:23", | |
"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": 30686, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
-18, | |
-18 | |
], | |
"referencedDeclaration": -18, | |
"src": "6738:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 30695, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "6738:55:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 30696, | |
"nodeType": "ExpressionStatement", | |
"src": "6738:55:23" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"id": 30699, | |
"name": "onBehalf", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30649, | |
"src": "6831:8:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
], | |
"id": 30698, | |
"name": "_isSenderAuthorized", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 31916, | |
"src": "6811:19:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", | |
"typeString": "function (address) view returns (bool)" | |
} | |
}, | |
"id": 30700, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "6811:29:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"expression": { | |
"id": 30701, | |
"name": "ErrorsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32787, | |
"src": "6842:9:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_ErrorsLib_$32787_$", | |
"typeString": "type(library ErrorsLib)" | |
} | |
}, | |
"id": 30702, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"memberLocation": "6852:12:23", | |
"memberName": "UNAUTHORIZED", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32750, | |
"src": "6842:22:23", | |
"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": 30697, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
-18, | |
-18 | |
], | |
"referencedDeclaration": -18, | |
"src": "6803:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 30703, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "6803:62:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 30704, | |
"nodeType": "ExpressionStatement", | |
"src": "6803:62:23" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"id": 30706, | |
"name": "marketParams", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30643, | |
"src": "6892:12:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_MarketParams_$32265_memory_ptr", | |
"typeString": "struct MarketParams memory" | |
} | |
}, | |
{ | |
"id": 30707, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30660, | |
"src": "6906:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_struct$_MarketParams_$32265_memory_ptr", | |
"typeString": "struct MarketParams memory" | |
}, | |
{ | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
], | |
"id": 30705, | |
"name": "_accrueInterest", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32069, | |
"src": "6876:15:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_MarketParams_$32265_memory_ptr_$_t_userDefinedValueType$_Id_$32254_$returns$__$", | |
"typeString": "function (struct MarketParams memory,Id)" | |
} | |
}, | |
"id": 30708, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "6876:33:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 30709, | |
"nodeType": "ExpressionStatement", | |
"src": "6876:33:23" | |
}, | |
{ | |
"condition": { | |
"commonType": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"id": 30712, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"id": 30710, | |
"name": "assets", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30645, | |
"src": "6924:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": ">", | |
"rightExpression": { | |
"hexValue": "30", | |
"id": 30711, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "6933:1:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
}, | |
"value": "0" | |
}, | |
"src": "6924:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"falseBody": { | |
"expression": { | |
"id": 30739, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"id": 30727, | |
"name": "assets", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30645, | |
"src": "7037:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"arguments": [ | |
{ | |
"expression": { | |
"baseExpression": { | |
"id": 30730, | |
"name": "market", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30129, | |
"src": "7066:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_struct$_Market_$32285_storage_$", | |
"typeString": "mapping(Id => struct Market storage ref)" | |
} | |
}, | |
"id": 30732, | |
"indexExpression": { | |
"id": 30731, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30660, | |
"src": "7073:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "7066:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Market_$32285_storage", | |
"typeString": "struct Market storage ref" | |
} | |
}, | |
"id": 30733, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "7077:17:23", | |
"memberName": "totalSupplyAssets", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32274, | |
"src": "7066:28:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
{ | |
"expression": { | |
"baseExpression": { | |
"id": 30734, | |
"name": "market", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30129, | |
"src": "7096:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_struct$_Market_$32285_storage_$", | |
"typeString": "mapping(Id => struct Market storage ref)" | |
} | |
}, | |
"id": 30736, | |
"indexExpression": { | |
"id": 30735, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30660, | |
"src": "7103:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "7096:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Market_$32285_storage", | |
"typeString": "struct Market storage ref" | |
} | |
}, | |
"id": 30737, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "7107:17:23", | |
"memberName": "totalSupplyShares", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32276, | |
"src": "7096:28:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
}, | |
{ | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
], | |
"expression": { | |
"id": 30728, | |
"name": "shares", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30647, | |
"src": "7046:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 30729, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "7053:12:23", | |
"memberName": "toAssetsDown", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 33335, | |
"src": "7046:19:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$", | |
"typeString": "function (uint256,uint256,uint256) pure returns (uint256)" | |
} | |
}, | |
"id": 30738, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "7046:79:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "7037:88:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 30740, | |
"nodeType": "ExpressionStatement", | |
"src": "7037:88:23" | |
}, | |
"id": 30741, | |
"nodeType": "IfStatement", | |
"src": "6920:205:23", | |
"trueBody": { | |
"expression": { | |
"id": 30725, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"id": 30713, | |
"name": "shares", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30647, | |
"src": "6936:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"arguments": [ | |
{ | |
"expression": { | |
"baseExpression": { | |
"id": 30716, | |
"name": "market", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30129, | |
"src": "6963:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_struct$_Market_$32285_storage_$", | |
"typeString": "mapping(Id => struct Market storage ref)" | |
} | |
}, | |
"id": 30718, | |
"indexExpression": { | |
"id": 30717, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30660, | |
"src": "6970:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "6963:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Market_$32285_storage", | |
"typeString": "struct Market storage ref" | |
} | |
}, | |
"id": 30719, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "6974:17:23", | |
"memberName": "totalSupplyAssets", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32274, | |
"src": "6963:28:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
{ | |
"expression": { | |
"baseExpression": { | |
"id": 30720, | |
"name": "market", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30129, | |
"src": "6993:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_struct$_Market_$32285_storage_$", | |
"typeString": "mapping(Id => struct Market storage ref)" | |
} | |
}, | |
"id": 30722, | |
"indexExpression": { | |
"id": 30721, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30660, | |
"src": "7000:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "6993:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Market_$32285_storage", | |
"typeString": "struct Market storage ref" | |
} | |
}, | |
"id": 30723, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "7004:17:23", | |
"memberName": "totalSupplyShares", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32276, | |
"src": "6993:28:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
}, | |
{ | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
], | |
"expression": { | |
"id": 30714, | |
"name": "assets", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30645, | |
"src": "6945:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 30715, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "6952:10:23", | |
"memberName": "toSharesUp", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 33358, | |
"src": "6945:17:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$", | |
"typeString": "function (uint256,uint256,uint256) pure returns (uint256)" | |
} | |
}, | |
"id": 30724, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "6945:77:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "6936:86:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 30726, | |
"nodeType": "ExpressionStatement", | |
"src": "6936:86:23" | |
} | |
}, | |
{ | |
"expression": { | |
"id": 30749, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"expression": { | |
"baseExpression": { | |
"baseExpression": { | |
"id": 30742, | |
"name": "position", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30122, | |
"src": "7136:8:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_mapping$_t_address_$_t_struct$_Position_$32272_storage_$_$", | |
"typeString": "mapping(Id => mapping(address => struct Position storage ref))" | |
} | |
}, | |
"id": 30745, | |
"indexExpression": { | |
"id": 30743, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30660, | |
"src": "7145:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "7136:12:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Position_$32272_storage_$", | |
"typeString": "mapping(address => struct Position storage ref)" | |
} | |
}, | |
"id": 30746, | |
"indexExpression": { | |
"id": 30744, | |
"name": "onBehalf", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30649, | |
"src": "7149:8:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "7136:22:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Position_$32272_storage", | |
"typeString": "struct Position storage ref" | |
} | |
}, | |
"id": 30747, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": true, | |
"memberLocation": "7159:12:23", | |
"memberName": "supplyShares", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32267, | |
"src": "7136:35:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "-=", | |
"rightHandSide": { | |
"id": 30748, | |
"name": "shares", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30647, | |
"src": "7175:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "7136:45:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 30750, | |
"nodeType": "ExpressionStatement", | |
"src": "7136:45:23" | |
}, | |
{ | |
"expression": { | |
"id": 30758, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"expression": { | |
"baseExpression": { | |
"id": 30751, | |
"name": "market", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30129, | |
"src": "7191:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_struct$_Market_$32285_storage_$", | |
"typeString": "mapping(Id => struct Market storage ref)" | |
} | |
}, | |
"id": 30753, | |
"indexExpression": { | |
"id": 30752, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30660, | |
"src": "7198:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "7191:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Market_$32285_storage", | |
"typeString": "struct Market storage ref" | |
} | |
}, | |
"id": 30754, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": true, | |
"memberLocation": "7202:17:23", | |
"memberName": "totalSupplyShares", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32276, | |
"src": "7191:28:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "-=", | |
"rightHandSide": { | |
"arguments": [], | |
"expression": { | |
"argumentTypes": [], | |
"expression": { | |
"id": 30755, | |
"name": "shares", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30647, | |
"src": "7223:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 30756, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "7230:9:23", | |
"memberName": "toUint128", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 33437, | |
"src": "7223:16:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint128_$attached_to$_t_uint256_$", | |
"typeString": "function (uint256) pure returns (uint128)" | |
} | |
}, | |
"id": 30757, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "7223:18:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"src": "7191:50:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"id": 30759, | |
"nodeType": "ExpressionStatement", | |
"src": "7191:50:23" | |
}, | |
{ | |
"expression": { | |
"id": 30767, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"expression": { | |
"baseExpression": { | |
"id": 30760, | |
"name": "market", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30129, | |
"src": "7251:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_struct$_Market_$32285_storage_$", | |
"typeString": "mapping(Id => struct Market storage ref)" | |
} | |
}, | |
"id": 30762, | |
"indexExpression": { | |
"id": 30761, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30660, | |
"src": "7258:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "7251:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Market_$32285_storage", | |
"typeString": "struct Market storage ref" | |
} | |
}, | |
"id": 30763, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": true, | |
"memberLocation": "7262:17:23", | |
"memberName": "totalSupplyAssets", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32274, | |
"src": "7251:28:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "-=", | |
"rightHandSide": { | |
"arguments": [], | |
"expression": { | |
"argumentTypes": [], | |
"expression": { | |
"id": 30764, | |
"name": "assets", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30645, | |
"src": "7283:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 30765, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "7290:9:23", | |
"memberName": "toUint128", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 33437, | |
"src": "7283:16:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint128_$attached_to$_t_uint256_$", | |
"typeString": "function (uint256) pure returns (uint128)" | |
} | |
}, | |
"id": 30766, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "7283:18:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"src": "7251:50:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"id": 30768, | |
"nodeType": "ExpressionStatement", | |
"src": "7251:50:23" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"commonType": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
}, | |
"id": 30778, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"expression": { | |
"baseExpression": { | |
"id": 30770, | |
"name": "market", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30129, | |
"src": "7320:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_struct$_Market_$32285_storage_$", | |
"typeString": "mapping(Id => struct Market storage ref)" | |
} | |
}, | |
"id": 30772, | |
"indexExpression": { | |
"id": 30771, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30660, | |
"src": "7327:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "7320:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Market_$32285_storage", | |
"typeString": "struct Market storage ref" | |
} | |
}, | |
"id": 30773, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "7331:17:23", | |
"memberName": "totalBorrowAssets", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32278, | |
"src": "7320:28:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "<=", | |
"rightExpression": { | |
"expression": { | |
"baseExpression": { | |
"id": 30774, | |
"name": "market", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30129, | |
"src": "7352:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_struct$_Market_$32285_storage_$", | |
"typeString": "mapping(Id => struct Market storage ref)" | |
} | |
}, | |
"id": 30776, | |
"indexExpression": { | |
"id": 30775, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30660, | |
"src": "7359:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "7352:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Market_$32285_storage", | |
"typeString": "struct Market storage ref" | |
} | |
}, | |
"id": 30777, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "7363:17:23", | |
"memberName": "totalSupplyAssets", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32274, | |
"src": "7352:28:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"src": "7320:60:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"expression": { | |
"id": 30779, | |
"name": "ErrorsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32787, | |
"src": "7382:9:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_ErrorsLib_$32787_$", | |
"typeString": "type(library ErrorsLib)" | |
} | |
}, | |
"id": 30780, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"memberLocation": "7392:22:23", | |
"memberName": "INSUFFICIENT_LIQUIDITY", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32758, | |
"src": "7382:32:23", | |
"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": 30769, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
-18, | |
-18 | |
], | |
"referencedDeclaration": -18, | |
"src": "7312:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 30781, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "7312:103:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 30782, | |
"nodeType": "ExpressionStatement", | |
"src": "7312:103:23" | |
}, | |
{ | |
"eventCall": { | |
"arguments": [ | |
{ | |
"id": 30786, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30660, | |
"src": "7450:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
{ | |
"expression": { | |
"id": 30787, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": -15, | |
"src": "7454:3:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 30788, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "7458:6:23", | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"src": "7454:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"id": 30789, | |
"name": "onBehalf", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30649, | |
"src": "7466:8:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"id": 30790, | |
"name": "receiver", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30651, | |
"src": "7476:8:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"id": 30791, | |
"name": "assets", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30645, | |
"src": "7486:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"id": 30792, | |
"name": "shares", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30647, | |
"src": "7494:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
}, | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"expression": { | |
"id": 30783, | |
"name": "EventsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32976, | |
"src": "7431:9:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_EventsLib_$32976_$", | |
"typeString": "type(library EventsLib)" | |
} | |
}, | |
"id": 30785, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "7441:8:23", | |
"memberName": "Withdraw", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32860, | |
"src": "7431:18:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_event_nonpayable$_t_userDefinedValueType$_Id_$32254_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", | |
"typeString": "function (Id,address,address,address,uint256,uint256)" | |
} | |
}, | |
"id": 30793, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "7431:70:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 30794, | |
"nodeType": "EmitStatement", | |
"src": "7426:75:23" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"id": 30800, | |
"name": "receiver", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30651, | |
"src": "7562:8:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"id": 30801, | |
"name": "assets", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30645, | |
"src": "7572:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"expression": { | |
"arguments": [ | |
{ | |
"expression": { | |
"id": 30796, | |
"name": "marketParams", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30643, | |
"src": "7519:12:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_MarketParams_$32265_memory_ptr", | |
"typeString": "struct MarketParams memory" | |
} | |
}, | |
"id": 30797, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "7532:15:23", | |
"memberName": "borrowableToken", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32256, | |
"src": "7519:28:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
], | |
"id": 30795, | |
"name": "IERC20", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32219, | |
"src": "7512:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_IERC20_$32219_$", | |
"typeString": "type(contract IERC20)" | |
} | |
}, | |
"id": 30798, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "7512:36:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_contract$_IERC20_$32219", | |
"typeString": "contract IERC20" | |
} | |
}, | |
"id": 30799, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "7549:12:23", | |
"memberName": "safeTransfer", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 33219, | |
"src": "7512:49:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$32219_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$32219_$", | |
"typeString": "function (contract IERC20,address,uint256)" | |
} | |
}, | |
"id": 30802, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "7512:67:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 30803, | |
"nodeType": "ExpressionStatement", | |
"src": "7512:67:23" | |
}, | |
{ | |
"expression": { | |
"components": [ | |
{ | |
"id": 30804, | |
"name": "assets", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30645, | |
"src": "7598:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"id": 30805, | |
"name": "shares", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30647, | |
"src": "7606:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"id": 30806, | |
"isConstant": false, | |
"isInlineArray": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "TupleExpression", | |
"src": "7597:16:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", | |
"typeString": "tuple(uint256,uint256)" | |
} | |
}, | |
"functionReturnParameters": 30657, | |
"id": 30807, | |
"nodeType": "Return", | |
"src": "7590:23:23" | |
} | |
] | |
}, | |
"baseFunctions": [ | |
32485 | |
], | |
"documentation": { | |
"id": 30640, | |
"nodeType": "StructuredDocumentation", | |
"src": "6208:23:23", | |
"text": "@inheritdoc IMorpho" | |
}, | |
"functionSelector": "5c2bea49", | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [], | |
"name": "withdraw", | |
"nameLocation": "6245:8:23", | |
"parameters": { | |
"id": 30652, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 30643, | |
"mutability": "mutable", | |
"name": "marketParams", | |
"nameLocation": "6283:12:23", | |
"nodeType": "VariableDeclaration", | |
"scope": 30809, | |
"src": "6263:32:23", | |
"stateVariable": false, | |
"storageLocation": "memory", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_MarketParams_$32265_memory_ptr", | |
"typeString": "struct MarketParams" | |
}, | |
"typeName": { | |
"id": 30642, | |
"nodeType": "UserDefinedTypeName", | |
"pathNode": { | |
"id": 30641, | |
"name": "MarketParams", | |
"nameLocations": [ | |
"6263:12:23" | |
], | |
"nodeType": "IdentifierPath", | |
"referencedDeclaration": 32265, | |
"src": "6263:12:23" | |
}, | |
"referencedDeclaration": 32265, | |
"src": "6263:12:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_MarketParams_$32265_storage_ptr", | |
"typeString": "struct MarketParams" | |
} | |
}, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 30645, | |
"mutability": "mutable", | |
"name": "assets", | |
"nameLocation": "6313:6:23", | |
"nodeType": "VariableDeclaration", | |
"scope": 30809, | |
"src": "6305:14:23", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 30644, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "6305:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 30647, | |
"mutability": "mutable", | |
"name": "shares", | |
"nameLocation": "6337:6:23", | |
"nodeType": "VariableDeclaration", | |
"scope": 30809, | |
"src": "6329:14:23", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 30646, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "6329:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 30649, | |
"mutability": "mutable", | |
"name": "onBehalf", | |
"nameLocation": "6361:8:23", | |
"nodeType": "VariableDeclaration", | |
"scope": 30809, | |
"src": "6353:16:23", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 30648, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "6353:7:23", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 30651, | |
"mutability": "mutable", | |
"name": "receiver", | |
"nameLocation": "6387:8:23", | |
"nodeType": "VariableDeclaration", | |
"scope": 30809, | |
"src": "6379:16:23", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 30650, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "6379:7:23", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"visibility": "internal" | |
} | |
], | |
"src": "6253:148:23" | |
}, | |
"returnParameters": { | |
"id": 30657, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 30654, | |
"mutability": "mutable", | |
"name": "", | |
"nameLocation": "-1:-1:-1", | |
"nodeType": "VariableDeclaration", | |
"scope": 30809, | |
"src": "6420:7:23", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 30653, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "6420:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 30656, | |
"mutability": "mutable", | |
"name": "", | |
"nameLocation": "-1:-1:-1", | |
"nodeType": "VariableDeclaration", | |
"scope": 30809, | |
"src": "6429:7:23", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 30655, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "6429:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"visibility": "internal" | |
} | |
], | |
"src": "6419:18:23" | |
}, | |
"scope": 32215, | |
"stateMutability": "nonpayable", | |
"virtual": false, | |
"visibility": "external" | |
}, | |
{ | |
"id": 30991, | |
"nodeType": "FunctionDefinition", | |
"src": "7683:1484:23", | |
"nodes": [], | |
"body": { | |
"id": 30990, | |
"nodeType": "Block", | |
"src": "7883:1284:23", | |
"nodes": [], | |
"statements": [ | |
{ | |
"assignments": [ | |
30830 | |
], | |
"declarations": [ | |
{ | |
"constant": false, | |
"id": 30830, | |
"mutability": "mutable", | |
"name": "id", | |
"nameLocation": "7896:2:23", | |
"nodeType": "VariableDeclaration", | |
"scope": 30990, | |
"src": "7893:5:23", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
}, | |
"typeName": { | |
"id": 30829, | |
"nodeType": "UserDefinedTypeName", | |
"pathNode": { | |
"id": 30828, | |
"name": "Id", | |
"nameLocations": [ | |
"7893:2:23" | |
], | |
"nodeType": "IdentifierPath", | |
"referencedDeclaration": 32254, | |
"src": "7893:2:23" | |
}, | |
"referencedDeclaration": 32254, | |
"src": "7893:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"visibility": "internal" | |
} | |
], | |
"id": 30834, | |
"initialValue": { | |
"arguments": [], | |
"expression": { | |
"argumentTypes": [], | |
"expression": { | |
"id": 30831, | |
"name": "marketParams", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30813, | |
"src": "7901:12:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_MarketParams_$32265_memory_ptr", | |
"typeString": "struct MarketParams memory" | |
} | |
}, | |
"id": 30832, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "7914:2:23", | |
"memberName": "id", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32994, | |
"src": "7901:15:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_struct$_MarketParams_$32265_memory_ptr_$returns$_t_userDefinedValueType$_Id_$32254_$attached_to$_t_struct$_MarketParams_$32265_memory_ptr_$", | |
"typeString": "function (struct MarketParams memory) pure returns (Id)" | |
} | |
}, | |
"id": 30833, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "7901:17:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"nodeType": "VariableDeclarationStatement", | |
"src": "7893:25:23" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"commonType": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
}, | |
"id": 30841, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"expression": { | |
"baseExpression": { | |
"id": 30836, | |
"name": "market", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30129, | |
"src": "7936:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_struct$_Market_$32285_storage_$", | |
"typeString": "mapping(Id => struct Market storage ref)" | |
} | |
}, | |
"id": 30838, | |
"indexExpression": { | |
"id": 30837, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30830, | |
"src": "7943:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "7936:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Market_$32285_storage", | |
"typeString": "struct Market storage ref" | |
} | |
}, | |
"id": 30839, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "7947:10:23", | |
"memberName": "lastUpdate", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32282, | |
"src": "7936:21:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "!=", | |
"rightExpression": { | |
"hexValue": "30", | |
"id": 30840, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "7961:1:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
}, | |
"value": "0" | |
}, | |
"src": "7936:26:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"expression": { | |
"id": 30842, | |
"name": "ErrorsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32787, | |
"src": "7964:9:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_ErrorsLib_$32787_$", | |
"typeString": "type(library ErrorsLib)" | |
} | |
}, | |
"id": 30843, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"memberLocation": "7974:18:23", | |
"memberName": "MARKET_NOT_CREATED", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32734, | |
"src": "7964:28:23", | |
"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": 30835, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
-18, | |
-18 | |
], | |
"referencedDeclaration": -18, | |
"src": "7928:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 30844, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "7928:65:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 30845, | |
"nodeType": "ExpressionStatement", | |
"src": "7928:65:23" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"id": 30849, | |
"name": "assets", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30815, | |
"src": "8035:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"id": 30850, | |
"name": "shares", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30817, | |
"src": "8043:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"expression": { | |
"id": 30847, | |
"name": "UtilsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 33450, | |
"src": "8011:8:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_UtilsLib_$33450_$", | |
"typeString": "type(library UtilsLib)" | |
} | |
}, | |
"id": 30848, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "8020:14:23", | |
"memberName": "exactlyOneZero", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 33399, | |
"src": "8011:23:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$", | |
"typeString": "function (uint256,uint256) pure returns (bool)" | |
} | |
}, | |
"id": 30851, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8011:39:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"expression": { | |
"id": 30852, | |
"name": "ErrorsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32787, | |
"src": "8052:9:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_ErrorsLib_$32787_$", | |
"typeString": "type(library ErrorsLib)" | |
} | |
}, | |
"id": 30853, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"memberLocation": "8062:18:23", | |
"memberName": "INCONSISTENT_INPUT", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32738, | |
"src": "8052:28:23", | |
"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": 30846, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
-18, | |
-18 | |
], | |
"referencedDeclaration": -18, | |
"src": "8003:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 30854, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8003:78:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 30855, | |
"nodeType": "ExpressionStatement", | |
"src": "8003:78:23" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"commonType": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"id": 30862, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"id": 30857, | |
"name": "receiver", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30821, | |
"src": "8191:8:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "!=", | |
"rightExpression": { | |
"arguments": [ | |
{ | |
"hexValue": "30", | |
"id": 30860, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "8211:1:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
}, | |
"value": "0" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
} | |
], | |
"id": 30859, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"nodeType": "ElementaryTypeNameExpression", | |
"src": "8203:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_address_$", | |
"typeString": "type(address)" | |
}, | |
"typeName": { | |
"id": 30858, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "8203:7:23", | |
"typeDescriptions": {} | |
} | |
}, | |
"id": 30861, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8203:10:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"src": "8191:22:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"expression": { | |
"id": 30863, | |
"name": "ErrorsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32787, | |
"src": "8215:9:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_ErrorsLib_$32787_$", | |
"typeString": "type(library ErrorsLib)" | |
} | |
}, | |
"id": 30864, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"memberLocation": "8225:12:23", | |
"memberName": "ZERO_ADDRESS", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32746, | |
"src": "8215:22:23", | |
"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": 30856, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
-18, | |
-18 | |
], | |
"referencedDeclaration": -18, | |
"src": "8183:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 30865, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8183:55:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 30866, | |
"nodeType": "ExpressionStatement", | |
"src": "8183:55:23" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"id": 30869, | |
"name": "onBehalf", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30819, | |
"src": "8276:8:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
], | |
"id": 30868, | |
"name": "_isSenderAuthorized", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 31916, | |
"src": "8256:19:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", | |
"typeString": "function (address) view returns (bool)" | |
} | |
}, | |
"id": 30870, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8256:29:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"expression": { | |
"id": 30871, | |
"name": "ErrorsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32787, | |
"src": "8287:9:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_ErrorsLib_$32787_$", | |
"typeString": "type(library ErrorsLib)" | |
} | |
}, | |
"id": 30872, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"memberLocation": "8297:12:23", | |
"memberName": "UNAUTHORIZED", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32750, | |
"src": "8287:22:23", | |
"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": 30867, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
-18, | |
-18 | |
], | |
"referencedDeclaration": -18, | |
"src": "8248:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 30873, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8248:62:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 30874, | |
"nodeType": "ExpressionStatement", | |
"src": "8248:62:23" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"id": 30876, | |
"name": "marketParams", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30813, | |
"src": "8337:12:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_MarketParams_$32265_memory_ptr", | |
"typeString": "struct MarketParams memory" | |
} | |
}, | |
{ | |
"id": 30877, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30830, | |
"src": "8351:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_struct$_MarketParams_$32265_memory_ptr", | |
"typeString": "struct MarketParams memory" | |
}, | |
{ | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
], | |
"id": 30875, | |
"name": "_accrueInterest", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32069, | |
"src": "8321:15:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_MarketParams_$32265_memory_ptr_$_t_userDefinedValueType$_Id_$32254_$returns$__$", | |
"typeString": "function (struct MarketParams memory,Id)" | |
} | |
}, | |
"id": 30878, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8321:33:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 30879, | |
"nodeType": "ExpressionStatement", | |
"src": "8321:33:23" | |
}, | |
{ | |
"condition": { | |
"commonType": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"id": 30882, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"id": 30880, | |
"name": "assets", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30815, | |
"src": "8369:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": ">", | |
"rightExpression": { | |
"hexValue": "30", | |
"id": 30881, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "8378:1:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
}, | |
"value": "0" | |
}, | |
"src": "8369:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"falseBody": { | |
"expression": { | |
"id": 30909, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"id": 30897, | |
"name": "assets", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30815, | |
"src": "8482:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"arguments": [ | |
{ | |
"expression": { | |
"baseExpression": { | |
"id": 30900, | |
"name": "market", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30129, | |
"src": "8511:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_struct$_Market_$32285_storage_$", | |
"typeString": "mapping(Id => struct Market storage ref)" | |
} | |
}, | |
"id": 30902, | |
"indexExpression": { | |
"id": 30901, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30830, | |
"src": "8518:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "8511:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Market_$32285_storage", | |
"typeString": "struct Market storage ref" | |
} | |
}, | |
"id": 30903, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "8522:17:23", | |
"memberName": "totalBorrowAssets", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32278, | |
"src": "8511:28:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
{ | |
"expression": { | |
"baseExpression": { | |
"id": 30904, | |
"name": "market", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30129, | |
"src": "8541:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_struct$_Market_$32285_storage_$", | |
"typeString": "mapping(Id => struct Market storage ref)" | |
} | |
}, | |
"id": 30906, | |
"indexExpression": { | |
"id": 30905, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30830, | |
"src": "8548:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "8541:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Market_$32285_storage", | |
"typeString": "struct Market storage ref" | |
} | |
}, | |
"id": 30907, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "8552:17:23", | |
"memberName": "totalBorrowShares", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32280, | |
"src": "8541:28:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
}, | |
{ | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
], | |
"expression": { | |
"id": 30898, | |
"name": "shares", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30817, | |
"src": "8491:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 30899, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "8498:12:23", | |
"memberName": "toAssetsDown", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 33335, | |
"src": "8491:19:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$", | |
"typeString": "function (uint256,uint256,uint256) pure returns (uint256)" | |
} | |
}, | |
"id": 30908, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8491:79:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "8482:88:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 30910, | |
"nodeType": "ExpressionStatement", | |
"src": "8482:88:23" | |
}, | |
"id": 30911, | |
"nodeType": "IfStatement", | |
"src": "8365:205:23", | |
"trueBody": { | |
"expression": { | |
"id": 30895, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"id": 30883, | |
"name": "shares", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30817, | |
"src": "8381:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"arguments": [ | |
{ | |
"expression": { | |
"baseExpression": { | |
"id": 30886, | |
"name": "market", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30129, | |
"src": "8408:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_struct$_Market_$32285_storage_$", | |
"typeString": "mapping(Id => struct Market storage ref)" | |
} | |
}, | |
"id": 30888, | |
"indexExpression": { | |
"id": 30887, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30830, | |
"src": "8415:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "8408:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Market_$32285_storage", | |
"typeString": "struct Market storage ref" | |
} | |
}, | |
"id": 30889, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "8419:17:23", | |
"memberName": "totalBorrowAssets", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32278, | |
"src": "8408:28:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
{ | |
"expression": { | |
"baseExpression": { | |
"id": 30890, | |
"name": "market", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30129, | |
"src": "8438:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_struct$_Market_$32285_storage_$", | |
"typeString": "mapping(Id => struct Market storage ref)" | |
} | |
}, | |
"id": 30892, | |
"indexExpression": { | |
"id": 30891, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30830, | |
"src": "8445:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "8438:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Market_$32285_storage", | |
"typeString": "struct Market storage ref" | |
} | |
}, | |
"id": 30893, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "8449:17:23", | |
"memberName": "totalBorrowShares", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32280, | |
"src": "8438:28:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
}, | |
{ | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
], | |
"expression": { | |
"id": 30884, | |
"name": "assets", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30815, | |
"src": "8390:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 30885, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "8397:10:23", | |
"memberName": "toSharesUp", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 33358, | |
"src": "8390:17:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$", | |
"typeString": "function (uint256,uint256,uint256) pure returns (uint256)" | |
} | |
}, | |
"id": 30894, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8390:77:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "8381:86:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 30896, | |
"nodeType": "ExpressionStatement", | |
"src": "8381:86:23" | |
} | |
}, | |
{ | |
"expression": { | |
"id": 30921, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"expression": { | |
"baseExpression": { | |
"baseExpression": { | |
"id": 30912, | |
"name": "position", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30122, | |
"src": "8581:8:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_mapping$_t_address_$_t_struct$_Position_$32272_storage_$_$", | |
"typeString": "mapping(Id => mapping(address => struct Position storage ref))" | |
} | |
}, | |
"id": 30915, | |
"indexExpression": { | |
"id": 30913, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30830, | |
"src": "8590:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "8581:12:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Position_$32272_storage_$", | |
"typeString": "mapping(address => struct Position storage ref)" | |
} | |
}, | |
"id": 30916, | |
"indexExpression": { | |
"id": 30914, | |
"name": "onBehalf", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30819, | |
"src": "8594:8:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "8581:22:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Position_$32272_storage", | |
"typeString": "struct Position storage ref" | |
} | |
}, | |
"id": 30917, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": true, | |
"memberLocation": "8604:12:23", | |
"memberName": "borrowShares", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32269, | |
"src": "8581:35:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "+=", | |
"rightHandSide": { | |
"arguments": [], | |
"expression": { | |
"argumentTypes": [], | |
"expression": { | |
"id": 30918, | |
"name": "shares", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30817, | |
"src": "8620:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 30919, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "8627:9:23", | |
"memberName": "toUint128", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 33437, | |
"src": "8620:16:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint128_$attached_to$_t_uint256_$", | |
"typeString": "function (uint256) pure returns (uint128)" | |
} | |
}, | |
"id": 30920, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8620:18:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"src": "8581:57:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"id": 30922, | |
"nodeType": "ExpressionStatement", | |
"src": "8581:57:23" | |
}, | |
{ | |
"expression": { | |
"id": 30930, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"expression": { | |
"baseExpression": { | |
"id": 30923, | |
"name": "market", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30129, | |
"src": "8648:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_struct$_Market_$32285_storage_$", | |
"typeString": "mapping(Id => struct Market storage ref)" | |
} | |
}, | |
"id": 30925, | |
"indexExpression": { | |
"id": 30924, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30830, | |
"src": "8655:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "8648:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Market_$32285_storage", | |
"typeString": "struct Market storage ref" | |
} | |
}, | |
"id": 30926, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": true, | |
"memberLocation": "8659:17:23", | |
"memberName": "totalBorrowShares", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32280, | |
"src": "8648:28:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "+=", | |
"rightHandSide": { | |
"arguments": [], | |
"expression": { | |
"argumentTypes": [], | |
"expression": { | |
"id": 30927, | |
"name": "shares", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30817, | |
"src": "8680:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 30928, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "8687:9:23", | |
"memberName": "toUint128", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 33437, | |
"src": "8680:16:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint128_$attached_to$_t_uint256_$", | |
"typeString": "function (uint256) pure returns (uint128)" | |
} | |
}, | |
"id": 30929, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8680:18:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"src": "8648:50:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"id": 30931, | |
"nodeType": "ExpressionStatement", | |
"src": "8648:50:23" | |
}, | |
{ | |
"expression": { | |
"id": 30939, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"expression": { | |
"baseExpression": { | |
"id": 30932, | |
"name": "market", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30129, | |
"src": "8708:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_struct$_Market_$32285_storage_$", | |
"typeString": "mapping(Id => struct Market storage ref)" | |
} | |
}, | |
"id": 30934, | |
"indexExpression": { | |
"id": 30933, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30830, | |
"src": "8715:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "8708:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Market_$32285_storage", | |
"typeString": "struct Market storage ref" | |
} | |
}, | |
"id": 30935, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": true, | |
"memberLocation": "8719:17:23", | |
"memberName": "totalBorrowAssets", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32278, | |
"src": "8708:28:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "+=", | |
"rightHandSide": { | |
"arguments": [], | |
"expression": { | |
"argumentTypes": [], | |
"expression": { | |
"id": 30936, | |
"name": "assets", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30815, | |
"src": "8740:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 30937, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "8747:9:23", | |
"memberName": "toUint128", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 33437, | |
"src": "8740:16:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint128_$attached_to$_t_uint256_$", | |
"typeString": "function (uint256) pure returns (uint128)" | |
} | |
}, | |
"id": 30938, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8740:18:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"src": "8708:50:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"id": 30940, | |
"nodeType": "ExpressionStatement", | |
"src": "8708:50:23" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"id": 30943, | |
"name": "marketParams", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30813, | |
"src": "8788:12:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_MarketParams_$32265_memory_ptr", | |
"typeString": "struct MarketParams memory" | |
} | |
}, | |
{ | |
"id": 30944, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30830, | |
"src": "8802:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
{ | |
"id": 30945, | |
"name": "onBehalf", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30819, | |
"src": "8806:8:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_struct$_MarketParams_$32265_memory_ptr", | |
"typeString": "struct MarketParams memory" | |
}, | |
{ | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
}, | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
], | |
"id": 30942, | |
"name": "_isHealthy", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
32111, | |
32174 | |
], | |
"referencedDeclaration": 32111, | |
"src": "8777:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_view$_t_struct$_MarketParams_$32265_memory_ptr_$_t_userDefinedValueType$_Id_$32254_$_t_address_$returns$_t_bool_$", | |
"typeString": "function (struct MarketParams memory,Id,address) view returns (bool)" | |
} | |
}, | |
"id": 30946, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8777:38:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"expression": { | |
"id": 30947, | |
"name": "ErrorsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32787, | |
"src": "8817:9:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_ErrorsLib_$32787_$", | |
"typeString": "type(library ErrorsLib)" | |
} | |
}, | |
"id": 30948, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"memberLocation": "8827:23:23", | |
"memberName": "INSUFFICIENT_COLLATERAL", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32754, | |
"src": "8817:33:23", | |
"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": 30941, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
-18, | |
-18 | |
], | |
"referencedDeclaration": -18, | |
"src": "8769:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 30949, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8769:82:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 30950, | |
"nodeType": "ExpressionStatement", | |
"src": "8769:82:23" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"commonType": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
}, | |
"id": 30960, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"expression": { | |
"baseExpression": { | |
"id": 30952, | |
"name": "market", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30129, | |
"src": "8869:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_struct$_Market_$32285_storage_$", | |
"typeString": "mapping(Id => struct Market storage ref)" | |
} | |
}, | |
"id": 30954, | |
"indexExpression": { | |
"id": 30953, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30830, | |
"src": "8876:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "8869:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Market_$32285_storage", | |
"typeString": "struct Market storage ref" | |
} | |
}, | |
"id": 30955, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "8880:17:23", | |
"memberName": "totalBorrowAssets", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32278, | |
"src": "8869:28:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "<=", | |
"rightExpression": { | |
"expression": { | |
"baseExpression": { | |
"id": 30956, | |
"name": "market", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30129, | |
"src": "8901:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_struct$_Market_$32285_storage_$", | |
"typeString": "mapping(Id => struct Market storage ref)" | |
} | |
}, | |
"id": 30958, | |
"indexExpression": { | |
"id": 30957, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30830, | |
"src": "8908:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "8901:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Market_$32285_storage", | |
"typeString": "struct Market storage ref" | |
} | |
}, | |
"id": 30959, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "8912:17:23", | |
"memberName": "totalSupplyAssets", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32274, | |
"src": "8901:28:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"src": "8869:60:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"expression": { | |
"id": 30961, | |
"name": "ErrorsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32787, | |
"src": "8931:9:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_ErrorsLib_$32787_$", | |
"typeString": "type(library ErrorsLib)" | |
} | |
}, | |
"id": 30962, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"memberLocation": "8941:22:23", | |
"memberName": "INSUFFICIENT_LIQUIDITY", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32758, | |
"src": "8931:32:23", | |
"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": 30951, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
-18, | |
-18 | |
], | |
"referencedDeclaration": -18, | |
"src": "8861:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 30963, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8861:103:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 30964, | |
"nodeType": "ExpressionStatement", | |
"src": "8861:103:23" | |
}, | |
{ | |
"eventCall": { | |
"arguments": [ | |
{ | |
"id": 30968, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30830, | |
"src": "8997:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
{ | |
"expression": { | |
"id": 30969, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": -15, | |
"src": "9001:3:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 30970, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "9005:6:23", | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"src": "9001:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"id": 30971, | |
"name": "onBehalf", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30819, | |
"src": "9013:8:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"id": 30972, | |
"name": "receiver", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30821, | |
"src": "9023:8:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"id": 30973, | |
"name": "assets", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30815, | |
"src": "9033:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"id": 30974, | |
"name": "shares", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30817, | |
"src": "9041:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
}, | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"expression": { | |
"id": 30965, | |
"name": "EventsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32976, | |
"src": "8980:9:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_EventsLib_$32976_$", | |
"typeString": "type(library EventsLib)" | |
} | |
}, | |
"id": 30967, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "8990:6:23", | |
"memberName": "Borrow", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32876, | |
"src": "8980:16:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_event_nonpayable$_t_userDefinedValueType$_Id_$32254_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", | |
"typeString": "function (Id,address,address,address,uint256,uint256)" | |
} | |
}, | |
"id": 30975, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8980:68:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 30976, | |
"nodeType": "EmitStatement", | |
"src": "8975:73:23" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"id": 30982, | |
"name": "receiver", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30821, | |
"src": "9109:8:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"id": 30983, | |
"name": "assets", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30815, | |
"src": "9119:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"expression": { | |
"arguments": [ | |
{ | |
"expression": { | |
"id": 30978, | |
"name": "marketParams", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30813, | |
"src": "9066:12:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_MarketParams_$32265_memory_ptr", | |
"typeString": "struct MarketParams memory" | |
} | |
}, | |
"id": 30979, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "9079:15:23", | |
"memberName": "borrowableToken", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32256, | |
"src": "9066:28:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
], | |
"id": 30977, | |
"name": "IERC20", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32219, | |
"src": "9059:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_IERC20_$32219_$", | |
"typeString": "type(contract IERC20)" | |
} | |
}, | |
"id": 30980, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "9059:36:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_contract$_IERC20_$32219", | |
"typeString": "contract IERC20" | |
} | |
}, | |
"id": 30981, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "9096:12:23", | |
"memberName": "safeTransfer", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 33219, | |
"src": "9059:49:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$32219_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$32219_$", | |
"typeString": "function (contract IERC20,address,uint256)" | |
} | |
}, | |
"id": 30984, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "9059:67:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 30985, | |
"nodeType": "ExpressionStatement", | |
"src": "9059:67:23" | |
}, | |
{ | |
"expression": { | |
"components": [ | |
{ | |
"id": 30986, | |
"name": "assets", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30815, | |
"src": "9145:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"id": 30987, | |
"name": "shares", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30817, | |
"src": "9153:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"id": 30988, | |
"isConstant": false, | |
"isInlineArray": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "TupleExpression", | |
"src": "9144:16:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", | |
"typeString": "tuple(uint256,uint256)" | |
} | |
}, | |
"functionReturnParameters": 30827, | |
"id": 30989, | |
"nodeType": "Return", | |
"src": "9137:23:23" | |
} | |
] | |
}, | |
"baseFunctions": [ | |
32504 | |
], | |
"documentation": { | |
"id": 30810, | |
"nodeType": "StructuredDocumentation", | |
"src": "7655:23:23", | |
"text": "@inheritdoc IMorpho" | |
}, | |
"functionSelector": "50d8cd4b", | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [], | |
"name": "borrow", | |
"nameLocation": "7692:6:23", | |
"parameters": { | |
"id": 30822, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 30813, | |
"mutability": "mutable", | |
"name": "marketParams", | |
"nameLocation": "7728:12:23", | |
"nodeType": "VariableDeclaration", | |
"scope": 30991, | |
"src": "7708:32:23", | |
"stateVariable": false, | |
"storageLocation": "memory", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_MarketParams_$32265_memory_ptr", | |
"typeString": "struct MarketParams" | |
}, | |
"typeName": { | |
"id": 30812, | |
"nodeType": "UserDefinedTypeName", | |
"pathNode": { | |
"id": 30811, | |
"name": "MarketParams", | |
"nameLocations": [ | |
"7708:12:23" | |
], | |
"nodeType": "IdentifierPath", | |
"referencedDeclaration": 32265, | |
"src": "7708:12:23" | |
}, | |
"referencedDeclaration": 32265, | |
"src": "7708:12:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_MarketParams_$32265_storage_ptr", | |
"typeString": "struct MarketParams" | |
} | |
}, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 30815, | |
"mutability": "mutable", | |
"name": "assets", | |
"nameLocation": "7758:6:23", | |
"nodeType": "VariableDeclaration", | |
"scope": 30991, | |
"src": "7750:14:23", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 30814, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "7750:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 30817, | |
"mutability": "mutable", | |
"name": "shares", | |
"nameLocation": "7782:6:23", | |
"nodeType": "VariableDeclaration", | |
"scope": 30991, | |
"src": "7774:14:23", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 30816, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "7774:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 30819, | |
"mutability": "mutable", | |
"name": "onBehalf", | |
"nameLocation": "7806:8:23", | |
"nodeType": "VariableDeclaration", | |
"scope": 30991, | |
"src": "7798:16:23", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 30818, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "7798:7:23", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 30821, | |
"mutability": "mutable", | |
"name": "receiver", | |
"nameLocation": "7832:8:23", | |
"nodeType": "VariableDeclaration", | |
"scope": 30991, | |
"src": "7824:16:23", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 30820, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "7824:7:23", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"visibility": "internal" | |
} | |
], | |
"src": "7698:148:23" | |
}, | |
"returnParameters": { | |
"id": 30827, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 30824, | |
"mutability": "mutable", | |
"name": "", | |
"nameLocation": "-1:-1:-1", | |
"nodeType": "VariableDeclaration", | |
"scope": 30991, | |
"src": "7865:7:23", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 30823, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "7865:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 30826, | |
"mutability": "mutable", | |
"name": "", | |
"nameLocation": "-1:-1:-1", | |
"nodeType": "VariableDeclaration", | |
"scope": 30991, | |
"src": "7874:7:23", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 30825, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "7874:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"visibility": "internal" | |
} | |
], | |
"src": "7864:18:23" | |
}, | |
"scope": 32215, | |
"stateMutability": "nonpayable", | |
"virtual": false, | |
"visibility": "external" | |
}, | |
{ | |
"id": 31166, | |
"nodeType": "FunctionDefinition", | |
"src": "9201:1336:23", | |
"nodes": [], | |
"body": { | |
"id": 31165, | |
"nodeType": "Block", | |
"src": "9403:1134:23", | |
"nodes": [], | |
"statements": [ | |
{ | |
"assignments": [ | |
31012 | |
], | |
"declarations": [ | |
{ | |
"constant": false, | |
"id": 31012, | |
"mutability": "mutable", | |
"name": "id", | |
"nameLocation": "9416:2:23", | |
"nodeType": "VariableDeclaration", | |
"scope": 31165, | |
"src": "9413:5:23", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
}, | |
"typeName": { | |
"id": 31011, | |
"nodeType": "UserDefinedTypeName", | |
"pathNode": { | |
"id": 31010, | |
"name": "Id", | |
"nameLocations": [ | |
"9413:2:23" | |
], | |
"nodeType": "IdentifierPath", | |
"referencedDeclaration": 32254, | |
"src": "9413:2:23" | |
}, | |
"referencedDeclaration": 32254, | |
"src": "9413:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"visibility": "internal" | |
} | |
], | |
"id": 31016, | |
"initialValue": { | |
"arguments": [], | |
"expression": { | |
"argumentTypes": [], | |
"expression": { | |
"id": 31013, | |
"name": "marketParams", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30995, | |
"src": "9421:12:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_MarketParams_$32265_memory_ptr", | |
"typeString": "struct MarketParams memory" | |
} | |
}, | |
"id": 31014, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "9434:2:23", | |
"memberName": "id", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32994, | |
"src": "9421:15:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_struct$_MarketParams_$32265_memory_ptr_$returns$_t_userDefinedValueType$_Id_$32254_$attached_to$_t_struct$_MarketParams_$32265_memory_ptr_$", | |
"typeString": "function (struct MarketParams memory) pure returns (Id)" | |
} | |
}, | |
"id": 31015, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "9421:17:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"nodeType": "VariableDeclarationStatement", | |
"src": "9413:25:23" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"commonType": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
}, | |
"id": 31023, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"expression": { | |
"baseExpression": { | |
"id": 31018, | |
"name": "market", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30129, | |
"src": "9456:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_struct$_Market_$32285_storage_$", | |
"typeString": "mapping(Id => struct Market storage ref)" | |
} | |
}, | |
"id": 31020, | |
"indexExpression": { | |
"id": 31019, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 31012, | |
"src": "9463:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "9456:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Market_$32285_storage", | |
"typeString": "struct Market storage ref" | |
} | |
}, | |
"id": 31021, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "9467:10:23", | |
"memberName": "lastUpdate", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32282, | |
"src": "9456:21:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "!=", | |
"rightExpression": { | |
"hexValue": "30", | |
"id": 31022, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "9481:1:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
}, | |
"value": "0" | |
}, | |
"src": "9456:26:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"expression": { | |
"id": 31024, | |
"name": "ErrorsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32787, | |
"src": "9484:9:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_ErrorsLib_$32787_$", | |
"typeString": "type(library ErrorsLib)" | |
} | |
}, | |
"id": 31025, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"memberLocation": "9494:18:23", | |
"memberName": "MARKET_NOT_CREATED", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32734, | |
"src": "9484:28:23", | |
"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": 31017, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
-18, | |
-18 | |
], | |
"referencedDeclaration": -18, | |
"src": "9448:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 31026, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "9448:65:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 31027, | |
"nodeType": "ExpressionStatement", | |
"src": "9448:65:23" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"id": 31031, | |
"name": "assets", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30997, | |
"src": "9555:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"id": 31032, | |
"name": "shares", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30999, | |
"src": "9563:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"expression": { | |
"id": 31029, | |
"name": "UtilsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 33450, | |
"src": "9531:8:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_UtilsLib_$33450_$", | |
"typeString": "type(library UtilsLib)" | |
} | |
}, | |
"id": 31030, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "9540:14:23", | |
"memberName": "exactlyOneZero", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 33399, | |
"src": "9531:23:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$", | |
"typeString": "function (uint256,uint256) pure returns (bool)" | |
} | |
}, | |
"id": 31033, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "9531:39:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"expression": { | |
"id": 31034, | |
"name": "ErrorsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32787, | |
"src": "9572:9:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_ErrorsLib_$32787_$", | |
"typeString": "type(library ErrorsLib)" | |
} | |
}, | |
"id": 31035, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"memberLocation": "9582:18:23", | |
"memberName": "INCONSISTENT_INPUT", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32738, | |
"src": "9572:28:23", | |
"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": 31028, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
-18, | |
-18 | |
], | |
"referencedDeclaration": -18, | |
"src": "9523:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 31036, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "9523:78:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 31037, | |
"nodeType": "ExpressionStatement", | |
"src": "9523:78:23" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"commonType": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"id": 31044, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"id": 31039, | |
"name": "onBehalf", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 31001, | |
"src": "9619:8:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "!=", | |
"rightExpression": { | |
"arguments": [ | |
{ | |
"hexValue": "30", | |
"id": 31042, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "9639:1:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
}, | |
"value": "0" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
} | |
], | |
"id": 31041, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"nodeType": "ElementaryTypeNameExpression", | |
"src": "9631:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_address_$", | |
"typeString": "type(address)" | |
}, | |
"typeName": { | |
"id": 31040, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "9631:7:23", | |
"typeDescriptions": {} | |
} | |
}, | |
"id": 31043, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "9631:10:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"src": "9619:22:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"expression": { | |
"id": 31045, | |
"name": "ErrorsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32787, | |
"src": "9643:9:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_ErrorsLib_$32787_$", | |
"typeString": "type(library ErrorsLib)" | |
} | |
}, | |
"id": 31046, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"memberLocation": "9653:12:23", | |
"memberName": "ZERO_ADDRESS", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32746, | |
"src": "9643:22:23", | |
"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": 31038, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
-18, | |
-18 | |
], | |
"referencedDeclaration": -18, | |
"src": "9611:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 31047, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "9611:55:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 31048, | |
"nodeType": "ExpressionStatement", | |
"src": "9611:55:23" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"id": 31050, | |
"name": "marketParams", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30995, | |
"src": "9693:12:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_MarketParams_$32265_memory_ptr", | |
"typeString": "struct MarketParams memory" | |
} | |
}, | |
{ | |
"id": 31051, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 31012, | |
"src": "9707:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_struct$_MarketParams_$32265_memory_ptr", | |
"typeString": "struct MarketParams memory" | |
}, | |
{ | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
], | |
"id": 31049, | |
"name": "_accrueInterest", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32069, | |
"src": "9677:15:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_MarketParams_$32265_memory_ptr_$_t_userDefinedValueType$_Id_$32254_$returns$__$", | |
"typeString": "function (struct MarketParams memory,Id)" | |
} | |
}, | |
"id": 31052, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "9677:33:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 31053, | |
"nodeType": "ExpressionStatement", | |
"src": "9677:33:23" | |
}, | |
{ | |
"condition": { | |
"commonType": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"id": 31056, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"id": 31054, | |
"name": "assets", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30997, | |
"src": "9725:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": ">", | |
"rightExpression": { | |
"hexValue": "30", | |
"id": 31055, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "9734:1:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
}, | |
"value": "0" | |
}, | |
"src": "9725:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"falseBody": { | |
"expression": { | |
"id": 31083, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"id": 31071, | |
"name": "assets", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30997, | |
"src": "9840:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"arguments": [ | |
{ | |
"expression": { | |
"baseExpression": { | |
"id": 31074, | |
"name": "market", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30129, | |
"src": "9867:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_struct$_Market_$32285_storage_$", | |
"typeString": "mapping(Id => struct Market storage ref)" | |
} | |
}, | |
"id": 31076, | |
"indexExpression": { | |
"id": 31075, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 31012, | |
"src": "9874:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "9867:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Market_$32285_storage", | |
"typeString": "struct Market storage ref" | |
} | |
}, | |
"id": 31077, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "9878:17:23", | |
"memberName": "totalBorrowAssets", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32278, | |
"src": "9867:28:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
{ | |
"expression": { | |
"baseExpression": { | |
"id": 31078, | |
"name": "market", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30129, | |
"src": "9897:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_struct$_Market_$32285_storage_$", | |
"typeString": "mapping(Id => struct Market storage ref)" | |
} | |
}, | |
"id": 31080, | |
"indexExpression": { | |
"id": 31079, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 31012, | |
"src": "9904:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "9897:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Market_$32285_storage", | |
"typeString": "struct Market storage ref" | |
} | |
}, | |
"id": 31081, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "9908:17:23", | |
"memberName": "totalBorrowShares", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32280, | |
"src": "9897:28:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
}, | |
{ | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
], | |
"expression": { | |
"id": 31072, | |
"name": "shares", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30999, | |
"src": "9849:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 31073, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "9856:10:23", | |
"memberName": "toAssetsUp", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 33381, | |
"src": "9849:17:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$", | |
"typeString": "function (uint256,uint256,uint256) pure returns (uint256)" | |
} | |
}, | |
"id": 31082, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "9849:77:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "9840:86:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 31084, | |
"nodeType": "ExpressionStatement", | |
"src": "9840:86:23" | |
}, | |
"id": 31085, | |
"nodeType": "IfStatement", | |
"src": "9721:205:23", | |
"trueBody": { | |
"expression": { | |
"id": 31069, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"id": 31057, | |
"name": "shares", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30999, | |
"src": "9737:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"arguments": [ | |
{ | |
"expression": { | |
"baseExpression": { | |
"id": 31060, | |
"name": "market", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30129, | |
"src": "9766:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_struct$_Market_$32285_storage_$", | |
"typeString": "mapping(Id => struct Market storage ref)" | |
} | |
}, | |
"id": 31062, | |
"indexExpression": { | |
"id": 31061, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 31012, | |
"src": "9773:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "9766:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Market_$32285_storage", | |
"typeString": "struct Market storage ref" | |
} | |
}, | |
"id": 31063, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "9777:17:23", | |
"memberName": "totalBorrowAssets", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32278, | |
"src": "9766:28:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
{ | |
"expression": { | |
"baseExpression": { | |
"id": 31064, | |
"name": "market", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30129, | |
"src": "9796:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_struct$_Market_$32285_storage_$", | |
"typeString": "mapping(Id => struct Market storage ref)" | |
} | |
}, | |
"id": 31066, | |
"indexExpression": { | |
"id": 31065, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 31012, | |
"src": "9803:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "9796:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Market_$32285_storage", | |
"typeString": "struct Market storage ref" | |
} | |
}, | |
"id": 31067, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "9807:17:23", | |
"memberName": "totalBorrowShares", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32280, | |
"src": "9796:28:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
}, | |
{ | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
], | |
"expression": { | |
"id": 31058, | |
"name": "assets", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30997, | |
"src": "9746:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 31059, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "9753:12:23", | |
"memberName": "toSharesDown", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 33312, | |
"src": "9746:19:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$", | |
"typeString": "function (uint256,uint256,uint256) pure returns (uint256)" | |
} | |
}, | |
"id": 31068, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "9746:79:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "9737:88:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 31070, | |
"nodeType": "ExpressionStatement", | |
"src": "9737:88:23" | |
} | |
}, | |
{ | |
"expression": { | |
"id": 31095, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"expression": { | |
"baseExpression": { | |
"baseExpression": { | |
"id": 31086, | |
"name": "position", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30122, | |
"src": "9937:8:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_mapping$_t_address_$_t_struct$_Position_$32272_storage_$_$", | |
"typeString": "mapping(Id => mapping(address => struct Position storage ref))" | |
} | |
}, | |
"id": 31089, | |
"indexExpression": { | |
"id": 31087, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 31012, | |
"src": "9946:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "9937:12:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Position_$32272_storage_$", | |
"typeString": "mapping(address => struct Position storage ref)" | |
} | |
}, | |
"id": 31090, | |
"indexExpression": { | |
"id": 31088, | |
"name": "onBehalf", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 31001, | |
"src": "9950:8:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "9937:22:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Position_$32272_storage", | |
"typeString": "struct Position storage ref" | |
} | |
}, | |
"id": 31091, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": true, | |
"memberLocation": "9960:12:23", | |
"memberName": "borrowShares", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32269, | |
"src": "9937:35:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "-=", | |
"rightHandSide": { | |
"arguments": [], | |
"expression": { | |
"argumentTypes": [], | |
"expression": { | |
"id": 31092, | |
"name": "shares", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30999, | |
"src": "9976:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 31093, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "9983:9:23", | |
"memberName": "toUint128", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 33437, | |
"src": "9976:16:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint128_$attached_to$_t_uint256_$", | |
"typeString": "function (uint256) pure returns (uint128)" | |
} | |
}, | |
"id": 31094, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "9976:18:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"src": "9937:57:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"id": 31096, | |
"nodeType": "ExpressionStatement", | |
"src": "9937:57:23" | |
}, | |
{ | |
"expression": { | |
"id": 31104, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"expression": { | |
"baseExpression": { | |
"id": 31097, | |
"name": "market", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30129, | |
"src": "10004:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_struct$_Market_$32285_storage_$", | |
"typeString": "mapping(Id => struct Market storage ref)" | |
} | |
}, | |
"id": 31099, | |
"indexExpression": { | |
"id": 31098, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 31012, | |
"src": "10011:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "10004:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Market_$32285_storage", | |
"typeString": "struct Market storage ref" | |
} | |
}, | |
"id": 31100, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": true, | |
"memberLocation": "10015:17:23", | |
"memberName": "totalBorrowShares", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32280, | |
"src": "10004:28:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "-=", | |
"rightHandSide": { | |
"arguments": [], | |
"expression": { | |
"argumentTypes": [], | |
"expression": { | |
"id": 31101, | |
"name": "shares", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30999, | |
"src": "10036:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 31102, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "10043:9:23", | |
"memberName": "toUint128", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 33437, | |
"src": "10036:16:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint128_$attached_to$_t_uint256_$", | |
"typeString": "function (uint256) pure returns (uint128)" | |
} | |
}, | |
"id": 31103, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "10036:18:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"src": "10004:50:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"id": 31105, | |
"nodeType": "ExpressionStatement", | |
"src": "10004:50:23" | |
}, | |
{ | |
"expression": { | |
"id": 31120, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"expression": { | |
"baseExpression": { | |
"id": 31106, | |
"name": "market", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30129, | |
"src": "10064:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_struct$_Market_$32285_storage_$", | |
"typeString": "mapping(Id => struct Market storage ref)" | |
} | |
}, | |
"id": 31108, | |
"indexExpression": { | |
"id": 31107, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 31012, | |
"src": "10071:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "10064:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Market_$32285_storage", | |
"typeString": "struct Market storage ref" | |
} | |
}, | |
"id": 31109, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": true, | |
"memberLocation": "10075:17:23", | |
"memberName": "totalBorrowAssets", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32278, | |
"src": "10064:28:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"arguments": [], | |
"expression": { | |
"argumentTypes": [], | |
"expression": { | |
"arguments": [ | |
{ | |
"expression": { | |
"baseExpression": { | |
"id": 31112, | |
"name": "market", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30129, | |
"src": "10117:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_struct$_Market_$32285_storage_$", | |
"typeString": "mapping(Id => struct Market storage ref)" | |
} | |
}, | |
"id": 31114, | |
"indexExpression": { | |
"id": 31113, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 31012, | |
"src": "10124:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "10117:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Market_$32285_storage", | |
"typeString": "struct Market storage ref" | |
} | |
}, | |
"id": 31115, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "10128:17:23", | |
"memberName": "totalBorrowAssets", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32278, | |
"src": "10117:28:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
{ | |
"id": 31116, | |
"name": "assets", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30997, | |
"src": "10147:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"expression": { | |
"id": 31110, | |
"name": "UtilsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 33450, | |
"src": "10095:8:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_UtilsLib_$33450_$", | |
"typeString": "type(library UtilsLib)" | |
} | |
}, | |
"id": 31111, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "10104:12:23", | |
"memberName": "zeroFloorSub", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 33449, | |
"src": "10095:21:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", | |
"typeString": "function (uint256,uint256) pure returns (uint256)" | |
} | |
}, | |
"id": 31117, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "10095:59:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 31118, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "10155:9:23", | |
"memberName": "toUint128", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 33437, | |
"src": "10095:69:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint128_$attached_to$_t_uint256_$", | |
"typeString": "function (uint256) pure returns (uint128)" | |
} | |
}, | |
"id": 31119, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "10095:71:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"src": "10064:102:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"id": 31121, | |
"nodeType": "ExpressionStatement", | |
"src": "10064:102:23" | |
}, | |
{ | |
"eventCall": { | |
"arguments": [ | |
{ | |
"id": 31125, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 31012, | |
"src": "10264:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
{ | |
"expression": { | |
"id": 31126, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": -15, | |
"src": "10268:3:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 31127, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "10272:6:23", | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"src": "10268:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"id": 31128, | |
"name": "onBehalf", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 31001, | |
"src": "10280:8:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"id": 31129, | |
"name": "assets", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30997, | |
"src": "10290:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"id": 31130, | |
"name": "shares", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30999, | |
"src": "10298:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
}, | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"expression": { | |
"id": 31122, | |
"name": "EventsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32976, | |
"src": "10248:9:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_EventsLib_$32976_$", | |
"typeString": "type(library EventsLib)" | |
} | |
}, | |
"id": 31124, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "10258:5:23", | |
"memberName": "Repay", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32890, | |
"src": "10248:15:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_event_nonpayable$_t_userDefinedValueType$_Id_$32254_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", | |
"typeString": "function (Id,address,address,uint256,uint256)" | |
} | |
}, | |
"id": 31131, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "10248:57:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 31132, | |
"nodeType": "EmitStatement", | |
"src": "10243:62:23" | |
}, | |
{ | |
"condition": { | |
"commonType": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"id": 31136, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"expression": { | |
"id": 31133, | |
"name": "data", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 31003, | |
"src": "10320:4:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes_calldata_ptr", | |
"typeString": "bytes calldata" | |
} | |
}, | |
"id": 31134, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "10325:6:23", | |
"memberName": "length", | |
"nodeType": "MemberAccess", | |
"src": "10320:11:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": ">", | |
"rightExpression": { | |
"hexValue": "30", | |
"id": 31135, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "10334:1:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
}, | |
"value": "0" | |
}, | |
"src": "10320:15:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"id": 31146, | |
"nodeType": "IfStatement", | |
"src": "10316:81:23", | |
"trueBody": { | |
"expression": { | |
"arguments": [ | |
{ | |
"id": 31142, | |
"name": "assets", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30997, | |
"src": "10384:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"id": 31143, | |
"name": "data", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 31003, | |
"src": "10392:4:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes_calldata_ptr", | |
"typeString": "bytes calldata" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_bytes_calldata_ptr", | |
"typeString": "bytes calldata" | |
} | |
], | |
"expression": { | |
"arguments": [ | |
{ | |
"expression": { | |
"id": 31138, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": -15, | |
"src": "10358:3:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 31139, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "10362:6:23", | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"src": "10358:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
], | |
"id": 31137, | |
"name": "IMorphoRepayCallback", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32629, | |
"src": "10337:20:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_IMorphoRepayCallback_$32629_$", | |
"typeString": "type(contract IMorphoRepayCallback)" | |
} | |
}, | |
"id": 31140, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "10337:32:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_contract$_IMorphoRepayCallback_$32629", | |
"typeString": "contract IMorphoRepayCallback" | |
} | |
}, | |
"id": 31141, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "10370:13:23", | |
"memberName": "onMorphoRepay", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32628, | |
"src": "10337:46:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", | |
"typeString": "function (uint256,bytes memory) external" | |
} | |
}, | |
"id": 31144, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "10337:60:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 31145, | |
"nodeType": "ExpressionStatement", | |
"src": "10337:60:23" | |
} | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"expression": { | |
"id": 31152, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": -15, | |
"src": "10462:3:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 31153, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "10466:6:23", | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"src": "10462:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"arguments": [ | |
{ | |
"id": 31156, | |
"name": "this", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": -28, | |
"src": "10482:4:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_contract$_Morpho_$32215", | |
"typeString": "contract Morpho" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_contract$_Morpho_$32215", | |
"typeString": "contract Morpho" | |
} | |
], | |
"id": 31155, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"nodeType": "ElementaryTypeNameExpression", | |
"src": "10474:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_address_$", | |
"typeString": "type(address)" | |
}, | |
"typeName": { | |
"id": 31154, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "10474:7:23", | |
"typeDescriptions": {} | |
} | |
}, | |
"id": 31157, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "10474:13:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"id": 31158, | |
"name": "assets", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30997, | |
"src": "10489:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"expression": { | |
"arguments": [ | |
{ | |
"expression": { | |
"id": 31148, | |
"name": "marketParams", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30995, | |
"src": "10415:12:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_MarketParams_$32265_memory_ptr", | |
"typeString": "struct MarketParams memory" | |
} | |
}, | |
"id": 31149, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "10428:15:23", | |
"memberName": "borrowableToken", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32256, | |
"src": "10415:28:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
], | |
"id": 31147, | |
"name": "IERC20", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32219, | |
"src": "10408:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_IERC20_$32219_$", | |
"typeString": "type(contract IERC20)" | |
} | |
}, | |
"id": 31150, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "10408:36:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_contract$_IERC20_$32219", | |
"typeString": "contract IERC20" | |
} | |
}, | |
"id": 31151, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "10445:16:23", | |
"memberName": "safeTransferFrom", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 33272, | |
"src": "10408:53:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$32219_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$32219_$", | |
"typeString": "function (contract IERC20,address,address,uint256)" | |
} | |
}, | |
"id": 31159, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "10408:88:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 31160, | |
"nodeType": "ExpressionStatement", | |
"src": "10408:88:23" | |
}, | |
{ | |
"expression": { | |
"components": [ | |
{ | |
"id": 31161, | |
"name": "assets", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30997, | |
"src": "10515:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"id": 31162, | |
"name": "shares", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30999, | |
"src": "10523:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"id": 31163, | |
"isConstant": false, | |
"isInlineArray": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "TupleExpression", | |
"src": "10514:16:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", | |
"typeString": "tuple(uint256,uint256)" | |
} | |
}, | |
"functionReturnParameters": 31009, | |
"id": 31164, | |
"nodeType": "Return", | |
"src": "10507:23:23" | |
} | |
] | |
}, | |
"baseFunctions": [ | |
32523 | |
], | |
"documentation": { | |
"id": 30992, | |
"nodeType": "StructuredDocumentation", | |
"src": "9173:23:23", | |
"text": "@inheritdoc IMorpho" | |
}, | |
"functionSelector": "20b76e81", | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [], | |
"name": "repay", | |
"nameLocation": "9210:5:23", | |
"parameters": { | |
"id": 31004, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 30995, | |
"mutability": "mutable", | |
"name": "marketParams", | |
"nameLocation": "9245:12:23", | |
"nodeType": "VariableDeclaration", | |
"scope": 31166, | |
"src": "9225:32:23", | |
"stateVariable": false, | |
"storageLocation": "memory", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_MarketParams_$32265_memory_ptr", | |
"typeString": "struct MarketParams" | |
}, | |
"typeName": { | |
"id": 30994, | |
"nodeType": "UserDefinedTypeName", | |
"pathNode": { | |
"id": 30993, | |
"name": "MarketParams", | |
"nameLocations": [ | |
"9225:12:23" | |
], | |
"nodeType": "IdentifierPath", | |
"referencedDeclaration": 32265, | |
"src": "9225:12:23" | |
}, | |
"referencedDeclaration": 32265, | |
"src": "9225:12:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_MarketParams_$32265_storage_ptr", | |
"typeString": "struct MarketParams" | |
} | |
}, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 30997, | |
"mutability": "mutable", | |
"name": "assets", | |
"nameLocation": "9275:6:23", | |
"nodeType": "VariableDeclaration", | |
"scope": 31166, | |
"src": "9267:14:23", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 30996, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "9267:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 30999, | |
"mutability": "mutable", | |
"name": "shares", | |
"nameLocation": "9299:6:23", | |
"nodeType": "VariableDeclaration", | |
"scope": 31166, | |
"src": "9291:14:23", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 30998, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "9291:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 31001, | |
"mutability": "mutable", | |
"name": "onBehalf", | |
"nameLocation": "9323:8:23", | |
"nodeType": "VariableDeclaration", | |
"scope": 31166, | |
"src": "9315:16:23", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 31000, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "9315:7:23", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 31003, | |
"mutability": "mutable", | |
"name": "data", | |
"nameLocation": "9356:4:23", | |
"nodeType": "VariableDeclaration", | |
"scope": 31166, | |
"src": "9341:19:23", | |
"stateVariable": false, | |
"storageLocation": "calldata", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes_calldata_ptr", | |
"typeString": "bytes" | |
}, | |
"typeName": { | |
"id": 31002, | |
"name": "bytes", | |
"nodeType": "ElementaryTypeName", | |
"src": "9341:5:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes_storage_ptr", | |
"typeString": "bytes" | |
} | |
}, | |
"visibility": "internal" | |
} | |
], | |
"src": "9215:151:23" | |
}, | |
"returnParameters": { | |
"id": 31009, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 31006, | |
"mutability": "mutable", | |
"name": "", | |
"nameLocation": "-1:-1:-1", | |
"nodeType": "VariableDeclaration", | |
"scope": 31166, | |
"src": "9385:7:23", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 31005, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "9385:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 31008, | |
"mutability": "mutable", | |
"name": "", | |
"nameLocation": "-1:-1:-1", | |
"nodeType": "VariableDeclaration", | |
"scope": 31166, | |
"src": "9394:7:23", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 31007, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "9394:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"visibility": "internal" | |
} | |
], | |
"src": "9384:18:23" | |
}, | |
"scope": 32215, | |
"stateMutability": "nonpayable", | |
"virtual": false, | |
"visibility": "external" | |
}, | |
{ | |
"id": 31266, | |
"nodeType": "FunctionDefinition", | |
"src": "10604:804:23", | |
"nodes": [], | |
"body": { | |
"id": 31265, | |
"nodeType": "Block", | |
"src": "10740:668:23", | |
"nodes": [], | |
"statements": [ | |
{ | |
"assignments": [ | |
31181 | |
], | |
"declarations": [ | |
{ | |
"constant": false, | |
"id": 31181, | |
"mutability": "mutable", | |
"name": "id", | |
"nameLocation": "10753:2:23", | |
"nodeType": "VariableDeclaration", | |
"scope": 31265, | |
"src": "10750:5:23", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
}, | |
"typeName": { | |
"id": 31180, | |
"nodeType": "UserDefinedTypeName", | |
"pathNode": { | |
"id": 31179, | |
"name": "Id", | |
"nameLocations": [ | |
"10750:2:23" | |
], | |
"nodeType": "IdentifierPath", | |
"referencedDeclaration": 32254, | |
"src": "10750:2:23" | |
}, | |
"referencedDeclaration": 32254, | |
"src": "10750:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"visibility": "internal" | |
} | |
], | |
"id": 31185, | |
"initialValue": { | |
"arguments": [], | |
"expression": { | |
"argumentTypes": [], | |
"expression": { | |
"id": 31182, | |
"name": "marketParams", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 31170, | |
"src": "10758:12:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_MarketParams_$32265_memory_ptr", | |
"typeString": "struct MarketParams memory" | |
} | |
}, | |
"id": 31183, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "10771:2:23", | |
"memberName": "id", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32994, | |
"src": "10758:15:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_struct$_MarketParams_$32265_memory_ptr_$returns$_t_userDefinedValueType$_Id_$32254_$attached_to$_t_struct$_MarketParams_$32265_memory_ptr_$", | |
"typeString": "function (struct MarketParams memory) pure returns (Id)" | |
} | |
}, | |
"id": 31184, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "10758:17:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"nodeType": "VariableDeclarationStatement", | |
"src": "10750:25:23" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"commonType": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
}, | |
"id": 31192, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"expression": { | |
"baseExpression": { | |
"id": 31187, | |
"name": "market", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30129, | |
"src": "10793:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_struct$_Market_$32285_storage_$", | |
"typeString": "mapping(Id => struct Market storage ref)" | |
} | |
}, | |
"id": 31189, | |
"indexExpression": { | |
"id": 31188, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 31181, | |
"src": "10800:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "10793:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Market_$32285_storage", | |
"typeString": "struct Market storage ref" | |
} | |
}, | |
"id": 31190, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "10804:10:23", | |
"memberName": "lastUpdate", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32282, | |
"src": "10793:21:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "!=", | |
"rightExpression": { | |
"hexValue": "30", | |
"id": 31191, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "10818:1:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
}, | |
"value": "0" | |
}, | |
"src": "10793:26:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"expression": { | |
"id": 31193, | |
"name": "ErrorsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32787, | |
"src": "10821:9:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_ErrorsLib_$32787_$", | |
"typeString": "type(library ErrorsLib)" | |
} | |
}, | |
"id": 31194, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"memberLocation": "10831:18:23", | |
"memberName": "MARKET_NOT_CREATED", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32734, | |
"src": "10821:28:23", | |
"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": 31186, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
-18, | |
-18 | |
], | |
"referencedDeclaration": -18, | |
"src": "10785:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 31195, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "10785:65:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 31196, | |
"nodeType": "ExpressionStatement", | |
"src": "10785:65:23" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"commonType": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"id": 31200, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"id": 31198, | |
"name": "assets", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 31172, | |
"src": "10868:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "!=", | |
"rightExpression": { | |
"hexValue": "30", | |
"id": 31199, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "10878:1:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
}, | |
"value": "0" | |
}, | |
"src": "10868:11:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"expression": { | |
"id": 31201, | |
"name": "ErrorsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32787, | |
"src": "10881:9:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_ErrorsLib_$32787_$", | |
"typeString": "type(library ErrorsLib)" | |
} | |
}, | |
"id": 31202, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"memberLocation": "10891:11:23", | |
"memberName": "ZERO_ASSETS", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32742, | |
"src": "10881:21:23", | |
"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": 31197, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
-18, | |
-18 | |
], | |
"referencedDeclaration": -18, | |
"src": "10860:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 31203, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "10860:43:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 31204, | |
"nodeType": "ExpressionStatement", | |
"src": "10860:43:23" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"commonType": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"id": 31211, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"id": 31206, | |
"name": "onBehalf", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 31174, | |
"src": "10921:8:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "!=", | |
"rightExpression": { | |
"arguments": [ | |
{ | |
"hexValue": "30", | |
"id": 31209, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "10941:1:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
}, | |
"value": "0" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
} | |
], | |
"id": 31208, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"nodeType": "ElementaryTypeNameExpression", | |
"src": "10933:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_address_$", | |
"typeString": "type(address)" | |
}, | |
"typeName": { | |
"id": 31207, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "10933:7:23", | |
"typeDescriptions": {} | |
} | |
}, | |
"id": 31210, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "10933:10:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"src": "10921:22:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"expression": { | |
"id": 31212, | |
"name": "ErrorsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32787, | |
"src": "10945:9:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_ErrorsLib_$32787_$", | |
"typeString": "type(library ErrorsLib)" | |
} | |
}, | |
"id": 31213, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"memberLocation": "10955:12:23", | |
"memberName": "ZERO_ADDRESS", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32746, | |
"src": "10945:22:23", | |
"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": 31205, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
-18, | |
-18 | |
], | |
"referencedDeclaration": -18, | |
"src": "10913:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 31214, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "10913:55:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 31215, | |
"nodeType": "ExpressionStatement", | |
"src": "10913:55:23" | |
}, | |
{ | |
"expression": { | |
"id": 31225, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"expression": { | |
"baseExpression": { | |
"baseExpression": { | |
"id": 31216, | |
"name": "position", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30122, | |
"src": "11057:8:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_mapping$_t_address_$_t_struct$_Position_$32272_storage_$_$", | |
"typeString": "mapping(Id => mapping(address => struct Position storage ref))" | |
} | |
}, | |
"id": 31219, | |
"indexExpression": { | |
"id": 31217, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 31181, | |
"src": "11066:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "11057:12:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Position_$32272_storage_$", | |
"typeString": "mapping(address => struct Position storage ref)" | |
} | |
}, | |
"id": 31220, | |
"indexExpression": { | |
"id": 31218, | |
"name": "onBehalf", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 31174, | |
"src": "11070:8:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "11057:22:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Position_$32272_storage", | |
"typeString": "struct Position storage ref" | |
} | |
}, | |
"id": 31221, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": true, | |
"memberLocation": "11080:10:23", | |
"memberName": "collateral", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32271, | |
"src": "11057:33:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "+=", | |
"rightHandSide": { | |
"arguments": [], | |
"expression": { | |
"argumentTypes": [], | |
"expression": { | |
"id": 31222, | |
"name": "assets", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 31172, | |
"src": "11094:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 31223, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "11101:9:23", | |
"memberName": "toUint128", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 33437, | |
"src": "11094:16:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint128_$attached_to$_t_uint256_$", | |
"typeString": "function (uint256) pure returns (uint128)" | |
} | |
}, | |
"id": 31224, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "11094:18:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"src": "11057:55:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"id": 31226, | |
"nodeType": "ExpressionStatement", | |
"src": "11057:55:23" | |
}, | |
{ | |
"eventCall": { | |
"arguments": [ | |
{ | |
"id": 31230, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 31181, | |
"src": "11155:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
{ | |
"expression": { | |
"id": 31231, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": -15, | |
"src": "11159:3:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 31232, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "11163:6:23", | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"src": "11159:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"id": 31233, | |
"name": "onBehalf", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 31174, | |
"src": "11171:8:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"id": 31234, | |
"name": "assets", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 31172, | |
"src": "11181:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
}, | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"expression": { | |
"id": 31227, | |
"name": "EventsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32976, | |
"src": "11128:9:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_EventsLib_$32976_$", | |
"typeString": "type(library EventsLib)" | |
} | |
}, | |
"id": 31229, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "11138:16:23", | |
"memberName": "SupplyCollateral", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32902, | |
"src": "11128:26:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_event_nonpayable$_t_userDefinedValueType$_Id_$32254_$_t_address_$_t_address_$_t_uint256_$returns$__$", | |
"typeString": "function (Id,address,address,uint256)" | |
} | |
}, | |
"id": 31235, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "11128:60:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 31236, | |
"nodeType": "EmitStatement", | |
"src": "11123:65:23" | |
}, | |
{ | |
"condition": { | |
"commonType": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"id": 31240, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"expression": { | |
"id": 31237, | |
"name": "data", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 31176, | |
"src": "11203:4:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes_calldata_ptr", | |
"typeString": "bytes calldata" | |
} | |
}, | |
"id": 31238, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "11208:6:23", | |
"memberName": "length", | |
"nodeType": "MemberAccess", | |
"src": "11203:11:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": ">", | |
"rightExpression": { | |
"hexValue": "30", | |
"id": 31239, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "11217:1:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
}, | |
"value": "0" | |
}, | |
"src": "11203:15:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"id": 31250, | |
"nodeType": "IfStatement", | |
"src": "11199:103:23", | |
"trueBody": { | |
"expression": { | |
"arguments": [ | |
{ | |
"id": 31246, | |
"name": "assets", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 31172, | |
"src": "11289:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"id": 31247, | |
"name": "data", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 31176, | |
"src": "11297:4:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes_calldata_ptr", | |
"typeString": "bytes calldata" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_bytes_calldata_ptr", | |
"typeString": "bytes calldata" | |
} | |
], | |
"expression": { | |
"arguments": [ | |
{ | |
"expression": { | |
"id": 31242, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": -15, | |
"src": "11252:3:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 31243, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "11256:6:23", | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"src": "11252:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
], | |
"id": 31241, | |
"name": "IMorphoSupplyCollateralCallback", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32649, | |
"src": "11220:31:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_IMorphoSupplyCollateralCallback_$32649_$", | |
"typeString": "type(contract IMorphoSupplyCollateralCallback)" | |
} | |
}, | |
"id": 31244, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "11220:43:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_contract$_IMorphoSupplyCollateralCallback_$32649", | |
"typeString": "contract IMorphoSupplyCollateralCallback" | |
} | |
}, | |
"id": 31245, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "11264:24:23", | |
"memberName": "onMorphoSupplyCollateral", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32648, | |
"src": "11220:68:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", | |
"typeString": "function (uint256,bytes memory) external" | |
} | |
}, | |
"id": 31248, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "11220:82:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 31249, | |
"nodeType": "ExpressionStatement", | |
"src": "11220:82:23" | |
} | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"expression": { | |
"id": 31256, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": -15, | |
"src": "11367:3:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 31257, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "11371:6:23", | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"src": "11367:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"arguments": [ | |
{ | |
"id": 31260, | |
"name": "this", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": -28, | |
"src": "11387:4:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_contract$_Morpho_$32215", | |
"typeString": "contract Morpho" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_contract$_Morpho_$32215", | |
"typeString": "contract Morpho" | |
} | |
], | |
"id": 31259, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"nodeType": "ElementaryTypeNameExpression", | |
"src": "11379:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_address_$", | |
"typeString": "type(address)" | |
}, | |
"typeName": { | |
"id": 31258, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "11379:7:23", | |
"typeDescriptions": {} | |
} | |
}, | |
"id": 31261, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "11379:13:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"id": 31262, | |
"name": "assets", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 31172, | |
"src": "11394:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"expression": { | |
"arguments": [ | |
{ | |
"expression": { | |
"id": 31252, | |
"name": "marketParams", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 31170, | |
"src": "11320:12:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_MarketParams_$32265_memory_ptr", | |
"typeString": "struct MarketParams memory" | |
} | |
}, | |
"id": 31253, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "11333:15:23", | |
"memberName": "collateralToken", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32258, | |
"src": "11320:28:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
], | |
"id": 31251, | |
"name": "IERC20", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32219, | |
"src": "11313:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_IERC20_$32219_$", | |
"typeString": "type(contract IERC20)" | |
} | |
}, | |
"id": 31254, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "11313:36:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_contract$_IERC20_$32219", | |
"typeString": "contract IERC20" | |
} | |
}, | |
"id": 31255, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "11350:16:23", | |
"memberName": "safeTransferFrom", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 33272, | |
"src": "11313:53:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$32219_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$32219_$", | |
"typeString": "function (contract IERC20,address,address,uint256)" | |
} | |
}, | |
"id": 31263, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "11313:88:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 31264, | |
"nodeType": "ExpressionStatement", | |
"src": "11313:88:23" | |
} | |
] | |
}, | |
"baseFunctions": [ | |
32536 | |
], | |
"documentation": { | |
"id": 31167, | |
"nodeType": "StructuredDocumentation", | |
"src": "10576:23:23", | |
"text": "@inheritdoc IMorpho" | |
}, | |
"functionSelector": "238d6579", | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [], | |
"name": "supplyCollateral", | |
"nameLocation": "10613:16:23", | |
"parameters": { | |
"id": 31177, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 31170, | |
"mutability": "mutable", | |
"name": "marketParams", | |
"nameLocation": "10650:12:23", | |
"nodeType": "VariableDeclaration", | |
"scope": 31266, | |
"src": "10630:32:23", | |
"stateVariable": false, | |
"storageLocation": "memory", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_MarketParams_$32265_memory_ptr", | |
"typeString": "struct MarketParams" | |
}, | |
"typeName": { | |
"id": 31169, | |
"nodeType": "UserDefinedTypeName", | |
"pathNode": { | |
"id": 31168, | |
"name": "MarketParams", | |
"nameLocations": [ | |
"10630:12:23" | |
], | |
"nodeType": "IdentifierPath", | |
"referencedDeclaration": 32265, | |
"src": "10630:12:23" | |
}, | |
"referencedDeclaration": 32265, | |
"src": "10630:12:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_MarketParams_$32265_storage_ptr", | |
"typeString": "struct MarketParams" | |
} | |
}, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 31172, | |
"mutability": "mutable", | |
"name": "assets", | |
"nameLocation": "10672:6:23", | |
"nodeType": "VariableDeclaration", | |
"scope": 31266, | |
"src": "10664:14:23", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 31171, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "10664:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 31174, | |
"mutability": "mutable", | |
"name": "onBehalf", | |
"nameLocation": "10688:8:23", | |
"nodeType": "VariableDeclaration", | |
"scope": 31266, | |
"src": "10680:16:23", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 31173, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "10680:7:23", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 31176, | |
"mutability": "mutable", | |
"name": "data", | |
"nameLocation": "10713:4:23", | |
"nodeType": "VariableDeclaration", | |
"scope": 31266, | |
"src": "10698:19:23", | |
"stateVariable": false, | |
"storageLocation": "calldata", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes_calldata_ptr", | |
"typeString": "bytes" | |
}, | |
"typeName": { | |
"id": 31175, | |
"name": "bytes", | |
"nodeType": "ElementaryTypeName", | |
"src": "10698:5:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes_storage_ptr", | |
"typeString": "bytes" | |
} | |
}, | |
"visibility": "internal" | |
} | |
], | |
"src": "10629:89:23" | |
}, | |
"returnParameters": { | |
"id": 31178, | |
"nodeType": "ParameterList", | |
"parameters": [], | |
"src": "10740:0:23" | |
}, | |
"scope": 32215, | |
"stateMutability": "nonpayable", | |
"virtual": false, | |
"visibility": "external" | |
}, | |
{ | |
"id": 31371, | |
"nodeType": "FunctionDefinition", | |
"src": "11442:903:23", | |
"nodes": [], | |
"body": { | |
"id": 31370, | |
"nodeType": "Block", | |
"src": "11577:768:23", | |
"nodes": [], | |
"statements": [ | |
{ | |
"assignments": [ | |
31281 | |
], | |
"declarations": [ | |
{ | |
"constant": false, | |
"id": 31281, | |
"mutability": "mutable", | |
"name": "id", | |
"nameLocation": "11590:2:23", | |
"nodeType": "VariableDeclaration", | |
"scope": 31370, | |
"src": "11587:5:23", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
}, | |
"typeName": { | |
"id": 31280, | |
"nodeType": "UserDefinedTypeName", | |
"pathNode": { | |
"id": 31279, | |
"name": "Id", | |
"nameLocations": [ | |
"11587:2:23" | |
], | |
"nodeType": "IdentifierPath", | |
"referencedDeclaration": 32254, | |
"src": "11587:2:23" | |
}, | |
"referencedDeclaration": 32254, | |
"src": "11587:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"visibility": "internal" | |
} | |
], | |
"id": 31285, | |
"initialValue": { | |
"arguments": [], | |
"expression": { | |
"argumentTypes": [], | |
"expression": { | |
"id": 31282, | |
"name": "marketParams", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 31270, | |
"src": "11595:12:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_MarketParams_$32265_memory_ptr", | |
"typeString": "struct MarketParams memory" | |
} | |
}, | |
"id": 31283, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "11608:2:23", | |
"memberName": "id", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32994, | |
"src": "11595:15:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_pure$_t_struct$_MarketParams_$32265_memory_ptr_$returns$_t_userDefinedValueType$_Id_$32254_$attached_to$_t_struct$_MarketParams_$32265_memory_ptr_$", | |
"typeString": "function (struct MarketParams memory) pure returns (Id)" | |
} | |
}, | |
"id": 31284, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "11595:17:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"nodeType": "VariableDeclarationStatement", | |
"src": "11587:25:23" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"commonType": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
}, | |
"id": 31292, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"expression": { | |
"baseExpression": { | |
"id": 31287, | |
"name": "market", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 30129, | |
"src": "11630:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_userDefinedValueType$_Id_$32254_$_t_struct$_Market_$32285_storage_$", | |
"typeString": "mapping(Id => struct Market storage ref)" | |
} | |
}, | |
"id": 31289, | |
"indexExpression": { | |
"id": 31288, | |
"name": "id", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 31281, | |
"src": "11637:2:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_userDefinedValueType$_Id_$32254", | |
"typeString": "Id" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "11630:10:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_struct$_Market_$32285_storage", | |
"typeString": "struct Market storage ref" | |
} | |
}, | |
"id": 31290, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberLocation": "11641:10:23", | |
"memberName": "lastUpdate", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32282, | |
"src": "11630:21:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint128", | |
"typeString": "uint128" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "!=", | |
"rightExpression": { | |
"hexValue": "30", | |
"id": 31291, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "11655:1:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
}, | |
"value": "0" | |
}, | |
"src": "11630:26:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"expression": { | |
"id": 31293, | |
"name": "ErrorsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32787, | |
"src": "11658:9:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_ErrorsLib_$32787_$", | |
"typeString": "type(library ErrorsLib)" | |
} | |
}, | |
"id": 31294, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"memberLocation": "11668:18:23", | |
"memberName": "MARKET_NOT_CREATED", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32734, | |
"src": "11658:28:23", | |
"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": 31286, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
-18, | |
-18 | |
], | |
"referencedDeclaration": -18, | |
"src": "11622:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 31295, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "11622:65:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 31296, | |
"nodeType": "ExpressionStatement", | |
"src": "11622:65:23" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"commonType": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"id": 31300, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"id": 31298, | |
"name": "assets", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 31272, | |
"src": "11705:6:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "!=", | |
"rightExpression": { | |
"hexValue": "30", | |
"id": 31299, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "11715:1:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
}, | |
"value": "0" | |
}, | |
"src": "11705:11:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"expression": { | |
"id": 31301, | |
"name": "ErrorsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32787, | |
"src": "11718:9:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_ErrorsLib_$32787_$", | |
"typeString": "type(library ErrorsLib)" | |
} | |
}, | |
"id": 31302, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"memberLocation": "11728:11:23", | |
"memberName": "ZERO_ASSETS", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32742, | |
"src": "11718:21:23", | |
"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": 31297, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
-18, | |
-18 | |
], | |
"referencedDeclaration": -18, | |
"src": "11697:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 31303, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "11697:43:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 31304, | |
"nodeType": "ExpressionStatement", | |
"src": "11697:43:23" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"commonType": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"id": 31311, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"id": 31306, | |
"name": "receiver", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 31276, | |
"src": "11850:8:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "!=", | |
"rightExpression": { | |
"arguments": [ | |
{ | |
"hexValue": "30", | |
"id": 31309, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "11870:1:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
}, | |
"value": "0" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
} | |
], | |
"id": 31308, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"nodeType": "ElementaryTypeNameExpression", | |
"src": "11862:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_address_$", | |
"typeString": "type(address)" | |
}, | |
"typeName": { | |
"id": 31307, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "11862:7:23", | |
"typeDescriptions": {} | |
} | |
}, | |
"id": 31310, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "11862:10:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"src": "11850:22:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"expression": { | |
"id": 31312, | |
"name": "ErrorsLib", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 32787, | |
"src": "11874:9:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_ErrorsLib_$32787_$", | |
"typeString": "type(library ErrorsLib)" | |
} | |
}, | |
"id": 31313, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"memberLocation": "11884:12:23", | |
"memberName": "ZERO_ADDRESS", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 32746, | |
"src": "11874:22:23", | |
"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": 31305, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
-18, | |
-18 | |
], | |
"referencedDeclaration": -18, | |
"src": "11842:7:23", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 31314, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"nameLocations": [], | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "11842:55:23", | |
"tryCall": false, | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 31315, | |
"nodeType": "ExpressionStatement", | |
"src": "11842:55:23" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"id": 31318, | |
"name": "onBehalf", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 31274, | |
"src": "11935:8:23", | |
"typ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment