@raac/rpc 1.0.1 → 1.0.2-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (241) hide show
  1. package/dist/RPCLibrary.js +61 -8
  2. package/dist/artifacts/core/collectors/FeeCollector.sol/FeeCollector.json +1743 -0
  3. package/dist/artifacts/core/minters/RAACMinter/RAACMinter.sol/RAACMinter.json +175 -67
  4. package/dist/artifacts/core/oracles/BaseVRFv2Consumer.sol/BaseVRFv2Consumer.json +279 -0
  5. package/dist/artifacts/core/pools/LendingPool/LendingPool.sol/LendingPool.json +1231 -195
  6. package/dist/artifacts/core/pools/StabilityPool/StabilityPool.sol/StabilityPool.json +153 -199
  7. package/dist/artifacts/core/primitives/RAACHousePrices.sol/RAACHousePrices.json +72 -2
  8. package/dist/artifacts/core/tokens/DEToken.sol/DEToken.json +2 -2
  9. package/dist/artifacts/core/tokens/IndexToken.sol/IndexToken.json +770 -0
  10. package/dist/artifacts/core/tokens/RAACNFT.sol/RAACNFT.json +707 -49
  11. package/dist/artifacts/core/tokens/RAACToken.sol/RAACToken.json +23 -84
  12. package/dist/artifacts/core/tokens/RToken.sol/RToken.json +62 -62
  13. package/dist/artifacts/core/tokens/veRAACToken.sol/veRAACToken.json +2 -2
  14. package/dist/artifacts/mocks/core/oracles/MockVRFCoordinatorV2.sol/MockVRFCoordinatorV2.json +774 -0
  15. package/dist/artifacts/zeno/Auction.sol/Auction.json +34 -114
  16. package/dist/artifacts/zeno/AuctionFactory.sol/AuctionFactory.json +3 -3
  17. package/dist/artifacts/zeno/Zeno.sol/Zeno.json +3 -3
  18. package/dist/artifacts/zeno/ZenoFactory.sol/ZenoFactory.json +3 -3
  19. package/dist/configs/chains/17000.json +127 -0
  20. package/dist/configs/chains/8453.json +26 -14
  21. package/dist/configs/chains/index.js +2 -0
  22. package/dist/configs/createConfig.js +6 -0
  23. package/dist/contracts/feeCollector/claimRewardFromPool.js +24 -0
  24. package/dist/contracts/housePrices/getLatestPrice.js +1 -1
  25. package/dist/contracts/indexToken/getNextRandomNFT.js +30 -0
  26. package/dist/contracts/indexToken/redeemNFT.js +39 -0
  27. package/dist/nfts/getAllTokens.js +34 -0
  28. package/dist/nfts/{addNewBatch.js → getBaseUri.js} +7 -8
  29. package/dist/nfts/getMintFeePercentage.js +23 -0
  30. package/dist/nfts/getMintPrice.js +28 -0
  31. package/dist/nfts/getTokenURI.js +23 -0
  32. package/dist/nfts/getTokensByOwner.js +35 -0
  33. package/dist/nfts/getTotalPropertiesCount.js +23 -0
  34. package/dist/nfts/{getCurrentBatchSize.js → totalNFTSupply.js} +3 -3
  35. package/dist/pools/lendingPool/borrowFromLendingPool.js +4 -3
  36. package/dist/pools/lendingPool/borrowFromLendingPoolWithInsurance.js +40 -0
  37. package/dist/pools/lendingPool/calculateInsuranceFee.js +20 -0
  38. package/dist/pools/lendingPool/claimReward.js +22 -0
  39. package/dist/pools/lendingPool/closeLiquidation.js +28 -0
  40. package/dist/pools/lendingPool/depositNFTToLendingPool.js +0 -1
  41. package/dist/pools/lendingPool/depositToLendingPool.js +2 -2
  42. package/dist/pools/lendingPool/getAllUserData.js +28 -0
  43. package/dist/pools/lendingPool/getEligibleUserDeposits.js +27 -0
  44. package/dist/pools/lendingPool/getHealthFactor.js +27 -0
  45. package/dist/pools/lendingPool/getLendingPoolInfo.js +8 -5
  46. package/dist/pools/lendingPool/getPendingReward.js +20 -0
  47. package/dist/pools/lendingPool/getPositionDebt.js +27 -0
  48. package/dist/pools/lendingPool/getPositionScaledDebt.js +27 -0
  49. package/dist/pools/lendingPool/getPositionView.js +38 -0
  50. package/dist/pools/lendingPool/getPositionsScaledDebt.js +27 -0
  51. package/dist/pools/lendingPool/getRawUserDepositsInLendingPool.js +21 -0
  52. package/dist/pools/lendingPool/getUserCollateralValue.js +27 -0
  53. package/dist/pools/lendingPool/initializeLiquidation.js +28 -0
  54. package/dist/pools/lendingPool/repayToLendingPool.js +4 -8
  55. package/dist/pools/lendingPool/withdrawFromLendingPool.js +2 -2
  56. package/dist/pools/stabilityPool/depositNFTToStabilityPool.js +40 -0
  57. package/dist/pools/stabilityPool/getRawUserDepositsInStabilityPool.js +21 -0
  58. package/dist/pools/stabilityPool/getStabilityPoolInfo.js +2 -12
  59. package/dist/scripts/index.js +90 -35
  60. package/dist/types/RPCLibrary.d.ts +61 -8
  61. package/dist/types/configs/chains/index.d.ts +2 -0
  62. package/dist/types/configs/createConfig.d.ts +6 -0
  63. package/dist/types/configs/index.d.ts +1 -0
  64. package/dist/types/contracts/feeCollector/claimRewardFromPool.d.ts +4 -0
  65. package/dist/types/contracts/housePrices/getLatestPrice.d.ts +1 -1
  66. package/dist/types/contracts/indexToken/getNextRandomNFT.d.ts +7 -0
  67. package/dist/types/contracts/indexToken/redeemNFT.d.ts +4 -0
  68. package/dist/types/nfts/getAllTokens.d.ts +7 -0
  69. package/dist/types/nfts/getBaseUri.d.ts +4 -0
  70. package/dist/types/nfts/getMintFeePercentage.d.ts +4 -0
  71. package/dist/types/nfts/getMintPrice.d.ts +7 -0
  72. package/dist/types/nfts/getTokenURI.d.ts +4 -0
  73. package/dist/types/nfts/getTokensByOwner.d.ts +10 -0
  74. package/dist/types/nfts/getTotalPropertiesCount.d.ts +4 -0
  75. package/dist/types/nfts/totalNFTSupply.d.ts +4 -0
  76. package/dist/types/pools/lendingPool/borrowFromLendingPool.d.ts +1 -1
  77. package/dist/types/pools/lendingPool/borrowFromLendingPoolWithInsurance.d.ts +4 -0
  78. package/dist/types/pools/lendingPool/calculateInsuranceFee.d.ts +4 -0
  79. package/dist/types/pools/lendingPool/claimReward.d.ts +4 -0
  80. package/dist/types/pools/lendingPool/closeLiquidation.d.ts +11 -0
  81. package/dist/types/pools/lendingPool/getAllUserData.d.ts +16 -0
  82. package/dist/types/pools/lendingPool/getEligibleUserDeposits.d.ts +11 -0
  83. package/dist/types/pools/lendingPool/getHealthFactor.d.ts +11 -0
  84. package/dist/types/pools/lendingPool/getLendingPoolInfo.d.ts +2 -1
  85. package/dist/types/pools/lendingPool/getPendingReward.d.ts +4 -0
  86. package/dist/types/pools/lendingPool/getPositionDebt.d.ts +11 -0
  87. package/dist/types/pools/lendingPool/getPositionScaledDebt.d.ts +11 -0
  88. package/dist/types/pools/lendingPool/getPositionView.d.ts +27 -0
  89. package/dist/types/pools/lendingPool/getPositionsScaledDebt.d.ts +11 -0
  90. package/dist/types/pools/lendingPool/getRawUserDepositsInLendingPool.d.ts +4 -0
  91. package/dist/types/pools/lendingPool/getUserCollateralValue.d.ts +11 -0
  92. package/dist/types/pools/lendingPool/initializeLiquidation.d.ts +11 -0
  93. package/dist/types/pools/lendingPool/repayToLendingPool.d.ts +2 -2
  94. package/dist/types/pools/lendingPool/withdrawNFTFromLendingPool.d.ts +1 -1
  95. package/dist/types/pools/stabilityPool/depositNFTToStabilityPool.d.ts +4 -0
  96. package/dist/types/pools/stabilityPool/getRawUserDepositsInStabilityPool.d.ts +4 -0
  97. package/dist/types/pools/stabilityPool/getStabilityPoolInfo.d.ts +1 -3
  98. package/dist/types/typechain-types/@chainlink/contracts/src/v0.8/index.d.ts +2 -0
  99. package/dist/types/typechain-types/@chainlink/contracts/src/v0.8/vrf/VRFConsumerBaseV2.d.ts +35 -0
  100. package/dist/types/typechain-types/@chainlink/contracts/src/v0.8/vrf/index.d.ts +3 -0
  101. package/dist/types/typechain-types/@chainlink/contracts/src/v0.8/vrf/interfaces/VRFCoordinatorV2Interface.d.ts +156 -0
  102. package/dist/types/typechain-types/@chainlink/contracts/src/v0.8/vrf/interfaces/index.d.ts +1 -0
  103. package/dist/types/typechain-types/contracts/core/collectors/FeeCollector.d.ts +446 -221
  104. package/dist/types/typechain-types/contracts/core/minters/RAACMinter/RAACMinter.d.ts +108 -20
  105. package/dist/types/typechain-types/contracts/core/minters/RAACReleaseOrchestrator/RAACReleaseOrchestrator.d.ts +6 -16
  106. package/dist/types/typechain-types/contracts/core/oracles/BaseVRFv2Consumer.d.ts +166 -0
  107. package/dist/types/typechain-types/contracts/core/oracles/index.d.ts +1 -0
  108. package/dist/types/typechain-types/contracts/core/pools/LendingPool/LendingPool.d.ts +811 -99
  109. package/dist/types/typechain-types/contracts/core/pools/StabilityPool/StabilityPool.d.ts +152 -148
  110. package/dist/types/typechain-types/contracts/core/pools/StabilityPool/index.d.ts +0 -1
  111. package/dist/types/typechain-types/contracts/core/primitives/RAACHousePrices.d.ts +29 -2
  112. package/dist/types/typechain-types/contracts/core/tokens/DebtToken.d.ts +65 -51
  113. package/dist/types/typechain-types/contracts/core/tokens/IndexToken.d.ts +187 -2
  114. package/dist/types/typechain-types/contracts/core/tokens/RAACNFT.d.ts +413 -19
  115. package/dist/types/typechain-types/contracts/core/tokens/RToken.d.ts +40 -40
  116. package/dist/types/typechain-types/contracts/interfaces/core/collectors/IBaseCollector.d.ts +39 -0
  117. package/dist/types/typechain-types/contracts/interfaces/core/collectors/IFeeCollector.d.ts +317 -130
  118. package/dist/types/typechain-types/contracts/interfaces/core/collectors/index.d.ts +1 -0
  119. package/dist/types/typechain-types/contracts/interfaces/core/index.d.ts +2 -0
  120. package/dist/types/typechain-types/contracts/interfaces/core/minters/RAACMinter/IRAACMinter.d.ts +58 -22
  121. package/dist/types/typechain-types/contracts/interfaces/core/minters/RAACReleaseOrchestrator/IReleaseOrchestrator.d.ts +5 -3
  122. package/dist/types/typechain-types/contracts/interfaces/core/oracles/IBaseVRFv2Consumer.d.ts +86 -0
  123. package/dist/types/typechain-types/contracts/interfaces/core/oracles/index.d.ts +1 -0
  124. package/dist/types/typechain-types/contracts/interfaces/core/pools/ILiquidityPool.d.ts +83 -45
  125. package/dist/types/typechain-types/contracts/interfaces/core/pools/LendingPool/ILendingPool.d.ts +539 -54
  126. package/dist/types/typechain-types/contracts/interfaces/core/pools/StabilityPool/IStabilityPool.d.ts +92 -71
  127. package/dist/types/typechain-types/contracts/interfaces/core/tokens/IDebtToken.d.ts +123 -27
  128. package/dist/types/typechain-types/contracts/interfaces/core/tokens/IIndexToken.d.ts +187 -0
  129. package/dist/types/typechain-types/contracts/interfaces/core/tokens/IRAACNFT.d.ts +243 -17
  130. package/dist/types/typechain-types/contracts/interfaces/core/tokens/IRToken.d.ts +37 -37
  131. package/dist/types/typechain-types/contracts/interfaces/core/tokens/index.d.ts +1 -0
  132. package/dist/types/typechain-types/contracts/interfaces/core/vaults/IBaseVault.d.ts +83 -0
  133. package/dist/types/typechain-types/contracts/interfaces/core/vaults/index.d.ts +1 -0
  134. package/dist/types/typechain-types/contracts/interfaces/index.d.ts +0 -1
  135. package/dist/types/typechain-types/contracts/mocks/core/collectors/index.d.ts +0 -1
  136. package/dist/types/typechain-types/contracts/mocks/core/governance/proposals/TimelockTestTarget.d.ts +5 -1
  137. package/dist/types/typechain-types/contracts/mocks/core/index.d.ts +2 -0
  138. package/dist/types/typechain-types/contracts/mocks/core/oracles/MockVRFCoordinatorV2.d.ts +530 -0
  139. package/dist/types/typechain-types/contracts/mocks/core/oracles/index.d.ts +1 -0
  140. package/dist/types/typechain-types/contracts/mocks/core/pools/MockLendingPoolCollector.d.ts +156 -0
  141. package/dist/types/typechain-types/contracts/mocks/core/pools/MockLendingPoolDebtToken.d.ts +557 -102
  142. package/dist/types/typechain-types/contracts/mocks/core/pools/MockLiquidityPool.d.ts +486 -0
  143. package/dist/types/typechain-types/contracts/mocks/core/pools/index.d.ts +2 -0
  144. package/dist/types/typechain-types/contracts/mocks/core/primitives/MockDistributableContract.d.ts +35 -0
  145. package/dist/types/typechain-types/contracts/mocks/core/primitives/index.d.ts +1 -0
  146. package/dist/types/typechain-types/contracts/mocks/core/tokens/MockCollectableUnderlying.d.ts +292 -0
  147. package/dist/types/typechain-types/contracts/mocks/core/tokens/index.d.ts +1 -0
  148. package/dist/types/typechain-types/contracts/mocks/core/vaults/MockVault.d.ts +290 -0
  149. package/dist/types/typechain-types/contracts/mocks/core/vaults/index.d.ts +1 -0
  150. package/dist/types/typechain-types/contracts/mocks/libraries/MockStringUtils.d.ts +25 -0
  151. package/dist/types/typechain-types/contracts/mocks/libraries/index.d.ts +1 -0
  152. package/dist/types/typechain-types/factories/@chainlink/contracts/src/v0.8/index.d.ts +1 -0
  153. package/dist/types/typechain-types/factories/@chainlink/contracts/src/v0.8/vrf/VRFConsumerBaseV2__factory.d.ts +33 -0
  154. package/dist/types/typechain-types/factories/@chainlink/contracts/src/v0.8/vrf/index.d.ts +2 -0
  155. package/dist/types/typechain-types/factories/@chainlink/contracts/src/v0.8/vrf/interfaces/VRFCoordinatorV2Interface__factory.d.ts +171 -0
  156. package/dist/types/typechain-types/factories/@chainlink/contracts/src/v0.8/vrf/interfaces/index.d.ts +1 -0
  157. package/dist/types/typechain-types/factories/contracts/core/collectors/FeeCollector__factory.d.ts +571 -194
  158. package/dist/types/typechain-types/factories/contracts/core/minters/RAACMinter/RAACMinter__factory.d.ts +138 -54
  159. package/dist/types/typechain-types/factories/contracts/core/minters/RAACReleaseOrchestrator/RAACReleaseOrchestrator__factory.d.ts +5 -31
  160. package/dist/types/typechain-types/factories/contracts/core/oracles/BaseVRFv2Consumer__factory.d.ts +231 -0
  161. package/dist/types/typechain-types/factories/contracts/core/oracles/RAACHousePriceOracle__factory.d.ts +1 -1
  162. package/dist/types/typechain-types/factories/contracts/core/oracles/RAACPrimeRateOracle__factory.d.ts +1 -1
  163. package/dist/types/typechain-types/factories/contracts/core/oracles/index.d.ts +1 -0
  164. package/dist/types/typechain-types/factories/contracts/core/pools/LendingPool/LendingPool__factory.d.ts +897 -64
  165. package/dist/types/typechain-types/factories/contracts/core/pools/StabilityPool/NFTLiquidator__factory.d.ts +1 -1
  166. package/dist/types/typechain-types/factories/contracts/core/pools/StabilityPool/StabilityPool__factory.d.ts +128 -161
  167. package/dist/types/typechain-types/factories/contracts/core/pools/StabilityPool/index.d.ts +0 -1
  168. package/dist/types/typechain-types/factories/contracts/core/primitives/RAACHousePrices__factory.d.ts +54 -1
  169. package/dist/types/typechain-types/factories/contracts/core/tokens/DebtToken__factory.d.ts +47 -29
  170. package/dist/types/typechain-types/factories/contracts/core/tokens/IndexToken__factory.d.ts +317 -1
  171. package/dist/types/typechain-types/factories/contracts/core/tokens/RAACNFT__factory.d.ts +525 -17
  172. package/dist/types/typechain-types/factories/contracts/core/tokens/RAACToken__factory.d.ts +1 -1
  173. package/dist/types/typechain-types/factories/contracts/core/tokens/RToken__factory.d.ts +52 -52
  174. package/dist/types/typechain-types/factories/contracts/core/tokens/VeRAACToken__factory.d.ts +1 -1
  175. package/dist/types/typechain-types/factories/contracts/interfaces/core/collectors/IBaseCollector__factory.d.ts +33 -0
  176. package/dist/types/typechain-types/factories/contracts/interfaces/core/collectors/IFeeCollector__factory.d.ts +409 -90
  177. package/dist/types/typechain-types/factories/contracts/interfaces/core/collectors/index.d.ts +1 -0
  178. package/dist/types/typechain-types/factories/contracts/interfaces/core/index.d.ts +1 -0
  179. package/dist/types/typechain-types/factories/contracts/interfaces/core/minters/RAACMinter/IRAACMinter__factory.d.ts +59 -15
  180. package/dist/types/typechain-types/factories/contracts/interfaces/core/minters/RAACReleaseOrchestrator/IReleaseOrchestrator__factory.d.ts +4 -0
  181. package/dist/types/typechain-types/factories/contracts/interfaces/core/oracles/IBaseVRFv2Consumer__factory.d.ts +78 -0
  182. package/dist/types/typechain-types/factories/contracts/interfaces/core/oracles/index.d.ts +1 -0
  183. package/dist/types/typechain-types/factories/contracts/interfaces/core/pools/ILiquidityPool__factory.d.ts +119 -39
  184. package/dist/types/typechain-types/factories/contracts/interfaces/core/pools/LendingPool/ILendingPool__factory.d.ts +547 -19
  185. package/dist/types/typechain-types/factories/contracts/interfaces/core/pools/StabilityPool/IStabilityPool__factory.d.ts +68 -67
  186. package/dist/types/typechain-types/factories/contracts/interfaces/core/tokens/IDebtToken__factory.d.ts +119 -6
  187. package/dist/types/typechain-types/factories/{erc721a/contracts/IERC721A__factory.d.ts → contracts/interfaces/core/tokens/IIndexToken__factory.d.ts} +74 -215
  188. package/dist/types/typechain-types/factories/contracts/interfaces/core/tokens/IRAACNFT__factory.d.ts +274 -10
  189. package/dist/types/typechain-types/factories/contracts/interfaces/core/tokens/IRToken__factory.d.ts +26 -26
  190. package/dist/types/typechain-types/factories/contracts/interfaces/core/tokens/index.d.ts +1 -0
  191. package/dist/types/typechain-types/factories/contracts/interfaces/{IMarketCreator__factory.d.ts → core/vaults/IBaseVault__factory.d.ts} +78 -42
  192. package/dist/types/typechain-types/factories/contracts/interfaces/core/vaults/index.d.ts +1 -0
  193. package/dist/types/typechain-types/factories/contracts/interfaces/index.d.ts +0 -1
  194. package/dist/types/typechain-types/factories/contracts/libraries/pools/ReserveLibrary__factory.d.ts +1 -1
  195. package/dist/types/typechain-types/factories/contracts/mocks/core/collectors/index.d.ts +0 -1
  196. package/dist/types/typechain-types/factories/contracts/mocks/core/governance/gauges/MockBaseGauge__factory.d.ts +16 -4
  197. package/dist/types/typechain-types/factories/contracts/mocks/core/governance/proposals/TimelockTestTarget__factory.d.ts +10 -1
  198. package/dist/types/typechain-types/factories/contracts/mocks/core/index.d.ts +1 -0
  199. package/dist/types/typechain-types/factories/contracts/mocks/core/oracles/MockOracle__factory.d.ts +1 -1
  200. package/dist/types/typechain-types/factories/contracts/mocks/core/oracles/MockVRFCoordinatorV2__factory.d.ts +620 -0
  201. package/dist/types/typechain-types/factories/contracts/mocks/core/oracles/TestRAACHousePriceOracle__factory.d.ts +1 -1
  202. package/dist/types/typechain-types/factories/contracts/mocks/core/oracles/TestRAACPrimeRateOracle__factory.d.ts +1 -1
  203. package/dist/types/typechain-types/factories/contracts/mocks/core/oracles/index.d.ts +1 -0
  204. package/dist/types/typechain-types/factories/contracts/mocks/core/pools/MockLendingPoolCollector__factory.d.ts +234 -0
  205. package/dist/types/typechain-types/factories/contracts/mocks/core/pools/MockLendingPoolDebtToken__factory.d.ts +539 -77
  206. package/dist/types/typechain-types/factories/contracts/mocks/core/pools/MockLendingPool__factory.d.ts +1 -1
  207. package/dist/types/typechain-types/factories/contracts/mocks/core/pools/MockLiquidityPool__factory.d.ts +795 -0
  208. package/dist/types/typechain-types/factories/contracts/mocks/core/pools/MockStabilityPool__factory.d.ts +1 -1
  209. package/dist/types/typechain-types/factories/contracts/mocks/core/pools/index.d.ts +2 -0
  210. package/dist/types/typechain-types/factories/contracts/mocks/core/primitives/MockDistributableContract__factory.d.ts +68 -0
  211. package/dist/types/typechain-types/factories/contracts/mocks/core/primitives/index.d.ts +1 -0
  212. package/dist/types/typechain-types/factories/contracts/mocks/core/tokens/MockCollectableUnderlying__factory.d.ts +451 -0
  213. package/dist/types/typechain-types/factories/contracts/mocks/core/tokens/index.d.ts +1 -0
  214. package/dist/types/typechain-types/factories/contracts/mocks/core/vaults/MockVault__factory.d.ts +525 -0
  215. package/dist/types/typechain-types/factories/contracts/mocks/core/vaults/index.d.ts +1 -0
  216. package/dist/types/typechain-types/factories/contracts/mocks/libraries/MockStringUtils__factory.d.ts +40 -0
  217. package/dist/types/typechain-types/factories/contracts/mocks/libraries/index.d.ts +1 -0
  218. package/dist/types/typechain-types/factories/contracts/mocks/libraries/pools/ReserveLibraryMock__factory.d.ts +1 -1
  219. package/dist/types/typechain-types/factories/contracts/mocks/tests/VeRAACFuzzHelper__factory.d.ts +1 -1
  220. package/dist/types/typechain-types/factories/index.d.ts +0 -1
  221. package/dist/types/typechain-types/index.d.ts +28 -10
  222. package/dist/types/utils/artifacts.d.ts +677 -39
  223. package/dist/types/utils/contracts.d.ts +2 -0
  224. package/dist/utils/artifacts.js +9 -0
  225. package/package.json +1 -1
  226. package/dist/nfts/getDepositedNFTs.js +0 -19
  227. package/dist/nfts/getOwnedNFTs.js +0 -34
  228. package/dist/types/nfts/addNewBatch.d.ts +0 -4
  229. package/dist/types/nfts/getCurrentBatchSize.d.ts +0 -4
  230. package/dist/types/nfts/getDepositedNFTs.d.ts +0 -7
  231. package/dist/types/nfts/getOwnedNFTs.d.ts +0 -7
  232. package/dist/types/typechain-types/contracts/core/pools/StabilityPool/MarketCreator.d.ts +0 -274
  233. package/dist/types/typechain-types/contracts/interfaces/IMarketCreator.d.ts +0 -85
  234. package/dist/types/typechain-types/contracts/mocks/core/collectors/MockFeeCollector.d.ts +0 -708
  235. package/dist/types/typechain-types/erc721a/contracts/IERC721A.d.ts +0 -242
  236. package/dist/types/typechain-types/erc721a/contracts/index.d.ts +0 -1
  237. package/dist/types/typechain-types/erc721a/index.d.ts +0 -2
  238. package/dist/types/typechain-types/factories/contracts/core/pools/StabilityPool/MarketCreator__factory.d.ts +0 -405
  239. package/dist/types/typechain-types/factories/contracts/mocks/core/collectors/MockFeeCollector__factory.d.ts +0 -985
  240. package/dist/types/typechain-types/factories/erc721a/contracts/index.d.ts +0 -1
  241. package/dist/types/typechain-types/factories/erc721a/index.d.ts +0 -1
