@pendle/core-v2 0.6.7 → 0.6.9

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 (261) hide show
  1. package/build/artifacts/contracts/interfaces/IPGauge.sol/IPGauge.dbg.json +4 -0
  2. package/build/artifacts/contracts/interfaces/IPGauge.sol/IPGauge.json +113 -0
  3. package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.dbg.json +4 -0
  4. package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.json +43 -0
  5. package/build/artifacts/contracts/interfaces/IPVotingEscrow.sol/IPVotingEscrow.dbg.json +4 -0
  6. package/build/artifacts/contracts/interfaces/IPVotingEscrow.sol/IPVotingEscrow.json +167 -0
  7. package/build/artifacts/contracts/interfaces/IPVotingEscrowController.sol/IPVotingEscrowController.dbg.json +4 -0
  8. package/build/artifacts/contracts/interfaces/IPVotingEscrowController.sol/IPVotingEscrowController.json +61 -0
  9. package/build/artifacts/contracts/interfaces/IVePToken.sol/IVePToken.dbg.json +1 -1
  10. package/build/artifacts/contracts/interfaces/IVotingEscrowPendle.sol/IVotingEscrowPendle.dbg.json +1 -1
  11. package/contracts/interfaces/IPGauge.sol +32 -0
  12. package/contracts/interfaces/IPVeToken.sol +14 -0
  13. package/contracts/interfaces/IPVotingEscrow.sol +32 -0
  14. package/contracts/interfaces/IPVotingEscrowController.sol +14 -0
  15. package/package.json +1 -1
  16. package/typechain-types/ActionSCYAndYOBase.ts +223 -0
  17. package/typechain-types/AggregatorV2V3Interface.ts +380 -0
  18. package/typechain-types/BenqiChainlinkOracle.ts +362 -0
  19. package/typechain-types/BoringOwnable.ts +194 -0
  20. package/typechain-types/BoringOwnableData.ts +100 -0
  21. package/typechain-types/BoringOwnableUpg.ts +194 -0
  22. package/typechain-types/BoringOwnableUpgData.ts +100 -0
  23. package/typechain-types/Comptroller.ts +2860 -0
  24. package/typechain-types/ComptrollerErrorReporter.ts +70 -0
  25. package/typechain-types/ComptrollerInterface.ts +881 -0
  26. package/typechain-types/ComptrollerVXStorage.ts +781 -0
  27. package/typechain-types/CrosschainContract.ts +113 -0
  28. package/typechain-types/CrosschainReceiver.ts +347 -0
  29. package/typechain-types/CrosschainSender.ts +210 -0
  30. package/typechain-types/EIP20Interface.ts +337 -0
  31. package/typechain-types/EIP20NonStandardInterface.ts +298 -0
  32. package/typechain-types/ERC20Burnable.ts +473 -0
  33. package/typechain-types/ERC20Locker.ts +91 -0
  34. package/typechain-types/ERC20Premined.ts +473 -0
  35. package/typechain-types/ERC20PresetFixedSupply.ts +473 -0
  36. package/typechain-types/EpochController.ts +195 -0
  37. package/typechain-types/FundKeeper.ts +347 -0
  38. package/typechain-types/GaugeTypeControllerAbstract.ts +546 -0
  39. package/typechain-types/GaugeTypeControllerCrosschain.ts +733 -0
  40. package/typechain-types/GaugeTypeControllerMainchain.ts +604 -0
  41. package/typechain-types/IGaugeController.ts +99 -0
  42. package/typechain-types/ILiquidYieldToken.ts +639 -0
  43. package/typechain-types/ILiquidYieldTokenWrap.ts +790 -0
  44. package/typechain-types/IMessageBus.ts +543 -0
  45. package/typechain-types/IMessageReceiverApp.ts +110 -0
  46. package/typechain-types/IPFlashCallback.ts +115 -0
  47. package/typechain-types/IPGauge.ts +241 -0
  48. package/typechain-types/IPLiquidYieldToken.ts +641 -0
  49. package/typechain-types/IPMarketCallback.ts +107 -0
  50. package/typechain-types/IPOwnershipToken.ts +488 -0
  51. package/typechain-types/IPRouterCore.ts +769 -0
  52. package/typechain-types/IPRouterRedeem.ts +155 -0
  53. package/typechain-types/IPRouterYT.ts +489 -0
  54. package/typechain-types/IPVeToken.ts +103 -0
  55. package/typechain-types/IPVotingEscrow.ts +297 -0
  56. package/typechain-types/IPVotingEscrowController.ts +154 -0
  57. package/typechain-types/IPermissionsV2.ts +87 -0
  58. package/typechain-types/IRainbowBridge.ts +91 -0
  59. package/typechain-types/ISCYRewardIndex.ts +695 -0
  60. package/typechain-types/IVEPendleToken.ts +121 -0
  61. package/typechain-types/IXPendle.ts +114 -0
  62. package/typechain-types/InterestRateModel.ts +178 -0
  63. package/typechain-types/JumpRateModel.ts +347 -0
  64. package/typechain-types/LYTBase.ts +721 -0
  65. package/typechain-types/LYTBaseWithRewards.ts +806 -0
  66. package/typechain-types/LYTWrap.ts +872 -0
  67. package/typechain-types/LYTWrapWithRewards.ts +979 -0
  68. package/typechain-types/LiquidityMining.ts +468 -0
  69. package/typechain-types/Maximillion.ts +145 -0
  70. package/typechain-types/Ownable.ts +160 -0
  71. package/typechain-types/PendleAaveV3LYT.ts +808 -0
  72. package/typechain-types/PendleBenQiErc20LYT.ts +901 -0
  73. package/typechain-types/PendleBenqiLiquidYieldToken.ts +1013 -0
  74. package/typechain-types/PendleBtrflyLYT.ts +781 -0
  75. package/typechain-types/PendleGauge.ts +469 -0
  76. package/typechain-types/PendleJoeSwapHelper.ts +92 -0
  77. package/typechain-types/PendleLYTMockYT.ts +894 -0
  78. package/typechain-types/PendleLiquidYieldToken.ts +814 -0
  79. package/typechain-types/PendleLiquidYieldTokenBase.ts +941 -0
  80. package/typechain-types/PendleOwnershipToken.ts +598 -0
  81. package/typechain-types/PendleRouter01.ts +184 -0
  82. package/typechain-types/PendleRouter02.ts +564 -0
  83. package/typechain-types/PendleRouter03.ts +224 -0
  84. package/typechain-types/PendleRouterBase.ts +126 -0
  85. package/typechain-types/PendleRouterCore.ts +328 -0
  86. package/typechain-types/PendleRouterCoreUpg.ts +798 -0
  87. package/typechain-types/PendleRouterLytAndForge.ts +331 -0
  88. package/typechain-types/PendleRouterMarketBase.ts +82 -0
  89. package/typechain-types/PendleRouterOT.ts +463 -0
  90. package/typechain-types/PendleRouterProxy.ts +335 -0
  91. package/typechain-types/PendleRouterRawTokenOT.ts +865 -0
  92. package/typechain-types/PendleRouterRawTokenYT.ts +520 -0
  93. package/typechain-types/PendleRouterRedeemUpg.ts +125 -0
  94. package/typechain-types/PendleRouterSCYAndForgeBaseUpg.ts +98 -0
  95. package/typechain-types/PendleRouterStaticUpg.ts +399 -0
  96. package/typechain-types/PendleRouterYT.ts +227 -0
  97. package/typechain-types/PendleRouterYTBaseUpg.ts +134 -0
  98. package/typechain-types/PendleRouterYTUpg.ts +537 -0
  99. package/typechain-types/PendleYTLYTBenqi.ts +863 -0
  100. package/typechain-types/PendleYearnVaultLYT.ts +723 -0
  101. package/typechain-types/PermissionsV2.ts +87 -0
  102. package/typechain-types/PermlessAbstract.ts +57 -0
  103. package/typechain-types/PglStakingContract.ts +662 -0
  104. package/typechain-types/PglStakingContractProxy.ts +256 -0
  105. package/typechain-types/PglStakingContractProxyStorage.ts +136 -0
  106. package/typechain-types/PglStakingContractStorage.ts +397 -0
  107. package/typechain-types/PriceOracle.ts +116 -0
  108. package/typechain-types/ProtocolFakeUser.ts +105 -0
  109. package/typechain-types/Qi.ts +760 -0
  110. package/typechain-types/QiAvax.ts +1720 -0
  111. package/typechain-types/QiDelegateInterface.ts +145 -0
  112. package/typechain-types/QiDelegationStorage.ts +82 -0
  113. package/typechain-types/QiDelegatorInterface.ts +149 -0
  114. package/typechain-types/QiErc20.ts +1846 -0
  115. package/typechain-types/QiErc20Delegate.ts +1926 -0
  116. package/typechain-types/QiErc20Delegator.ts +1885 -0
  117. package/typechain-types/QiErc20Interface.ts +382 -0
  118. package/typechain-types/QiErc20Storage.ts +79 -0
  119. package/typechain-types/QiToken.ts +1475 -0
  120. package/typechain-types/QiTokenInterface.ts +1419 -0
  121. package/typechain-types/QiTokenSaleDistributor.ts +771 -0
  122. package/typechain-types/QiTokenSaleDistributorProxy.ts +256 -0
  123. package/typechain-types/QiTokenSaleDistributorProxyStorage.ts +136 -0
  124. package/typechain-types/QiTokenSaleDistributorStorage.ts +401 -0
  125. package/typechain-types/QiTokenStorage.ts +311 -0
  126. package/typechain-types/ReentrancyGuard.ts +52 -0
  127. package/typechain-types/SingleGaugeTypeController.ts +478 -0
  128. package/typechain-types/TokenErrorReporter.ts +70 -0
  129. package/typechain-types/Unitroller.ts +356 -0
  130. package/typechain-types/UnitrollerAdminStorage.ts +143 -0
  131. package/typechain-types/VePendle.ts +1156 -0
  132. package/typechain-types/VePendleCrosschain.ts +969 -0
  133. package/typechain-types/VePendleToken.ts +688 -0
  134. package/typechain-types/VotingController.ts +883 -0
  135. package/typechain-types/WETH9.ts +414 -0
  136. package/typechain-types/WhitePaperInterestRateModel.ts +304 -0
  137. package/typechain-types/XPendle.ts +618 -0
  138. package/typechain-types/factories/ActionSCYAndYOBase__factory.ts +200 -0
  139. package/typechain-types/factories/AggregatorV2V3Interface__factory.ts +288 -0
  140. package/typechain-types/factories/BenqiChainlinkOracle__factory.ts +311 -0
  141. package/typechain-types/factories/BoringOwnableData__factory.ts +90 -0
  142. package/typechain-types/factories/BoringOwnableUpgData__factory.ts +94 -0
  143. package/typechain-types/factories/BoringOwnableUpg__factory.ts +139 -0
  144. package/typechain-types/factories/BoringOwnable__factory.ts +149 -0
  145. package/typechain-types/factories/ComptrollerErrorReporter__factory.ts +93 -0
  146. package/typechain-types/factories/ComptrollerInterface__factory.ts +595 -0
  147. package/typechain-types/factories/ComptrollerVXStorage__factory.ts +610 -0
  148. package/typechain-types/factories/Comptroller__factory.ts +2189 -0
  149. package/typechain-types/factories/CrosschainContract__factory.ts +52 -0
  150. package/typechain-types/factories/CrosschainReceiver__factory.ts +187 -0
  151. package/typechain-types/factories/CrosschainSender__factory.ts +104 -0
  152. package/typechain-types/factories/EIP20Interface__factory.ts +248 -0
  153. package/typechain-types/factories/EIP20NonStandardInterface__factory.ts +213 -0
  154. package/typechain-types/factories/ERC20Burnable__factory.ts +324 -0
  155. package/typechain-types/factories/ERC20Locker__factory.ts +73 -0
  156. package/typechain-types/factories/ERC20Premined__factory.ts +393 -0
  157. package/typechain-types/factories/ERC20PresetFixedSupply__factory.ts +422 -0
  158. package/typechain-types/factories/EpochController__factory.ts +170 -0
  159. package/typechain-types/factories/FundKeeper__factory.ts +212 -0
  160. package/typechain-types/factories/GaugeTypeControllerAbstract__factory.ts +387 -0
  161. package/typechain-types/factories/GaugeTypeControllerCrosschain__factory.ts +522 -0
  162. package/typechain-types/factories/GaugeTypeControllerMainchain__factory.ts +431 -0
  163. package/typechain-types/factories/IGaugeController__factory.ts +45 -0
  164. package/typechain-types/factories/ILiquidYieldTokenWrap__factory.ts +533 -0
  165. package/typechain-types/factories/ILiquidYieldToken__factory.ts +429 -0
  166. package/typechain-types/factories/IMessageBus__factory.ts +396 -0
  167. package/typechain-types/factories/IMessageReceiverApp__factory.ts +55 -0
  168. package/typechain-types/factories/IPFlashCallback__factory.ts +49 -0
  169. package/typechain-types/factories/IPGauge__factory.ts +125 -0
  170. package/typechain-types/factories/IPLiquidYieldToken__factory.ts +433 -0
  171. package/typechain-types/factories/IPMarketCallback__factory.ts +55 -0
  172. package/typechain-types/factories/IPOwnershipToken__factory.ts +349 -0
  173. package/typechain-types/factories/IPRouterCore__factory.ts +531 -0
  174. package/typechain-types/factories/IPRouterRedeem__factory.ts +72 -0
  175. package/typechain-types/factories/IPRouterYT__factory.ts +305 -0
  176. package/typechain-types/factories/IPVeToken__factory.ts +55 -0
  177. package/typechain-types/factories/IPVotingEscrowController__factory.ts +80 -0
  178. package/typechain-types/factories/IPVotingEscrow__factory.ts +182 -0
  179. package/typechain-types/factories/IPermissionsV2__factory.ts +39 -0
  180. package/typechain-types/factories/IRainbowBridge__factory.ts +76 -0
  181. package/typechain-types/factories/ISCYRewardIndex__factory.ts +465 -0
  182. package/typechain-types/factories/IVEPendleToken__factory.ts +71 -0
  183. package/typechain-types/factories/IXPendle__factory.ts +61 -0
  184. package/typechain-types/factories/InterestRateModel__factory.ts +108 -0
  185. package/typechain-types/factories/JumpRateModel__factory.ts +334 -0
  186. package/typechain-types/factories/LYTBaseWithRewards__factory.ts +530 -0
  187. package/typechain-types/factories/LYTBase__factory.ts +474 -0
  188. package/typechain-types/factories/LYTWrapWithRewards__factory.ts +643 -0
  189. package/typechain-types/factories/LYTWrap__factory.ts +574 -0
  190. package/typechain-types/factories/LiquidityMining__factory.ts +367 -0
  191. package/typechain-types/factories/Maximillion__factory.ts +125 -0
  192. package/typechain-types/factories/Ownable__factory.ts +75 -0
  193. package/typechain-types/factories/PendleAaveV3LYT__factory.ts +657 -0
  194. package/typechain-types/factories/PendleBenQiErc20LYT__factory.ts +748 -0
  195. package/typechain-types/factories/PendleBenqiLiquidYieldToken__factory.ts +785 -0
  196. package/typechain-types/factories/PendleBtrflyLYT__factory.ts +647 -0
  197. package/typechain-types/factories/PendleGauge__factory.ts +383 -0
  198. package/typechain-types/factories/PendleJoeSwapHelper__factory.ts +52 -0
  199. package/typechain-types/factories/PendleLYTMockYT__factory.ts +732 -0
  200. package/typechain-types/factories/PendleLiquidYieldTokenBase__factory.ts +603 -0
  201. package/typechain-types/factories/PendleLiquidYieldToken__factory.ts +510 -0
  202. package/typechain-types/factories/PendleOwnershipToken__factory.ts +527 -0
  203. package/typechain-types/factories/PendleRouter01__factory.ts +152 -0
  204. package/typechain-types/factories/PendleRouter02__factory.ts +438 -0
  205. package/typechain-types/factories/PendleRouter03__factory.ts +190 -0
  206. package/typechain-types/factories/PendleRouterBase__factory.ts +68 -0
  207. package/typechain-types/factories/PendleRouterCoreUpg__factory.ts +635 -0
  208. package/typechain-types/factories/PendleRouterCore__factory.ts +268 -0
  209. package/typechain-types/factories/PendleRouterLytAndForge__factory.ts +294 -0
  210. package/typechain-types/factories/PendleRouterMarketBase__factory.ts +43 -0
  211. package/typechain-types/factories/PendleRouterOT__factory.ts +372 -0
  212. package/typechain-types/factories/PendleRouterProxy__factory.ts +285 -0
  213. package/typechain-types/factories/PendleRouterRawTokenOT__factory.ts +697 -0
  214. package/typechain-types/factories/PendleRouterRawTokenYT__factory.ts +431 -0
  215. package/typechain-types/factories/PendleRouterRedeemUpg__factory.ts +112 -0
  216. package/typechain-types/factories/PendleRouterSCYAndForgeBaseUpg__factory.ts +56 -0
  217. package/typechain-types/factories/PendleRouterStaticUpg__factory.ts +315 -0
  218. package/typechain-types/factories/PendleRouterYTBaseUpg__factory.ts +66 -0
  219. package/typechain-types/factories/PendleRouterYTUpg__factory.ts +422 -0
  220. package/typechain-types/factories/PendleRouterYT__factory.ts +184 -0
  221. package/typechain-types/factories/PendleYTLYTBenqi__factory.ts +713 -0
  222. package/typechain-types/factories/PendleYearnVaultLYT__factory.ts +586 -0
  223. package/typechain-types/factories/PermissionsV2__factory.ts +36 -0
  224. package/typechain-types/factories/PermlessAbstract__factory.ts +30 -0
  225. package/typechain-types/factories/PglStakingContractProxyStorage__factory.ts +130 -0
  226. package/typechain-types/factories/PglStakingContractProxy__factory.ts +187 -0
  227. package/typechain-types/factories/PglStakingContractStorage__factory.ts +309 -0
  228. package/typechain-types/factories/PglStakingContract__factory.ts +446 -0
  229. package/typechain-types/factories/PriceOracle__factory.ts +59 -0
  230. package/typechain-types/factories/ProtocolFakeUser__factory.ts +87 -0
  231. package/typechain-types/factories/QiAvax__factory.ts +1471 -0
  232. package/typechain-types/factories/QiDelegateInterface__factory.ts +65 -0
  233. package/typechain-types/factories/QiDelegationStorage__factory.ts +79 -0
  234. package/typechain-types/factories/QiDelegatorInterface__factory.ts +89 -0
  235. package/typechain-types/factories/QiErc20Delegate__factory.ts +1563 -0
  236. package/typechain-types/factories/QiErc20Delegator__factory.ts +1648 -0
  237. package/typechain-types/factories/QiErc20Interface__factory.ts +239 -0
  238. package/typechain-types/factories/QiErc20Storage__factory.ts +79 -0
  239. package/typechain-types/factories/QiErc20__factory.ts +1515 -0
  240. package/typechain-types/factories/QiTokenInterface__factory.ts +1182 -0
  241. package/typechain-types/factories/QiTokenSaleDistributorProxyStorage__factory.ts +124 -0
  242. package/typechain-types/factories/QiTokenSaleDistributorProxy__factory.ts +171 -0
  243. package/typechain-types/factories/QiTokenSaleDistributorStorage__factory.ts +289 -0
  244. package/typechain-types/factories/QiTokenSaleDistributor__factory.ts +480 -0
  245. package/typechain-types/factories/QiTokenStorage__factory.ts +274 -0
  246. package/typechain-types/factories/QiToken__factory.ts +1219 -0
  247. package/typechain-types/factories/Qi__factory.ts +648 -0
  248. package/typechain-types/factories/ReentrancyGuard__factory.ts +69 -0
  249. package/typechain-types/factories/SingleGaugeTypeController__factory.ts +341 -0
  250. package/typechain-types/factories/TokenErrorReporter__factory.ts +89 -0
  251. package/typechain-types/factories/UnitrollerAdminStorage__factory.ts +128 -0
  252. package/typechain-types/factories/Unitroller__factory.ts +305 -0
  253. package/typechain-types/factories/VePendleCrosschain__factory.ts +727 -0
  254. package/typechain-types/factories/VePendleToken__factory.ts +494 -0
  255. package/typechain-types/factories/VePendle__factory.ts +800 -0
  256. package/typechain-types/factories/VotingController__factory.ts +610 -0
  257. package/typechain-types/factories/WETH9__factory.ts +342 -0
  258. package/typechain-types/factories/WhitePaperInterestRateModel__factory.ts +281 -0
  259. package/typechain-types/factories/XPendle__factory.ts +473 -0
  260. package/typechain-types/hardhat.d.ts +72 -0
  261. package/typechain-types/index.ts +16 -0
@@ -0,0 +1,1515 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers";
5
+ import { Provider, TransactionRequest } from "@ethersproject/providers";
6
+ import type { QiErc20, QiErc20Interface } from "../QiErc20";
7
+
8
+ const _abi = [
9
+ {
10
+ anonymous: false,
11
+ inputs: [
12
+ {
13
+ indexed: false,
14
+ internalType: "uint256",
15
+ name: "cashPrior",
16
+ type: "uint256",
17
+ },
18
+ {
19
+ indexed: false,
20
+ internalType: "uint256",
21
+ name: "interestAccumulated",
22
+ type: "uint256",
23
+ },
24
+ {
25
+ indexed: false,
26
+ internalType: "uint256",
27
+ name: "borrowIndex",
28
+ type: "uint256",
29
+ },
30
+ {
31
+ indexed: false,
32
+ internalType: "uint256",
33
+ name: "totalBorrows",
34
+ type: "uint256",
35
+ },
36
+ ],
37
+ name: "AccrueInterest",
38
+ type: "event",
39
+ },
40
+ {
41
+ anonymous: false,
42
+ inputs: [
43
+ {
44
+ indexed: true,
45
+ internalType: "address",
46
+ name: "owner",
47
+ type: "address",
48
+ },
49
+ {
50
+ indexed: true,
51
+ internalType: "address",
52
+ name: "spender",
53
+ type: "address",
54
+ },
55
+ {
56
+ indexed: false,
57
+ internalType: "uint256",
58
+ name: "amount",
59
+ type: "uint256",
60
+ },
61
+ ],
62
+ name: "Approval",
63
+ type: "event",
64
+ },
65
+ {
66
+ anonymous: false,
67
+ inputs: [
68
+ {
69
+ indexed: false,
70
+ internalType: "address",
71
+ name: "borrower",
72
+ type: "address",
73
+ },
74
+ {
75
+ indexed: false,
76
+ internalType: "uint256",
77
+ name: "borrowAmount",
78
+ type: "uint256",
79
+ },
80
+ {
81
+ indexed: false,
82
+ internalType: "uint256",
83
+ name: "accountBorrows",
84
+ type: "uint256",
85
+ },
86
+ {
87
+ indexed: false,
88
+ internalType: "uint256",
89
+ name: "totalBorrows",
90
+ type: "uint256",
91
+ },
92
+ ],
93
+ name: "Borrow",
94
+ type: "event",
95
+ },
96
+ {
97
+ anonymous: false,
98
+ inputs: [
99
+ {
100
+ indexed: false,
101
+ internalType: "uint256",
102
+ name: "error",
103
+ type: "uint256",
104
+ },
105
+ {
106
+ indexed: false,
107
+ internalType: "uint256",
108
+ name: "info",
109
+ type: "uint256",
110
+ },
111
+ {
112
+ indexed: false,
113
+ internalType: "uint256",
114
+ name: "detail",
115
+ type: "uint256",
116
+ },
117
+ ],
118
+ name: "Failure",
119
+ type: "event",
120
+ },
121
+ {
122
+ anonymous: false,
123
+ inputs: [
124
+ {
125
+ indexed: false,
126
+ internalType: "address",
127
+ name: "liquidator",
128
+ type: "address",
129
+ },
130
+ {
131
+ indexed: false,
132
+ internalType: "address",
133
+ name: "borrower",
134
+ type: "address",
135
+ },
136
+ {
137
+ indexed: false,
138
+ internalType: "uint256",
139
+ name: "repayAmount",
140
+ type: "uint256",
141
+ },
142
+ {
143
+ indexed: false,
144
+ internalType: "address",
145
+ name: "qiTokenCollateral",
146
+ type: "address",
147
+ },
148
+ {
149
+ indexed: false,
150
+ internalType: "uint256",
151
+ name: "seizeTokens",
152
+ type: "uint256",
153
+ },
154
+ ],
155
+ name: "LiquidateBorrow",
156
+ type: "event",
157
+ },
158
+ {
159
+ anonymous: false,
160
+ inputs: [
161
+ {
162
+ indexed: false,
163
+ internalType: "address",
164
+ name: "minter",
165
+ type: "address",
166
+ },
167
+ {
168
+ indexed: false,
169
+ internalType: "uint256",
170
+ name: "mintAmount",
171
+ type: "uint256",
172
+ },
173
+ {
174
+ indexed: false,
175
+ internalType: "uint256",
176
+ name: "mintTokens",
177
+ type: "uint256",
178
+ },
179
+ ],
180
+ name: "Mint",
181
+ type: "event",
182
+ },
183
+ {
184
+ anonymous: false,
185
+ inputs: [
186
+ {
187
+ indexed: false,
188
+ internalType: "address",
189
+ name: "oldAdmin",
190
+ type: "address",
191
+ },
192
+ {
193
+ indexed: false,
194
+ internalType: "address",
195
+ name: "newAdmin",
196
+ type: "address",
197
+ },
198
+ ],
199
+ name: "NewAdmin",
200
+ type: "event",
201
+ },
202
+ {
203
+ anonymous: false,
204
+ inputs: [
205
+ {
206
+ indexed: false,
207
+ internalType: "contract ComptrollerInterface",
208
+ name: "oldComptroller",
209
+ type: "address",
210
+ },
211
+ {
212
+ indexed: false,
213
+ internalType: "contract ComptrollerInterface",
214
+ name: "newComptroller",
215
+ type: "address",
216
+ },
217
+ ],
218
+ name: "NewComptroller",
219
+ type: "event",
220
+ },
221
+ {
222
+ anonymous: false,
223
+ inputs: [
224
+ {
225
+ indexed: false,
226
+ internalType: "contract InterestRateModel",
227
+ name: "oldInterestRateModel",
228
+ type: "address",
229
+ },
230
+ {
231
+ indexed: false,
232
+ internalType: "contract InterestRateModel",
233
+ name: "newInterestRateModel",
234
+ type: "address",
235
+ },
236
+ ],
237
+ name: "NewMarketInterestRateModel",
238
+ type: "event",
239
+ },
240
+ {
241
+ anonymous: false,
242
+ inputs: [
243
+ {
244
+ indexed: false,
245
+ internalType: "address",
246
+ name: "oldPendingAdmin",
247
+ type: "address",
248
+ },
249
+ {
250
+ indexed: false,
251
+ internalType: "address",
252
+ name: "newPendingAdmin",
253
+ type: "address",
254
+ },
255
+ ],
256
+ name: "NewPendingAdmin",
257
+ type: "event",
258
+ },
259
+ {
260
+ anonymous: false,
261
+ inputs: [
262
+ {
263
+ indexed: false,
264
+ internalType: "uint256",
265
+ name: "oldProtocolSeizeShareMantissa",
266
+ type: "uint256",
267
+ },
268
+ {
269
+ indexed: false,
270
+ internalType: "uint256",
271
+ name: "newProtocolSeizeShareMantissa",
272
+ type: "uint256",
273
+ },
274
+ ],
275
+ name: "NewProtocolSeizeShare",
276
+ type: "event",
277
+ },
278
+ {
279
+ anonymous: false,
280
+ inputs: [
281
+ {
282
+ indexed: false,
283
+ internalType: "uint256",
284
+ name: "oldReserveFactorMantissa",
285
+ type: "uint256",
286
+ },
287
+ {
288
+ indexed: false,
289
+ internalType: "uint256",
290
+ name: "newReserveFactorMantissa",
291
+ type: "uint256",
292
+ },
293
+ ],
294
+ name: "NewReserveFactor",
295
+ type: "event",
296
+ },
297
+ {
298
+ anonymous: false,
299
+ inputs: [
300
+ {
301
+ indexed: false,
302
+ internalType: "address",
303
+ name: "redeemer",
304
+ type: "address",
305
+ },
306
+ {
307
+ indexed: false,
308
+ internalType: "uint256",
309
+ name: "redeemAmount",
310
+ type: "uint256",
311
+ },
312
+ {
313
+ indexed: false,
314
+ internalType: "uint256",
315
+ name: "redeemTokens",
316
+ type: "uint256",
317
+ },
318
+ ],
319
+ name: "Redeem",
320
+ type: "event",
321
+ },
322
+ {
323
+ anonymous: false,
324
+ inputs: [
325
+ {
326
+ indexed: false,
327
+ internalType: "address",
328
+ name: "payer",
329
+ type: "address",
330
+ },
331
+ {
332
+ indexed: false,
333
+ internalType: "address",
334
+ name: "borrower",
335
+ type: "address",
336
+ },
337
+ {
338
+ indexed: false,
339
+ internalType: "uint256",
340
+ name: "repayAmount",
341
+ type: "uint256",
342
+ },
343
+ {
344
+ indexed: false,
345
+ internalType: "uint256",
346
+ name: "accountBorrows",
347
+ type: "uint256",
348
+ },
349
+ {
350
+ indexed: false,
351
+ internalType: "uint256",
352
+ name: "totalBorrows",
353
+ type: "uint256",
354
+ },
355
+ ],
356
+ name: "RepayBorrow",
357
+ type: "event",
358
+ },
359
+ {
360
+ anonymous: false,
361
+ inputs: [
362
+ {
363
+ indexed: false,
364
+ internalType: "address",
365
+ name: "benefactor",
366
+ type: "address",
367
+ },
368
+ {
369
+ indexed: false,
370
+ internalType: "uint256",
371
+ name: "addAmount",
372
+ type: "uint256",
373
+ },
374
+ {
375
+ indexed: false,
376
+ internalType: "uint256",
377
+ name: "newTotalReserves",
378
+ type: "uint256",
379
+ },
380
+ ],
381
+ name: "ReservesAdded",
382
+ type: "event",
383
+ },
384
+ {
385
+ anonymous: false,
386
+ inputs: [
387
+ {
388
+ indexed: false,
389
+ internalType: "address",
390
+ name: "admin",
391
+ type: "address",
392
+ },
393
+ {
394
+ indexed: false,
395
+ internalType: "uint256",
396
+ name: "reduceAmount",
397
+ type: "uint256",
398
+ },
399
+ {
400
+ indexed: false,
401
+ internalType: "uint256",
402
+ name: "newTotalReserves",
403
+ type: "uint256",
404
+ },
405
+ ],
406
+ name: "ReservesReduced",
407
+ type: "event",
408
+ },
409
+ {
410
+ anonymous: false,
411
+ inputs: [
412
+ {
413
+ indexed: true,
414
+ internalType: "address",
415
+ name: "from",
416
+ type: "address",
417
+ },
418
+ {
419
+ indexed: true,
420
+ internalType: "address",
421
+ name: "to",
422
+ type: "address",
423
+ },
424
+ {
425
+ indexed: false,
426
+ internalType: "uint256",
427
+ name: "amount",
428
+ type: "uint256",
429
+ },
430
+ ],
431
+ name: "Transfer",
432
+ type: "event",
433
+ },
434
+ {
435
+ constant: false,
436
+ inputs: [],
437
+ name: "_acceptAdmin",
438
+ outputs: [
439
+ {
440
+ internalType: "uint256",
441
+ name: "",
442
+ type: "uint256",
443
+ },
444
+ ],
445
+ payable: false,
446
+ stateMutability: "nonpayable",
447
+ type: "function",
448
+ },
449
+ {
450
+ constant: false,
451
+ inputs: [
452
+ {
453
+ internalType: "uint256",
454
+ name: "addAmount",
455
+ type: "uint256",
456
+ },
457
+ ],
458
+ name: "_addReserves",
459
+ outputs: [
460
+ {
461
+ internalType: "uint256",
462
+ name: "",
463
+ type: "uint256",
464
+ },
465
+ ],
466
+ payable: false,
467
+ stateMutability: "nonpayable",
468
+ type: "function",
469
+ },
470
+ {
471
+ constant: false,
472
+ inputs: [
473
+ {
474
+ internalType: "uint256",
475
+ name: "reduceAmount",
476
+ type: "uint256",
477
+ },
478
+ ],
479
+ name: "_reduceReserves",
480
+ outputs: [
481
+ {
482
+ internalType: "uint256",
483
+ name: "",
484
+ type: "uint256",
485
+ },
486
+ ],
487
+ payable: false,
488
+ stateMutability: "nonpayable",
489
+ type: "function",
490
+ },
491
+ {
492
+ constant: false,
493
+ inputs: [
494
+ {
495
+ internalType: "contract ComptrollerInterface",
496
+ name: "newComptroller",
497
+ type: "address",
498
+ },
499
+ ],
500
+ name: "_setComptroller",
501
+ outputs: [
502
+ {
503
+ internalType: "uint256",
504
+ name: "",
505
+ type: "uint256",
506
+ },
507
+ ],
508
+ payable: false,
509
+ stateMutability: "nonpayable",
510
+ type: "function",
511
+ },
512
+ {
513
+ constant: false,
514
+ inputs: [
515
+ {
516
+ internalType: "contract InterestRateModel",
517
+ name: "newInterestRateModel",
518
+ type: "address",
519
+ },
520
+ ],
521
+ name: "_setInterestRateModel",
522
+ outputs: [
523
+ {
524
+ internalType: "uint256",
525
+ name: "",
526
+ type: "uint256",
527
+ },
528
+ ],
529
+ payable: false,
530
+ stateMutability: "nonpayable",
531
+ type: "function",
532
+ },
533
+ {
534
+ constant: false,
535
+ inputs: [
536
+ {
537
+ internalType: "address payable",
538
+ name: "newPendingAdmin",
539
+ type: "address",
540
+ },
541
+ ],
542
+ name: "_setPendingAdmin",
543
+ outputs: [
544
+ {
545
+ internalType: "uint256",
546
+ name: "",
547
+ type: "uint256",
548
+ },
549
+ ],
550
+ payable: false,
551
+ stateMutability: "nonpayable",
552
+ type: "function",
553
+ },
554
+ {
555
+ constant: false,
556
+ inputs: [
557
+ {
558
+ internalType: "uint256",
559
+ name: "newProtocolSeizeShareMantissa",
560
+ type: "uint256",
561
+ },
562
+ ],
563
+ name: "_setProtocolSeizeShare",
564
+ outputs: [
565
+ {
566
+ internalType: "uint256",
567
+ name: "",
568
+ type: "uint256",
569
+ },
570
+ ],
571
+ payable: false,
572
+ stateMutability: "nonpayable",
573
+ type: "function",
574
+ },
575
+ {
576
+ constant: false,
577
+ inputs: [
578
+ {
579
+ internalType: "uint256",
580
+ name: "newReserveFactorMantissa",
581
+ type: "uint256",
582
+ },
583
+ ],
584
+ name: "_setReserveFactor",
585
+ outputs: [
586
+ {
587
+ internalType: "uint256",
588
+ name: "",
589
+ type: "uint256",
590
+ },
591
+ ],
592
+ payable: false,
593
+ stateMutability: "nonpayable",
594
+ type: "function",
595
+ },
596
+ {
597
+ constant: true,
598
+ inputs: [],
599
+ name: "accrualBlockTimestamp",
600
+ outputs: [
601
+ {
602
+ internalType: "uint256",
603
+ name: "",
604
+ type: "uint256",
605
+ },
606
+ ],
607
+ payable: false,
608
+ stateMutability: "view",
609
+ type: "function",
610
+ },
611
+ {
612
+ constant: false,
613
+ inputs: [],
614
+ name: "accrueInterest",
615
+ outputs: [
616
+ {
617
+ internalType: "uint256",
618
+ name: "",
619
+ type: "uint256",
620
+ },
621
+ ],
622
+ payable: false,
623
+ stateMutability: "nonpayable",
624
+ type: "function",
625
+ },
626
+ {
627
+ constant: true,
628
+ inputs: [],
629
+ name: "admin",
630
+ outputs: [
631
+ {
632
+ internalType: "address payable",
633
+ name: "",
634
+ type: "address",
635
+ },
636
+ ],
637
+ payable: false,
638
+ stateMutability: "view",
639
+ type: "function",
640
+ },
641
+ {
642
+ constant: true,
643
+ inputs: [
644
+ {
645
+ internalType: "address",
646
+ name: "owner",
647
+ type: "address",
648
+ },
649
+ {
650
+ internalType: "address",
651
+ name: "spender",
652
+ type: "address",
653
+ },
654
+ ],
655
+ name: "allowance",
656
+ outputs: [
657
+ {
658
+ internalType: "uint256",
659
+ name: "",
660
+ type: "uint256",
661
+ },
662
+ ],
663
+ payable: false,
664
+ stateMutability: "view",
665
+ type: "function",
666
+ },
667
+ {
668
+ constant: false,
669
+ inputs: [
670
+ {
671
+ internalType: "address",
672
+ name: "spender",
673
+ type: "address",
674
+ },
675
+ {
676
+ internalType: "uint256",
677
+ name: "amount",
678
+ type: "uint256",
679
+ },
680
+ ],
681
+ name: "approve",
682
+ outputs: [
683
+ {
684
+ internalType: "bool",
685
+ name: "",
686
+ type: "bool",
687
+ },
688
+ ],
689
+ payable: false,
690
+ stateMutability: "nonpayable",
691
+ type: "function",
692
+ },
693
+ {
694
+ constant: true,
695
+ inputs: [
696
+ {
697
+ internalType: "address",
698
+ name: "owner",
699
+ type: "address",
700
+ },
701
+ ],
702
+ name: "balanceOf",
703
+ outputs: [
704
+ {
705
+ internalType: "uint256",
706
+ name: "",
707
+ type: "uint256",
708
+ },
709
+ ],
710
+ payable: false,
711
+ stateMutability: "view",
712
+ type: "function",
713
+ },
714
+ {
715
+ constant: false,
716
+ inputs: [
717
+ {
718
+ internalType: "address",
719
+ name: "owner",
720
+ type: "address",
721
+ },
722
+ ],
723
+ name: "balanceOfUnderlying",
724
+ outputs: [
725
+ {
726
+ internalType: "uint256",
727
+ name: "",
728
+ type: "uint256",
729
+ },
730
+ ],
731
+ payable: false,
732
+ stateMutability: "nonpayable",
733
+ type: "function",
734
+ },
735
+ {
736
+ constant: false,
737
+ inputs: [
738
+ {
739
+ internalType: "uint256",
740
+ name: "borrowAmount",
741
+ type: "uint256",
742
+ },
743
+ ],
744
+ name: "borrow",
745
+ outputs: [
746
+ {
747
+ internalType: "uint256",
748
+ name: "",
749
+ type: "uint256",
750
+ },
751
+ ],
752
+ payable: false,
753
+ stateMutability: "nonpayable",
754
+ type: "function",
755
+ },
756
+ {
757
+ constant: false,
758
+ inputs: [
759
+ {
760
+ internalType: "address",
761
+ name: "account",
762
+ type: "address",
763
+ },
764
+ ],
765
+ name: "borrowBalanceCurrent",
766
+ outputs: [
767
+ {
768
+ internalType: "uint256",
769
+ name: "",
770
+ type: "uint256",
771
+ },
772
+ ],
773
+ payable: false,
774
+ stateMutability: "nonpayable",
775
+ type: "function",
776
+ },
777
+ {
778
+ constant: true,
779
+ inputs: [
780
+ {
781
+ internalType: "address",
782
+ name: "account",
783
+ type: "address",
784
+ },
785
+ ],
786
+ name: "borrowBalanceStored",
787
+ outputs: [
788
+ {
789
+ internalType: "uint256",
790
+ name: "",
791
+ type: "uint256",
792
+ },
793
+ ],
794
+ payable: false,
795
+ stateMutability: "view",
796
+ type: "function",
797
+ },
798
+ {
799
+ constant: true,
800
+ inputs: [],
801
+ name: "borrowIndex",
802
+ outputs: [
803
+ {
804
+ internalType: "uint256",
805
+ name: "",
806
+ type: "uint256",
807
+ },
808
+ ],
809
+ payable: false,
810
+ stateMutability: "view",
811
+ type: "function",
812
+ },
813
+ {
814
+ constant: true,
815
+ inputs: [],
816
+ name: "borrowRatePerTimestamp",
817
+ outputs: [
818
+ {
819
+ internalType: "uint256",
820
+ name: "",
821
+ type: "uint256",
822
+ },
823
+ ],
824
+ payable: false,
825
+ stateMutability: "view",
826
+ type: "function",
827
+ },
828
+ {
829
+ constant: true,
830
+ inputs: [],
831
+ name: "comptroller",
832
+ outputs: [
833
+ {
834
+ internalType: "contract ComptrollerInterface",
835
+ name: "",
836
+ type: "address",
837
+ },
838
+ ],
839
+ payable: false,
840
+ stateMutability: "view",
841
+ type: "function",
842
+ },
843
+ {
844
+ constant: true,
845
+ inputs: [],
846
+ name: "decimals",
847
+ outputs: [
848
+ {
849
+ internalType: "uint8",
850
+ name: "",
851
+ type: "uint8",
852
+ },
853
+ ],
854
+ payable: false,
855
+ stateMutability: "view",
856
+ type: "function",
857
+ },
858
+ {
859
+ constant: false,
860
+ inputs: [],
861
+ name: "exchangeRateCurrent",
862
+ outputs: [
863
+ {
864
+ internalType: "uint256",
865
+ name: "",
866
+ type: "uint256",
867
+ },
868
+ ],
869
+ payable: false,
870
+ stateMutability: "nonpayable",
871
+ type: "function",
872
+ },
873
+ {
874
+ constant: true,
875
+ inputs: [],
876
+ name: "exchangeRateStored",
877
+ outputs: [
878
+ {
879
+ internalType: "uint256",
880
+ name: "",
881
+ type: "uint256",
882
+ },
883
+ ],
884
+ payable: false,
885
+ stateMutability: "view",
886
+ type: "function",
887
+ },
888
+ {
889
+ constant: true,
890
+ inputs: [
891
+ {
892
+ internalType: "address",
893
+ name: "account",
894
+ type: "address",
895
+ },
896
+ ],
897
+ name: "getAccountSnapshot",
898
+ outputs: [
899
+ {
900
+ internalType: "uint256",
901
+ name: "",
902
+ type: "uint256",
903
+ },
904
+ {
905
+ internalType: "uint256",
906
+ name: "",
907
+ type: "uint256",
908
+ },
909
+ {
910
+ internalType: "uint256",
911
+ name: "",
912
+ type: "uint256",
913
+ },
914
+ {
915
+ internalType: "uint256",
916
+ name: "",
917
+ type: "uint256",
918
+ },
919
+ ],
920
+ payable: false,
921
+ stateMutability: "view",
922
+ type: "function",
923
+ },
924
+ {
925
+ constant: true,
926
+ inputs: [],
927
+ name: "getCash",
928
+ outputs: [
929
+ {
930
+ internalType: "uint256",
931
+ name: "",
932
+ type: "uint256",
933
+ },
934
+ ],
935
+ payable: false,
936
+ stateMutability: "view",
937
+ type: "function",
938
+ },
939
+ {
940
+ constant: false,
941
+ inputs: [
942
+ {
943
+ internalType: "address",
944
+ name: "underlying_",
945
+ type: "address",
946
+ },
947
+ {
948
+ internalType: "contract ComptrollerInterface",
949
+ name: "comptroller_",
950
+ type: "address",
951
+ },
952
+ {
953
+ internalType: "contract InterestRateModel",
954
+ name: "interestRateModel_",
955
+ type: "address",
956
+ },
957
+ {
958
+ internalType: "uint256",
959
+ name: "initialExchangeRateMantissa_",
960
+ type: "uint256",
961
+ },
962
+ {
963
+ internalType: "string",
964
+ name: "name_",
965
+ type: "string",
966
+ },
967
+ {
968
+ internalType: "string",
969
+ name: "symbol_",
970
+ type: "string",
971
+ },
972
+ {
973
+ internalType: "uint8",
974
+ name: "decimals_",
975
+ type: "uint8",
976
+ },
977
+ ],
978
+ name: "initialize",
979
+ outputs: [],
980
+ payable: false,
981
+ stateMutability: "nonpayable",
982
+ type: "function",
983
+ },
984
+ {
985
+ constant: false,
986
+ inputs: [
987
+ {
988
+ internalType: "contract ComptrollerInterface",
989
+ name: "comptroller_",
990
+ type: "address",
991
+ },
992
+ {
993
+ internalType: "contract InterestRateModel",
994
+ name: "interestRateModel_",
995
+ type: "address",
996
+ },
997
+ {
998
+ internalType: "uint256",
999
+ name: "initialExchangeRateMantissa_",
1000
+ type: "uint256",
1001
+ },
1002
+ {
1003
+ internalType: "string",
1004
+ name: "name_",
1005
+ type: "string",
1006
+ },
1007
+ {
1008
+ internalType: "string",
1009
+ name: "symbol_",
1010
+ type: "string",
1011
+ },
1012
+ {
1013
+ internalType: "uint8",
1014
+ name: "decimals_",
1015
+ type: "uint8",
1016
+ },
1017
+ ],
1018
+ name: "initialize",
1019
+ outputs: [],
1020
+ payable: false,
1021
+ stateMutability: "nonpayable",
1022
+ type: "function",
1023
+ },
1024
+ {
1025
+ constant: true,
1026
+ inputs: [],
1027
+ name: "interestRateModel",
1028
+ outputs: [
1029
+ {
1030
+ internalType: "contract InterestRateModel",
1031
+ name: "",
1032
+ type: "address",
1033
+ },
1034
+ ],
1035
+ payable: false,
1036
+ stateMutability: "view",
1037
+ type: "function",
1038
+ },
1039
+ {
1040
+ constant: true,
1041
+ inputs: [],
1042
+ name: "isQiToken",
1043
+ outputs: [
1044
+ {
1045
+ internalType: "bool",
1046
+ name: "",
1047
+ type: "bool",
1048
+ },
1049
+ ],
1050
+ payable: false,
1051
+ stateMutability: "view",
1052
+ type: "function",
1053
+ },
1054
+ {
1055
+ constant: false,
1056
+ inputs: [
1057
+ {
1058
+ internalType: "address",
1059
+ name: "borrower",
1060
+ type: "address",
1061
+ },
1062
+ {
1063
+ internalType: "uint256",
1064
+ name: "repayAmount",
1065
+ type: "uint256",
1066
+ },
1067
+ {
1068
+ internalType: "contract QiTokenInterface",
1069
+ name: "qiTokenCollateral",
1070
+ type: "address",
1071
+ },
1072
+ ],
1073
+ name: "liquidateBorrow",
1074
+ outputs: [
1075
+ {
1076
+ internalType: "uint256",
1077
+ name: "",
1078
+ type: "uint256",
1079
+ },
1080
+ ],
1081
+ payable: false,
1082
+ stateMutability: "nonpayable",
1083
+ type: "function",
1084
+ },
1085
+ {
1086
+ constant: false,
1087
+ inputs: [
1088
+ {
1089
+ internalType: "uint256",
1090
+ name: "mintAmount",
1091
+ type: "uint256",
1092
+ },
1093
+ ],
1094
+ name: "mint",
1095
+ outputs: [
1096
+ {
1097
+ internalType: "uint256",
1098
+ name: "",
1099
+ type: "uint256",
1100
+ },
1101
+ ],
1102
+ payable: false,
1103
+ stateMutability: "nonpayable",
1104
+ type: "function",
1105
+ },
1106
+ {
1107
+ constant: true,
1108
+ inputs: [],
1109
+ name: "name",
1110
+ outputs: [
1111
+ {
1112
+ internalType: "string",
1113
+ name: "",
1114
+ type: "string",
1115
+ },
1116
+ ],
1117
+ payable: false,
1118
+ stateMutability: "view",
1119
+ type: "function",
1120
+ },
1121
+ {
1122
+ constant: true,
1123
+ inputs: [],
1124
+ name: "pendingAdmin",
1125
+ outputs: [
1126
+ {
1127
+ internalType: "address payable",
1128
+ name: "",
1129
+ type: "address",
1130
+ },
1131
+ ],
1132
+ payable: false,
1133
+ stateMutability: "view",
1134
+ type: "function",
1135
+ },
1136
+ {
1137
+ constant: true,
1138
+ inputs: [],
1139
+ name: "protocolSeizeShareMantissa",
1140
+ outputs: [
1141
+ {
1142
+ internalType: "uint256",
1143
+ name: "",
1144
+ type: "uint256",
1145
+ },
1146
+ ],
1147
+ payable: false,
1148
+ stateMutability: "view",
1149
+ type: "function",
1150
+ },
1151
+ {
1152
+ constant: false,
1153
+ inputs: [
1154
+ {
1155
+ internalType: "uint256",
1156
+ name: "redeemTokens",
1157
+ type: "uint256",
1158
+ },
1159
+ ],
1160
+ name: "redeem",
1161
+ outputs: [
1162
+ {
1163
+ internalType: "uint256",
1164
+ name: "",
1165
+ type: "uint256",
1166
+ },
1167
+ ],
1168
+ payable: false,
1169
+ stateMutability: "nonpayable",
1170
+ type: "function",
1171
+ },
1172
+ {
1173
+ constant: false,
1174
+ inputs: [
1175
+ {
1176
+ internalType: "uint256",
1177
+ name: "redeemAmount",
1178
+ type: "uint256",
1179
+ },
1180
+ ],
1181
+ name: "redeemUnderlying",
1182
+ outputs: [
1183
+ {
1184
+ internalType: "uint256",
1185
+ name: "",
1186
+ type: "uint256",
1187
+ },
1188
+ ],
1189
+ payable: false,
1190
+ stateMutability: "nonpayable",
1191
+ type: "function",
1192
+ },
1193
+ {
1194
+ constant: false,
1195
+ inputs: [
1196
+ {
1197
+ internalType: "uint256",
1198
+ name: "repayAmount",
1199
+ type: "uint256",
1200
+ },
1201
+ ],
1202
+ name: "repayBorrow",
1203
+ outputs: [
1204
+ {
1205
+ internalType: "uint256",
1206
+ name: "",
1207
+ type: "uint256",
1208
+ },
1209
+ ],
1210
+ payable: false,
1211
+ stateMutability: "nonpayable",
1212
+ type: "function",
1213
+ },
1214
+ {
1215
+ constant: false,
1216
+ inputs: [
1217
+ {
1218
+ internalType: "address",
1219
+ name: "borrower",
1220
+ type: "address",
1221
+ },
1222
+ {
1223
+ internalType: "uint256",
1224
+ name: "repayAmount",
1225
+ type: "uint256",
1226
+ },
1227
+ ],
1228
+ name: "repayBorrowBehalf",
1229
+ outputs: [
1230
+ {
1231
+ internalType: "uint256",
1232
+ name: "",
1233
+ type: "uint256",
1234
+ },
1235
+ ],
1236
+ payable: false,
1237
+ stateMutability: "nonpayable",
1238
+ type: "function",
1239
+ },
1240
+ {
1241
+ constant: true,
1242
+ inputs: [],
1243
+ name: "reserveFactorMantissa",
1244
+ outputs: [
1245
+ {
1246
+ internalType: "uint256",
1247
+ name: "",
1248
+ type: "uint256",
1249
+ },
1250
+ ],
1251
+ payable: false,
1252
+ stateMutability: "view",
1253
+ type: "function",
1254
+ },
1255
+ {
1256
+ constant: false,
1257
+ inputs: [
1258
+ {
1259
+ internalType: "address",
1260
+ name: "liquidator",
1261
+ type: "address",
1262
+ },
1263
+ {
1264
+ internalType: "address",
1265
+ name: "borrower",
1266
+ type: "address",
1267
+ },
1268
+ {
1269
+ internalType: "uint256",
1270
+ name: "seizeTokens",
1271
+ type: "uint256",
1272
+ },
1273
+ ],
1274
+ name: "seize",
1275
+ outputs: [
1276
+ {
1277
+ internalType: "uint256",
1278
+ name: "",
1279
+ type: "uint256",
1280
+ },
1281
+ ],
1282
+ payable: false,
1283
+ stateMutability: "nonpayable",
1284
+ type: "function",
1285
+ },
1286
+ {
1287
+ constant: true,
1288
+ inputs: [],
1289
+ name: "supplyRatePerTimestamp",
1290
+ outputs: [
1291
+ {
1292
+ internalType: "uint256",
1293
+ name: "",
1294
+ type: "uint256",
1295
+ },
1296
+ ],
1297
+ payable: false,
1298
+ stateMutability: "view",
1299
+ type: "function",
1300
+ },
1301
+ {
1302
+ constant: false,
1303
+ inputs: [
1304
+ {
1305
+ internalType: "contract EIP20NonStandardInterface",
1306
+ name: "token",
1307
+ type: "address",
1308
+ },
1309
+ ],
1310
+ name: "sweepToken",
1311
+ outputs: [],
1312
+ payable: false,
1313
+ stateMutability: "nonpayable",
1314
+ type: "function",
1315
+ },
1316
+ {
1317
+ constant: true,
1318
+ inputs: [],
1319
+ name: "symbol",
1320
+ outputs: [
1321
+ {
1322
+ internalType: "string",
1323
+ name: "",
1324
+ type: "string",
1325
+ },
1326
+ ],
1327
+ payable: false,
1328
+ stateMutability: "view",
1329
+ type: "function",
1330
+ },
1331
+ {
1332
+ constant: true,
1333
+ inputs: [],
1334
+ name: "totalBorrows",
1335
+ outputs: [
1336
+ {
1337
+ internalType: "uint256",
1338
+ name: "",
1339
+ type: "uint256",
1340
+ },
1341
+ ],
1342
+ payable: false,
1343
+ stateMutability: "view",
1344
+ type: "function",
1345
+ },
1346
+ {
1347
+ constant: false,
1348
+ inputs: [],
1349
+ name: "totalBorrowsCurrent",
1350
+ outputs: [
1351
+ {
1352
+ internalType: "uint256",
1353
+ name: "",
1354
+ type: "uint256",
1355
+ },
1356
+ ],
1357
+ payable: false,
1358
+ stateMutability: "nonpayable",
1359
+ type: "function",
1360
+ },
1361
+ {
1362
+ constant: true,
1363
+ inputs: [],
1364
+ name: "totalReserves",
1365
+ outputs: [
1366
+ {
1367
+ internalType: "uint256",
1368
+ name: "",
1369
+ type: "uint256",
1370
+ },
1371
+ ],
1372
+ payable: false,
1373
+ stateMutability: "view",
1374
+ type: "function",
1375
+ },
1376
+ {
1377
+ constant: true,
1378
+ inputs: [],
1379
+ name: "totalSupply",
1380
+ outputs: [
1381
+ {
1382
+ internalType: "uint256",
1383
+ name: "",
1384
+ type: "uint256",
1385
+ },
1386
+ ],
1387
+ payable: false,
1388
+ stateMutability: "view",
1389
+ type: "function",
1390
+ },
1391
+ {
1392
+ constant: false,
1393
+ inputs: [
1394
+ {
1395
+ internalType: "address",
1396
+ name: "dst",
1397
+ type: "address",
1398
+ },
1399
+ {
1400
+ internalType: "uint256",
1401
+ name: "amount",
1402
+ type: "uint256",
1403
+ },
1404
+ ],
1405
+ name: "transfer",
1406
+ outputs: [
1407
+ {
1408
+ internalType: "bool",
1409
+ name: "",
1410
+ type: "bool",
1411
+ },
1412
+ ],
1413
+ payable: false,
1414
+ stateMutability: "nonpayable",
1415
+ type: "function",
1416
+ },
1417
+ {
1418
+ constant: false,
1419
+ inputs: [
1420
+ {
1421
+ internalType: "address",
1422
+ name: "src",
1423
+ type: "address",
1424
+ },
1425
+ {
1426
+ internalType: "address",
1427
+ name: "dst",
1428
+ type: "address",
1429
+ },
1430
+ {
1431
+ internalType: "uint256",
1432
+ name: "amount",
1433
+ type: "uint256",
1434
+ },
1435
+ ],
1436
+ name: "transferFrom",
1437
+ outputs: [
1438
+ {
1439
+ internalType: "bool",
1440
+ name: "",
1441
+ type: "bool",
1442
+ },
1443
+ ],
1444
+ payable: false,
1445
+ stateMutability: "nonpayable",
1446
+ type: "function",
1447
+ },
1448
+ {
1449
+ constant: true,
1450
+ inputs: [],
1451
+ name: "underlying",
1452
+ outputs: [
1453
+ {
1454
+ internalType: "address",
1455
+ name: "",
1456
+ type: "address",
1457
+ },
1458
+ ],
1459
+ payable: false,
1460
+ stateMutability: "view",
1461
+ type: "function",
1462
+ },
1463
+ ];
1464
+
1465
+ const _bytecode =
1466
+ "0x608060405234801561001057600080fd5b5061545f806100206000396000f3fe608060405234801561001057600080fd5b50600436106102f15760003560e01c8063840bbeac1161019d578063c37f68e2116100e9578063dd62ed3e116100a2578063f3fdb15a1161007c578063f3fdb15a14610a9b578063f5e3c46214610aa3578063f851a44014610ad9578063fca7820b14610ae1576102f1565b8063dd62ed3e14610a3f578063e9c714f214610a6d578063f2b3abbd14610a75576102f1565b8063c37f68e2146109a1578063c5ebeaec146109ed578063cd91801c14610a0a578063cfa9920114610a12578063d3bd2c7214610a1a578063db006a7514610a22576102f1565b8063a0712d6811610156578063aa5af0fd11610130578063aa5af0fd14610935578063b2a02ff11461093d578063b71d1a0c14610973578063bd6d894d14610999576102f1565b8063a0712d68146108e4578063a6afed9514610901578063a9059cbb14610909576102f1565b8063840bbeac1461073b578063852a12e3146107435780638f840ddd1461076057806395d89b411461076857806395dd91931461077057806399d8c1b414610796576102f1565b8063313ce5671161025c5780635fe3b567116102155780636f307dc3116101ef5780636f307dc3146106e857806370a08231146106f057806373acee9814610716578063830308461461071e576102f1565b80635fe3b567146106bb578063601a0bf1146106c35780636752e702146106e0576102f1565b8063313ce567146106245780633af9e669146106425780633b1d21a2146106685780633e941010146106705780634576b5db1461068d57806347bd3718146106b3576102f1565b8063182df0f5116102ae578063182df0f5146104185780631a31d465146104205780631be195601461057857806323b872dd1461059e5780632608f818146105d45780632678224714610600576102f1565b806306fdde03146102f6578063095ea7b3146103735780630e752702146103b3578063173b9904146103e257806317bfdfbc146103ea57806318160ddd14610410575b600080fd5b6102fe610afe565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610338578181015183820152602001610320565b50505050905090810190601f1680156103655780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61039f6004803603604081101561038957600080fd5b506001600160a01b038135169060200135610b8b565b604080519115158252519081900360200190f35b6103d0600480360360208110156103c957600080fd5b5035610bf8565b60408051918252519081900360200190f35b6103d0610c0e565b6103d06004803603602081101561040057600080fd5b50356001600160a01b0316610c14565b6103d0610cd4565b6103d0610cda565b610576600480360360e081101561043657600080fd5b6001600160a01b03823581169260208101358216926040820135909216916060820135919081019060a081016080820135600160201b81111561047857600080fd5b82018360208201111561048a57600080fd5b803590602001918460018302840111600160201b831117156104ab57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b8111156104fd57600080fd5b82018360208201111561050f57600080fd5b803590602001918460018302840111600160201b8311171561053057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505050903560ff169150610d3d9050565b005b6105766004803603602081101561058e57600080fd5b50356001600160a01b0316610ddc565b61039f600480360360608110156105b457600080fd5b506001600160a01b03813581169160208101359091169060400135610f18565b6103d0600480360360408110156105ea57600080fd5b506001600160a01b038135169060200135610f8a565b610608610fa0565b604080516001600160a01b039092168252519081900360200190f35b61062c610faf565b6040805160ff9092168252519081900360200190f35b6103d06004803603602081101561065857600080fd5b50356001600160a01b0316610fb8565b6103d061106e565b6103d06004803603602081101561068657600080fd5b503561107d565b6103d0600480360360208110156106a357600080fd5b50356001600160a01b0316611088565b6103d06111dd565b6106086111e3565b6103d0600480360360208110156106d957600080fd5b50356111f2565b6103d061128d565b610608611293565b6103d06004803603602081101561070657600080fd5b50356001600160a01b03166112a2565b6103d06112bd565b6103d06004803603602081101561073457600080fd5b5035611373565b61039f6113f1565b6103d06004803603602081101561075957600080fd5b50356113f6565b6103d0611401565b6102fe611407565b6103d06004803603602081101561078657600080fd5b50356001600160a01b031661145f565b610576600480360360c08110156107ac57600080fd5b6001600160a01b03823581169260208101359091169160408201359190810190608081016060820135600160201b8111156107e657600080fd5b8201836020820111156107f857600080fd5b803590602001918460018302840111600160201b8311171561081957600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561086b57600080fd5b82018360208201111561087d57600080fd5b803590602001918460018302840111600160201b8311171561089e57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505050903560ff1691506114bc9050565b6103d0600480360360208110156108fa57600080fd5b50356116a3565b6103d06116af565b61039f6004803603604081101561091f57600080fd5b506001600160a01b038135169060200135611a07565b6103d0611a78565b6103d06004803603606081101561095357600080fd5b506001600160a01b03813581169160208101359091169060400135611a7e565b6103d06004803603602081101561098957600080fd5b50356001600160a01b0316611aef565b6103d0611b7b565b6109c7600480360360208110156109b757600080fd5b50356001600160a01b0316611c37565b604080519485526020850193909352838301919091526060830152519081900360800190f35b6103d060048036036020811015610a0357600080fd5b5035611ccc565b6103d0611cd7565b6103d0611d6c565b6103d0611d72565b6103d060048036036020811015610a3857600080fd5b5035611de0565b6103d060048036036040811015610a5557600080fd5b506001600160a01b0381358116916020013516611deb565b6103d0611e16565b6103d060048036036020811015610a8b57600080fd5b50356001600160a01b0316611f19565b610608611f53565b6103d060048036036060811015610ab957600080fd5b506001600160a01b03813581169160208101359160409091013516611f62565b610608611f7a565b6103d060048036036020811015610af757600080fd5b5035611f8e565b60018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610b835780601f10610b5857610100808354040283529160200191610b83565b820191906000526020600020905b815481529060010190602001808311610b6657829003601f168201915b505050505081565b336000818152600f602090815260408083206001600160a01b03871680855290835281842086905581518681529151939493909284927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a360019150505b92915050565b600080610c048361200c565b509150505b919050565b60085481565b6000805460ff16610c59576040805162461bcd60e51b815260206004820152600a6024820152691c994b595b9d195c995960b21b604482015290519081900360640190fd5b6000805460ff19168155610c6b6116af565b14610cb6576040805162461bcd60e51b81526020600482015260166024820152751858d8dc9d59481a5b9d195c995cdd0819985a5b195960521b604482015290519081900360640190fd5b610cbf8261145f565b90505b6000805460ff19166001179055919050565b600d5481565b6000806000610ce76120b5565b90925090506000826003811115610cfa57fe5b14610d365760405162461bcd60e51b81526004018080602001828103825260358152602001806153766035913960400191505060405180910390fd5b9150505b90565b610d4b8686868686866114bc565b601280546001600160a01b0319166001600160a01b038981169190911791829055604080516318160ddd60e01b8152905192909116916318160ddd91600480820192602092909190829003018186803b158015610da757600080fd5b505afa158015610dbb573d6000803e3d6000fd5b505050506040513d6020811015610dd157600080fd5b505050505050505050565b6012546001600160a01b0382811691161415610e295760405162461bcd60e51b81526004018080602001828103825260338152602001806153436033913960400191505060405180910390fd5b604080516370a0823160e01b815230600482015290516000916001600160a01b038416916370a0823191602480820192602092909190829003018186803b158015610e7357600080fd5b505afa158015610e87573d6000803e3d6000fd5b505050506040513d6020811015610e9d57600080fd5b50516003546040805163a9059cbb60e01b81526101009092046001600160a01b03908116600484015260248301849052905192935084169163a9059cbb9160448082019260009290919082900301818387803b158015610efc57600080fd5b505af1158015610f10573d6000803e3d6000fd5b505050505050565b6000805460ff16610f5d576040805162461bcd60e51b815260206004820152600a6024820152691c994b595b9d195c995960b21b604482015290519081900360640190fd5b6000805460ff19168155610f7333868686612164565b1490506000805460ff191660011790559392505050565b600080610f9784846123f0565b50949350505050565b6004546001600160a01b031681565b60035460ff1681565b6000610fc2614fe4565b6040518060200160405280610fd5611b7b565b90526001600160a01b0384166000908152600e602052604081205491925090819061100190849061249b565b9092509050600082600381111561101457fe5b14611066576040805162461bcd60e51b815260206004820152601f60248201527f62616c616e636520636f756c64206e6f742062652063616c63756c6174656400604482015290519081900360640190fd5b949350505050565b60006110786124ef565b905090565b6000610bf28261256f565b60035460009061010090046001600160a01b031633146110b5576110ae6001603f612603565b9050610c09565b60055460408051623f1ee960e11b815290516001600160a01b0392831692851691627e3dd2916004808301926020929190829003018186803b1580156110fa57600080fd5b505afa15801561110e573d6000803e3d6000fd5b505050506040513d602081101561112457600080fd5b5051611177576040805162461bcd60e51b815260206004820152601c60248201527f6d61726b6572206d6574686f642072657475726e65642066616c736500000000604482015290519081900360640190fd5b600580546001600160a01b0319166001600160a01b03858116918217909255604080519284168352602083019190915280517f7ac369dbd14fa5ea3f473ed67cc9d598964a77501540ba6751eb0b3decf5870d9281900390910190a160005b9392505050565b600b5481565b6005546001600160a01b031681565b6000805460ff16611237576040805162461bcd60e51b815260206004820152600a6024820152691c994b595b9d195c995960b21b604482015290519081900360640190fd5b6000805460ff191681556112496116af565b9050801561126f5761126781601081111561126057fe5b6030612603565b915050610cc2565b61127883612669565b9150506000805460ff19166001179055919050565b60115481565b6012546001600160a01b031681565b6001600160a01b03166000908152600e602052604090205490565b6000805460ff16611302576040805162461bcd60e51b815260206004820152600a6024820152691c994b595b9d195c995960b21b604482015290519081900360640190fd5b6000805460ff191681556113146116af565b1461135f576040805162461bcd60e51b81526020600482015260166024820152751858d8dc9d59481a5b9d195c995cdd0819985a5b195960521b604482015290519081900360640190fd5b50600b546000805460ff1916600117905590565b6000805460ff166113b8576040805162461bcd60e51b815260206004820152600a6024820152691c994b595b9d195c995960b21b604482015290519081900360640190fd5b6000805460ff191681556113ca6116af565b905080156113e8576112678160108111156113e157fe5b6051612603565b6112788361279c565b600181565b6000610bf28261282b565b600c5481565b6002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181529291830182828015610b835780601f10610b5857610100808354040283529160200191610b83565b600080600061146d846128ac565b9092509050600082600381111561148057fe5b146111d65760405162461bcd60e51b815260040180806020018281038252603781526020018061524e6037913960400191505060405180910390fd5b60035461010090046001600160a01b0316331461150a5760405162461bcd60e51b815260040180806020018281038252602481526020018061518a6024913960400191505060405180910390fd5b60095415801561151a5750600a54155b6115555760405162461bcd60e51b81526004018080602001828103825260238152602001806151ae6023913960400191505060405180910390fd5b6007849055836115965760405162461bcd60e51b81526004018080602001828103825260308152602001806151d16030913960400191505060405180910390fd5b60006115a187611088565b905080156115f6576040805162461bcd60e51b815260206004820152601a60248201527f73657474696e6720636f6d7074726f6c6c6572206661696c6564000000000000604482015290519081900360640190fd5b6115fe612960565b600955670de0b6b3a7640000600a5561161686612964565b905080156116555760405162461bcd60e51b81526004018080602001828103825260228152602001806152016022913960400191505060405180910390fd5b8351611668906001906020870190614ff7565b50825161167c906002906020860190614ff7565b50506003805460ff90921660ff199283161790556000805490911660011790555050505050565b600080610c0483612ad9565b6000806116ba612960565b600954909150808214156116d357600092505050610d3a565b60006116dd6124ef565b600b54600c54600a54600654604080516315f2405360e01b815260048101879052602481018690526044810185905290519596509394929391926000926001600160a01b03909216916315f24053916064808301926020929190829003018186803b15801561174b57600080fd5b505afa15801561175f573d6000803e3d6000fd5b505050506040513d602081101561177557600080fd5b5051905065048c273950008111156117d4576040805162461bcd60e51b815260206004820152601c60248201527f626f72726f772072617465206973206162737572646c79206869676800000000604482015290519081900360640190fd5b6000806117e18989612b5a565b909250905060008260038111156117f457fe5b14611846576040805162461bcd60e51b815260206004820152601f60248201527f636f756c64206e6f742063616c63756c61746520626c6f636b2064656c746100604482015290519081900360640190fd5b61184e614fe4565b60008060008061186c60405180602001604052808a81525087612b7d565b9097509450600087600381111561187f57fe5b146118b15761189c6009600689600381111561189757fe5b612be5565b9e505050505050505050505050505050610d3a565b6118bb858c61249b565b909750935060008760038111156118ce57fe5b146118e65761189c6009600189600381111561189757fe5b6118f0848c612c4b565b9097509250600087600381111561190357fe5b1461191b5761189c6009600489600381111561189757fe5b6119366040518060200160405280600854815250858c612c71565b9097509150600087600381111561194957fe5b146119615761189c6009600589600381111561189757fe5b61196c858a8b612c71565b9097509050600087600381111561197f57fe5b146119975761189c6009600389600381111561189757fe5b60098e9055600a819055600b839055600c829055604080518d8152602081018690528082018390526060810185905290517f4dec04e750ca11537cabcd8a9eab06494de08da3735bc8871cd41250e190bc049181900360800190a160009e50505050505050505050505050505090565b6000805460ff16611a4c576040805162461bcd60e51b815260206004820152600a6024820152691c994b595b9d195c995960b21b604482015290519081900360640190fd5b6000805460ff19168155611a6233338686612164565b1490506000805460ff1916600117905592915050565b600a5481565b6000805460ff16611ac3576040805162461bcd60e51b815260206004820152600a6024820152691c994b595b9d195c995960b21b604482015290519081900360640190fd5b6000805460ff19169055611ad933858585612ccd565b90506000805460ff191660011790559392505050565b60035460009061010090046001600160a01b03163314611b15576110ae60016045612603565b600480546001600160a01b038481166001600160a01b0319831681179093556040805191909216808252602082019390935281517fca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a9929181900390910190a160006111d6565b6000805460ff16611bc0576040805162461bcd60e51b815260206004820152600a6024820152691c994b595b9d195c995960b21b604482015290519081900360640190fd5b6000805460ff19168155611bd26116af565b14611c1d576040805162461bcd60e51b81526020600482015260166024820152751858d8dc9d59481a5b9d195c995cdd0819985a5b195960521b604482015290519081900360640190fd5b611c25610cda565b90506000805460ff1916600117905590565b6001600160a01b0381166000908152600e6020526040812054819081908190818080611c62896128ac565b935090506000816003811115611c7457fe5b14611c925760095b975060009650869550859450611cc59350505050565b611c9a6120b5565b925090506000816003811115611cac57fe5b14611cb8576009611c7c565b5060009650919450925090505b9193509193565b6000610bf2826130a2565b6006546000906001600160a01b03166315f24053611cf36124ef565b600b54600c546040518463ffffffff1660e01b815260040180848152602001838152602001828152602001935050505060206040518083038186803b158015611d3b57600080fd5b505afa158015611d4f573d6000803e3d6000fd5b505050506040513d6020811015611d6557600080fd5b5051905090565b60095481565b6006546000906001600160a01b031663b8168816611d8e6124ef565b600b54600c546008546040518563ffffffff1660e01b81526004018085815260200184815260200183815260200182815260200194505050505060206040518083038186803b158015611d3b57600080fd5b6000610bf282613121565b6001600160a01b039182166000908152600f6020908152604080832093909416825291909152205490565b6004546000906001600160a01b031633141580611e31575033155b15611e4957611e4260016000612603565b9050610d3a565b60038054600480546001600160a01b03818116610100818102610100600160a81b0319871617968790556001600160a01b031990931690935560408051948390048216808652929095041660208401528351909391927ff9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc92908290030190a1600454604080516001600160a01b038085168252909216602083015280517fca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a99281900390910190a160009250505090565b600080611f246116af565b90508015611f4a57611f42816010811115611f3b57fe5b6040612603565b915050610c09565b6111d683612964565b6006546001600160a01b031681565b600080611f7085858561319b565b5095945050505050565b60035461010090046001600160a01b031681565b6000805460ff16611fd3576040805162461bcd60e51b815260206004820152600a6024820152691c994b595b9d195c995960b21b604482015290519081900360640190fd5b6000805460ff19168155611fe56116af565b9050801561200357611267816010811115611ffc57fe5b6046612603565b611278836132cd565b60008054819060ff16612053576040805162461bcd60e51b815260206004820152600a6024820152691c994b595b9d195c995960b21b604482015290519081900360640190fd5b6000805460ff191681556120656116af565b905080156120905761208381601081111561207c57fe5b6036612603565b9250600091506120a19050565b61209b333386613375565b92509250505b6000805460ff191660011790559092909150565b600d546000908190806120d057505060075460009150612160565b60006120da6124ef565b905060006120e6614fe4565b60006120f784600b54600c546136c3565b93509050600081600381111561210957fe5b1461211e579550600094506121609350505050565b6121288386613701565b92509050600081600381111561213a57fe5b1461214f579550600094506121609350505050565b505160009550935061216092505050565b9091565b600554604080516317b9b84b60e31b81523060048201526001600160a01b03868116602483015285811660448301526064820185905291516000938493169163bdcdc25891608480830192602092919082900301818787803b1580156121c957600080fd5b505af11580156121dd573d6000803e3d6000fd5b505050506040513d60208110156121f357600080fd5b5051905080156122125761220a6003604a83612be5565b915050611066565b836001600160a01b0316856001600160a01b031614156122385761220a6002604b612603565b60006001600160a01b038781169087161415612257575060001961227f565b506001600160a01b038086166000908152600f60209081526040808320938a16835292905220545b60008060008061228f8589612b5a565b909450925060008460038111156122a257fe5b146122c0576122b36009604b612603565b9650505050505050611066565b6001600160a01b038a166000908152600e60205260409020546122e39089612b5a565b909450915060008460038111156122f657fe5b14612307576122b36009604c612603565b6001600160a01b0389166000908152600e602052604090205461232a9089612c4b565b9094509050600084600381111561233d57fe5b1461234e576122b36009604d612603565b6001600160a01b03808b166000908152600e6020526040808220859055918b1681522081905560001985146123a6576001600160a01b03808b166000908152600f60209081526040808320938f168352929052208390555b886001600160a01b03168a6001600160a01b03166000805160206152bf8339815191528a6040518082815260200191505060405180910390a35060009a9950505050505050505050565b60008054819060ff16612437576040805162461bcd60e51b815260206004820152600a6024820152691c994b595b9d195c995960b21b604482015290519081900360640190fd5b6000805460ff191681556124496116af565b905080156124745761246781601081111561246057fe5b6035612603565b9250600091506124859050565b61247f338686613375565b92509250505b6000805460ff1916600117905590939092509050565b60008060006124a8614fe4565b6124b28686612b7d565b909250905060008260038111156124c557fe5b146124d657509150600090506124e8565b60006124e1826137b1565b9350935050505b9250929050565b601254604080516370a0823160e01b815230600482015290516000926001600160a01b03169182916370a0823191602480820192602092909190829003018186803b15801561253d57600080fd5b505afa158015612551573d6000803e3d6000fd5b505050506040513d602081101561256757600080fd5b505191505090565b6000805460ff166125b4576040805162461bcd60e51b815260206004820152600a6024820152691c994b595b9d195c995960b21b604482015290519081900360640190fd5b6000805460ff191681556125c66116af565b905080156125e4576112678160108111156125dd57fe5b604e612603565b6125ed836137c0565b509150506000805460ff19166001179055919050565b60007f45b96fe442630264581b197e84bbada861235052c5a1aadfff9ea4e40a969aa083601081111561263257fe5b83605381111561263e57fe5b604080519283526020830191909152600082820152519081900360600190a18260108111156111d657fe5b600354600090819061010090046001600160a01b0316331461269157611f4260016031612603565b612699612960565b600954146126ad57611f42600a6033612603565b826126b66124ef565b10156126c857611f42600e6032612603565b600c548311156126de57611f4260026034612603565b50600c54828103908111156127245760405162461bcd60e51b81526004018080602001828103825260248152602001806154076024913960400191505060405180910390fd5b600c8190556003546127449061010090046001600160a01b0316846138a8565b600354604080516101009092046001600160a01b0316825260208201859052818101839052517f3bad0c59cf2f06e7314077049f48a93578cd16f5ef92329f1dab1420a99c177e916060908290030190a160006111d6565b600354600090819061010090046001600160a01b031633146127c457611f4260016052612603565b6127cc612960565b600954146127e057611f42600a6053612603565b506011805490839055604080518281526020810185905281517ff5815f353a60e815cce7553e4f60c533a59d26b1b5504ea4b6db8d60da3e4da2929181900390910190a160006111d6565b6000805460ff16612870576040805162461bcd60e51b815260206004820152600a6024820152691c994b595b9d195c995960b21b604482015290519081900360640190fd5b6000805460ff191681556128826116af565b905080156128a05761126781601081111561289957fe5b6027612603565b6112783360008561399f565b6001600160a01b0381166000908152601060205260408120805482918291829182916128e357506000945084935061295b92505050565b6128f38160000154600a54613edf565b9094509250600084600381111561290657fe5b1461291b57509193506000925061295b915050565b612929838260010154613f1e565b9094509150600084600381111561293c57fe5b1461295157509193506000925061295b915050565b5060009450925050505b915091565b4290565b600354600090819061010090046001600160a01b0316331461298c57611f4260016042612603565b612994612960565b600954146129a857611f42600a6041612603565b600660009054906101000a90046001600160a01b03169050826001600160a01b0316632191f92a6040518163ffffffff1660e01b815260040160206040518083038186803b1580156129f957600080fd5b505afa158015612a0d573d6000803e3d6000fd5b505050506040513d6020811015612a2357600080fd5b5051612a76576040805162461bcd60e51b815260206004820152601c60248201527f6d61726b6572206d6574686f642072657475726e65642066616c736500000000604482015290519081900360640190fd5b600680546001600160a01b0319166001600160a01b03858116918217909255604080519284168352602083019190915280517fedffc32e068c7c95dfd4bdfd5c4d939a084d6b11c4199eac8436ed234d72f9269281900390910190a160006111d6565b60008054819060ff16612b20576040805162461bcd60e51b815260206004820152600a6024820152691c994b595b9d195c995960b21b604482015290519081900360640190fd5b6000805460ff19168155612b326116af565b90508015612b5057612083816010811115612b4957fe5b601e612603565b61209b3385613f49565b600080838311612b715750600090508183036124e8565b506003905060006124e8565b6000612b87614fe4565b600080612b98866000015186613edf565b90925090506000826003811115612bab57fe5b14612bca575060408051602081019091526000815290925090506124e8565b60408051602081019091529081526000969095509350505050565b60007f45b96fe442630264581b197e84bbada861235052c5a1aadfff9ea4e40a969aa0846010811115612c1457fe5b846053811115612c2057fe5b604080519283526020830191909152818101859052519081900360600190a183601081111561106657fe5b600080838301848110612c63576000925090506124e8565b5060029150600090506124e8565b6000806000612c7e614fe4565b612c888787612b7d565b90925090506000826003811115612c9b57fe5b14612cac5750915060009050612cc5565b612cbe612cb8826137b1565b86612c4b565b9350935050505b935093915050565b6005546040805163d02f735160e01b81523060048201526001600160a01b038781166024830152868116604483015285811660648301526084820185905291516000938493169163d02f73519160a480830192602092919082900301818787803b158015612d3a57600080fd5b505af1158015612d4e573d6000803e3d6000fd5b505050506040513d6020811015612d6457600080fd5b505190508015612d7b5761220a6003601b83612be5565b846001600160a01b0316846001600160a01b03161415612da15761220a6006601c612603565b612da9615075565b6001600160a01b0385166000908152600e6020526040902054612dcc9085612b5a565b6020830181905282826003811115612de057fe5b6003811115612deb57fe5b9052506000905081516003811115612dff57fe5b14612e2457612e1b6009601a8360000151600381111561189757fe5b92505050611066565b612e3e846040518060200160405280601154815250614319565b60808201819052612e50908590614341565b6060820152612e5d6120b5565b60c0830181905282826003811115612e7157fe5b6003811115612e7c57fe5b9052506000905081516003811115612e9057fe5b14612ee2576040805162461bcd60e51b815260206004820152601860248201527f65786368616e67652072617465206d617468206572726f720000000000000000604482015290519081900360640190fd5b612f0260405180602001604052808360c00151815250826080015161437b565b60a08201819052600c54612f159161439a565b60e0820152600d546080820151612f2c9190614341565b6101008201526001600160a01b0386166000908152600e60205260409020546060820151612f5a9190612c4b565b6040830181905282826003811115612f6e57fe5b6003811115612f7957fe5b9052506000905081516003811115612f8d57fe5b14612fa957612e1b600960198360000151600381111561189757fe5b60e0810151600c55610100810151600d556020808201516001600160a01b038088166000818152600e855260408082209490945583860151928b168082529084902092909255606085015183519081529251919390926000805160206152bf833981519152929081900390910190a36080810151604080519182525130916001600160a01b038816916000805160206152bf8339815191529181900360200190a360a081015160e082015160408051308152602081019390935282810191909152517fa91e67c5ea634cd43a12c5a482724b03de01e85ca68702a53d0c2f45cb7c1dc59181900360600190a16000979650505050505050565b6000805460ff166130e7576040805162461bcd60e51b815260206004820152600a6024820152691c994b595b9d195c995960b21b604482015290519081900360640190fd5b6000805460ff191681556130f96116af565b905080156131175761126781601081111561311057fe5b6008612603565b61127833846143d0565b6000805460ff16613166576040805162461bcd60e51b815260206004820152600a6024820152691c994b595b9d195c995960b21b604482015290519081900360640190fd5b6000805460ff191681556131786116af565b9050801561318f5761126781601081111561289957fe5b6112783384600061399f565b60008054819060ff166131e2576040805162461bcd60e51b815260206004820152600a6024820152691c994b595b9d195c995960b21b604482015290519081900360640190fd5b6000805460ff191681556131f46116af565b9050801561321f5761321281601081111561320b57fe5b600f612603565b9250600091506132b69050565b836001600160a01b031663a6afed956040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561325a57600080fd5b505af115801561326e573d6000803e3d6000fd5b505050506040513d602081101561328457600080fd5b5051905080156132a45761321281601081111561329d57fe5b6010612603565b6132b033878787614664565b92509250505b6000805460ff191660011790559094909350915050565b60035460009061010090046001600160a01b031633146132f3576110ae60016047612603565b6132fb612960565b6009541461330f576110ae600a6048612603565b670de0b6b3a764000082111561332b576110ae60026049612603565b6008805490839055604080518281526020810185905281517faaa68312e2ea9d50e16af5068410ab56e1a1fd06037b1a35664812c30f821460929181900390910190a160006111d6565b60055460408051631200453160e11b81523060048201526001600160a01b0386811660248301528581166044830152606482018590529151600093849384939116916324008a629160848082019260209290919082900301818787803b1580156133de57600080fd5b505af11580156133f2573d6000803e3d6000fd5b505050506040513d602081101561340857600080fd5b50519050801561342c5761341f6003603883612be5565b925060009150612cc59050565b613434612960565b600954146134485761341f600a6039612603565b6134506150c2565b6001600160a01b038616600090815260106020526040902060010154606082015261347a866128ac565b608083018190526020830182600381111561349157fe5b600381111561349c57fe5b90525060009050816020015160038111156134b357fe5b146134dd576134cf600960378360200151600381111561189757fe5b935060009250612cc5915050565b6000198514156134f657608081015160408201526134fe565b604081018590525b61350c878260400151614b56565b60e08201819052608082015161352191612b5a565b60a083018190526020830182600381111561353857fe5b600381111561354357fe5b905250600090508160200151600381111561355a57fe5b146135965760405162461bcd60e51b815260040180806020018281038252603a815260200180615285603a913960400191505060405180910390fd5b6135a6600b548260e00151612b5a565b60c08301819052602083018260038111156135bd57fe5b60038111156135c857fe5b90525060009050816020015160038111156135df57fe5b1461361b5760405162461bcd60e51b81526004018080602001828103825260318152602001806152df6031913960400191505060405180910390fd5b60a080820180516001600160a01b03808a16600081815260106020908152604091829020948555600a5460019095019490945560c0870151600b81905560e088015195518251948f16855294840192909252828101949094526060820192909252608081019190915290517f1a2a22cb034d26d1854bdc6666a5b91fe25efbbb5dcad3b0355478d6f5c362a1929181900390910190a160e00151600097909650945050505050565b6000806000806136d38787612c4b565b909250905060008260038111156136e657fe5b146136f75750915060009050612cc5565b612cbe8186612b5a565b600061370b614fe4565b60008061372086670de0b6b3a7640000613edf565b9092509050600082600381111561373357fe5b14613752575060408051602081019091526000815290925090506124e8565b60008061375f8388613f1e565b9092509050600082600381111561377257fe5b14613794575060408051602081019091526000815290945092506124e8915050565b604080516020810190915290815260009890975095505050505050565b51670de0b6b3a7640000900490565b6000806000806137ce612960565b600954146137ed576137e2600a604f612603565b9350915061295b9050565b6137f73386614b56565b905080600c54019150600c54821015613857576040805162461bcd60e51b815260206004820181905260248201527f61646420726573657276657320756e6578706563746564206f766572666c6f77604482015290519081900360640190fd5b600c829055604080513381526020810183905280820184905290517fa91e67c5ea634cd43a12c5a482724b03de01e85ca68702a53d0c2f45cb7c1dc59181900360600190a160009350915050915091565b6012546040805163a9059cbb60e01b81526001600160a01b0385811660048301526024820185905291519190921691829163a9059cbb9160448082019260009290919082900301818387803b15801561390057600080fd5b505af1158015613914573d6000803e3d6000fd5b5050505060003d60008114613930576020811461393a57600080fd5b6000199150613946565b60206000803e60005191505b5080613999576040805162461bcd60e51b815260206004820152601960248201527f544f4b454e5f5452414e534645525f4f55545f4641494c454400000000000000604482015290519081900360640190fd5b50505050565b60008215806139ac575081155b6139e75760405162461bcd60e51b81526004018080602001828103825260348152602001806153d36034913960400191505060405180910390fd5b6139ef615108565b6139f76120b5565b6040830181905260208301826003811115613a0e57fe5b6003811115613a1957fe5b9052506000905081602001516003811115613a3057fe5b14613a5457613a4c6009602b8360200151600381111561189757fe5b9150506111d6565b8315613b0957600019841415613a87576001600160a01b0385166000908152600e60205260409020546060820152613a8f565b606081018490525b613aaf60405180602001604052808360400151815250826060015161249b565b6080830181905260208301826003811115613ac657fe5b6003811115613ad157fe5b9052506000905081602001516003811115613ae857fe5b14613b0457613a4c600960298360200151600381111561189757fe5b613bc7565b600019831415613b50576001600160a01b0385166000908152600e60209081526040918290205460608401908152825191820183529183015181529051613aaf919061249b565b6080810183905260408051602081018252908201518152613b72908490614da0565b6060830181905260208301826003811115613b8957fe5b6003811115613b9457fe5b9052506000905081602001516003811115613bab57fe5b14613bc757613a4c6009602a8360200151600381111561189757fe5b60055460608201516040805163eabe7d9160e01b81523060048201526001600160a01b03898116602483015260448201939093529051600093929092169163eabe7d919160648082019260209290919082900301818787803b158015613c2c57600080fd5b505af1158015613c40573d6000803e3d6000fd5b505050506040513d6020811015613c5657600080fd5b505190508015613c7657613c6d6003602883612be5565b925050506111d6565b613c7e612960565b60095414613c9257613c6d600a602c612603565b613ca2600d548360600151612b5a565b60a0840181905260208401826003811115613cb957fe5b6003811115613cc457fe5b9052506000905082602001516003811115613cdb57fe5b14613cf757613c6d6009602e8460200151600381111561189757fe5b6001600160a01b0386166000908152600e60205260409020546060830151613d1f9190612b5a565b60c0840181905260208401826003811115613d3657fe5b6003811115613d4157fe5b9052506000905082602001516003811115613d5857fe5b14613d7457613c6d6009602d8460200151600381111561189757fe5b8160800151613d816124ef565b1015613d9357613c6d600e602f612603565b613da18683608001516138a8565b60a0820151600d5560c08201516001600160a01b0387166000818152600e60209081526040918290209390935560608501518151908152905130936000805160206152bf833981519152928290030190a36080820151606080840151604080516001600160a01b038b168152602081019490945283810191909152517fe5b754fb1abb7f01b499791d0b820ae3b6af3424ac1c59768edb53f4ec31a9299281900390910190a160055460808301516060840151604080516351dff98960e01b81523060048201526001600160a01b038b81166024830152604482019490945260648101929092525191909216916351dff98991608480830192600092919082900301818387803b158015613eb457600080fd5b505af1158015613ec8573d6000803e3d6000fd5b5060009250613ed5915050565b9695505050505050565b60008083613ef2575060009050806124e8565b83830283858281613eff57fe5b0414613f13575060029150600090506124e8565b6000925090506124e8565b60008082613f3257506001905060006124e8565b6000838581613f3d57fe5b04915091509250929050565b60055460408051634ef4c3e160e01b81523060048201526001600160a01b03858116602483015260448201859052915160009384938493911691634ef4c3e19160648082019260209290919082900301818787803b158015613faa57600080fd5b505af1158015613fbe573d6000803e3d6000fd5b505050506040513d6020811015613fd457600080fd5b505190508015613ff857613feb6003601f83612be5565b9250600091506124e89050565b614000612960565b6009541461401457613feb600a6022612603565b61401c615108565b6140246120b5565b604083018190526020830182600381111561403b57fe5b600381111561404657fe5b905250600090508160200151600381111561405d57fe5b1461408757614079600960218360200151600381111561189757fe5b9350600092506124e8915050565b6140918686614b56565b60c08201819052604080516020810182529083015181526140b29190614da0565b60608301819052602083018260038111156140c957fe5b60038111156140d457fe5b90525060009050816020015160038111156140eb57fe5b1461413d576040805162461bcd60e51b815260206004820181905260248201527f4d494e545f45584348414e47455f43414c43554c4154494f4e5f4641494c4544604482015290519081900360640190fd5b61414d600d548260600151612c4b565b608083018190526020830182600381111561416457fe5b600381111561416f57fe5b905250600090508160200151600381111561418657fe5b146141c25760405162461bcd60e51b81526004018080602001828103825260288152602001806153ab6028913960400191505060405180910390fd5b6001600160a01b0386166000908152600e602052604090205460608201516141ea9190612c4b565b60a083018190526020830182600381111561420157fe5b600381111561420c57fe5b905250600090508160200151600381111561422357fe5b1461425f5760405162461bcd60e51b815260040180806020018281038252602b815260200180615223602b913960400191505060405180910390fd5b6080810151600d5560a08101516001600160a01b0387166000818152600e60209081526040918290209390935560c084015160608086015183519485529484019190915282820193909352517f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f929181900390910190a1606081015160408051918252516001600160a01b0388169130916000805160206152bf8339815191529181900360200190a360c001516000969095509350505050565b6000670de0b6b3a7640000614332848460000151614db7565b8161433957fe5b049392505050565b60006111d68383604051806040016040528060158152602001747375627472616374696f6e20756e646572666c6f7760581b815250614df9565b6000614385614fe4565b61438f8484614e90565b9050611066816137b1565b60006111d68383604051806040016040528060118152602001706164646974696f6e206f766572666c6f7760781b815250614eba565b6005546040805163368f515360e21b81523060048201526001600160a01b0385811660248301526044820185905291516000938493169163da3d454c91606480830192602092919082900301818787803b15801561442d57600080fd5b505af1158015614441573d6000803e3d6000fd5b505050506040513d602081101561445757600080fd5b5051905080156144765761446e6003600e83612be5565b915050610bf2565b61447e612960565b600954146144915761446e600a80612603565b8261449a6124ef565b10156144ac5761446e600e6009612603565b6144b4615146565b6144bd856128ac565b60208301819052828260038111156144d157fe5b60038111156144dc57fe5b90525060009050815160038111156144f057fe5b146145155761450c600960078360000151600381111561189757fe5b92505050610bf2565b614523816020015185612c4b565b604083018190528282600381111561453757fe5b600381111561454257fe5b905250600090508151600381111561455657fe5b146145725761450c6009600c8360000151600381111561189757fe5b61457e600b5485612c4b565b606083018190528282600381111561459257fe5b600381111561459d57fe5b90525060009050815160038111156145b157fe5b146145cd5761450c6009600b8360000151600381111561189757fe5b6145d785856138a8565b604080820180516001600160a01b03881660008181526010602090815290859020928355600a54600190930192909255606080860151600b81905593518551928352928201899052818501929092529081019190915290517f13ed6866d4e1ee6da46f845c46d7e54120883d75c5ea9a2dacc1c4ca8984ab809181900360800190a1600095945050505050565b60055460408051632fe3f38f60e11b81523060048201526001600160a01b0384811660248301528781166044830152868116606483015260848201869052915160009384938493911691635fc7e71e9160a48082019260209290919082900301818787803b1580156146d557600080fd5b505af11580156146e9573d6000803e3d6000fd5b505050506040513d60208110156146ff57600080fd5b505190508015614723576147166003601283612be5565b925060009150614b4d9050565b61472b612960565b6009541461473f57614716600a6016612603565b614747612960565b846001600160a01b031663cfa992016040518163ffffffff1660e01b815260040160206040518083038186803b15801561478057600080fd5b505afa158015614794573d6000803e3d6000fd5b505050506040513d60208110156147aa57600080fd5b5051146147bd57614716600a6011612603565b866001600160a01b0316866001600160a01b031614156147e35761471660066017612603565b846147f45761471660076015612603565b60001985141561480a5761471660076014612603565b600080614818898989613375565b909250905081156148485761483982601081111561483257fe5b6018612603565b945060009350614b4d92505050565b6005546040805163c488847b60e01b81523060048201526001600160a01b038981166024830152604482018590528251600094859492169263c488847b926064808301939192829003018186803b1580156148a257600080fd5b505afa1580156148b6573d6000803e3d6000fd5b505050506040513d60408110156148cc57600080fd5b508051602090910151909250905081156149175760405162461bcd60e51b81526004018080602001828103825260338152602001806153106033913960400191505060405180910390fd5b80886001600160a01b03166370a082318c6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561496e57600080fd5b505afa158015614982573d6000803e3d6000fd5b505050506040513d602081101561499857600080fd5b505110156149ed576040805162461bcd60e51b815260206004820152601860248201527f4c49515549444154455f5345495a455f544f4f5f4d5543480000000000000000604482015290519081900360640190fd5b60006001600160a01b038916301415614a1357614a0c308d8d85612ccd565b9050614a9d565b6040805163b2a02ff160e01b81526001600160a01b038e811660048301528d81166024830152604482018590529151918b169163b2a02ff1916064808201926020929091908290030181600087803b158015614a6e57600080fd5b505af1158015614a82573d6000803e3d6000fd5b505050506040513d6020811015614a9857600080fd5b505190505b8015614ae7576040805162461bcd60e51b81526020600482015260146024820152731d1bdad95b881cd95a5e9d5c994819985a5b195960621b604482015290519081900360640190fd5b604080516001600160a01b03808f168252808e1660208301528183018790528b1660608201526080810184905290517f298637f684da70674f26509b10f07ec2fbc77a335ab1e7d6215a4b2484d8bb529181900360a00190a16000975092955050505050505b94509492505050565b601254604080516370a0823160e01b815230600482015290516000926001600160a01b031691839183916370a08231916024808301926020929190829003018186803b158015614ba557600080fd5b505afa158015614bb9573d6000803e3d6000fd5b505050506040513d6020811015614bcf57600080fd5b5051604080516323b872dd60e01b81526001600160a01b038881166004830152306024830152604482018890529151929350908416916323b872dd9160648082019260009290919082900301818387803b158015614c2c57600080fd5b505af1158015614c40573d6000803e3d6000fd5b5050505060003d60008114614c5c5760208114614c6657600080fd5b6000199150614c72565b60206000803e60005191505b5080614cc5576040805162461bcd60e51b815260206004820152601860248201527f544f4b454e5f5452414e534645525f494e5f4641494c45440000000000000000604482015290519081900360640190fd5b601254604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b158015614d1057600080fd5b505afa158015614d24573d6000803e3d6000fd5b505050506040513d6020811015614d3a57600080fd5b5051905082811015614d93576040805162461bcd60e51b815260206004820152601a60248201527f544f4b454e5f5452414e534645525f494e5f4f564552464c4f57000000000000604482015290519081900360640190fd5b9190910395945050505050565b6000806000614dad614fe4565b6124b28686614f0f565b60006111d683836040518060400160405280601781526020017f6d756c7469706c69636174696f6e206f766572666c6f77000000000000000000815250614f6e565b60008184841115614e885760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614e4d578181015183820152602001614e35565b50505050905090810190601f168015614e7a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b614e98614fe4565b6040518060200160405280614eb1856000015185614db7565b90529392505050565b60008383018285821015610f975760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315614e4d578181015183820152602001614e35565b6000614f19614fe4565b600080614f2e670de0b6b3a764000087613edf565b90925090506000826003811115614f4157fe5b14614f60575060408051602081019091526000815290925090506124e8565b6124e1818660000151613701565b6000831580614f7b575082155b15614f88575060006111d6565b83830283858281614f9557fe5b04148390610f975760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315614e4d578181015183820152602001614e35565b6040518060200160405280600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061503857805160ff1916838001178555615065565b82800160010185558215615065579182015b8281111561506557825182559160200191906001019061504a565b5061507192915061516f565b5090565b604080516101208101909152806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6040805161010081019091528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6040805160e0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b604080516080810190915280600081526020016000815260200160008152602001600081525090565b610d3a91905b80821115615071576000815560010161517556fe6f6e6c792061646d696e206d617920696e697469616c697a6520746865206d61726b65746d61726b6574206d6179206f6e6c7920626520696e697469616c697a6564206f6e6365696e697469616c2065786368616e67652072617465206d7573742062652067726561746572207468616e207a65726f2e73657474696e6720696e7465726573742072617465206d6f64656c206661696c65644d494e545f4e45575f4143434f554e545f42414c414e43455f43414c43554c4154494f4e5f4641494c4544626f72726f7742616c616e636553746f7265643a20626f72726f7742616c616e636553746f726564496e7465726e616c206661696c656452455041595f424f52524f575f4e45575f4143434f554e545f424f52524f575f42414c414e43455f43414c43554c4154494f4e5f4641494c4544ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef52455041595f424f52524f575f4e45575f544f54414c5f42414c414e43455f43414c43554c4154494f4e5f4641494c45444c49515549444154455f434f4d5054524f4c4c45525f43414c43554c4154455f414d4f554e545f5345495a455f4641494c4544516945726332303a3a7377656570546f6b656e3a2063616e206e6f7420737765657020756e6465726c79696e6720746f6b656e65786368616e67655261746553746f7265643a2065786368616e67655261746553746f726564496e7465726e616c206661696c65644d494e545f4e45575f544f54414c5f535550504c595f43414c43554c4154494f4e5f4641494c45446f6e65206f662072656465656d546f6b656e73496e206f722072656465656d416d6f756e74496e206d757374206265207a65726f72656475636520726573657276657320756e657870656374656420756e646572666c6f77a265627a7a72315820f143ed84ff916eb1a764ce836d5770d73fe9ee511abf22e7fece87dc6a77ad3d64736f6c63430005110032";
1467
+
1468
+ type QiErc20ConstructorParams =
1469
+ | [signer?: Signer]
1470
+ | ConstructorParameters<typeof ContractFactory>;
1471
+
1472
+ const isSuperArgs = (
1473
+ xs: QiErc20ConstructorParams
1474
+ ): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
1475
+
1476
+ export class QiErc20__factory extends ContractFactory {
1477
+ constructor(...args: QiErc20ConstructorParams) {
1478
+ if (isSuperArgs(args)) {
1479
+ super(...args);
1480
+ } else {
1481
+ super(_abi, _bytecode, args[0]);
1482
+ }
1483
+ this.contractName = "QiErc20";
1484
+ }
1485
+
1486
+ deploy(
1487
+ overrides?: Overrides & { from?: string | Promise<string> }
1488
+ ): Promise<QiErc20> {
1489
+ return super.deploy(overrides || {}) as Promise<QiErc20>;
1490
+ }
1491
+ getDeployTransaction(
1492
+ overrides?: Overrides & { from?: string | Promise<string> }
1493
+ ): TransactionRequest {
1494
+ return super.getDeployTransaction(overrides || {});
1495
+ }
1496
+ attach(address: string): QiErc20 {
1497
+ return super.attach(address) as QiErc20;
1498
+ }
1499
+ connect(signer: Signer): QiErc20__factory {
1500
+ return super.connect(signer) as QiErc20__factory;
1501
+ }
1502
+ static readonly contractName: "QiErc20";
1503
+ public readonly contractName: "QiErc20";
1504
+ static readonly bytecode = _bytecode;
1505
+ static readonly abi = _abi;
1506
+ static createInterface(): QiErc20Interface {
1507
+ return new utils.Interface(_abi) as QiErc20Interface;
1508
+ }
1509
+ static connect(
1510
+ address: string,
1511
+ signerOrProvider: Signer | Provider
1512
+ ): QiErc20 {
1513
+ return new Contract(address, _abi, signerOrProvider) as QiErc20;
1514
+ }
1515
+ }