@@ -14,7 +14,7 @@ export declare class LendingPool__factory extends ContractFactory {
14
14
  deploymentTransaction(): ContractTransactionResponse;
15
15
  }>;
16
16
  connect(runner: ContractRunner | null): LendingPool__factory;
17
- static readonly bytecode = "0x60a06040526018805460ff60a01b1916600160a01b1790556107d0601f556021805460ff191690553480156200003457600080fd5b5060405162003f6f38038062003f6f8339810160408190526200005791620002da565b33806200007e57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b620000898162000246565b50600180556002805460ff191690556001600160a01b0386161580620000b657506001600160a01b038516155b80620000c957506001600160a01b038416155b80620000dc57506001600160a01b038316155b80620000ef57506001600160a01b038216155b80620000f9575080155b1562000118576040516303988b8160e61b815260040160405180910390fd5b601580546001600160a01b03199081166001600160a01b0389811691821790935585831660805260138054831686851617905560168054831689851690811790915560178054841694891694851790557b033b2e3c9fd0803ce800000000000000033b2e3c9fd0803ce80000006008556009805464ffffffffff19164264ffffffffff1617905560038054841690911790556004805483169091179055600580549091169091179055600c819055620001d4816109c462000296565b600d55600c54620001e89061138862000296565b600e55600c54620001fc90619c4062000296565b600f55620002196b033b2e3c9fd0803ce8000000611f4062000296565b601055505060006011555050611f406019555050670de0b6b3a7640000601a556203f480601b5562000352565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600081156113881983900484111517620002af57600080fd5b506127109102611388010490565b80516001600160a01b0381168114620002d557600080fd5b919050565b60008060008060008060c08789031215620002f457600080fd5b620002ff87620002bd565b95506200030f60208801620002bd565b94506200031f60408801620002bd565b93506200032f60608801620002bd565b92506200033f60808801620002bd565b915060a087015190509295509295509295565b608051613be56200038a6000396000818161064501528181610adb015281816113c10152818161201e015261213d0152613be56000f3fe608060405234801561001057600080fd5b50600436106103835760003560e01c8063883c6b24116101de578063c23c69d51161010f578063e5711e8b116100ad578063ec915ee61161007c578063ec915ee614610849578063f2fde38b146108aa578063f8d89898146108bd578063fbf4a612146108d057600080fd5b8063e5711e8b14610803578063e65896c914610816578063e91a7ca614610829578063e9f2838e1461083c57600080fd5b8063c8910913116100e9578063c8910913146106e6578063cd3293de14610733578063d5db7d5d146107dd578063d6d6b107146107f057600080fd5b8063c23c69d5146106a0578063c4f8911c146106c0578063c5ebeaec146106d357600080fd5b8063a8a087951161017c578063ac919fd411610156578063ac919fd414610640578063b13aa2d614610667578063b6b55f251461067a578063bbcb15c21461068d57600080fd5b8063a8a08795146105fa578063a9bf805c1461060d578063aa530a3a1461062057600080fd5b80639523b910116101b85780639523b9101461059e57806398d721e0146105c15780639ce625f7146105d4578063a1c317fd146105e757600080fd5b8063883c6b24146105695780638da5cb5b1461057a578063929761791461058b57600080fd5b8063371fd8e6116102b85780635a81acd41161025657806375417da61161023057806375417da614610533578063768bab45146105465780637bc7780b146105595780638456cb591461056157600080fd5b80635a81acd41461050d5780635c975abb14610520578063715018a61461052b57600080fd5b80633ff78a74116102925780633ff78a74146104e05780634010e5d4146104e85780634031234c146104f157806340c65f72146104fa57600080fd5b8063371fd8e6146104a15780633e20bf14146104b45780633f4ba83a146104d857600080fd5b8063150b7a02116103255780631d8557d7116102ff5780631d8557d7146104605780632630c12f146104685780632ab414fc1461047b5780632e1a7d4d1461048e57600080fd5b8063150b7a021461042257806316a6c4c51461044e5780631705ffad1461045757600080fd5b806309bf1e731161036157806309bf1e73146103e45780630ab30d8a146103ee5780630c42dcaf146104065780630c679a7b1461040f57600080fd5b8063023245d714610388578063048c661d1461039d578063057e9b7b146103cd575b600080fd5b61039b610396366004613646565b6108df565b005b6018546103b0906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6103d6601a5481565b6040519081526020016103c4565b6103d66203f48081565b600854600160801b90046001600160801b03166103d6565b6103d6611f4081565b61039b61041d366004613674565b610b8c565b6104356104303660046136a7565b610bb6565b6040516001600160e01b031990911681526020016103c4565b6103d6601b5481565b6103d6601f5481565b61039b610bc7565b6013546103b0906001600160a01b031681565b61039b610489366004613787565b610bd5565b61039b61049c366004613646565b610fd2565b61039b6104af366004613646565b611090565b6018546104c890600160a01b900460ff1681565b60405190151581526020016103c4565b61039b6110d6565b61039b6110e6565b6103d660205481565b6103d660195481565b6016546103b0906001600160a01b031681565b61039b61051b366004613674565b611236565b60025460ff166104c8565b61039b6115a3565b6103d6610541366004613674565b6115b5565b61039b6105543660046137b7565b611636565b600c546103d6565b61039b611720565b6008546001600160801b03166103d6565b6000546001600160a01b03166103b0565b6103d6610599366004613646565b611730565b6104c86105ac366004613674565b601c6020526000908152604090205460ff1681565b61039b6105cf366004613674565b6117cd565b6103d66105e2366004613674565b61187d565b61039b6105f5366004613674565b6118eb565b61039b610608366004613674565b611993565b6014546103b0906001600160a01b031681565b61063361062e366004613674565b611a91565b6040516103c491906137d5565b6103b07f000000000000000000000000000000000000000000000000000000000000000081565b61039b610675366004613646565b611b03565b61039b610688366004613646565b611b10565b601e546103b0906001600160a01b031681565b6103d66106ae366004613674565b601d6020526000908152604090205481565b61039b6106ce366004613646565b611bae565b61039b6106e1366004613646565b611be5565b6107186106f4366004613674565b601260205260009081526040902080546003820154600490920154909160ff169083565b604080519384529115156020840152908201526060016103c4565b60035460045460055460065460075460085460095461077f966001600160a01b0390811696811695169392916001600160801b0380821692600160801b909204169064ffffffffff1688565b604080516001600160a01b03998a16815297891660208901529590971694860194909452606085019290925260808401526001600160801b0390811660a08401521660c082015264ffffffffff90911660e0820152610100016103c4565b6015546103b0906001600160a01b031681565b61039b6107fe366004613819565b611e98565b61039b610811366004613849565b611f2f565b6103d6610824366004613674565b611fa5565b61039b610837366004613646565b611fe2565b6021546104c89060ff1681565b600a54600b54600c54600d54600e54600f5460105460115461086f979695949392919088565b604080519889526020890197909752958701949094526060860192909252608085015260a084015260c083015260e0820152610100016103c4565b61039b6108b8366004613674565b6121e7565b6017546103b0906001600160a01b031681565b6103d6670de0b6b3a764000081565b6108e7612222565b6108ef61224c565b336000908152601c602052604090205460ff1615610920576040516367c11db560e01b815260040160405180910390fd5b336000908152601260209081526040808320848452600281019092529091205460ff166109605760405163346fad7360e01b815260040160405180910390fd5b61096c6003600a612270565b600854815460009161098e9190600160801b90046001600160801b031661227a565b9050600061099b336115b5565b905060006109a885611730565b90506109bf601954846122bd90919063ffffffff16565b6109c982846138a0565b10156109e8576040516302c9375f60e21b815260040160405180910390fd5b60005b6001850154811015610aab5785856001018281548110610a0d57610a0d6138b3565b906000526020600020015403610a9957600180860180549091610a2f916138a0565b81548110610a3f57610a3f6138b3565b9060005260206000200154856001018281548110610a5f57610a5f6138b3565b60009182526020909120015560018501805480610a7e57610a7e6138c9565b60019003818190600052602060002001600090559055610aab565b80610aa3816138df565b9150506109eb565b50600085815260028501602052604090819020805460ff1916905551632142170760e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342842e0e90610b1490309033908a906004016138f8565b600060405180830381600087803b158015610b2e57600080fd5b505af1158015610b42573d6000803e3d6000fd5b50506040518781523392507f2aa1b4c95f3b2da9c955947fca584743ea0d457708fadf209c093061e98c4ccb91506020015b60405180910390a250505050610b8960018055565b50565b610b946122e3565b601480546001600160a01b0319166001600160a01b0392909216919091179055565b630a85bd0160e11b5b949350505050565b610bd36003600a612270565b565b610bdd6122e3565b6000826005811115610bf157610bf161391c565b03610c9c57612710811115610c4d5760405162461bcd60e51b815260206004820152601d60248201527f496e76616c6964206c69717569646174696f6e207468726573686f6c6400000060448201526064015b60405180910390fd5b6019819055601a54601b546040805184815260208101939093528201527fafabe1c7d6c2e86cbfc67a8ba53d25a7f8ef59b97d972dd4bf7d7525ba7fdddf906060015b60405180910390a15050565b6001826005811115610cb057610cb061391c565b03610cfb57601a819055601954601b5460408051928352602083018490528201527fafabe1c7d6c2e86cbfc67a8ba53d25a7f8ef59b97d972dd4bf7d7525ba7fdddf90606001610c90565b6002826005811115610d0f57610d0f61391c565b03610db657620151808110158015610d2a575062093a808111155b610d6d5760405162461bcd60e51b8152602060048201526014602482015273125b9d985b1a590819dc9858d9481c195c9a5bd960621b6044820152606401610c44565b601b819055601954601a5460408051928352602083019190915281018290527fafabe1c7d6c2e86cbfc67a8ba53d25a7f8ef59b97d972dd4bf7d7525ba7fdddf90606001610c90565b6003826005811115610dca57610dca61391c565b03610e6857612710811115610e215760405162461bcd60e51b815260206004820152601860248201527f526174696f2063616e6e6f7420657863656564203130302500000000000000006044820152606401610c44565b601f80549082905560408051828152602081018490527fab45a8374e3d1f623df0e88a957317731ccc02ed377e5b0213661f85bf60b73191015b60405180910390a1505050565b6004826005811115610e7c57610e7c61391c565b03610f12576001811115610eca5760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420626f6f6c65616e2076616c756560581b6044820152606401610c44565b6021805460ff19166001831490811790915560405160ff909116151581527f0565da69314136ea081c6239b9813f6ef6d213f57210dfef1d470af55b0235f390602001610c90565b6005826005811115610f2657610f2661391c565b03610fce576001811115610f745760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420626f6f6c65616e2076616c756560581b6044820152606401610c44565b60188054600160a01b60018414810260ff60a01b199092169190911791829055604051910460ff16151581527f932a526fd95bf1b5aab775a957e284733f02db3a9824802cbcbb4fbca239cbe19060200160405180910390a15b5050565b610fda612222565b610fe261224c565b80806000036110045760405163162908e360e11b815260040160405180910390fd5b60215460ff1615611028576040516370a7336d60e11b815260040160405180910390fd5b6110346003600a612270565b61103d82612310565b60008060006110506003600a87336123ba565b92509250925061105e6124e2565b60405183815233907f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a942436490602001610b74565b611098612222565b6110a061224c565b80806000036110c25760405163162908e360e11b815260040160405180910390fd5b6110cc8233612604565b50610b8960018055565b6110de6122e3565b610bd361287a565b6110ee612222565b6110f661224c565b336000818152601c602052604090205460ff166111265760405163013e5dc360e61b815260040160405180910390fd5b6111326003600a612270565b601b546001600160a01b0382166000908152601d60205260409020546111589190613932565b42111561117857604051634b3c322760e11b815260040160405180910390fd5b6001600160a01b038116600090815260126020526040812060085481549192916111b191600160801b90046001600160801b031661227a565b9050620f42408111156111d7576040516312bf4cab60e01b815260040160405180910390fd5b6001600160a01b0383166000818152601c60209081526040808320805460ff19169055601d909152808220829055517fd064e6c9fd0298bfb6a6c78f373b38fa7919b5a8bb293642d693fcf8da6939119190a2505050610bd360018055565b61123e612222565b6018546001600160a01b03163314611268576040516282b42960e81b815260040160405180910390fd5b6001600160a01b0381166000908152601c602052604090205460ff166112a15760405163013e5dc360e61b815260040160405180910390fd5b6112ad6003600a612270565b601b546001600160a01b0382166000908152601d60205260409020546112d39190613932565b42116112f2576040516363e5f12d60e11b815260040160405180910390fd5b6001600160a01b0381166000908152601260205260408120600854815491929161132b91600160801b90046001600160801b031661227a565b6001600160a01b0384166000908152601c60209081526040808320805460ff19169055601d90915281208190559091505b600183015481101561144157600083600101828154811061137f5761137f6138b3565b600091825260208083209091015480835260028701909152604091829020805460ff1916905560185491516323b872dd60e01b81529092506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116926323b872dd926113fb923092169086906004016138f8565b600060405180830381600087803b15801561141557600080fd5b505af1158015611429573d6000803e3d6000fd5b50505050508080611439906138df565b91505061135c565b50611450600183016000613618565b600554600854604051637a94c56560e11b81526001600160a01b03868116600483015260248201859052600160801b9092046001600160801b03166044820152600092839283928392919091169063f5298aca906064016080604051808303816000875af11580156114c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ea9190613945565b6003546004549498509296509094509250611514916001600160a01b0390811691339116876128cc565b8186600001600082825461152891906138a0565b909155505060078390556115416003600a86600061292c565b6018546001600160a01b0380891691167fbdf5d377ebdb51643ef3f7fc9c490a1d80027d15ba7518b1b4d07adb879da7e58761157c8b6115b5565b6040805192835260208301919091520160405180910390a3505050505050610b8960018055565b6115ab6122e3565b610bd36000612a7e565b6001600160a01b038116600090815260126020526040812081805b600183015481101561162e5760008360010182815481106115f3576115f36138b3565b90600052602060002001549050600061160b82611730565b90506116178185613932565b935050508080611626906138df565b9150506115d0565b509392505050565b61163e6122e3565b61164a6003600a612270565b6001600160a01b0382166116b65760405162461bcd60e51b815260206004820152602d60248201527f4c656e64696e67506f6f6c3a20526563697069656e742063616e6e6f7420626560448201526c207a65726f206164647265737360981b6064820152608401610c44565b60035460405163768bab4560e01b81526001600160a01b038481166004830152602482018490529091169063768bab4590604401600060405180830381600087803b15801561170457600080fd5b505af1158015611718573d6000803e3d6000fd5b505050505050565b6117286122e3565b610bd3612ace565b60135460405163b94fe91760e01b815260048101839052600091829182916001600160a01b03169063b94fe917906024016040805180830381865afa15801561177d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a1919061397b565b91509150816000036117c657604051633b0c4c3160e11b815260040160405180910390fd5b5092915050565b6117d56122e3565b6001600160a01b0381166117fc576040516303988b8160e61b815260040160405180910390fd5b6018546001600160a01b039081169082160361182b5760405163aba916dd60e01b815260040160405180910390fd5b601880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f593eaf5e0e1afc1c041a664a437fdae719a628836785d06572b008e6ca5c189d90600090a35050565b600080611889836115b5565b9050600061189684611fa5565b905060018110156118ac57506000199392505050565b60006118c3601954846122bd90919063ffffffff16565b9050816118d882670de0b6b3a764000061399f565b6118e291906139b6565b95945050505050565b6118f36122e3565b6001600160a01b0381166119415760405162461bcd60e51b8152602060048201526015602482015274496e76616c6964207661756c74206164647265737360581b6044820152606401610c44565b601e80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907fef5b05cc6c55cf97d3b6bb45e1f74f62a2a1818e192b58a28dc4e304a7b5c9e090600090a35050565b61199b612222565b6119a361224c565b6001600160a01b0381166000908152601c602052604090205460ff16156119dd5760405163b84f7eb560e01b815260040160405180910390fd5b6119e96003600a612270565b6001600160a01b038116600090815260126020526040812090611a0b8361187d565b9050601a548110611a2f5760405163317416e560e11b815260040160405180910390fd5b6001600160a01b0383166000818152601c60209081526040808320805460ff19166001179055601d9091528082204290555133917f5e05b3f7c0dbbace382bba3a2d956ef5e7abd61498e39cbf8bf1dc36cfe1083a91a35050610b8960018055565b6001600160a01b0381166000908152601260209081526040918290206001810180548451818502810185019095528085526060949293830182828015611af657602002820191906000526020600020905b815481526020019060010190808311611ae2575b5050505050915050919050565b611b0b6122e3565b601155565b611b18612222565b611b2061224c565b8080600003611b425760405163162908e360e11b815260040160405180910390fd5b611b4e6003600a612270565b6000611b5e6003600a8533612b0b565b9050611b686124e2565b604080518481526020810183905233917f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15910160405180910390a25050610b8960018055565b6014546001600160a01b03163314611bd8576040516282b42960e81b815260040160405180910390fd5b610b896003600a83612c4f565b611bed612222565b611bf561224c565b8080600003611c175760405163162908e360e11b815260040160405180910390fd5b336000908152601c602052604090205460ff1615611c4857604051630bff073160e31b815260040160405180910390fd5b33600081815260126020526040812091611c61906115b5565b905080600003611c8457604051638dc8d9b360e01b815260040160405180910390fd5b611c906003600a612270565b611c9984612310565b60085482546000918691611cbc91600160801b90046001600160801b031661227a565b611cc69190613932565b9050611cdd601954826122bd90919063ffffffff16565b821015611cfd57604051630369fbd160e51b815260040160405180910390fd5b600854600090611d1e908790600160801b90046001600160801b0316612d28565b60055460085460405163b3f1c93d60e01b8152929350600092839283926001600160a01b039091169163b3f1c93d91611d7091339182918f91600160801b90046001600160801b0316906004016139d8565b6060604051808303816000875af1158015611d8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611db39190613a1e565b600354604051635c921eb960e01b8152336004820152602481018e905293965091945092506001600160a01b031690635c921eb990604401600060405180830381600087803b158015611e0557600080fd5b505af1158015611e19573d6000803e3d6000fd5b5050505083876000016000828254611e319190613932565b90915550506007819055611e4a6003600a60008c61292c565b611e526124e2565b60405189815233907fcbc04eca7e9da35cb1393a6135a199ca52e450d5e9251cbd99f7847d33a367509060200160405180910390a25050505050505050610b8960018055565b611ea0612222565b611ea861224c565b8180600003611eca5760405163162908e360e11b815260040160405180910390fd5b601854600160a01b900460ff16611ef4576040516312cefcd560e31b815260040160405180910390fd5b6001600160a01b038216611f1b576040516303988b8160e61b815260040160405180910390fd5b611f258383612604565b50610fce60018055565b611f376122e3565b6003546001600160a01b0390811690841603611f8c5760405162461bcd60e51b815260206004820152601460248201527321b0b73737ba103932b9b1bab290292a37b5b2b760611b6044820152606401610c44565b611fa06001600160a01b0384168383612d65565b505050565b6001600160a01b03811660009081526012602052604081206008548154611fdb91600160801b90046001600160801b031661227a565b9392505050565b611fea612222565b611ff261224c565b611ffe6003600a612270565b6040516331a9108f60e11b81526004810182905233906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa158015612065573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120899190613a53565b6001600160a01b0316146120b0576040516384b359d160e01b815260040160405180910390fd5b336000908152601260209081526040808320848452600281019092529091205460ff16156120f15760405163e8edca8360e01b815260040160405180910390fd5b60018082018054808301825560009182526020808320909101859055848252600284019052604090819020805460ff191690921790915551632142170760e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342842e0e90612176903390309087906004016138f8565b600060405180830381600087803b15801561219057600080fd5b505af11580156121a4573d6000803e3d6000fd5b50506040518481523392507f1c4b8380f61aea3d5d98cbadaf2e6b2e4f3d8ca8c0fce1290b26ac267158745f915060200160405180910390a250610b8960018055565b6121ef6122e3565b6001600160a01b03811661221957604051631e4fbdf760e01b815260006004820152602401610c44565b610b8981612a7e565b60026001540361224557604051633ee5aeb560e01b815260040160405180910390fd5b6002600155565b60025460ff1615610bd35760405163d93c066560e01b815260040160405180910390fd5b610fce8282612d96565b600081156b019d971e4fe8401e74000000198390048411151761229c57600080fd5b50676765c793fa10079d601b1b91026b019d971e4fe8401e74000000010490565b6000811561138819839004841115176122d557600080fd5b506127109102611388010490565b6000546001600160a01b03163314610bd35760405163118cdaa760e01b8152336004820152602401610c44565b601e546001600160a01b03166123235750565b600480546003546040516370a0823160e01b81526001600160a01b03918216938101939093526000929116906370a0823190602401602060405180830381865afa158015612375573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123999190613a70565b905081811015610fce5760006123af82846138a0565b9050611fa081612ec8565b600080600060018510156123e15760405163162908e360e11b815260040160405180910390fd5b6123eb8787612d96565b86546005880154604051636b81068560e11b8152600092839283926001600160a01b039092169163d7020d0a91612434918b9182918e916001600160801b0316906004016139d8565b6060604051808303816000875af1158015612453573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124779190613a89565b92509250925082955061248d8a8a60008461292c565b60408051828152602081018590526001600160a01b038916917ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568910160405180910390a2999198508997509095505050505050565b601e546001600160a01b03166124f457565b600654601f546000906125089083906122bd565b600480546003546040516370a0823160e01b81526001600160a01b039182169381019390935292935060009216906370a0823190602401602060405180830381865afa15801561255c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125809190613a70565b9050818111156125a757600061259683836138a0565b90506125a181612f87565b506125c8565b818110156125c85760006125bb82846138a0565b90506125c681612ec8565b505b7f8f9497c27f572ff1a65e8b2c7a0706d466466ae0b5efc78462b5f0021da6695681602054604051610e5b929190918252602082015260400190565b816000036126255760405163162908e360e11b815260040160405180910390fd5b6001600160a01b03811661264c576040516303988b8160e61b815260040160405180910390fd5b6001600160a01b03811660009081526012602052604090206126706003600a612270565b6005546040516370a0823160e01b81526001600160a01b03848116600483015260009216906370a0823190602401602060405180830381865afa1580156126bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126df9190613a70565b600854909150600090612703908390600160801b90046001600160801b0316612d28565b905060008186116127145785612716565b815b60085490915060009061273a908390600160801b90046001600160801b0316612d28565b600554600854604051637a94c56560e11b81526001600160a01b038a81166004830152602482018c9052600160801b9092046001600160801b0316604482015292935060009283928392839291169063f5298aca906064016080604051808303816000875af11580156127b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127d59190613945565b60035460045494985092965090945092506127ff916001600160a01b0390811691339116876128cc565b6007839055885482908a906000906128189084906138a0565b9091555061282d90506003600a86600061292c565b6040518681526001600160a01b038b169033907f05f2eeda0e08e4b437f487c8d7d29b14537d15e3488170dc3de5dbdf8dac46849060200160405180910390a35050505050505050505050565b61288261308b565b6002805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b61292684856001600160a01b03166323b872dd8686866040516024016128f4939291906138f8565b604051602081830303815290604052915060e01b6020820180516001600160e01b0383818316178352505050506130ae565b50505050565b81156129595761293b82613111565b6001600160801b031684600301546129539190613932565b60038501555b80156129ab5780846003015410156129845760405163bb55fd2760e01b815260040160405180910390fd5b61298d81613111565b6001600160801b031684600301546129a591906138a0565b60038501555b6003840154600485015460006129c18787613149565b905060006129cf88886131b4565b905060006129e589600301548a6004015461320f565b9050612a09886002015489600301548a600401548b600501548c600601548661325b565b600189018190556007890154612a2191839187613345565b8855612a2d8989612d96565b875460018901546040517f48f4f83c2f1843e8fd7ef13ffcff40fca5055dc1b9b074cd9dd0f9a8a8e09dd992612a6b92908252602082015260400190565b60405180910390a1505050505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b612ad661224c565b6002805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586128af3390565b60006001831015612b2f5760405163162908e360e11b815260040160405180910390fd5b612b398585612d96565b84546001860154612b59916001600160a01b0391821691339116866128cc565b8454600586015460405163b3f1c93d60e01b81526000928392839283926001600160a01b03169163b3f1c93d91612ba49130918b918d916001600160801b03909116906004016139d8565b6080604051808303816000875af1158015612bc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612be79190613ab7565b9350935093509350829450612bff898989600061292c565b60408051888152602081018790526001600160a01b038816917f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15910160405180910390a250505050949350505050565b6001811015612c715760405163824c180760e01b815260040160405180910390fd5b60028201548015612cd4576000612c8a826101f46122bd565b90506000828411612ca457612c9f84846138a0565b612cae565b612cae83856138a0565b905081811115612cd157604051631a8b543360e21b815260040160405180910390fd5b50505b60028301829055612ce8848460008061292c565b60408051828152602081018490527fd45d1eb66419c036e2fa401916c7db417696f889cf4ab8ca92272327e8e1c83e91015b60405180910390a150505050565b60008115676765c793fa10079d601b1b60028404190484111715612d4b57600080fd5b50676765c793fa10079d601b1b9190910260028204010490565b6040516001600160a01b03838116602483015260448201839052611fa091859182169063a9059cbb906064016128f4565b6006820154600090612daf9064ffffffffff16426138a0565b90506001811015612dbf57505050565b60058301546001600160801b03166001811015612def57604051630a1cf3ed60e21b815260040160405180910390fd5b82546005850154612e0b919084906001600160801b031661338c565b6005850180546fffffffffffffffffffffffffffffffff19166001600160801b0392831617908190556001850154612e4f9290918591600160801b909104166133a9565b6005850180546001600160801b03908116600160801b93821684028181179384905560068901805464ffffffffff19164264ffffffffff16179055604080519184169092178152939092041660208301527ff92a3abee06d57c996e7e19eb34560241fdc1fe67e9ebd503177710bf9fd82049101612d1a565b601e546001600160a01b031663d81a09f6823033600080604051908082528060200260200182016040528015612f08578160200160208202803683370190505b506040518663ffffffff1660e01b8152600401612f29959493929190613af4565b6020604051808303816000875af1158015612f48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f6c9190613a70565b508060206000828254612f7f91906138a0565b909155505050565b60048054601e5460405163095ea7b360e01b81526001600160a01b039182169381019390935260248301849052169063095ea7b3906044016020604051808303816000875af1158015612fde573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130029190613b65565b50601e54604051636e553f6560e01b8152600481018390523060248201526001600160a01b0390911690636e553f65906044016020604051808303816000875af1158015613054573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130789190613a70565b508060206000828254612f7f9190613932565b60025460ff16610bd357604051638dfc202b60e01b815260040160405180910390fd5b60006130c36001600160a01b038416836133c5565b905080516000141580156130e85750808060200190518101906130e69190613b65565b155b15611fa057604051635274afe760e01b81526001600160a01b0384166004820152602401610c44565b60006001600160801b03821115613145576040516306dfcc6560e41b81526080600482015260248101839052604401610c44565b5090565b600682015460009081906131649064ffffffffff16426138a0565b9050600181101561317b57505060048201546131ae565b600584015460018401546131aa91600160801b90046001600160801b0316906131a490846133d3565b9061227a565b9150505b92915050565b600682015460009081906131cf9064ffffffffff16426138a0565b905060018110156131ef57505060058201546001600160801b03166131ae565b600584015483546131aa916001600160801b0316906131a4908483613419565b6000600183101561322c5750676765c793fa10079d601b1b6131ae565b600061324a61324561323e8587613932565b8590612d28565b613111565b6001600160801b0316949350505050565b6000858711158061326c5750838710155b806132775750858511155b806132825750838510155b156132a05760405163abc83fed60e01b815260040160405180910390fd5b60008383116132e25760006132b5888a6138a0565b905060006132cd866132c7878561227a565b90612d28565b90506132d9818a613932565b9250505061333a565b60006132ee85856138a0565b9050600061330786676765c793fa10079d601b1b6138a0565b905060006133158b896138a0565b90506000613327836132c7868561227a565b9050613333818d613932565b9450505050505b979650505050505050565b6000600182101561335857506000610bbf565b6000613364868661227a565b90506000613372828661227a565b9050600061338082846138a0565b98975050505050505050565b60008061339a858585613419565b90506118e2613245828561227a565b6000806133b685856133d3565b90506118e2613245848361227a565b6060611fdb8383600061344d565b600060018210156133f05750676765c793fa10079d601b1b6131ae565b6000613400846301e13380612d28565b9050600061340e828561227a565b90506118e2816134ea565b600080613426848661399f565b90506134366301e13380826139b6565b90506118e281676765c793fa10079d601b1b613932565b6060814710156134725760405163cd78605960e01b8152306004820152602401610c44565b600080856001600160a01b0316848660405161348e9190613b80565b60006040518083038185875af1925050503d80600081146134cb576040519150601f19603f3d011682016040523d82523d6000602084013e6134d0565b606091505b50915091506134e0868383613593565b9695505050505050565b6000816000036135065750676765c793fa10079d601b1b919050565b506b169e43a85eb381aa580000006b1363156bbee3016d700000006b1027e72f1f128130880000006b0cecb8f27f4200f3a00000006b09b18ab5df7180b6b80000006b06765c793fa10079d000000086800204808702919091048087029290920480870293909304808702949094048087029590950495010101010101676765c793fa10079d601b1b0190565b6060826135a8576135a3826135ef565b611fdb565b81511580156135bf57506001600160a01b0384163b155b156135e857604051639996b31560e01b81526001600160a01b0385166004820152602401610c44565b5080611fdb565b8051156135ff5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b5080546000825590600052602060002090810190610b8991905b808211156131455760008155600101613632565b60006020828403121561365857600080fd5b5035919050565b6001600160a01b0381168114610b8957600080fd5b60006020828403121561368657600080fd5b8135611fdb8161365f565b634e487b7160e01b600052604160045260246000fd5b600080600080608085870312156136bd57600080fd5b84356136c88161365f565b935060208501356136d88161365f565b925060408501359150606085013567ffffffffffffffff808211156136fc57600080fd5b818701915087601f83011261371057600080fd5b81358181111561372257613722613691565b604051601f8201601f19908116603f0116810190838211818310171561374a5761374a613691565b816040528281528a602084870101111561376357600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b6000806040838503121561379a57600080fd5b8235600681106137a957600080fd5b946020939093013593505050565b600080604083850312156137ca57600080fd5b82356137a98161365f565b6020808252825182820181905260009190848201906040850190845b8181101561380d578351835292840192918401916001016137f1565b50909695505050505050565b6000806040838503121561382c57600080fd5b82359150602083013561383e8161365f565b809150509250929050565b60008060006060848603121561385e57600080fd5b83356138698161365f565b925060208401356138798161365f565b929592945050506040919091013590565b634e487b7160e01b600052601160045260246000fd5b818103818111156131ae576131ae61388a565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6000600182016138f1576138f161388a565b5060010190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b634e487b7160e01b600052602160045260246000fd5b808201808211156131ae576131ae61388a565b6000806000806080858703121561395b57600080fd5b505082516020840151604085015160609095015191969095509092509050565b6000806040838503121561398e57600080fd5b505080516020909101519092909150565b80820281158282048414176131ae576131ae61388a565b6000826139d357634e487b7160e01b600052601260045260246000fd5b500490565b6001600160a01b03948516815292909316602083015260408201526001600160801b03909116606082015260800190565b80518015158114613a1957600080fd5b919050565b600080600060608486031215613a3357600080fd5b613a3c84613a09565b925060208401519150604084015190509250925092565b600060208284031215613a6557600080fd5b8151611fdb8161365f565b600060208284031215613a8257600080fd5b5051919050565b600080600060608486031215613a9e57600080fd5b8351925060208401519150604084015190509250925092565b60008060008060808587031215613acd57600080fd5b613ad685613a09565b60208601516040870151606090970151919890975090945092505050565b600060a08201878352602060018060a01b0380891682860152808816604086015286606086015260a0608086015282865180855260c087019150838801945060005b81811015613b54578551841683529484019491840191600101613b36565b50909b9a5050505050505050505050565b600060208284031215613b7757600080fd5b611fdb82613a09565b6000825160005b81811015613ba15760208186018101518583015201613b87565b50600092019182525091905056fea264697066735822122042260e8587e158098b511ac51b3391bd1fb659a93a0bf7799664eb5049e7464464736f6c63430008140033";
17
+ static readonly bytecode = "0x60a0604052601e805460ff60a01b1916600160a01b17905561012c6029556107d0602b55602c805460ff191690553480156200003a57600080fd5b50604051620062fd380380620062fd8339810160408190526200005d91620002f5565b33806200008457604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6200008f8162000261565b50600180556002805460ff191690556001600160a01b0386161580620000bc57506001600160a01b038516155b80620000cf57506001600160a01b038416155b80620000e257506001600160a01b038316155b80620000f557506001600160a01b038216155b80620000ff575080155b156200011e576040516303988b8160e61b815260040160405180910390fd5b601b80546001600160a01b03199081166001600160a01b03898116918217909355858316608052601980548316868516179055601c80548316898516908117909155601d8054841694891694851790557b033b2e3c9fd0803ce800000000000000033b2e3c9fd0803ce80000006008556009805464ffffffffff19164264ffffffffff1617905560038054841690911790556004805483169091179055600580549091169091179055600c819055620001da816109c4620002b1565b600d55600c54620001ee90611388620002b1565b600e55600c546200020290619c40620002b1565b600f556200021f6b033b2e3c9fd0803ce8000000611f40620002b1565b6010555050600060115550506b033b2e3c9fd0803ce8000000600a819055600b555050611f40602655670de0b6b3a76400006027556203f4806028556200036d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600081156113881983900484111517620002ca57600080fd5b506127109102611388010490565b80516001600160a01b0381168114620002f057600080fd5b919050565b60008060008060008060c087890312156200030f57600080fd5b6200031a87620002d8565b95506200032a60208801620002d8565b94506200033a60408801620002d8565b93506200034a60608801620002d8565b92506200035a60808801620002d8565b915060a087015190509295509295509295565b608051615f4a620003b36000396000818161094801528181610a1801528181611051015281816129ce01528181613382015281816134b401526135970152615f4a6000f3fe608060405234801561001057600080fd5b50600436106104965760003560e01c80638aabb2d111610262578063c4f8911c11610151578063e91a7ca6116100ce578063f2fde38b11610092578063f2fde38b14610ddd578063f5b3b9e714610df0578063f8d8989814610e03578063f91c3b0d14610e16578063fbf4a61214610e29578063fbfa77cf14610e3857600080fd5b8063e91a7ca614610c84578063e9f2838e14610c97578063ec915ee614610ca4578063ef5bac2514610d05578063f1caf09f14610dca57600080fd5b8063d5db7d5d11610115578063d5db7d5d14610c25578063d81a698614610c38578063d8aed14514610c4b578063e5711e8b14610c5e578063e65896c914610c7157600080fd5b8063c4f8911c14610b1f578063c6d6916c14610b32578063c891091314610b45578063cd3293de14610b68578063d17e988314610c1257600080fd5b8063a8de4834116101df578063b88a802f116101a3578063b88a802f14610a4d578063bf4eccdf14610a55578063bfd91c2314610a68578063c1be667714610a88578063c415b95c14610b0c57600080fd5b8063a8de4834146109e5578063a90d728f146109f8578063a9bf805c14610a00578063ac919fd414610a13578063b6b55f2514610a3a57600080fd5b806397c4fac71161022657806397c4fac71461099057806398d721e0146109995780639daa54b4146109ac578063a42dce80146109bf578063a5b350c9146109d257600080fd5b80638aabb2d1146109205780638aee8127146109335780638bc2ff5b146109465780638da5cb5b1461096c578063929761791461097d57600080fd5b80632a5bf6d2116103895780635c975abb11610306578063768bab45116102ca578063768bab451461088e5780637bc7780b146108a157806383ba103f146108a95780638429d51f146108bc5780638456cb5914610907578063883c6b241461090f57600080fd5b80635c975abb146108155780636061ffc3146108205780636817031b14610860578063715018a61461087357806375417da61461087b57600080fd5b80633f4ba83a1161034d5780633f4ba83a1461073e5780634031234c1461074657806340c65f721461074f5780634df9d6ba14610762578063523a19ac1461077557600080fd5b80632a5bf6d21461067e5780632ab414fc146106915780632e1a7d4d146106a45780633adbb5af146106b75780633e20bf141461071a57600080fd5b8063150b7a02116104175780631d00ac3a116103db5780631d00ac3a146106285780631d4bf4a0146106485780631d8557d7146106505780632630c12f1461065857806327156a681461066b57600080fd5b8063150b7a02146105c457806316a6c4c5146105f057806316c621e0146105f95780631705ffad1461060c57806319c2d37e1461061557600080fd5b80630c34b9141161045e5780630c34b914146105195780630c42dcaf146105825780630c679a7b1461058b5780630d4085121461059e5780630ecbcdab146105b157600080fd5b8063023245d71461049b578063048c661d146104b0578063057e9b7b146104e057806309bf1e73146104f75780630ab30d8a14610501575b600080fd5b6104ae6104a93660046156ef565b610e4b565b005b601e546104c3906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6104e960275481565b6040519081526020016104d7565b6104e96203f48081565b600854600160801b90046001600160801b03166104e9565b610521611102565b6040516104d79190600061010082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015292915050565b6104e9611f4081565b6104ae61059936600461571d565b611198565b6104e96105ac36600461573a565b6111c2565b6104ae6105bf366004615766565b61123e565b6105d76105d23660046157cb565b611288565b6040516001600160e01b031990911681526020016104d7565b6104e960285481565b6104ae6106073660046156ef565b611299565b6104e9602b5481565b6104e961062336600461573a565b61134a565b61063b61063636600461573a565b6113c3565b6040516104d791906158db565b6021546104e9565b6104ae611499565b6019546104c3906001600160a01b031681565b6104e961067936600461571d565b6114a7565b6104e961068c36600461571d565b6114cc565b6104ae61069f3660046158e9565b61153b565b6104ae6106b23660046156ef565b611a41565b6106ca6106c536600461573a565b611b18565b6040516104d79190600060c08201905082518252602083015115156020830152604083015160408301526060830151606083015260808301511515608083015260a083015160a083015292915050565b601e5461072e90600160a01b900460ff1681565b60405190151581526020016104d7565b6104ae611bcd565b6104e960265481565b601c546104c3906001600160a01b031681565b6104e961077036600461571d565b611bdd565b61080061078336600461573a565b6001600160a01b0391909116600090815260126020908152604080832093835292815290829020825160c0810184528154808252600183015460ff90811615159483019490945260028301549482019490945260038201546060820181905260048301549093161515608082015260059091015460a09091015291565b604080519283526020830191909152016104d7565b60025460ff1661072e565b60145460155460165461083b926001600160a01b0316919083565b604080516001600160a01b0390941684526020840192909252908201526060016104d7565b6104ae61086e36600461571d565b611c7f565b6104ae611f1d565b6104e961088936600461571d565b611f2f565b6104ae61089c36600461573a565b611fb6565b600c546104e9565b6104e96108b736600461573a565b6120a0565b6020546021546022546023546024546025546108da95949392919086565b604080519687526020870195909552938501929092526060840152608083015260a082015260c0016104d7565b6104ae6120d4565b6008546001600160801b03166104e9565b6104ae61092e3660046156ef565b6120e4565b6104ae61094136600461571d565b61226e565b7f00000000000000000000000000000000000000000000000000000000000000006104c3565b6000546001600160a01b03166104c3565b6104e961098b3660046156ef565b6122c2565b6104e960295481565b6104ae6109a736600461571d565b612358565b6104e96109ba36600461571d565b612408565b6104ae6109cd36600461571d565b61248b565b6104e96109e036600461573a565b61250c565b6104ae6109f336600461590b565b6125b5565b6104e9612652565b601a546104c3906001600160a01b031681565b6104c37f000000000000000000000000000000000000000000000000000000000000000081565b6104ae610a483660046156ef565b61272c565b61072e61282e565b6104ae610a6336600461573a565b61284d565b610a7b610a7636600461571d565b612bb0565b6040516104d79190615989565b610add610a9636600461573a565b6012602090815260009283526040808420909152908252902080546001820154600283015460038401546004850154600590950154939460ff938416949293919291169086565b6040805196875294151560208701529385019290925260608401521515608083015260a082015260c0016104d7565b601f546104c3906001600160a01b031681565b6104ae610b2d3660046156ef565b612e24565b6104ae610b4036600461571d565b612e5b565b6104e9610b5336600461571d565b60136020526000908152604090206001015481565b600354600454600554600654600754600854600954610bb4966001600160a01b0390811696811695169392916001600160801b0380821692600160801b909204169064ffffffffff1688565b604080516001600160a01b03998a16815297891660208901529590971694860194909452606085019290925260808401526001600160801b0390811660a08401521660c082015264ffffffffff90911660e0820152610100016104d7565b6104e9610c2036600461571d565b612f63565b601b546104c3906001600160a01b031681565b6104ae610c46366004615766565b61302d565b6104ae610c59366004615766565b61321b565b6104ae610c6c3660046159ff565b613258565b6104e9610c7f36600461571d565b6132c9565b6104ae610c923660046156ef565b613346565b602c5461072e9060ff1681565b600a54600b54600c54600d54600e54600f54601054601154610cca979695949392919088565b604080519889526020890197909752958701949094526060860192909252608085015260a084015260c083015260e0820152610100016104d7565b610dbd6040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101919091525060408051610100810182526003546001600160a01b039081168252600454811660208301526005541691810191909152600654606082015260075460808201526008546001600160801b0380821660a0840152600160801b9091041660c082015260095464ffffffffff1660e082015290565b6040516104d79190615a40565b6104c3610dd83660046156ef565b613565565b6104ae610deb36600461571d565b613626565b6104e9610dfe366004615abe565b613661565b601d546104c3906001600160a01b031681565b6104ae610e2436600461573a565b613693565b6104e9670de0b6b3a764000081565b602a546104c3906001600160a01b031681565b610e536137c8565b610e5b6137f2565b3360009081526012602090815260408083208484529091529020600181015460ff1615610e9b576040516367c11db560e01b815260040160405180910390fd5b336000908152601360209081526040808320858452600281019092529091205460ff16610edb5760405163346fad7360e01b815260040160405180910390fd5b610ee76003600a613816565b6000610ef3338561134a565b90508015610f14576040516302c9375f60e21b815260040160405180910390fd5b60008481526002830160209081526040808320805460ff19169055602d909152812080546001600160a01b03191690558254610f5290600190615b09565b67ffffffffffffffff811115610f6a57610f6a615788565b604051908082528060200260200182016040528015610f93578160200160208202803683370190505b5090506000805b84548110156110265786856000018281548110610fb957610fb9615b1c565b90600052602060002001541461101457846000018181548110610fde57610fde615b1c565b9060005260206000200154838381518110610ffb57610ffb615b1c565b60209081029190910101528161101081615b32565b9250505b8061101e81615b32565b915050610f9a565b5081516110399085906020850190615652565b50604051632142170760e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342842e0e9061108a90309033908b90600401615b4b565b600060405180830381600087803b1580156110a457600080fd5b505af11580156110b8573d6000803e3d6000fd5b50506040518881523392507f2aa1b4c95f3b2da9c955947fca584743ea0d457708fadf209c093061e98c4ccb915060200160405180910390a250505050506110ff60018055565b50565b61114a60405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b506040805161010081018252600a548152600b546020820152600c5491810191909152600d546060820152600e546080820152600f5460a082015260105460c082015260115460e082015290565b6111a0613820565b601a80546001600160a01b0319166001600160a01b0392909216919091179055565b6000806111ce836122c2565b905060006111dc858561250c565b905060018110156111fc57676765c793fa10079d601b1b92505050611238565b60006112136026548461384d90919063ffffffff16565b90508161122882670de0b6b3a7640000615b6f565b6112329190615b86565b93505050505b92915050565b6112466137c8565b61124e6137f2565b80806000036112705760405163162908e360e11b815260040160405180910390fd5b61127a8383613873565b5061128460018055565b5050565b630a85bd0160e11b5b949350505050565b6112a16137c8565b6014546001600160a01b03166112ca57604051632506892760e01b815260040160405180910390fd5b806000036112eb5760405163162908e360e11b815260040160405180910390fd5b601454611303906001600160a01b0316333084613b1e565b61130c81613b7e565b60405181815233907fe79ffd9a88f13c8c49fb545410401d9877ab90d9dcf7b15d4dc0601993a0d9139060200160405180910390a26110ff60018055565b6001600160a01b0382166000908152601260209081526040808320848452825291829020825160c0810184528154808252600183015460ff908116151594830194909452600283015494820194909452600382015460608201526004820154909216151560808301526005015460a09091015292915050565b6113cb615699565b6113d3615699565b6001600160a01b0384166000908152601260209081526040808320868452825291829020825160c0808201855282548252600183015460ff90811615159483018590526002840154958301958652600384015460608085019190915260048501549091161515608080850191825260059095015460a085015290870194909452935191850191909152805184529051151591830191909152611475858561250c565b602083015261148485856111c2565b60408301526060015160a08201529392505050565b6114a56003600a613816565b565b6000806114b3836114cc565b905060006114c084612f63565b90506112918183615ba8565b600354604051630481930d60e21b81526001600160a01b03838116600483015260009216906312064c3490602401602060405180830381865afa158015611517573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112389190615bbb565b611543613820565b600082600781111561155757611557615bd4565b03611602576127108111156115b35760405162461bcd60e51b815260206004820152601d60248201527f496e76616c6964206c69717569646174696f6e207468726573686f6c6400000060448201526064015b60405180910390fd5b60268190556027546028546040805184815260208101939093528201527fafabe1c7d6c2e86cbfc67a8ba53d25a7f8ef59b97d972dd4bf7d7525ba7fdddf906060015b60405180910390a15050565b600182600781111561161657611616615bd4565b0361166157602781905560265460285460408051928352602083018490528201527fafabe1c7d6c2e86cbfc67a8ba53d25a7f8ef59b97d972dd4bf7d7525ba7fdddf906060016115f6565b600282600781111561167557611675615bd4565b0361171c57620151808110158015611690575062093a808111155b6116d35760405162461bcd60e51b8152602060048201526014602482015273125b9d985b1a590819dc9858d9481c195c9a5bd960621b60448201526064016115aa565b602881905560265460275460408051928352602083019190915281018290527fafabe1c7d6c2e86cbfc67a8ba53d25a7f8ef59b97d972dd4bf7d7525ba7fdddf906060016115f6565b600382600781111561173057611730615bd4565b036117ce576127108111156117875760405162461bcd60e51b815260206004820152601860248201527f526174696f2063616e6e6f74206578636565642031303025000000000000000060448201526064016115aa565b602b80549082905560408051828152602081018490527fab45a8374e3d1f623df0e88a957317731ccc02ed377e5b0213661f85bf60b73191015b60405180910390a1505050565b60048260078111156117e2576117e2615bd4565b036118785760018111156118305760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420626f6f6c65616e2076616c756560581b60448201526064016115aa565b602c805460ff19166001831490811790915560405160ff909116151581527f0565da69314136ea081c6239b9813f6ef6d213f57210dfef1d470af55b0235f3906020016115f6565b600582600781111561188c5761188c615bd4565b036119305760018111156118da5760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420626f6f6c65616e2076616c756560581b60448201526064016115aa565b601e8054600160a01b60018414810260ff60a01b199092169190911791829055604051910460ff16151581527f932a526fd95bf1b5aab775a957e284733f02db3a9824802cbcbb4fbca239cbe1906020016115f6565b600682600781111561194457611944615bd4565b036119d1576127108111156119935760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420696e737572616e63652066656560581b60448201526064016115aa565b602980549082905560408051828152602081018490527f87c461d1c2c7c5cd98495e5517aa11d9df56d0819cc4e8e53d9664c4b18f6db191016117c1565b60078260078111156119e5576119e5615bd4565b03611a2857601180549082905560408051828152602081018490527f1d830358c94d390366ad7162b72e731448e195f3576e63b1f57f5e43c719c5aa91016117c1565b604051630309cb8760e51b815260040160405180910390fd5b611a496137c8565b611a516137f2565b8080600003611a735760405163162908e360e11b815260040160405180910390fd5b602c5460ff1615611a97576040516370a7336d60e11b815260040160405180910390fd5b611aa033613c01565b611aac6003600a613816565b611ab582613ca8565b6000806000611ac86003600a8733613fd1565b925092509250611ad66140f9565b60405183815233907f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243649060200160405180910390a2505050506110ff60018055565b611b556040518060c00160405280600081526020016000151581526020016000815260200160008152602001600015158152602001600081525090565b506001600160a01b0382166000908152601260209081526040808320848452825291829020825160c08101845281548152600182015460ff908116151593820193909352600282015493810193909352600381015460608401526004810154909116151560808301526005015460a082015292915050565b611bd5613820565b6114a56142af565b6014546000906001600160a01b0316611bf857506000919050565b6000611c03836114a7565b905080600003611c165750600092915050565b6001600160a01b038316600090815260176020526040812054601554670de0b6b3a764000091611c4591615b09565b611c4f9084615b6f565b611c599190615b86565b6001600160a01b0385166000908152601860205260409020549091506112919082615ba8565b611c87613820565b602a546001600160a01b03828116911614801590611caf5750602a546001600160a01b031615155b15611e1357602a5460405163ce96cb7760e01b81523060048201526001600160a01b039091169063ce96cb7790602401602060405180830381865afa925050508015611d18575060408051601f3d908101601f19168201909252611d1591810190615bbb565b60015b611e0857611d24615bea565b806308c379a003611d815750611d38615c05565b80611d435750611d9a565b602a546040516001600160a01b03909116907fc4cede9b2b63ba72d39d2f630b4b742e1cada59d7a073ac4e10da9ac7b2eb10590600090a250611e13565b634e487b7103611d9a57611d93615c8f565b90611d4357505b3d808015611dc4576040519150601f19603f3d011682016040523d82523d6000602084013e611dc9565b606091505b50602a546040516001600160a01b03909116907fc4cede9b2b63ba72d39d2f630b4b742e1cada59d7a073ac4e10da9ac7b2eb10590600090a250611e13565b611e1181614301565b505b602a80546001600160a01b031981166001600160a01b0384811691821790935560048054604080516338d52e0f60e01b815290519486169591909116936338d52e0f928281019260209291908290030181865afa158015611e78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e9c9190615caf565b6001600160a01b031614158015611ebb57506001600160a01b03821615155b15611ed957604051631b3b488360e11b815260040160405180910390fd5b816001600160a01b0316816001600160a01b03167f483bdedaaf23706a9800ac1af0d852b34927780d79f9d6ba60a80c7cad75ea3960405160405180910390a35050565b611f25613820565b6114a560006144c0565b600080805b6001600160a01b0384166000908152601360205260409020548111611faf576001600160a01b038416600090815260136020908152604080832084845260020190915290205460ff1615611f9d576000611f8d826122c2565b9050611f998184615ba8565b9250505b80611fa781615b32565b915050611f34565b5092915050565b611fbe613820565b611fca6003600a613816565b6001600160a01b0382166120365760405162461bcd60e51b815260206004820152602d60248201527f4c656e64696e67506f6f6c3a20526563697069656e742063616e6e6f7420626560448201526c207a65726f206164647265737360981b60648201526084016115aa565b60035460405163768bab4560e01b81526001600160a01b038481166004830152602482018490529091169063768bab4590604401600060405180830381600087803b15801561208457600080fd5b505af1158015612098573d6000803e3d6000fd5b505050505050565b6001600160a01b03821660009081526012602090815260408083208484529091528120600581015481546112919190615b09565b6120dc613820565b6114a5614510565b6120ec6137c8565b6120f46137f2565b3360008181526012602090815260408083208584529091529020600181015460ff166121335760405163013e5dc360e61b815260040160405180910390fd5b6001600160a01b038216600090815260136020908152604080832086845260020190915290205460ff1661217a5760405163346fad7360e01b815260040160405180910390fd5b602854816002015461218c9190615ba8565b4211156121ac57604051634b3c322760e11b815260040160405180910390fd5b600481015460ff166121d157604051632d1118e960e21b815260040160405180910390fd5b6121dd6003600a613816565b60006121e9838561250c565b9050801561220a576040516312bf4cab60e01b815260040160405180910390fd5b60018201805460ff1990811690915560006002840181905560048401805490921690915560405185916001600160a01b038616917fd66fca94ddede030b58f223f22d6b43407a443bd68e2e73d38ab7675cf480acc9190a35050506110ff60018055565b612276613820565b6014546001600160a01b0316156122a05760405163b6de9a7160e01b815260040160405180910390fd5b601480546001600160a01b0319166001600160a01b0392909216919091179055565b60195460405163b94fe91760e01b815260048101839052600091829182916001600160a01b03169063b94fe917906024016040805180830381865afa15801561230f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123339190615ccc565b9150915081600003611faf57604051633b0c4c3160e11b815260040160405180910390fd5b612360613820565b6001600160a01b038116612387576040516303988b8160e61b815260040160405180910390fd5b601e546001600160a01b03908116908216036123b65760405163aba916dd60e01b815260040160405180910390fd5b601e80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f593eaf5e0e1afc1c041a664a437fdae719a628836785d06572b008e6ca5c189d90600090a35050565b600080805b6001600160a01b038416600090815260136020526040902054811015611faf576001600160a01b0384166000908152601360205260409020805461246d9186918490811061245d5761245d615b1c565b906000526020600020015461250c565b6124779083615ba8565b91508061248381615b32565b91505061240d565b612493613820565b6001600160a01b0381166124ba576040516303988b8160e61b815260040160405180910390fd5b601f80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f5d16ad41baeb009cd23eb8f6c7cde5c2e0cd5acf4a33926ab488875c37c37f3890600090a35050565b6001600160a01b03821660009081526012602090815260408083208484528252808320815160c08101835281548152600182015460ff9081161515948201949094526002820154928101929092526003810154606083018190526004820154909316151560808301526005015460a082015260085490916125a9916125a19190600160801b90046001600160801b0316615b09565b82519061454d565b81516112919190615ba8565b6125bd6137c8565b6125c56137f2565b81806000036125e75760405163162908e360e11b815260040160405180910390fd5b601e54600160a01b900460ff16612611576040516312cefcd560e31b815260040160405180910390fd5b6001600160a01b038216612638576040516303988b8160e61b815260040160405180910390fd5b612643848484614590565b5061264d60018055565b505050565b601f546000906001600160a01b0316331461267f576040516282b42960e81b815260040160405180910390fd5b602a546001600160a01b03166126c65760405162461bcd60e51b815260206004820152600c60248201526b139bc81d985d5b1d081cd95d60a21b60448201526064016115aa565b60045460218054426022556000909155601f546001600160a01b03928316926126f2918491168361488e565b6040518181527f7edfb0d5d58c6a3d398df94a9bdfa2b33f3fa42ae40d72ebdc717d2db3953ee59060200160405180910390a19150505b90565b6127346137c8565b61273c6137f2565b808060000361275e5760405163162908e360e11b815260040160405180910390fd5b61276733613c01565b6127736003600a613816565b60006127836003600a85336148bf565b33600090815260136020526040812060010154919250036127b8573360009081526013602052604090206001018390556127e0565b33600090815260136020526040812060010180548592906127da908490615ba8565b90915550505b6127e86140f9565b604080518481526020810183905233917f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15910160405180910390a250506110ff60018055565b60006128386137c8565b61284133613c01565b50600161272960018055565b6128556137c8565b601e546001600160a01b0316331461287f576040516282b42960e81b815260040160405180910390fd5b6001600160a01b03821660009081526012602090815260408083208484529091529020600181015460ff166128c75760405163013e5dc360e61b815260040160405180910390fd5b6001600160a01b038316600090815260136020908152604080832085845260020190915290205460ff1661290e5760405163346fad7360e01b815260040160405180910390fd5b61291a6003600a613816565b600481015460ff16801561293f5750602854816002015461293b9190615ba8565b4211155b1561295d576040516363e5f12d60e11b815260040160405180910390fd5b6000612969848461250c565b60018301805460ff199081169091556000600280860182905560048087018054851690556001600160a01b03808a1684526013602090815260408086208b87529094019052928290208054909416909355601e5490516323b872dd60e01b81529394507f00000000000000000000000000000000000000000000000000000000000000008216936323b872dd93612a069330931691899101615b4b565b600060405180830381600087803b158015612a2057600080fd5b505af1158015612a34573d6000803e3d6000fd5b5050506000848152602d602052604080822080546001600160a01b03191690556005546008549151636f3df85160e11b81529293508392839283926001600160a01b03169163de7bf0a291612aa3918c918a91600160801b9091046001600160801b0316908d90600401615cf0565b6080604051808303816000875af1158015612ac2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ae69190615d1f565b600854600160801b90046001600160801b031660038b810191909155546004549498509296509094509250612b2a916001600160a01b039081169133911687613b1e565b6000808755600587018190556007849055612b4c90600390600a908790614a03565b601e5487906001600160a01b03808b1691167f3f2ad1b98f8838e6f90c126ac5f8a9875c7acf2a56aeb8a630c0fa475b07056a88612b89856122c2565b6040805192835260208301919091520160405180910390a450505050505061128460018055565b612bdb6040518060800160405280606081526020016000815260200160008152602001606081525090565b6001600160a01b0382166000908152601360209081526040808320815160808101835260608082529381018590529182019390935281810191909152815460408051602080840282018101909252828152918491830182828015612c5e57602002820191906000526020600020905b815481526020019060010190808311612c4a575b5050509183525050815467ffffffffffffffff811115612c8057612c80615788565b604051908082528060200260200182016040528015612cb957816020015b612ca6615699565b815260200190600190039081612c9e5790505b506060820152600060208201819052604082018190525b8254811015612e1c57306001600160a01b0316631d00ac3a86856000018481548110612cfe57612cfe615b1c565b6000918252602090912001546040516001600160e01b031960e085901b1681526001600160a01b039092166004830152602482015260440160e060405180830381865afa158015612d53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d779190615d6a565b82606001518281518110612d8d57612d8d615b1c565b602002602001018190525081606001518181518110612dae57612dae615b1c565b60200260200101516020015182602001818151612dcb9190615ba8565b9052508254612df690849083908110612de657612de6615b1c565b90600052602060002001546122c2565b82604001818151612e079190615ba8565b90525080612e1481615b32565b915050612cd0565b509392505050565b601a546001600160a01b03163314612e4e576040516282b42960e81b815260040160405180910390fd5b6110ff6003600a83614b55565b6003546001600160a01b03163314612eb55760405162461bcd60e51b815260206004820152601e60248201527f4f6e6c792052546f6b656e2063616e207570646174652072657761726473000060448201526064016115aa565b6000612ec0826114a7565b90508015612f43576001600160a01b038216600090815260176020526040812054601554670de0b6b3a764000091612ef791615b09565b612f019084615b6f565b612f0b9190615b86565b90508015612f41576001600160a01b03831660009081526018602052604081208054839290612f3b908490615ba8565b90915550505b505b506015546001600160a01b03909116600090815260176020526040902055565b601e546000906001600160a01b0316612f7e57506000919050565b601e546040516001600160a01b038481166024830152600092839291169060440160408051601f198184030181529181526020820180516001600160e01b031663c084b10b60e01b17905251612fd49190615df9565b600060405180830381855afa9150503d806000811461300f576040519150601f19603f3d011682016040523d82523d6000602084013e613014565b606091505b5091509150808060200190518101906112919190615bbb565b6130356137c8565b61303d6137f2565b33600081815260126020908152604080832086845290915281209161306290856120a0565b90506000613071338686613661565b601b54601f54604051636eb1769f60e11b81523360048201526001600160a01b039182166024820152929350839291169063dd62ed3e90604401602060405180830381865afa1580156130c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130ec9190615bbb565b101561310b576040516339e067d560e21b815260040160405180910390fd5b601b546040516370a0823160e01b815233600482015282916001600160a01b0316906370a0823190602401602060405180830381865afa158015613153573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131779190615bbb565b101561319657604051631e9acf1760e31b815260040160405180910390fd5b6131a08585613873565b6131a981614c2e565b60048301805460ff191660011790556131c28483615ba8565b8360050160008282546131d59190615ba8565b909155505060405182815285907fd5c2dc3f0ec76ece0185d374bca424347955bce9b5e7b08757bb8e1bb8d9c0a99060200160405180910390a250505061128460018055565b6132236137c8565b61322b6137f2565b808060000361324d5760405163162908e360e11b815260040160405180910390fd5b61127a838333614590565b613260613820565b6003546001600160a01b03908116908416036132b55760405162461bcd60e51b815260206004820152601460248201527321b0b73737ba103932b9b1bab290292a37b5b2b760611b60448201526064016115aa565b61264d6001600160a01b038416838361488e565b600080805b6001600160a01b038416600090815260136020526040902054811015611faf576001600160a01b038416600090815260136020908152604080832084845260020190915290205460ff161561333457613327848261250c565b6133319083615ba8565b91505b8061333e81615b32565b9150506132ce565b61334e6137c8565b6133566137f2565b6133626003600a613816565b6040516331a9108f60e11b81526004810182905233906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa1580156133c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133ed9190615caf565b6001600160a01b031614613414576040516384b359d160e01b815260040160405180910390fd5b336000908152601360209081526040808320848452600281019092529091205460ff16156134555760405163e8edca8360e01b815260040160405180910390fd5b60008281526002820160209081526040808320805460ff191660019081179091558454908101855584845282842001859055848352602d9091529081902080546001600160a01b031916339081179091559051632142170760e11b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316916342842e0e916134f4919030908790600401615b4b565b600060405180830381600087803b15801561350e57600080fd5b505af1158015613522573d6000803e3d6000fd5b50506040518481523392507f1c4b8380f61aea3d5d98cbadaf2e6b2e4f3d8ca8c0fce1290b26ac267158745f915060200160405180910390a2506110ff60018055565b6000818152602d60205260408120546001600160a01b031661360a576040516331a9108f60e11b8152600481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636352211e90602401602060405180830381865afa1580156135e6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112389190615caf565b506000908152602d60205260409020546001600160a01b031690565b61362e613820565b6001600160a01b03811661365857604051631e4fbdf760e01b8152600060048201526024016115aa565b6110ff816144c0565b60008061366e85856120a0565b905061368860295484836136829190615ba8565b9061384d565b9150505b9392505050565b61369b6137c8565b6136a36137f2565b6001600160a01b03821660009081526012602090815260408083208484529091529020600181015460ff16156136ec5760405163b84f7eb560e01b815260040160405180910390fd5b6001600160a01b038316600090815260136020908152604080832085845260020190915290205460ff166137335760405163346fad7360e01b815260040160405180910390fd5b61373f6003600a613816565b600061374b84846111c2565b9050602754811061376f5760405163317416e560e11b815260040160405180910390fd5b6001828101805460ff1916909117905542600283015560405183906001600160a01b0386169033907f4601ff28b457321206747d0540f02cfb8a9d6bf3021146378e8544e1817e20e790600090a4505061128460018055565b6002600154036137eb57604051633ee5aeb560e01b815260040160405180910390fd5b6002600155565b60025460ff16156114a55760405163d93c066560e01b815260040160405180910390fd5b6112848282614d21565b6000546001600160a01b031633146114a55760405163118cdaa760e01b81523360048201526024016115aa565b60008115611388198390048411151761386557600080fd5b506127109102611388010490565b3360009081526012602090815260408083208584529091529020600181015460ff16156138b357604051630bff073160e31b815260040160405180910390fd5b336000908152601360209081526040808320868452600281019092529091205460ff166138f35760405163346fad7360e01b815260040160405180910390fd5b60006138fe856122c2565b90508060000361392157604051638dc8d9b360e01b815260040160405180910390fd5b61392d6003600a613816565b61393684613ca8565b600061394d6026548361384d90919063ffffffff16565b90508461395a338861134a565b6139649190615ba8565b81101561398457604051630369fbd160e51b815260040160405180910390fd5b600554600854604051639ceeaca760e01b81523360048201819052602482015260448101889052600160801b9091046001600160801b0316606482015260848101889052600091829182916001600160a01b031690639ceeaca79060a4016060604051808303816000875af1158015613a01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a259190615e28565b600854600160801b90046001600160801b031660038b81019190915554604051635c921eb960e01b8152336004820152602481018d905293965091945092506001600160a01b031690635c921eb990604401600060405180830381600087803b158015613a9157600080fd5b505af1158015613aa5573d6000803e3d6000fd5b5050505081876000016000828254613abd9190615ba8565b90915550506007819055613ad66003600a60008b614a03565b613ade6140f9565b60405188815233907fcbc04eca7e9da35cb1393a6135a199ca52e450d5e9251cbd99f7847d33a367509060200160405180910390a2505050505050505050565b613b7884856001600160a01b03166323b872dd868686604051602401613b4693929190615b4b565b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050614e53565b50505050565b6014546001600160a01b0316613ba757604051632506892760e01b815260040160405180910390fd5b6006546000819003613bb7575050565b811561128457600081613bd284670de0b6b3a7640000615b6f565b613bdc9190615b86565b90508060146001016000828254613bf39190615ba8565b909155505042601655505050565b6014546001600160a01b0316613c145750565b6000613c1f82611bdd565b90508015611284576001600160a01b038083166000908152601860209081526040808320839055601554601790925290912055601454613c619116838361488e565b816001600160a01b03167fe34918ff1c7084970068b53fd71ad6d8b04e9f15d3886cbf006443e6cdc52ea682604051613c9c91815260200190565b60405180910390a25050565b602a546001600160a01b0316613cbb5750565b600480546003546040516370a0823160e01b81526001600160a01b03918216938101939093526000929116906370a0823190602401602060405180830381865afa158015613d0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d319190615bbb565b905081811015611284576000613d478284615b09565b602a5460405163ce96cb7760e01b81523060048201529192506000916001600160a01b039091169063ce96cb7790602401602060405180830381865afa158015613d95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613db99190615bbb565b90506000613dc78285615ba8565b905082811015613e305760405162461bcd60e51b815260206004820152602e60248201527f4e6f7420656e6f756768206c697175696469747920746f2066756c66696c6c2060448201526d1d1a19481dda5d1a191c985dd85b60921b60648201526084016115aa565b6006546000613e3f8783615b09565b905060008115613e5a57602b54613e5790839061384d565b90505b8585811115613e665750845b8015613e7557613e7581614301565b600480546040516370a0823160e01b815230928101929092526001600160a01b0316906370a0823190602401602060405180830381865afa158015613ebe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ee29190615bbb565b600480546003546040516370a0823160e01b81526001600160a01b039182169381019390935216906370a0823190602401602060405180830381865afa158015613f30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f549190615bbb565b613f5e9190615ba8565b975088881015613fc65760405162461bcd60e51b815260206004820152602d60248201527f496e73756666696369656e74206c69717569646974792061667465722076617560448201526c1b1d081dda5d1a191c985dd85b609a1b60648201526084016115aa565b505050505050505050565b60008060006001851015613ff85760405163162908e360e11b815260040160405180910390fd5b6140028787614d21565b86546005880154604051636b81068560e11b8152600092839283926001600160a01b039092169163d7020d0a9161404b918b9182918e916001600160801b031690600401615e5d565b6060604051808303816000875af115801561406a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061408e9190615e8e565b9250925092508295506140a48a8a600084614a03565b60408051828152602081018590526001600160a01b038916917ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568910160405180910390a2999198508997509095505050505050565b602a546001600160a01b031661410b57565b600654602b5460009061411f90839061384d565b600480546003546040516370a0823160e01b81526001600160a01b039182169381019390935292935060009216906370a0823190602401602060405180830381865afa158015614173573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141979190615bbb565b9050818111156141be5760006141ad8383615b09565b90506141b881614eb6565b50614275565b818110156142755760006141d28284615b09565b90506000602a60009054906101000a90046001600160a01b03166001600160a01b03166301e1d1146040518163ffffffff1660e01b8152600401602060405180830381865afa158015614229573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061424d9190615bbb565b9050600081831161425e5782614260565b815b905080156142715761427181614301565b5050505b6020805460408051848152928301919091527f8f9497c27f572ff1a65e8b2c7a0706d466466ae0b5efc78462b5f0021da6695691016117c1565b6142b76150ec565b6002805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b602a546040516328c0620360e01b8152600160048201526000916001600160a01b0316906328c0620390602401602060405180830381865afa15801561434b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061436f9190615bbb565b602a54604051632d182be560e21b815260048101859052306024820181905260448201529192506000916001600160a01b039091169063b460af94906064016020604051808303816000875af11580156143cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143f19190615bbb565b90506000602060030154831115614454576023546000906144129085615b09565b9050670de0b6b3a76400006144278285615b6f565b6144319190615b86565b915081602060010160008282546144489190615ba8565b90915550614458915050565b5060005b60006144648286615b09565b600354600454919250614484916001600160a01b0390811691168361488e565b6020548511156144985760006020556144b3565b84602060000160008282546144ad9190615b09565b90915550505b5050506023555042602455565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6145186137f2565b6002805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586142e43390565b600081156b019d971e4fe8401e74000000198390048411151761456f57600080fd5b50676765c793fa10079d601b1b91026b019d971e4fe8401e74000000010490565b816000036145b15760405163162908e360e11b815260040160405180910390fd5b6001600160a01b0381166145d8576040516303988b8160e61b815260040160405180910390fd5b6001600160a01b0381166000908152601360209081526040808320868452600281019092529091205460ff166146215760405163346fad7360e01b815260040160405180910390fd5b61462d6003600a613816565b6001600160a01b03821660009081526012602090815260408083208784529091529020600181015460ff1680156146695750600481015460ff16155b156146875760405163224aae4f60e21b815260040160405180910390fd5b600181015460ff1680156146ab575060285481600201546146a89190615ba8565b42115b156146c957604051634b3c322760e11b815260040160405180910390fd5b60006146d5848761250c565b905060008186116146e657856146e8565b815b9050600080600080600360020160009054906101000a90046001600160a01b03166001600160a01b031663de7bf0a28a87600360050160109054906101000a90046001600160801b03168f6040518563ffffffff1660e01b81526004016147529493929190615cf0565b6080604051808303816000875af1158015614771573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906147959190615d1f565b600854600160801b90046001600160801b031660038c8101919091555460045494985092965090945092506147d9916001600160a01b039081169133911688613b1e565b600783905580156147fe57808760000160008282546147f89190615ba8565b90915550505b865461480b908390615b09565b8088556005880154111561482157865460058801555b865460000361483257600060058801555b6148416003600a876000614a03565b6040518581526001600160a01b038a169033907f05f2eeda0e08e4b437f487c8d7d29b14537d15e3488170dc3de5dbdf8dac46849060200160405180910390a35050505050505050505050565b6040516001600160a01b0383811660248301526044820183905261264d91859182169063a9059cbb90606401613b46565b600060018310156148e35760405163162908e360e11b815260040160405180910390fd5b6148ed8585614d21565b8454600186015461490d916001600160a01b039182169133911686613b1e565b8454600586015460405163b3f1c93d60e01b81526000928392839283926001600160a01b03169163b3f1c93d916149589130918b918d916001600160801b0390911690600401615e5d565b6080604051808303816000875af1158015614977573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061499b9190615ebc565b93509350935093508294506149b38989896000614a03565b60408051888152602081018790526001600160a01b038816917f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15910160405180910390a250505050949350505050565b8115614a3057614a128261510f565b6001600160801b03168460030154614a2a9190615ba8565b60038501555b8015614a82578084600301541015614a5b5760405163bb55fd2760e01b815260040160405180910390fd5b614a648161510f565b6001600160801b03168460030154614a7c9190615b09565b60038501555b600384015460048501546000614a988787615147565b90506000614aa688886151a8565b90506000614abc89600301548a60040154615203565b9050614ae0886002015489600301548a600401548b600501548c600601548661524f565b600189018190556007890154614af891839187615339565b8855614b048989614d21565b875460018901546040517f48f4f83c2f1843e8fd7ef13ffcff40fca5055dc1b9b074cd9dd0f9a8a8e09dd992614b4292908252602082015260400190565b60405180910390a1505050505050505050565b6001811015614b775760405163824c180760e01b815260040160405180910390fd5b60028201548015614bda576000614b90826101f461384d565b90506000828411614baa57614ba58484615b09565b614bb4565b614bb48385615b09565b905081811115614bd757604051631a8b543360e21b815260040160405180910390fd5b50505b60028301829055614bee8484600080614a03565b60408051828152602081018490527fd45d1eb66419c036e2fa401916c7db417696f889cf4ab8ca92272327e8e1c83e91015b60405180910390a150505050565b601f546001600160a01b0316614c57576040516303988b8160e61b815260040160405180910390fd5b80600003614c785760405163162908e360e11b815260040160405180910390fd5b601f5460048054604051636033e31560e01b81526001600160a01b0391821692810192909252336024830152604482018490527f65991ea5d80f7b6dc8c32648f59c5a653beb10caddae8fefad6966b35a0a65f1606483015290911690636033e315906084016020604051808303816000875af1158015614cfd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112849190615ef9565b6006820154600090614d3a9064ffffffffff1642615b09565b90506001811015614d4a57505050565b60058301546001600160801b03166001811015614d7a57604051630a1cf3ed60e21b815260040160405180910390fd5b82546005850154614d96919084906001600160801b0316615380565b6005850180546fffffffffffffffffffffffffffffffff19166001600160801b0392831617908190556001850154614dda9290918591600160801b9091041661539d565b6005850180546001600160801b03908116600160801b93821684028181179384905560068901805464ffffffffff19164264ffffffffff16179055604080519184169092178152939092041660208301527ff92a3abee06d57c996e7e19eb34560241fdc1fe67e9ebd503177710bf9fd82049101614c20565b6000614e686001600160a01b038416836153b9565b90508051600014158015614e8d575080806020019051810190614e8b9190615ef9565b155b1561264d57604051635274afe760e01b81526001600160a01b03841660048201526024016115aa565b600354604051635c921eb960e01b8152306004820152602481018390526001600160a01b0390911690635c921eb990604401600060405180830381600087803b158015614f0257600080fd5b505af1158015614f16573d6000803e3d6000fd5b505060048054602a5460405163095ea7b360e01b81526001600160a01b03918216938101939093526024830186905216925063095ea7b391506044016020604051808303816000875af1158015614f71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614f959190615ef9565b50602a54604051636e553f6560e01b8152600481018390523060248201526000916001600160a01b031690636e553f65906044016020604051808303816000875af1158015614fe8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061500c9190615bbb565b602a546040516328c0620360e01b81526000600482018190529293506001600160a01b03909116906328c0620390602401602060405180830381865afa15801561505a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061507e9190615bbb565b9050600082116150c75760405162461bcd60e51b815260206004820152601460248201527315985d5b1d0819195c1bdcda5d0819985a5b195960621b60448201526064016115aa565b82602060000160008282546150dc9190615ba8565b9091555050602355505042602555565b60025460ff166114a557604051638dfc202b60e01b815260040160405180910390fd5b60006001600160801b03821115615143576040516306dfcc6560e41b815260806004820152602481018390526044016115aa565b5090565b600682015460009081906151629064ffffffffff1642615b09565b905060018110156151795750506004820154611238565b6005840154600184015461129191600160801b90046001600160801b0316906151a290846153c7565b9061454d565b600682015460009081906151c39064ffffffffff1642615b09565b905060018110156151e357505060058201546001600160801b0316611238565b60058401548354611291916001600160801b0316906151a2908483615416565b600060018310156152205750676765c793fa10079d601b1b611238565b600061523e6152396152328587615ba8565b859061544a565b61510f565b6001600160801b0316949350505050565b600085871115806152605750838710155b8061526b5750858511155b806152765750838510155b156152945760405163abc83fed60e01b815260040160405180910390fd5b60008383116152d65760006152a9888a615b09565b905060006152c1866152bb878561454d565b9061544a565b90506152cd818a615ba8565b9250505061532e565b60006152e28585615b09565b905060006152fb86676765c793fa10079d601b1b615b09565b905060006153098b89615b09565b9050600061531b836152bb868561454d565b9050615327818d615ba8565b9450505050505b979650505050505050565b6000600182101561534c57506000611291565b6000615358868661454d565b90506000615366828661454d565b905060006153748284615b09565b98975050505050505050565b60008061538e858585615416565b9050613688615239828561454d565b6000806153aa85856153c7565b9050613688615239848361454d565b606061368c83836000615487565b600060018210156153e45750676765c793fa10079d601b1b611238565b60006153f4846301e1338061544a565b90506000615402828561454d565b905061540d81615524565b95945050505050565b6000806154238486615b6f565b90506154336301e1338082615b86565b905061368881676765c793fa10079d601b1b615ba8565b60008115676765c793fa10079d601b1b6002840419048411171561546d57600080fd5b50676765c793fa10079d601b1b9190910260028204010490565b6060814710156154ac5760405163cd78605960e01b81523060048201526024016115aa565b600080856001600160a01b031684866040516154c89190615df9565b60006040518083038185875af1925050503d8060008114615505576040519150601f19603f3d011682016040523d82523d6000602084013e61550a565b606091505b509150915061551a8683836155cd565b9695505050505050565b6000816000036155405750676765c793fa10079d601b1b919050565b506b169e43a85eb381aa580000006b1363156bbee3016d700000006b1027e72f1f128130880000006b0cecb8f27f4200f3a00000006b09b18ab5df7180b6b80000006b06765c793fa10079d000000086800204808702919091048087029290920480870293909304808702949094048087029590950495010101010101676765c793fa10079d601b1b0190565b6060826155e2576155dd82615629565b61368c565b81511580156155f957506001600160a01b0384163b155b1561562257604051639996b31560e01b81526001600160a01b03851660048201526024016115aa565b508061368c565b8051156156395780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b82805482825590600052602060002090810192821561568d579160200282015b8281111561568d578251825591602001919060010190615672565b506151439291506156da565b6040518060e0016040528060008152602001600081526020016000815260200160001515815260200160008152602001600081526020016000151581525090565b5b8082111561514357600081556001016156db565b60006020828403121561570157600080fd5b5035919050565b6001600160a01b03811681146110ff57600080fd5b60006020828403121561572f57600080fd5b813561368c81615708565b6000806040838503121561574d57600080fd5b823561575881615708565b946020939093013593505050565b6000806040838503121561577957600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff811182821017156157c4576157c4615788565b6040525050565b600080600080608085870312156157e157600080fd5b84356157ec81615708565b93506020858101356157fd81615708565b935060408601359250606086013567ffffffffffffffff8082111561582157600080fd5b818801915088601f83011261583557600080fd5b81358181111561584757615847615788565b604051915061585f601f8201601f191685018361579e565b808252898482850101111561587357600080fd5b808484018584013760008482840101525080935050505092959194509250565b8051825260208101516020830152604081015160408301526060810151151560608301526080810151608083015260a081015160a083015260c0810151151560c08301525050565b60e081016112388284615893565b600080604083850312156158fc57600080fd5b82356008811061575857600080fd5b60008060006060848603121561592057600080fd5b8335925060208401359150604084013561593981615708565b809150509250925092565b600081518084526020808501945080840160005b8381101561597e5761596b878351615893565b60e0969096019590820190600101615958565b509495945050505050565b60208082528251608083830152805160a0840181905260009291820190839060c08601905b808310156159ce57835182529284019260019290920191908401906159ae565b508387015160408701526040870151606087015260608701519350601f1986820301608087015261532e8185615944565b600080600060608486031215615a1457600080fd5b8335615a1f81615708565b92506020840135615a2f81615708565b929592945050506040919091013590565b60006101008201905060018060a01b0380845116835280602085015116602084015280604085015116604084015250606083015160608301526080830151608083015260a08301516001600160801b0380821660a08501528060c08601511660c0850152505060e0830151611faf60e084018264ffffffffff169052565b600080600060608486031215615ad357600080fd5b8335615ade81615708565b95602085013595506040909401359392505050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561123857611238615af3565b634e487b7160e01b600052603260045260246000fd5b600060018201615b4457615b44615af3565b5060010190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b808202811582820484141761123857611238615af3565b600082615ba357634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561123857611238615af3565b600060208284031215615bcd57600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b600060033d11156127295760046000803e5060005160e01c90565b600060443d1015615c135790565b6040516003193d81016004833e81513d67ffffffffffffffff8160248401118184111715615c4357505050505090565b8285019150815181811115615c5b5750505050505090565b843d8701016020828501011115615c755750505050505090565b615c846020828601018761579e565b509095945050505050565b60008060233d1115615cab576020600460003e50506000516001905b9091565b600060208284031215615cc157600080fd5b815161368c81615708565b60008060408385031215615cdf57600080fd5b505080516020909101519092909150565b6001600160a01b0394909416845260208401929092526001600160801b03166040830152606082015260800190565b60008060008060808587031215615d3557600080fd5b505082516020840151604085015160609095015191969095509092509050565b80518015158114615d6557600080fd5b919050565b600060e08284031215615d7c57600080fd5b60405160e0810181811067ffffffffffffffff82111715615d9f57615d9f615788565b8060405250825181526020830151602082015260408301516040820152615dc860608401615d55565b60608201526080830151608082015260a083015160a0820152615ded60c08401615d55565b60c08201529392505050565b6000825160005b81811015615e1a5760208186018101518583015201615e00565b506000920191825250919050565b600080600060608486031215615e3d57600080fd5b615e4684615d55565b925060208401519150604084015190509250925092565b6001600160a01b03948516815292909316602083015260408201526001600160801b03909116606082015260800190565b600080600060608486031215615ea357600080fd5b8351925060208401519150604084015190509250925092565b60008060008060808587031215615ed257600080fd5b615edb85615d55565b60208601516040870151606090970151919890975090945092505050565b600060208284031215615f0b57600080fd5b61368c82615d5556fea264697066735822122085790ad8a34ebf38e48587fd6cfb2d6f5a50229056245092ddebc2e6bc8f63c264736f6c63430008140033";
18
18
  static readonly abi: readonly [{
19
19
  readonly inputs: readonly [{
20
20
  readonly internalType: "address";
@@ -67,6 +67,10 @@ export declare class LendingPool__factory extends ContractFactory {
67
67
  readonly inputs: readonly [];
68
68
  readonly name: "CannotBorrowUnderLiquidation";
69
69
  readonly type: "error";
70
+ }, {
71
+ readonly inputs: readonly [];
72
+ readonly name: "CannotRepayUnderLiquidationWithoutInsurance";
73
+ readonly type: "error";
70
74
  }, {
71
75
  readonly inputs: readonly [];
72
76
  readonly name: "CannotWithdrawUnderLiquidation";
@@ -99,6 +103,10 @@ export declare class LendingPool__factory extends ContractFactory {
99
103
  readonly inputs: readonly [];
100
104
  readonly name: "HealthFactorTooLow";
101
105
  readonly type: "error";
106
+ }, {
107
+ readonly inputs: readonly [];
108
+ readonly name: "InsufficientAllowanceForFees";
109
+ readonly type: "error";
102
110
  }, {
103
111
  readonly inputs: readonly [];
104
112
  readonly name: "InsufficientBalance";
@@ -131,6 +139,10 @@ export declare class LendingPool__factory extends ContractFactory {
131
139
  readonly inputs: readonly [];
132
140
  readonly name: "InvalidParameter";
133
141
  readonly type: "error";
142
+ }, {
143
+ readonly inputs: readonly [];
144
+ readonly name: "InvalidVaultAsset";
145
+ readonly type: "error";
134
146
  }, {
135
147
  readonly inputs: readonly [];
136
148
  readonly name: "LiquidityIndexIsZero";
@@ -143,10 +155,26 @@ export declare class LendingPool__factory extends ContractFactory {
143
155
  readonly inputs: readonly [];
144
156
  readonly name: "NFTNotDeposited";
145
157
  readonly type: "error";
158
+ }, {
159
+ readonly inputs: readonly [];
160
+ readonly name: "NFTNotInsured";
161
+ readonly type: "error";
162
+ }, {
163
+ readonly inputs: readonly [];
164
+ readonly name: "NoActiveRewardToken";
165
+ readonly type: "error";
146
166
  }, {
147
167
  readonly inputs: readonly [];
148
168
  readonly name: "NoCollateral";
149
169
  readonly type: "error";
170
+ }, {
171
+ readonly inputs: readonly [];
172
+ readonly name: "NoDeposits";
173
+ readonly type: "error";
174
+ }, {
175
+ readonly inputs: readonly [];
176
+ readonly name: "NoRewardsToClaim";
177
+ readonly type: "error";
150
178
  }, {
151
179
  readonly inputs: readonly [];
152
180
  readonly name: "NotEnoughCollateralToBorrow";
@@ -195,6 +223,10 @@ export declare class LendingPool__factory extends ContractFactory {
195
223
  readonly inputs: readonly [];
196
224
  readonly name: "RepayAmountTooHigh";
197
225
  readonly type: "error";
226
+ }, {
227
+ readonly inputs: readonly [];
228
+ readonly name: "RewardTokenAlreadySet";
229
+ readonly type: "error";
198
230
  }, {
199
231
  readonly inputs: readonly [{
200
232
  readonly internalType: "uint8";
@@ -273,15 +305,20 @@ export declare class LendingPool__factory extends ContractFactory {
273
305
  readonly inputs: readonly [{
274
306
  readonly indexed: true;
275
307
  readonly internalType: "address";
276
- readonly name: "oldVault";
308
+ readonly name: "user";
277
309
  readonly type: "address";
278
310
  }, {
279
- readonly indexed: true;
280
- readonly internalType: "address";
281
- readonly name: "newVault";
282
- readonly type: "address";
311
+ readonly indexed: false;
312
+ readonly internalType: "uint256";
313
+ readonly name: "amount";
314
+ readonly type: "uint256";
315
+ }, {
316
+ readonly indexed: false;
317
+ readonly internalType: "uint256";
318
+ readonly name: "mintedAmount";
319
+ readonly type: "uint256";
283
320
  }];
284
- readonly name: "CurveVaultUpdated";
321
+ readonly name: "Deposit";
285
322
  readonly type: "event";
286
323
  }, {
287
324
  readonly anonymous: false;
@@ -298,7 +335,7 @@ export declare class LendingPool__factory extends ContractFactory {
298
335
  }, {
299
336
  readonly indexed: false;
300
337
  readonly internalType: "uint256";
301
- readonly name: "mintedAmount";
338
+ readonly name: "liquidityMinted";
302
339
  readonly type: "uint256";
303
340
  }];
304
341
  readonly name: "Deposit";
@@ -308,20 +345,50 @@ export declare class LendingPool__factory extends ContractFactory {
308
345
  readonly inputs: readonly [{
309
346
  readonly indexed: true;
310
347
  readonly internalType: "address";
311
- readonly name: "user";
348
+ readonly name: "oldFeeCollector";
312
349
  readonly type: "address";
313
350
  }, {
351
+ readonly indexed: true;
352
+ readonly internalType: "address";
353
+ readonly name: "newFeeCollector";
354
+ readonly type: "address";
355
+ }];
356
+ readonly name: "FeeCollectorUpdated";
357
+ readonly type: "event";
358
+ }, {
359
+ readonly anonymous: false;
360
+ readonly inputs: readonly [];
361
+ readonly name: "InsufficientFees";
362
+ readonly type: "event";
363
+ }, {
364
+ readonly anonymous: false;
365
+ readonly inputs: readonly [{
314
366
  readonly indexed: false;
315
367
  readonly internalType: "uint256";
316
- readonly name: "amount";
368
+ readonly name: "oldInsuranceFee";
317
369
  readonly type: "uint256";
318
370
  }, {
319
371
  readonly indexed: false;
320
372
  readonly internalType: "uint256";
321
- readonly name: "liquidityMinted";
373
+ readonly name: "newInsuranceFee";
322
374
  readonly type: "uint256";
323
375
  }];
324
- readonly name: "Deposit";
376
+ readonly name: "InsuranceFeeUpdated";
377
+ readonly type: "event";
378
+ }, {
379
+ readonly anonymous: false;
380
+ readonly inputs: readonly [{
381
+ readonly indexed: true;
382
+ readonly internalType: "uint256";
383
+ readonly name: "tokenId";
384
+ readonly type: "uint256";
385
+ }, {
386
+ readonly indexed: false;
387
+ readonly internalType: "uint256";
388
+ readonly name: "amount";
389
+ readonly type: "uint256";
390
+ }];
391
+ readonly name: "InsuredNFT";
325
392
  readonly type: "event";
326
393
  }, {
327
394
  readonly anonymous: false;
@@ -370,6 +437,11 @@ export declare class LendingPool__factory extends ContractFactory {
370
437
  readonly internalType: "address";
371
438
  readonly name: "user";
372
439
  readonly type: "address";
440
+ }, {
441
+ readonly indexed: true;
442
+ readonly internalType: "uint256";
443
+ readonly name: "tokenId";
444
+ readonly type: "uint256";
373
445
  }];
374
446
  readonly name: "LiquidationClosed";
375
447
  readonly type: "event";
@@ -385,6 +457,11 @@ export declare class LendingPool__factory extends ContractFactory {
385
457
  readonly internalType: "address";
386
458
  readonly name: "user";
387
459
  readonly type: "address";
460
+ }, {
461
+ readonly indexed: true;
462
+ readonly internalType: "uint256";
463
+ readonly name: "tokenId";
464
+ readonly type: "uint256";
388
465
  }, {
389
466
  readonly indexed: false;
390
467
  readonly internalType: "uint256";
@@ -410,6 +487,11 @@ export declare class LendingPool__factory extends ContractFactory {
410
487
  readonly internalType: "address";
411
488
  readonly name: "user";
412
489
  readonly type: "address";
490
+ }, {
491
+ readonly indexed: true;
492
+ readonly internalType: "uint256";
493
+ readonly name: "tokenId";
494
+ readonly type: "uint256";
413
495
  }];
414
496
  readonly name: "LiquidationInitiated";
415
497
  readonly type: "event";
@@ -493,6 +575,11 @@ export declare class LendingPool__factory extends ContractFactory {
493
575
  }];
494
576
  readonly name: "NFTWithdrawn";
495
577
  readonly type: "event";
578
+ }, {
579
+ readonly anonymous: false;
580
+ readonly inputs: readonly [];
581
+ readonly name: "NotFeeCollector";
582
+ readonly type: "event";
496
583
  }, {
497
584
  readonly anonymous: false;
498
585
  readonly inputs: readonly [{
@@ -533,6 +620,51 @@ export declare class LendingPool__factory extends ContractFactory {
533
620
  }];
534
621
  readonly name: "PrimeRateUpdated";
535
622
  readonly type: "event";
623
+ }, {
624
+ readonly anonymous: false;
625
+ readonly inputs: readonly [{
626
+ readonly indexed: false;
627
+ readonly internalType: "uint256";
628
+ readonly name: "oldValue";
629
+ readonly type: "uint256";
630
+ }, {
631
+ readonly indexed: false;
632
+ readonly internalType: "uint256";
633
+ readonly name: "newValue";
634
+ readonly type: "uint256";
635
+ }];
636
+ readonly name: "ProtocolFeeRateUpdated";
637
+ readonly type: "event";
638
+ }, {
639
+ readonly anonymous: false;
640
+ readonly inputs: readonly [{
641
+ readonly indexed: false;
642
+ readonly internalType: "uint256";
643
+ readonly name: "protocolFee";
644
+ readonly type: "uint256";
645
+ }, {
646
+ readonly indexed: false;
647
+ readonly internalType: "uint256";
648
+ readonly name: "accumulatedProtocolFees";
649
+ readonly type: "uint256";
650
+ }];
651
+ readonly name: "ProtocolFeesCollected";
652
+ readonly type: "event";
653
+ }, {
654
+ readonly anonymous: false;
655
+ readonly inputs: readonly [{
656
+ readonly indexed: true;
657
+ readonly internalType: "address";
658
+ readonly name: "feeCollector";
659
+ readonly type: "address";
660
+ }, {
661
+ readonly indexed: false;
662
+ readonly internalType: "uint256";
663
+ readonly name: "amount";
664
+ readonly type: "uint256";
665
+ }];
666
+ readonly name: "ProtocolFeesWithdrawn";
667
+ readonly type: "event";
536
668
  }, {
537
669
  readonly anonymous: false;
538
670
  readonly inputs: readonly [{
@@ -568,6 +700,96 @@ export declare class LendingPool__factory extends ContractFactory {
568
700
  }];
569
701
  readonly name: "ReserveInterestsUpdated";
570
702
  readonly type: "event";
703
+ }, {
704
+ readonly anonymous: false;
705
+ readonly inputs: readonly [{
706
+ readonly indexed: true;
707
+ readonly internalType: "address";
708
+ readonly name: "user";
709
+ readonly type: "address";
710
+ }, {
711
+ readonly indexed: true;
712
+ readonly internalType: "address";
713
+ readonly name: "token";
714
+ readonly type: "address";
715
+ }, {
716
+ readonly indexed: false;
717
+ readonly internalType: "uint256";
718
+ readonly name: "amount";
719
+ readonly type: "uint256";
720
+ }];
721
+ readonly name: "RewardClaimed";
722
+ readonly type: "event";
723
+ }, {
724
+ readonly anonymous: false;
725
+ readonly inputs: readonly [{
726
+ readonly indexed: true;
727
+ readonly internalType: "address";
728
+ readonly name: "user";
729
+ readonly type: "address";
730
+ }, {
731
+ readonly indexed: false;
732
+ readonly internalType: "uint256";
733
+ readonly name: "amount";
734
+ readonly type: "uint256";
735
+ }];
736
+ readonly name: "RewardDistributed";
737
+ readonly type: "event";
738
+ }, {
739
+ readonly anonymous: false;
740
+ readonly inputs: readonly [{
741
+ readonly indexed: true;
742
+ readonly internalType: "address";
743
+ readonly name: "token";
744
+ readonly type: "address";
745
+ }, {
746
+ readonly indexed: false;
747
+ readonly internalType: "uint256";
748
+ readonly name: "rewardRate";
749
+ readonly type: "uint256";
750
+ }, {
751
+ readonly indexed: false;
752
+ readonly internalType: "uint256";
753
+ readonly name: "duration";
754
+ readonly type: "uint256";
755
+ }];
756
+ readonly name: "RewardParametersUpdated";
757
+ readonly type: "event";
758
+ }, {
759
+ readonly anonymous: false;
760
+ readonly inputs: readonly [{
761
+ readonly indexed: true;
762
+ readonly internalType: "address";
763
+ readonly name: "token";
764
+ readonly type: "address";
765
+ }, {
766
+ readonly indexed: false;
767
+ readonly internalType: "uint256";
768
+ readonly name: "rewardRate";
769
+ readonly type: "uint256";
770
+ }, {
771
+ readonly indexed: false;
772
+ readonly internalType: "uint256";
773
+ readonly name: "duration";
774
+ readonly type: "uint256";
775
+ }];
776
+ readonly name: "RewardTokenAdded";
777
+ readonly type: "event";
778
+ }, {
779
+ readonly anonymous: false;
780
+ readonly inputs: readonly [{
781
+ readonly indexed: true;
782
+ readonly internalType: "address";
783
+ readonly name: "user";
784
+ readonly type: "address";
785
+ }, {
786
+ readonly indexed: false;
787
+ readonly internalType: "uint256";
788
+ readonly name: "amount";
789
+ readonly type: "uint256";
790
+ }];
791
+ readonly name: "RewardTokensDeposited";
792
+ readonly type: "event";
571
793
  }, {
572
794
  readonly anonymous: false;
573
795
  readonly inputs: readonly [{
@@ -593,6 +815,41 @@ export declare class LendingPool__factory extends ContractFactory {
593
815
  }];
594
816
  readonly name: "Unpaused";
595
817
  readonly type: "event";
818
+ }, {
819
+ readonly anonymous: false;
820
+ readonly inputs: readonly [{
821
+ readonly indexed: false;
822
+ readonly internalType: "uint256";
823
+ readonly name: "amount";
824
+ readonly type: "uint256";
825
+ }];
826
+ readonly name: "VaultRewardsClaimed";
827
+ readonly type: "event";
828
+ }, {
829
+ readonly anonymous: false;
830
+ readonly inputs: readonly [{
831
+ readonly indexed: true;
832
+ readonly internalType: "address";
833
+ readonly name: "oldVault";
834
+ readonly type: "address";
835
+ }, {
836
+ readonly indexed: true;
837
+ readonly internalType: "address";
838
+ readonly name: "newVault";
839
+ readonly type: "address";
840
+ }];
841
+ readonly name: "VaultUpdated";
842
+ readonly type: "event";
843
+ }, {
844
+ readonly anonymous: false;
845
+ readonly inputs: readonly [{
846
+ readonly indexed: true;
847
+ readonly internalType: "address";
848
+ readonly name: "vault";
849
+ readonly type: "address";
850
+ }];
851
+ readonly name: "VaultWithdrawalFailed";
852
+ readonly type: "event";
596
853
  }, {
597
854
  readonly anonymous: false;
598
855
  readonly inputs: readonly [{
@@ -670,6 +927,10 @@ export declare class LendingPool__factory extends ContractFactory {
670
927
  readonly type: "function";
671
928
  }, {
672
929
  readonly inputs: readonly [{
930
+ readonly internalType: "uint256";
931
+ readonly name: "tokenId";
932
+ readonly type: "uint256";
933
+ }, {
673
934
  readonly internalType: "uint256";
674
935
  readonly name: "amount";
675
936
  readonly type: "uint256";
@@ -680,18 +941,58 @@ export declare class LendingPool__factory extends ContractFactory {
680
941
  readonly type: "function";
681
942
  }, {
682
943
  readonly inputs: readonly [{
683
- readonly internalType: "address";
684
- readonly name: "userAddress";
685
- readonly type: "address";
686
- }];
687
- readonly name: "calculateHealthFactor";
688
- readonly outputs: readonly [{
689
944
  readonly internalType: "uint256";
690
- readonly name: "";
945
+ readonly name: "tokenId";
691
946
  readonly type: "uint256";
692
- }];
693
- readonly stateMutability: "view";
694
- readonly type: "function";
947
+ }, {
948
+ readonly internalType: "uint256";
949
+ readonly name: "amount";
950
+ readonly type: "uint256";
951
+ }];
952
+ readonly name: "borrowWithInsurance";
953
+ readonly outputs: readonly [];
954
+ readonly stateMutability: "nonpayable";
955
+ readonly type: "function";
956
+ }, {
957
+ readonly inputs: readonly [{
958
+ readonly internalType: "address";
959
+ readonly name: "userAddress";
960
+ readonly type: "address";
961
+ }, {
962
+ readonly internalType: "uint256";
963
+ readonly name: "tokenId";
964
+ readonly type: "uint256";
965
+ }];
966
+ readonly name: "calculateHealthFactor";
967
+ readonly outputs: readonly [{
968
+ readonly internalType: "uint256";
969
+ readonly name: "";
970
+ readonly type: "uint256";
971
+ }];
972
+ readonly stateMutability: "view";
973
+ readonly type: "function";
974
+ }, {
975
+ readonly inputs: readonly [{
976
+ readonly internalType: "address";
977
+ readonly name: "user";
978
+ readonly type: "address";
979
+ }, {
980
+ readonly internalType: "uint256";
981
+ readonly name: "tokenId";
982
+ readonly type: "uint256";
983
+ }, {
984
+ readonly internalType: "uint256";
985
+ readonly name: "amount";
986
+ readonly type: "uint256";
987
+ }];
988
+ readonly name: "calculateInsuranceFee";
989
+ readonly outputs: readonly [{
990
+ readonly internalType: "uint256";
991
+ readonly name: "";
992
+ readonly type: "uint256";
993
+ }];
994
+ readonly stateMutability: "view";
995
+ readonly type: "function";
695
996
  }, {
696
997
  readonly inputs: readonly [];
697
998
  readonly name: "canPaybackDebt";
@@ -704,19 +1005,33 @@ export declare class LendingPool__factory extends ContractFactory {
704
1005
  readonly type: "function";
705
1006
  }, {
706
1007
  readonly inputs: readonly [];
707
- readonly name: "closeLiquidation";
708
- readonly outputs: readonly [];
1008
+ readonly name: "claimCollectorRewards";
1009
+ readonly outputs: readonly [{
1010
+ readonly internalType: "uint256";
1011
+ readonly name: "";
1012
+ readonly type: "uint256";
1013
+ }];
709
1014
  readonly stateMutability: "nonpayable";
710
1015
  readonly type: "function";
711
1016
  }, {
712
1017
  readonly inputs: readonly [];
713
- readonly name: "curveVault";
1018
+ readonly name: "claimReward";
714
1019
  readonly outputs: readonly [{
715
- readonly internalType: "contract ICurveCrvUSDVault";
1020
+ readonly internalType: "bool";
716
1021
  readonly name: "";
717
- readonly type: "address";
1022
+ readonly type: "bool";
718
1023
  }];
719
- readonly stateMutability: "view";
1024
+ readonly stateMutability: "nonpayable";
1025
+ readonly type: "function";
1026
+ }, {
1027
+ readonly inputs: readonly [{
1028
+ readonly internalType: "uint256";
1029
+ readonly name: "tokenId";
1030
+ readonly type: "uint256";
1031
+ }];
1032
+ readonly name: "closeLiquidation";
1033
+ readonly outputs: readonly [];
1034
+ readonly stateMutability: "nonpayable";
720
1035
  readonly type: "function";
721
1036
  }, {
722
1037
  readonly inputs: readonly [];
@@ -748,16 +1063,114 @@ export declare class LendingPool__factory extends ContractFactory {
748
1063
  readonly outputs: readonly [];
749
1064
  readonly stateMutability: "nonpayable";
750
1065
  readonly type: "function";
1066
+ }, {
1067
+ readonly inputs: readonly [{
1068
+ readonly internalType: "uint256";
1069
+ readonly name: "amount";
1070
+ readonly type: "uint256";
1071
+ }];
1072
+ readonly name: "depositRewardTokens";
1073
+ readonly outputs: readonly [];
1074
+ readonly stateMutability: "nonpayable";
1075
+ readonly type: "function";
1076
+ }, {
1077
+ readonly inputs: readonly [];
1078
+ readonly name: "feeCollector";
1079
+ readonly outputs: readonly [{
1080
+ readonly internalType: "address";
1081
+ readonly name: "";
1082
+ readonly type: "address";
1083
+ }];
1084
+ readonly stateMutability: "view";
1085
+ readonly type: "function";
751
1086
  }, {
752
1087
  readonly inputs: readonly [{
753
1088
  readonly internalType: "address";
754
1089
  readonly name: "userAddress";
755
1090
  readonly type: "address";
1091
+ }, {
1092
+ readonly internalType: "uint256";
1093
+ readonly name: "tokenId";
1094
+ readonly type: "uint256";
756
1095
  }];
757
1096
  readonly name: "finalizeLiquidation";
758
1097
  readonly outputs: readonly [];
759
1098
  readonly stateMutability: "nonpayable";
760
1099
  readonly type: "function";
1100
+ }, {
1101
+ readonly inputs: readonly [{
1102
+ readonly internalType: "address";
1103
+ readonly name: "userAddress";
1104
+ readonly type: "address";
1105
+ }];
1106
+ readonly name: "getAllUserData";
1107
+ readonly outputs: readonly [{
1108
+ readonly components: readonly [{
1109
+ readonly internalType: "uint256[]";
1110
+ readonly name: "nftTokenIds";
1111
+ readonly type: "uint256[]";
1112
+ }, {
1113
+ readonly internalType: "uint256";
1114
+ readonly name: "scaledDebtBalance";
1115
+ readonly type: "uint256";
1116
+ }, {
1117
+ readonly internalType: "uint256";
1118
+ readonly name: "collateralValue";
1119
+ readonly type: "uint256";
1120
+ }, {
1121
+ readonly components: readonly [{
1122
+ readonly internalType: "uint256";
1123
+ readonly name: "rawDebtBalance";
1124
+ readonly type: "uint256";
1125
+ }, {
1126
+ readonly internalType: "uint256";
1127
+ readonly name: "scaledDebtBalance";
1128
+ readonly type: "uint256";
1129
+ }, {
1130
+ readonly internalType: "uint256";
1131
+ readonly name: "healthFactor";
1132
+ readonly type: "uint256";
1133
+ }, {
1134
+ readonly internalType: "bool";
1135
+ readonly name: "isUnderLiquidation";
1136
+ readonly type: "bool";
1137
+ }, {
1138
+ readonly internalType: "uint256";
1139
+ readonly name: "liquidationStartTime";
1140
+ readonly type: "uint256";
1141
+ }, {
1142
+ readonly internalType: "uint256";
1143
+ readonly name: "positionIndex";
1144
+ readonly type: "uint256";
1145
+ }, {
1146
+ readonly internalType: "bool";
1147
+ readonly name: "isInsured";
1148
+ readonly type: "bool";
1149
+ }];
1150
+ readonly internalType: "struct ILendingPool.NFTPositionView[]";
1151
+ readonly name: "positions";
1152
+ readonly type: "tuple[]";
1153
+ }];
1154
+ readonly internalType: "struct ILendingPool.UserDataView";
1155
+ readonly name: "";
1156
+ readonly type: "tuple";
1157
+ }];
1158
+ readonly stateMutability: "view";
1159
+ readonly type: "function";
1160
+ }, {
1161
+ readonly inputs: readonly [{
1162
+ readonly internalType: "address";
1163
+ readonly name: "user";
1164
+ readonly type: "address";
1165
+ }];
1166
+ readonly name: "getEligibleUserDeposits";
1167
+ readonly outputs: readonly [{
1168
+ readonly internalType: "uint256";
1169
+ readonly name: "";
1170
+ readonly type: "uint256";
1171
+ }];
1172
+ readonly stateMutability: "view";
1173
+ readonly type: "function";
761
1174
  }, {
762
1175
  readonly inputs: readonly [{
763
1176
  readonly internalType: "uint256";
@@ -793,8 +1206,12 @@ export declare class LendingPool__factory extends ContractFactory {
793
1206
  readonly stateMutability: "view";
794
1207
  readonly type: "function";
795
1208
  }, {
796
- readonly inputs: readonly [];
797
- readonly name: "getPrimeRate";
1209
+ readonly inputs: readonly [{
1210
+ readonly internalType: "address";
1211
+ readonly name: "user";
1212
+ readonly type: "address";
1213
+ }];
1214
+ readonly name: "getPendingReward";
798
1215
  readonly outputs: readonly [{
799
1216
  readonly internalType: "uint256";
800
1217
  readonly name: "";
@@ -802,13 +1219,82 @@ export declare class LendingPool__factory extends ContractFactory {
802
1219
  }];
803
1220
  readonly stateMutability: "view";
804
1221
  readonly type: "function";
1222
+ }, {
1223
+ readonly inputs: readonly [{
1224
+ readonly internalType: "address";
1225
+ readonly name: "user";
1226
+ readonly type: "address";
1227
+ }, {
1228
+ readonly internalType: "uint256";
1229
+ readonly name: "tokenId";
1230
+ readonly type: "uint256";
1231
+ }];
1232
+ readonly name: "getPosition";
1233
+ readonly outputs: readonly [{
1234
+ readonly components: readonly [{
1235
+ readonly internalType: "uint256";
1236
+ readonly name: "rawDebtBalance";
1237
+ readonly type: "uint256";
1238
+ }, {
1239
+ readonly internalType: "bool";
1240
+ readonly name: "isUnderLiquidation";
1241
+ readonly type: "bool";
1242
+ }, {
1243
+ readonly internalType: "uint256";
1244
+ readonly name: "liquidationStartTime";
1245
+ readonly type: "uint256";
1246
+ }, {
1247
+ readonly internalType: "uint256";
1248
+ readonly name: "positionIndex";
1249
+ readonly type: "uint256";
1250
+ }, {
1251
+ readonly internalType: "bool";
1252
+ readonly name: "isInsured";
1253
+ readonly type: "bool";
1254
+ }, {
1255
+ readonly internalType: "uint256";
1256
+ readonly name: "rawInsuredBalance";
1257
+ readonly type: "uint256";
1258
+ }];
1259
+ readonly internalType: "struct ILendingPool.NFTPosition";
1260
+ readonly name: "";
1261
+ readonly type: "tuple";
1262
+ }];
1263
+ readonly stateMutability: "view";
1264
+ readonly type: "function";
1265
+ }, {
1266
+ readonly inputs: readonly [{
1267
+ readonly internalType: "address";
1268
+ readonly name: "user";
1269
+ readonly type: "address";
1270
+ }, {
1271
+ readonly internalType: "uint256";
1272
+ readonly name: "tokenId";
1273
+ readonly type: "uint256";
1274
+ }];
1275
+ readonly name: "getPositionData";
1276
+ readonly outputs: readonly [{
1277
+ readonly internalType: "uint256";
1278
+ readonly name: "";
1279
+ readonly type: "uint256";
1280
+ }, {
1281
+ readonly internalType: "uint256";
1282
+ readonly name: "";
1283
+ readonly type: "uint256";
1284
+ }];
1285
+ readonly stateMutability: "view";
1286
+ readonly type: "function";
805
1287
  }, {
806
1288
  readonly inputs: readonly [{
807
1289
  readonly internalType: "address";
808
1290
  readonly name: "userAddress";
809
1291
  readonly type: "address";
1292
+ }, {
1293
+ readonly internalType: "uint256";
1294
+ readonly name: "tokenId";
1295
+ readonly type: "uint256";
810
1296
  }];
811
- readonly name: "getUserCollateralValue";
1297
+ readonly name: "getPositionDebt";
812
1298
  readonly outputs: readonly [{
813
1299
  readonly internalType: "uint256";
814
1300
  readonly name: "";
@@ -821,8 +1307,12 @@ export declare class LendingPool__factory extends ContractFactory {
821
1307
  readonly internalType: "address";
822
1308
  readonly name: "userAddress";
823
1309
  readonly type: "address";
1310
+ }, {
1311
+ readonly internalType: "uint256";
1312
+ readonly name: "tokenId";
1313
+ readonly type: "uint256";
824
1314
  }];
825
- readonly name: "getUserDebt";
1315
+ readonly name: "getPositionScaledDebt";
826
1316
  readonly outputs: readonly [{
827
1317
  readonly internalType: "uint256";
828
1318
  readonly name: "";
@@ -830,23 +1320,194 @@ export declare class LendingPool__factory extends ContractFactory {
830
1320
  }];
831
1321
  readonly stateMutability: "view";
832
1322
  readonly type: "function";
1323
+ }, {
1324
+ readonly inputs: readonly [{
1325
+ readonly internalType: "address";
1326
+ readonly name: "user";
1327
+ readonly type: "address";
1328
+ }, {
1329
+ readonly internalType: "uint256";
1330
+ readonly name: "tokenId";
1331
+ readonly type: "uint256";
1332
+ }];
1333
+ readonly name: "getPositionView";
1334
+ readonly outputs: readonly [{
1335
+ readonly components: readonly [{
1336
+ readonly internalType: "uint256";
1337
+ readonly name: "rawDebtBalance";
1338
+ readonly type: "uint256";
1339
+ }, {
1340
+ readonly internalType: "uint256";
1341
+ readonly name: "scaledDebtBalance";
1342
+ readonly type: "uint256";
1343
+ }, {
1344
+ readonly internalType: "uint256";
1345
+ readonly name: "healthFactor";
1346
+ readonly type: "uint256";
1347
+ }, {
1348
+ readonly internalType: "bool";
1349
+ readonly name: "isUnderLiquidation";
1350
+ readonly type: "bool";
1351
+ }, {
1352
+ readonly internalType: "uint256";
1353
+ readonly name: "liquidationStartTime";
1354
+ readonly type: "uint256";
1355
+ }, {
1356
+ readonly internalType: "uint256";
1357
+ readonly name: "positionIndex";
1358
+ readonly type: "uint256";
1359
+ }, {
1360
+ readonly internalType: "bool";
1361
+ readonly name: "isInsured";
1362
+ readonly type: "bool";
1363
+ }];
1364
+ readonly internalType: "struct ILendingPool.NFTPositionView";
1365
+ readonly name: "";
1366
+ readonly type: "tuple";
1367
+ }];
1368
+ readonly stateMutability: "view";
1369
+ readonly type: "function";
833
1370
  }, {
834
1371
  readonly inputs: readonly [{
835
1372
  readonly internalType: "address";
836
1373
  readonly name: "userAddress";
837
1374
  readonly type: "address";
838
1375
  }];
839
- readonly name: "getUserDepositedNFTs";
1376
+ readonly name: "getPositionsScaledDebt";
840
1377
  readonly outputs: readonly [{
841
- readonly internalType: "uint256[]";
1378
+ readonly internalType: "uint256";
842
1379
  readonly name: "";
843
- readonly type: "uint256[]";
1380
+ readonly type: "uint256";
844
1381
  }];
845
1382
  readonly stateMutability: "view";
846
1383
  readonly type: "function";
847
1384
  }, {
848
1385
  readonly inputs: readonly [];
849
- readonly name: "healthFactorLiquidationThreshold";
1386
+ readonly name: "getPrimeRate";
1387
+ readonly outputs: readonly [{
1388
+ readonly internalType: "uint256";
1389
+ readonly name: "";
1390
+ readonly type: "uint256";
1391
+ }];
1392
+ readonly stateMutability: "view";
1393
+ readonly type: "function";
1394
+ }, {
1395
+ readonly inputs: readonly [];
1396
+ readonly name: "getRAACNFTAddress";
1397
+ readonly outputs: readonly [{
1398
+ readonly internalType: "address";
1399
+ readonly name: "";
1400
+ readonly type: "address";
1401
+ }];
1402
+ readonly stateMutability: "view";
1403
+ readonly type: "function";
1404
+ }, {
1405
+ readonly inputs: readonly [];
1406
+ readonly name: "getReserveRateData";
1407
+ readonly outputs: readonly [{
1408
+ readonly components: readonly [{
1409
+ readonly internalType: "uint256";
1410
+ readonly name: "currentLiquidityRate";
1411
+ readonly type: "uint256";
1412
+ }, {
1413
+ readonly internalType: "uint256";
1414
+ readonly name: "currentUsageRate";
1415
+ readonly type: "uint256";
1416
+ }, {
1417
+ readonly internalType: "uint256";
1418
+ readonly name: "primeRate";
1419
+ readonly type: "uint256";
1420
+ }, {
1421
+ readonly internalType: "uint256";
1422
+ readonly name: "baseRate";
1423
+ readonly type: "uint256";
1424
+ }, {
1425
+ readonly internalType: "uint256";
1426
+ readonly name: "optimalRate";
1427
+ readonly type: "uint256";
1428
+ }, {
1429
+ readonly internalType: "uint256";
1430
+ readonly name: "maxRate";
1431
+ readonly type: "uint256";
1432
+ }, {
1433
+ readonly internalType: "uint256";
1434
+ readonly name: "optimalUtilizationRate";
1435
+ readonly type: "uint256";
1436
+ }, {
1437
+ readonly internalType: "uint256";
1438
+ readonly name: "protocolFeeRate";
1439
+ readonly type: "uint256";
1440
+ }];
1441
+ readonly internalType: "struct ReserveLibrary.ReserveRateData";
1442
+ readonly name: "";
1443
+ readonly type: "tuple";
1444
+ }];
1445
+ readonly stateMutability: "view";
1446
+ readonly type: "function";
1447
+ }, {
1448
+ readonly inputs: readonly [];
1449
+ readonly name: "getReserveState";
1450
+ readonly outputs: readonly [{
1451
+ readonly components: readonly [{
1452
+ readonly internalType: "address";
1453
+ readonly name: "reserveRTokenAddress";
1454
+ readonly type: "address";
1455
+ }, {
1456
+ readonly internalType: "address";
1457
+ readonly name: "reserveAssetAddress";
1458
+ readonly type: "address";
1459
+ }, {
1460
+ readonly internalType: "address";
1461
+ readonly name: "reserveDebtTokenAddress";
1462
+ readonly type: "address";
1463
+ }, {
1464
+ readonly internalType: "uint256";
1465
+ readonly name: "totalLiquidity";
1466
+ readonly type: "uint256";
1467
+ }, {
1468
+ readonly internalType: "uint256";
1469
+ readonly name: "totalUsage";
1470
+ readonly type: "uint256";
1471
+ }, {
1472
+ readonly internalType: "uint128";
1473
+ readonly name: "liquidityIndex";
1474
+ readonly type: "uint128";
1475
+ }, {
1476
+ readonly internalType: "uint128";
1477
+ readonly name: "usageIndex";
1478
+ readonly type: "uint128";
1479
+ }, {
1480
+ readonly internalType: "uint40";
1481
+ readonly name: "lastUpdateTimestamp";
1482
+ readonly type: "uint40";
1483
+ }];
1484
+ readonly internalType: "struct ReserveLibrary.ReserveData";
1485
+ readonly name: "";
1486
+ readonly type: "tuple";
1487
+ }];
1488
+ readonly stateMutability: "view";
1489
+ readonly type: "function";
1490
+ }, {
1491
+ readonly inputs: readonly [];
1492
+ readonly name: "getUnclaimedVaultRewards";
1493
+ readonly outputs: readonly [{
1494
+ readonly internalType: "uint256";
1495
+ readonly name: "";
1496
+ readonly type: "uint256";
1497
+ }];
1498
+ readonly stateMutability: "view";
1499
+ readonly type: "function";
1500
+ }, {
1501
+ readonly inputs: readonly [{
1502
+ readonly internalType: "address";
1503
+ readonly name: "user";
1504
+ readonly type: "address";
1505
+ }, {
1506
+ readonly internalType: "uint256";
1507
+ readonly name: "tokenId";
1508
+ readonly type: "uint256";
1509
+ }];
1510
+ readonly name: "getUninsuredBalance";
850
1511
  readonly outputs: readonly [{
851
1512
  readonly internalType: "uint256";
852
1513
  readonly name: "";
@@ -860,27 +1521,49 @@ export declare class LendingPool__factory extends ContractFactory {
860
1521
  readonly name: "userAddress";
861
1522
  readonly type: "address";
862
1523
  }];
863
- readonly name: "initiateLiquidation";
864
- readonly outputs: readonly [];
865
- readonly stateMutability: "nonpayable";
1524
+ readonly name: "getUserCollateralValue";
1525
+ readonly outputs: readonly [{
1526
+ readonly internalType: "uint256";
1527
+ readonly name: "";
1528
+ readonly type: "uint256";
1529
+ }];
1530
+ readonly stateMutability: "view";
866
1531
  readonly type: "function";
867
1532
  }, {
868
1533
  readonly inputs: readonly [{
869
1534
  readonly internalType: "address";
1535
+ readonly name: "userAddress";
1536
+ readonly type: "address";
1537
+ }];
1538
+ readonly name: "getUserDebt";
1539
+ readonly outputs: readonly [{
1540
+ readonly internalType: "uint256";
870
1541
  readonly name: "";
1542
+ readonly type: "uint256";
1543
+ }];
1544
+ readonly stateMutability: "view";
1545
+ readonly type: "function";
1546
+ }, {
1547
+ readonly inputs: readonly [{
1548
+ readonly internalType: "address";
1549
+ readonly name: "user";
871
1550
  readonly type: "address";
872
1551
  }];
873
- readonly name: "isUnderLiquidation";
1552
+ readonly name: "getUserDeposits";
874
1553
  readonly outputs: readonly [{
875
- readonly internalType: "bool";
1554
+ readonly internalType: "uint256";
876
1555
  readonly name: "";
877
- readonly type: "bool";
1556
+ readonly type: "uint256";
878
1557
  }];
879
1558
  readonly stateMutability: "view";
880
1559
  readonly type: "function";
881
1560
  }, {
882
- readonly inputs: readonly [];
883
- readonly name: "liquidationGracePeriod";
1561
+ readonly inputs: readonly [{
1562
+ readonly internalType: "address";
1563
+ readonly name: "user";
1564
+ readonly type: "address";
1565
+ }];
1566
+ readonly name: "getUserDepositsInStabilityPool";
884
1567
  readonly outputs: readonly [{
885
1568
  readonly internalType: "uint256";
886
1569
  readonly name: "";
@@ -890,11 +1573,55 @@ export declare class LendingPool__factory extends ContractFactory {
890
1573
  readonly type: "function";
891
1574
  }, {
892
1575
  readonly inputs: readonly [{
1576
+ readonly internalType: "uint256";
1577
+ readonly name: "nftId";
1578
+ readonly type: "uint256";
1579
+ }];
1580
+ readonly name: "getUserOfDepositedNFT";
1581
+ readonly outputs: readonly [{
893
1582
  readonly internalType: "address";
894
1583
  readonly name: "";
895
1584
  readonly type: "address";
896
1585
  }];
897
- readonly name: "liquidationStartTime";
1586
+ readonly stateMutability: "view";
1587
+ readonly type: "function";
1588
+ }, {
1589
+ readonly inputs: readonly [];
1590
+ readonly name: "healthFactorLiquidationThreshold";
1591
+ readonly outputs: readonly [{
1592
+ readonly internalType: "uint256";
1593
+ readonly name: "";
1594
+ readonly type: "uint256";
1595
+ }];
1596
+ readonly stateMutability: "view";
1597
+ readonly type: "function";
1598
+ }, {
1599
+ readonly inputs: readonly [{
1600
+ readonly internalType: "address";
1601
+ readonly name: "userAddress";
1602
+ readonly type: "address";
1603
+ }, {
1604
+ readonly internalType: "uint256";
1605
+ readonly name: "tokenId";
1606
+ readonly type: "uint256";
1607
+ }];
1608
+ readonly name: "initiateLiquidation";
1609
+ readonly outputs: readonly [];
1610
+ readonly stateMutability: "nonpayable";
1611
+ readonly type: "function";
1612
+ }, {
1613
+ readonly inputs: readonly [];
1614
+ readonly name: "insuranceFee";
1615
+ readonly outputs: readonly [{
1616
+ readonly internalType: "uint256";
1617
+ readonly name: "";
1618
+ readonly type: "uint256";
1619
+ }];
1620
+ readonly stateMutability: "view";
1621
+ readonly type: "function";
1622
+ }, {
1623
+ readonly inputs: readonly [];
1624
+ readonly name: "liquidationGracePeriod";
898
1625
  readonly outputs: readonly [{
899
1626
  readonly internalType: "uint256";
900
1627
  readonly name: "";
@@ -974,6 +1701,44 @@ export declare class LendingPool__factory extends ContractFactory {
974
1701
  }];
975
1702
  readonly stateMutability: "view";
976
1703
  readonly type: "function";
1704
+ }, {
1705
+ readonly inputs: readonly [{
1706
+ readonly internalType: "address";
1707
+ readonly name: "";
1708
+ readonly type: "address";
1709
+ }, {
1710
+ readonly internalType: "uint256";
1711
+ readonly name: "";
1712
+ readonly type: "uint256";
1713
+ }];
1714
+ readonly name: "positions";
1715
+ readonly outputs: readonly [{
1716
+ readonly internalType: "uint256";
1717
+ readonly name: "rawDebtBalance";
1718
+ readonly type: "uint256";
1719
+ }, {
1720
+ readonly internalType: "bool";
1721
+ readonly name: "isUnderLiquidation";
1722
+ readonly type: "bool";
1723
+ }, {
1724
+ readonly internalType: "uint256";
1725
+ readonly name: "liquidationStartTime";
1726
+ readonly type: "uint256";
1727
+ }, {
1728
+ readonly internalType: "uint256";
1729
+ readonly name: "positionIndex";
1730
+ readonly type: "uint256";
1731
+ }, {
1732
+ readonly internalType: "bool";
1733
+ readonly name: "isInsured";
1734
+ readonly type: "bool";
1735
+ }, {
1736
+ readonly internalType: "uint256";
1737
+ readonly name: "rawInsuredBalance";
1738
+ readonly type: "uint256";
1739
+ }];
1740
+ readonly stateMutability: "view";
1741
+ readonly type: "function";
977
1742
  }, {
978
1743
  readonly inputs: readonly [];
979
1744
  readonly name: "priceOracle";
@@ -1060,6 +1825,10 @@ export declare class LendingPool__factory extends ContractFactory {
1060
1825
  readonly type: "function";
1061
1826
  }, {
1062
1827
  readonly inputs: readonly [{
1828
+ readonly internalType: "uint256";
1829
+ readonly name: "tokenId";
1830
+ readonly type: "uint256";
1831
+ }, {
1063
1832
  readonly internalType: "uint256";
1064
1833
  readonly name: "amount";
1065
1834
  readonly type: "uint256";
@@ -1070,6 +1839,10 @@ export declare class LendingPool__factory extends ContractFactory {
1070
1839
  readonly type: "function";
1071
1840
  }, {
1072
1841
  readonly inputs: readonly [{
1842
+ readonly internalType: "uint256";
1843
+ readonly name: "tokenId";
1844
+ readonly type: "uint256";
1845
+ }, {
1073
1846
  readonly internalType: "uint256";
1074
1847
  readonly name: "amount";
1075
1848
  readonly type: "uint256";
@@ -1148,13 +1921,31 @@ export declare class LendingPool__factory extends ContractFactory {
1148
1921
  }];
1149
1922
  readonly stateMutability: "view";
1150
1923
  readonly type: "function";
1924
+ }, {
1925
+ readonly inputs: readonly [];
1926
+ readonly name: "rewardData";
1927
+ readonly outputs: readonly [{
1928
+ readonly internalType: "contract IERC20";
1929
+ readonly name: "rewardToken";
1930
+ readonly type: "address";
1931
+ }, {
1932
+ readonly internalType: "uint256";
1933
+ readonly name: "rewardPerShare";
1934
+ readonly type: "uint256";
1935
+ }, {
1936
+ readonly internalType: "uint256";
1937
+ readonly name: "lastUpdateTime";
1938
+ readonly type: "uint256";
1939
+ }];
1940
+ readonly stateMutability: "view";
1941
+ readonly type: "function";
1151
1942
  }, {
1152
1943
  readonly inputs: readonly [{
1153
1944
  readonly internalType: "address";
1154
- readonly name: "newVault";
1945
+ readonly name: "newFeeCollector";
1155
1946
  readonly type: "address";
1156
1947
  }];
1157
- readonly name: "setCurveVault";
1948
+ readonly name: "setFeeCollector";
1158
1949
  readonly outputs: readonly [];
1159
1950
  readonly stateMutability: "nonpayable";
1160
1951
  readonly type: "function";
@@ -1194,11 +1985,11 @@ export declare class LendingPool__factory extends ContractFactory {
1194
1985
  readonly type: "function";
1195
1986
  }, {
1196
1987
  readonly inputs: readonly [{
1197
- readonly internalType: "uint256";
1198
- readonly name: "newProtocolFeeRate";
1199
- readonly type: "uint256";
1988
+ readonly internalType: "address";
1989
+ readonly name: "rewardToken";
1990
+ readonly type: "address";
1200
1991
  }];
1201
- readonly name: "setProtocolFeeRate";
1992
+ readonly name: "setRewardToken";
1202
1993
  readonly outputs: readonly [];
1203
1994
  readonly stateMutability: "nonpayable";
1204
1995
  readonly type: "function";
@@ -1213,22 +2004,22 @@ export declare class LendingPool__factory extends ContractFactory {
1213
2004
  readonly stateMutability: "nonpayable";
1214
2005
  readonly type: "function";
1215
2006
  }, {
1216
- readonly inputs: readonly [];
1217
- readonly name: "stabilityPool";
1218
- readonly outputs: readonly [{
2007
+ readonly inputs: readonly [{
1219
2008
  readonly internalType: "address";
1220
- readonly name: "";
2009
+ readonly name: "newVault";
1221
2010
  readonly type: "address";
1222
2011
  }];
1223
- readonly stateMutability: "view";
2012
+ readonly name: "setVault";
2013
+ readonly outputs: readonly [];
2014
+ readonly stateMutability: "nonpayable";
1224
2015
  readonly type: "function";
1225
2016
  }, {
1226
2017
  readonly inputs: readonly [];
1227
- readonly name: "totalVaultDeposits";
2018
+ readonly name: "stabilityPool";
1228
2019
  readonly outputs: readonly [{
1229
- readonly internalType: "uint256";
2020
+ readonly internalType: "address";
1230
2021
  readonly name: "";
1231
- readonly type: "uint256";
2022
+ readonly type: "address";
1232
2023
  }];
1233
2024
  readonly stateMutability: "view";
1234
2025
  readonly type: "function";
@@ -1268,6 +2059,16 @@ export declare class LendingPool__factory extends ContractFactory {
1268
2059
  readonly outputs: readonly [];
1269
2060
  readonly stateMutability: "nonpayable";
1270
2061
  readonly type: "function";
2062
+ }, {
2063
+ readonly inputs: readonly [{
2064
+ readonly internalType: "address";
2065
+ readonly name: "user";
2066
+ readonly type: "address";
2067
+ }];
2068
+ readonly name: "updateUserReward";
2069
+ readonly outputs: readonly [];
2070
+ readonly stateMutability: "nonpayable";
2071
+ readonly type: "function";
1271
2072
  }, {
1272
2073
  readonly inputs: readonly [{
1273
2074
  readonly internalType: "address";
@@ -1277,15 +2078,47 @@ export declare class LendingPool__factory extends ContractFactory {
1277
2078
  readonly name: "userData";
1278
2079
  readonly outputs: readonly [{
1279
2080
  readonly internalType: "uint256";
1280
- readonly name: "scaledDebtBalance";
2081
+ readonly name: "scaledDeposits";
2082
+ readonly type: "uint256";
2083
+ }];
2084
+ readonly stateMutability: "view";
2085
+ readonly type: "function";
2086
+ }, {
2087
+ readonly inputs: readonly [];
2088
+ readonly name: "vault";
2089
+ readonly outputs: readonly [{
2090
+ readonly internalType: "contract IBaseVault";
2091
+ readonly name: "";
2092
+ readonly type: "address";
2093
+ }];
2094
+ readonly stateMutability: "view";
2095
+ readonly type: "function";
2096
+ }, {
2097
+ readonly inputs: readonly [];
2098
+ readonly name: "vaultRewards";
2099
+ readonly outputs: readonly [{
2100
+ readonly internalType: "uint256";
2101
+ readonly name: "totalDeposits";
1281
2102
  readonly type: "uint256";
1282
2103
  }, {
1283
- readonly internalType: "bool";
1284
- readonly name: "underLiquidation";
1285
- readonly type: "bool";
2104
+ readonly internalType: "uint256";
2105
+ readonly name: "unclaimedRewards";
2106
+ readonly type: "uint256";
1286
2107
  }, {
1287
2108
  readonly internalType: "uint256";
1288
- readonly name: "liquidationStartTime";
2109
+ readonly name: "lastClaimTime";
2110
+ readonly type: "uint256";
2111
+ }, {
2112
+ readonly internalType: "uint256";
2113
+ readonly name: "lastSharePrice";
2114
+ readonly type: "uint256";
2115
+ }, {
2116
+ readonly internalType: "uint256";
2117
+ readonly name: "lastWithdrawalTime";
2118
+ readonly type: "uint256";
2119
+ }, {
2120
+ readonly internalType: "uint256";
2121
+ readonly name: "lastDepositTime";
1289
2122
  readonly type: "uint256";
1290
2123
  }];
1291
2124
  readonly stateMutability: "view";