@venusprotocol/isolated-pools 1.0.0-dev.1 → 1.0.0-dev.3

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 (245) hide show
  1. package/artifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.dbg.json +4 -0
  2. package/artifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.json +215 -0
  3. package/artifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.dbg.json +4 -0
  4. package/artifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.json +183 -0
  5. package/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json +4 -0
  6. package/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.json +63 -0
  7. package/artifacts/@openzeppelin/contracts/interfaces/IERC1967.sol/IERC1967.dbg.json +4 -0
  8. package/artifacts/@openzeppelin/contracts/interfaces/IERC1967.sol/IERC1967.json +56 -0
  9. package/artifacts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.dbg.json +4 -0
  10. package/artifacts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.json +24 -0
  11. package/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.dbg.json +4 -0
  12. package/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.json +56 -0
  13. package/artifacts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.dbg.json +4 -0
  14. package/artifacts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.json +19 -0
  15. package/artifacts/@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol/BeaconProxy.dbg.json +4 -0
  16. package/artifacts/@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol/BeaconProxy.json +80 -0
  17. package/artifacts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.dbg.json +4 -0
  18. package/artifacts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.json +24 -0
  19. package/artifacts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.dbg.json +4 -0
  20. package/artifacts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.json +113 -0
  21. package/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json +4 -0
  22. package/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json +297 -0
  23. package/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json +4 -0
  24. package/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json +194 -0
  25. package/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json +4 -0
  26. package/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.json +233 -0
  27. package/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json +4 -0
  28. package/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.json +10 -0
  29. package/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +4 -0
  30. package/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json +10 -0
  31. package/artifacts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json +4 -0
  32. package/artifacts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.json +10 -0
  33. package/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json +4 -0
  34. package/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json +10 -0
  35. package/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.dbg.json +4 -0
  36. package/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json +30 -0
  37. package/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.dbg.json +4 -0
  38. package/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json +30 -0
  39. package/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.dbg.json +4 -0
  40. package/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.json +10 -0
  41. package/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.dbg.json +4 -0
  42. package/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.json +10 -0
  43. package/artifacts/@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol/Ownable2StepUpgradeable.dbg.json +4 -0
  44. package/artifacts/@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol/Ownable2StepUpgradeable.json +115 -0
  45. package/artifacts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.dbg.json +4 -0
  46. package/artifacts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.json +76 -0
  47. package/artifacts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.dbg.json +4 -0
  48. package/artifacts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.json +24 -0
  49. package/artifacts/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol/ReentrancyGuardUpgradeable.dbg.json +4 -0
  50. package/artifacts/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol/ReentrancyGuardUpgradeable.json +24 -0
  51. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.dbg.json +4 -0
  52. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.json +194 -0
  53. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20PermitUpgradeable.sol/IERC20PermitUpgradeable.dbg.json +4 -0
  54. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20PermitUpgradeable.sol/IERC20PermitUpgradeable.json +86 -0
  55. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol/SafeERC20Upgradeable.dbg.json +4 -0
  56. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol/SafeERC20Upgradeable.json +10 -0
  57. package/artifacts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.dbg.json +4 -0
  58. package/artifacts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.json +10 -0
  59. package/artifacts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.dbg.json +4 -0
  60. package/artifacts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.json +24 -0
  61. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/AccessControlManager.sol/AccessControlManager.dbg.json +4 -0
  62. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/AccessControlManager.sol/AccessControlManager.json +369 -0
  63. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol/AccessControlledV8.dbg.json +4 -0
  64. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol/AccessControlledV8.json +181 -0
  65. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol/IAccessControlManagerV8.dbg.json +4 -0
  66. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol/IAccessControlManagerV8.json +282 -0
  67. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/BoundValidatorInterface.dbg.json +4 -0
  68. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/BoundValidatorInterface.json +40 -0
  69. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/OracleInterface.dbg.json +4 -0
  70. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/OracleInterface.json +30 -0
  71. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/ResilientOracleInterface.dbg.json +4 -0
  72. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/ResilientOracleInterface.json +43 -0
  73. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/TwapInterface.dbg.json +4 -0
  74. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/TwapInterface.json +49 -0
  75. package/artifacts/build-info/16ab40c4151bb2c077b92cd42e217558.json +1 -0
  76. package/artifacts/build-info/f19d689bc99e63a20dd2a17a14e2b84a.json +1 -0
  77. package/artifacts/contracts/BaseJumpRateModelV2.sol/BaseJumpRateModelV2.dbg.json +4 -0
  78. package/artifacts/contracts/BaseJumpRateModelV2.sol/BaseJumpRateModelV2.json +276 -0
  79. package/artifacts/contracts/Comptroller.sol/Comptroller.dbg.json +4 -0
  80. package/artifacts/contracts/Comptroller.sol/Comptroller.json +1667 -0
  81. package/artifacts/contracts/ComptrollerInterface.sol/ComptrollerInterface.dbg.json +4 -0
  82. package/artifacts/contracts/ComptrollerInterface.sol/ComptrollerInterface.json +285 -0
  83. package/artifacts/contracts/ComptrollerInterface.sol/ComptrollerViewInterface.dbg.json +4 -0
  84. package/artifacts/contracts/ComptrollerInterface.sol/ComptrollerViewInterface.json +170 -0
  85. package/artifacts/contracts/ComptrollerStorage.sol/ComptrollerStorage.dbg.json +4 -0
  86. package/artifacts/contracts/ComptrollerStorage.sol/ComptrollerStorage.json +173 -0
  87. package/artifacts/contracts/ErrorReporter.sol/TokenErrorReporter.dbg.json +4 -0
  88. package/artifacts/contracts/ErrorReporter.sol/TokenErrorReporter.json +156 -0
  89. package/artifacts/contracts/ExponentialNoError.sol/ExponentialNoError.dbg.json +4 -0
  90. package/artifacts/contracts/ExponentialNoError.sol/ExponentialNoError.json +10 -0
  91. package/artifacts/contracts/Factories/JumpRateModelFactory.sol/JumpRateModelFactory.dbg.json +4 -0
  92. package/artifacts/contracts/Factories/JumpRateModelFactory.sol/JumpRateModelFactory.json +50 -0
  93. package/artifacts/contracts/Factories/VTokenProxyFactory.sol/VTokenProxyFactory.dbg.json +4 -0
  94. package/artifacts/contracts/Factories/VTokenProxyFactory.sol/VTokenProxyFactory.json +191 -0
  95. package/artifacts/contracts/Factories/WhitePaperInterestRateModelFactory.sol/WhitePaperInterestRateModelFactory.dbg.json +4 -0
  96. package/artifacts/contracts/Factories/WhitePaperInterestRateModelFactory.sol/WhitePaperInterestRateModelFactory.json +35 -0
  97. package/artifacts/contracts/IPancakeswapV2Router.sol/IPancakeswapV2Router.dbg.json +4 -0
  98. package/artifacts/contracts/IPancakeswapV2Router.sol/IPancakeswapV2Router.json +50 -0
  99. package/artifacts/contracts/InterestRateModel.sol/InterestRateModel.dbg.json +4 -0
  100. package/artifacts/contracts/InterestRateModel.sol/InterestRateModel.json +97 -0
  101. package/artifacts/contracts/JumpRateModelV2.sol/JumpRateModelV2.dbg.json +4 -0
  102. package/artifacts/contracts/JumpRateModelV2.sol/JumpRateModelV2.json +307 -0
  103. package/artifacts/contracts/Lens/PoolLens.sol/PoolLens.dbg.json +4 -0
  104. package/artifacts/contracts/Lens/PoolLens.sol/PoolLens.json +1087 -0
  105. package/artifacts/contracts/MaxLoopsLimitHelper.sol/MaxLoopsLimitHelper.dbg.json +4 -0
  106. package/artifacts/contracts/MaxLoopsLimitHelper.sol/MaxLoopsLimitHelper.json +59 -0
  107. package/artifacts/contracts/Pool/PoolRegistry.sol/PoolRegistry.dbg.json +4 -0
  108. package/artifacts/contracts/Pool/PoolRegistry.sol/PoolRegistry.json +923 -0
  109. package/artifacts/contracts/Pool/PoolRegistryInterface.sol/PoolRegistryInterface.dbg.json +4 -0
  110. package/artifacts/contracts/Pool/PoolRegistryInterface.sol/PoolRegistryInterface.json +176 -0
  111. package/artifacts/contracts/Proxy/UpgradeableBeacon.sol/Beacon.dbg.json +4 -0
  112. package/artifacts/contracts/Proxy/UpgradeableBeacon.sol/Beacon.json +113 -0
  113. package/artifacts/contracts/Rewards/RewardsDistributor.sol/RewardsDistributor.dbg.json +4 -0
  114. package/artifacts/contracts/Rewards/RewardsDistributor.sol/RewardsDistributor.json +928 -0
  115. package/artifacts/contracts/RiskFund/IProtocolShareReserve.sol/IProtocolShareReserve.dbg.json +4 -0
  116. package/artifacts/contracts/RiskFund/IProtocolShareReserve.sol/IProtocolShareReserve.json +29 -0
  117. package/artifacts/contracts/RiskFund/IRiskFund.sol/IRiskFund.dbg.json +4 -0
  118. package/artifacts/contracts/RiskFund/IRiskFund.sol/IRiskFund.json +101 -0
  119. package/artifacts/contracts/RiskFund/ProtocolShareReserve.sol/ProtocolShareReserve.dbg.json +4 -0
  120. package/artifacts/contracts/RiskFund/ProtocolShareReserve.sol/ProtocolShareReserve.json +296 -0
  121. package/artifacts/contracts/RiskFund/ReserveHelpers.sol/ReserveHelpers.dbg.json +4 -0
  122. package/artifacts/contracts/RiskFund/ReserveHelpers.sol/ReserveHelpers.json +83 -0
  123. package/artifacts/contracts/RiskFund/RiskFund.sol/RiskFund.dbg.json +4 -0
  124. package/artifacts/contracts/RiskFund/RiskFund.sol/RiskFund.json +615 -0
  125. package/artifacts/contracts/Shortfall/IShortfall.sol/IShortfall.dbg.json +4 -0
  126. package/artifacts/contracts/Shortfall/IShortfall.sol/IShortfall.json +24 -0
  127. package/artifacts/contracts/Shortfall/Shortfall.sol/Shortfall.dbg.json +4 -0
  128. package/artifacts/contracts/Shortfall/Shortfall.sol/Shortfall.json +756 -0
  129. package/artifacts/contracts/VToken.sol/VToken.dbg.json +4 -0
  130. package/artifacts/contracts/VToken.sol/VToken.json +1850 -0
  131. package/artifacts/contracts/VTokenInterfaces.sol/VTokenInterface.dbg.json +4 -0
  132. package/artifacts/contracts/VTokenInterfaces.sol/VTokenInterface.json +1398 -0
  133. package/artifacts/contracts/VTokenInterfaces.sol/VTokenStorage.dbg.json +4 -0
  134. package/artifacts/contracts/VTokenInterfaces.sol/VTokenStorage.json +219 -0
  135. package/artifacts/contracts/WhitePaperInterestRateModel.sol/WhitePaperInterestRateModel.dbg.json +4 -0
  136. package/artifacts/contracts/WhitePaperInterestRateModel.sol/WhitePaperInterestRateModel.json +192 -0
  137. package/artifacts/contracts/test/ComptrollerHarness.sol/ComptrollerHarness.dbg.json +4 -0
  138. package/artifacts/contracts/test/ComptrollerHarness.sol/ComptrollerHarness.json +1712 -0
  139. package/artifacts/contracts/test/ComptrollerHarness.sol/EchoTypesComptroller.dbg.json +4 -0
  140. package/artifacts/contracts/test/ComptrollerHarness.sol/EchoTypesComptroller.json +94 -0
  141. package/artifacts/contracts/test/ComptrollerScenario.sol/ComptrollerScenario.dbg.json +4 -0
  142. package/artifacts/contracts/test/ComptrollerScenario.sol/ComptrollerScenario.json +1744 -0
  143. package/artifacts/contracts/test/ERC20.sol/ERC20.dbg.json +4 -0
  144. package/artifacts/contracts/test/ERC20.sol/ERC20.json +194 -0
  145. package/artifacts/contracts/test/ERC20.sol/ERC20Base.dbg.json +4 -0
  146. package/artifacts/contracts/test/ERC20.sol/ERC20Base.json +141 -0
  147. package/artifacts/contracts/test/ERC20.sol/ERC20Harness.dbg.json +4 -0
  148. package/artifacts/contracts/test/ERC20.sol/ERC20Harness.json +351 -0
  149. package/artifacts/contracts/test/ERC20.sol/ERC20NS.dbg.json +4 -0
  150. package/artifacts/contracts/test/ERC20.sol/ERC20NS.json +182 -0
  151. package/artifacts/contracts/test/ERC20.sol/NonStandardToken.dbg.json +4 -0
  152. package/artifacts/contracts/test/ERC20.sol/NonStandardToken.json +247 -0
  153. package/artifacts/contracts/test/ERC20.sol/StandardToken.dbg.json +4 -0
  154. package/artifacts/contracts/test/ERC20.sol/StandardToken.json +259 -0
  155. package/artifacts/contracts/test/EvilToken.sol/EvilToken.dbg.json +4 -0
  156. package/artifacts/contracts/test/EvilToken.sol/EvilToken.json +303 -0
  157. package/artifacts/contracts/test/FaucetToken.sol/FaucetNonStandardToken.dbg.json +4 -0
  158. package/artifacts/contracts/test/FaucetToken.sol/FaucetNonStandardToken.json +265 -0
  159. package/artifacts/contracts/test/FaucetToken.sol/FaucetToken.dbg.json +4 -0
  160. package/artifacts/contracts/test/FaucetToken.sol/FaucetToken.json +277 -0
  161. package/artifacts/contracts/test/FaucetToken.sol/FaucetTokenReEntrantHarness.dbg.json +4 -0
  162. package/artifacts/contracts/test/FaucetToken.sol/FaucetTokenReEntrantHarness.json +313 -0
  163. package/artifacts/contracts/test/FeeToken.sol/FeeToken.dbg.json +4 -0
  164. package/artifacts/contracts/test/FeeToken.sol/FeeToken.json +313 -0
  165. package/artifacts/contracts/test/HarnessMaxLoopsLimitHelper.sol/HarnessMaxLoopsLimitHelper.dbg.json +4 -0
  166. package/artifacts/contracts/test/HarnessMaxLoopsLimitHelper.sol/HarnessMaxLoopsLimitHelper.json +85 -0
  167. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IERC20.dbg.json +4 -0
  168. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IERC20.json +233 -0
  169. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IPancakeFactory.dbg.json +4 -0
  170. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IPancakeFactory.json +187 -0
  171. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IPancakePair.dbg.json +4 -0
  172. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IPancakePair.json +668 -0
  173. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IPancakeRouter01.dbg.json +4 -0
  174. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IPancakeRouter01.json +760 -0
  175. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IPancakeRouter02.dbg.json +4 -0
  176. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IPancakeRouter02.json +962 -0
  177. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IWETH.dbg.json +4 -0
  178. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IWETH.json +55 -0
  179. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/PancakeLibrary.dbg.json +4 -0
  180. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/PancakeLibrary.json +10 -0
  181. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/PancakeRouter.dbg.json +4 -0
  182. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/PancakeRouter.json +982 -0
  183. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/SafeMath.dbg.json +4 -0
  184. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/SafeMath.json +10 -0
  185. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/TransferHelper.dbg.json +4 -0
  186. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/TransferHelper.json +10 -0
  187. package/artifacts/contracts/test/Mocks/MockPriceOracle.sol/MockPriceOracle.dbg.json +4 -0
  188. package/artifacts/contracts/test/Mocks/MockPriceOracle.sol/MockPriceOracle.json +85 -0
  189. package/artifacts/contracts/test/Mocks/MockToken.sol/MockToken.dbg.json +4 -0
  190. package/artifacts/contracts/test/Mocks/MockToken.sol/MockToken.json +315 -0
  191. package/artifacts/contracts/test/SafeMath.sol/SafeMath.dbg.json +4 -0
  192. package/artifacts/contracts/test/SafeMath.sol/SafeMath.json +10 -0
  193. package/artifacts/contracts/test/UpgradedVToken.sol/UpgradedVToken.dbg.json +4 -0
  194. package/artifacts/contracts/test/UpgradedVToken.sol/UpgradedVToken.json +1946 -0
  195. package/artifacts/contracts/test/VTokenHarness.sol/VTokenHarness.dbg.json +4 -0
  196. package/artifacts/contracts/test/VTokenHarness.sol/VTokenHarness.json +2306 -0
  197. package/contracts/Comptroller.sol +10 -1
  198. package/contracts/Pool/PoolRegistry.sol +2 -0
  199. package/dist/deploy/001-deploy-mock-tokens.d.ts +3 -0
  200. package/dist/deploy/001-deploy-mock-tokens.js +23 -0
  201. package/dist/deploy/002-price-oracle.d.ts +2 -0
  202. package/dist/deploy/002-price-oracle.js +9 -0
  203. package/dist/deploy/003-price-oracle-configure-feeds.d.ts +2 -0
  204. package/dist/deploy/003-price-oracle-configure-feeds.js +9 -0
  205. package/{deploy/004-swap-router.ts → dist/deploy/004-swap-router.d.ts} +0 -3
  206. package/dist/deploy/004-swap-router.js +8 -0
  207. package/dist/deploy/005-access-control.d.ts +3 -0
  208. package/dist/deploy/005-access-control.js +16 -0
  209. package/dist/deploy/006-deploy-factories.d.ts +3 -0
  210. package/dist/deploy/006-deploy-factories.js +68 -0
  211. package/dist/deploy/007-access-control-configure.d.ts +3 -0
  212. package/dist/deploy/007-access-control-configure.js +73 -0
  213. package/dist/deploy/008-deploy-pool-lens.d.ts +3 -0
  214. package/dist/deploy/008-deploy-pool-lens.js +15 -0
  215. package/dist/deploy/009-deploy-pools.d.ts +3 -0
  216. package/dist/deploy/009-deploy-pools.js +125 -0
  217. package/dist/deploy/010-rewards.d.ts +3 -0
  218. package/dist/deploy/010-rewards.js +76 -0
  219. package/dist/deploy/011-transfer-pools-ownership.d.ts +3 -0
  220. package/dist/deploy/011-transfer-pools-ownership.js +75 -0
  221. package/dist/deploy/012-riskfund-protocolshare.d.ts +3 -0
  222. package/dist/deploy/012-riskfund-protocolshare.js +139 -0
  223. package/dist/deploy/013-transfer-funds-ownership.d.ts +3 -0
  224. package/dist/deploy/013-transfer-funds-ownership.js +46 -0
  225. package/dist/hardhat.config.d.ts +14 -0
  226. package/dist/hardhat.config.js +237 -0
  227. package/dist/helpers/deploymentConfig.d.ts +59 -0
  228. package/dist/helpers/deploymentConfig.js +836 -0
  229. package/dist/helpers/utils.d.ts +3 -0
  230. package/dist/helpers/utils.js +28 -0
  231. package/package.json +2 -10
  232. package/deploy/001-deploy-mock-tokens.ts +0 -29
  233. package/deploy/002-price-oracle.ts +0 -7
  234. package/deploy/003-price-oracle-configure-feeds.ts +0 -7
  235. package/deploy/005-access-control.ts +0 -20
  236. package/deploy/006-deploy-factories.ts +0 -82
  237. package/deploy/007-access-control-configure.ts +0 -142
  238. package/deploy/008-deploy-pool-lens.ts +0 -19
  239. package/deploy/009-deploy-pools.ts +0 -171
  240. package/deploy/010-rewards.ts +0 -84
  241. package/deploy/011-transfer-pools-ownership.ts +0 -93
  242. package/deploy/012-riskfund-protocolshare.ts +0 -140
  243. package/deploy/013-transfer-funds-ownership.ts +0 -63
  244. package/helpers/deploymentConfig.ts +0 -897
  245. package/helpers/utils.ts +0 -24
@@ -0,0 +1,3 @@
1
+ export declare const convertToUnit: (amount: string | number, decimals: number) => string;
2
+ export declare const scaleDownBy: (amount: string | number, decimals: number) => string;
3
+ export declare const AddressOne = "0x0000000000000000000000000000000000000001";
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.AddressOne = exports.scaleDownBy = exports.convertToUnit = void 0;
7
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
8
+ bignumber_js_1.default.config({
9
+ FORMAT: {
10
+ decimalSeparator: ".",
11
+ groupSize: 0,
12
+ groupSeparator: "",
13
+ secondaryGroupSize: 0,
14
+ fractionGroupSeparator: "",
15
+ fractionGroupSize: 0,
16
+ },
17
+ ROUNDING_MODE: bignumber_js_1.default.ROUND_DOWN,
18
+ EXPONENTIAL_AT: 1e9,
19
+ });
20
+ const convertToUnit = (amount, decimals) => {
21
+ return new bignumber_js_1.default(amount).times(new bignumber_js_1.default(10).pow(decimals)).toString();
22
+ };
23
+ exports.convertToUnit = convertToUnit;
24
+ const scaleDownBy = (amount, decimals) => {
25
+ return new bignumber_js_1.default(amount).dividedBy(new bignumber_js_1.default(10).pow(decimals)).toString();
26
+ };
27
+ exports.scaleDownBy = scaleDownBy;
28
+ exports.AddressOne = "0x0000000000000000000000000000000000000001";
package/package.json CHANGED
@@ -1,21 +1,13 @@
1
1
  {
2
2
  "name": "@venusprotocol/isolated-pools",
3
- "version": "1.0.0-dev.1",
3
+ "version": "1.0.0-dev.3",
4
4
  "description": "",
5
5
  "files": [
6
6
  "artifacts",
7
- "deploy",
8
- "helpers",
7
+ "dist",
9
8
  "contracts",
10
9
  "deployments"
11
10
  ],
12
- "exports": {
13
- "deploy": "./dist/deploy",
14
- "artifacts": "./artifacts",
15
- "helpers": "./helpers",
16
- "contracts": "./contracts",
17
- "deployments": "./deployments"
18
- },
19
11
  "scripts": {
20
12
  "test": "hardhat test",
21
13
  "test:integration": "hardhat test tests/integration/index.ts",
@@ -1,29 +0,0 @@
1
- import { DeployFunction } from "hardhat-deploy/types";
2
- import { HardhatRuntimeEnvironment } from "hardhat/types";
3
-
4
- import { getConfig } from "../helpers/deploymentConfig";
5
-
6
- const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) {
7
- const { deployments, getNamedAccounts }: any = hre;
8
- const { deploy } = deployments;
9
- const { deployer } = await getNamedAccounts();
10
-
11
- const { tokensConfig } = await getConfig(hre.network.name);
12
-
13
- for (const token of tokensConfig) {
14
- if (token.isMock) {
15
- const contractName = `Mock${token.symbol}`;
16
- await deploy(contractName, {
17
- from: deployer,
18
- contract: "MockToken",
19
- args: [token.name, token.symbol, token.decimals],
20
- log: true,
21
- autoMine: true, // speed up deployment on local network (ganache, hardhat), no effect on live networks
22
- });
23
- }
24
- }
25
- };
26
-
27
- func.tags = ["MockTokens"];
28
-
29
- export default func;
@@ -1,7 +0,0 @@
1
- import deployOracle from "@venusprotocol/oracle/dist/deploy/1-deploy-oracles";
2
- import { HardhatRuntimeEnvironment } from "hardhat/types";
3
-
4
- deployOracle.tags = ["OracleDeploy"];
5
- deployOracle.skip = async (hre: HardhatRuntimeEnvironment) => hre.network.live;
6
-
7
- export default deployOracle;
@@ -1,7 +0,0 @@
1
- import configureOracleFeeds from "@venusprotocol/oracle/dist/deploy/2-configure-feeds";
2
- import { HardhatRuntimeEnvironment } from "hardhat/types";
3
-
4
- configureOracleFeeds.tags = ["Oracle"];
5
- configureOracleFeeds.skip = async (hre: HardhatRuntimeEnvironment) => hre.network.live;
6
-
7
- export default configureOracleFeeds;
@@ -1,20 +0,0 @@
1
- import { DeployFunction } from "hardhat-deploy/types";
2
- import { HardhatRuntimeEnvironment } from "hardhat/types";
3
-
4
- const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) {
5
- const { deployments, getNamedAccounts } = hre;
6
- const { deploy } = deployments;
7
- const { deployer } = await getNamedAccounts();
8
-
9
- await deploy("AccessControlManager", {
10
- from: deployer,
11
- args: [],
12
- log: true,
13
- autoMine: true,
14
- });
15
- };
16
-
17
- func.tags = ["AccessControl", "il"];
18
- func.skip = async (hre: HardhatRuntimeEnvironment) => hre.network.live;
19
-
20
- export default func;
@@ -1,82 +0,0 @@
1
- import { ethers } from "hardhat";
2
- import { DeployResult } from "hardhat-deploy/dist/types";
3
- import { DeployFunction } from "hardhat-deploy/types";
4
- import { HardhatRuntimeEnvironment } from "hardhat/types";
5
-
6
- const ADDRESS_ONE = "0x0000000000000000000000000000000000000001";
7
- const treasuryAddresses: { [network: string]: string } = {
8
- hardhat: "0x70997970C51812dc3A010C7d01b50e0d17dc79C8", // signer[1] from hardhat mnemonic
9
- bsctestnet: "0xFEA1c651A47FE29dB9b1bf3cC1f224d8D9CFF68C", // one of testnet admin accounts
10
- bscmainnet: "0xF322942f644A996A617BD29c16bd7d231d9F35E9", // Venus Treasury
11
- };
12
-
13
- type AcmAddresses = {
14
- bsctestnet: string;
15
- bscmainnet: string;
16
- };
17
-
18
- const acmAddresses: AcmAddresses = {
19
- bsctestnet: "0x45f8a08F534f34A97187626E05d4b6648Eeaa9AA",
20
- bscmainnet: "0x4788629ABc6cFCA10F9f969efdEAa1cF70c23555",
21
- };
22
-
23
- const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) {
24
- const { deployments, getNamedAccounts } = hre;
25
- const { deploy } = deployments;
26
- const { deployer } = await getNamedAccounts();
27
- let accessControlManager;
28
- if (hre.network.live) {
29
- const networkName = hre.network.name === "bscmainnet" ? "bscmainnet" : "bsctestnet";
30
- accessControlManager = await ethers.getContractAt("AccessControlManager", acmAddresses[networkName]);
31
- } else {
32
- accessControlManager = await ethers.getContract("AccessControlManager");
33
- }
34
-
35
- const vBep20Factory: DeployResult = await deploy("VTokenProxyFactory", {
36
- from: deployer,
37
- args: [],
38
- log: true,
39
- autoMine: true, // speed up deployment on local network (ganache, hardhat), no effect on live networks
40
- });
41
-
42
- const jumpRateModelFactory: DeployResult = await deploy("JumpRateModelFactory", {
43
- from: deployer,
44
- args: [],
45
- log: true,
46
- autoMine: true,
47
- });
48
-
49
- const whitePaperRateFactory: DeployResult = await deploy("WhitePaperInterestRateModelFactory", {
50
- from: deployer,
51
- args: [],
52
- log: true,
53
- autoMine: true,
54
- });
55
-
56
- await deploy("PoolRegistry", {
57
- from: deployer,
58
- contract: "PoolRegistry",
59
- proxy: {
60
- owner: deployer,
61
- proxyContract: "OpenZeppelinTransparentProxy",
62
- execute: {
63
- methodName: "initialize",
64
- args: [
65
- vBep20Factory.address,
66
- jumpRateModelFactory.address,
67
- whitePaperRateFactory.address,
68
- ADDRESS_ONE,
69
- treasuryAddresses[hre.network.name],
70
- accessControlManager.address,
71
- ],
72
- },
73
- upgradeIndex: 0,
74
- },
75
- autoMine: true,
76
- log: true,
77
- });
78
- };
79
-
80
- func.tags = ["Factories", "il"];
81
-
82
- export default func;
@@ -1,142 +0,0 @@
1
- import { ethers } from "hardhat";
2
- import { DeployFunction } from "hardhat-deploy/types";
3
- import { HardhatRuntimeEnvironment } from "hardhat/types";
4
-
5
- type AcmAddresses = {
6
- bsctestnet: string;
7
- bscmainnet: string;
8
- };
9
-
10
- const ADDRESSES: AcmAddresses = {
11
- bsctestnet: "0x45f8a08F534f34A97187626E05d4b6648Eeaa9AA",
12
- bscmainnet: "0x4788629ABc6cFCA10F9f969efdEAa1cF70c23555",
13
- };
14
-
15
- const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) {
16
- const { deployments, getNamedAccounts } = hre;
17
- const { deploy } = deployments;
18
- const { deployer } = await getNamedAccounts();
19
- const poolRegistry = await ethers.getContract("PoolRegistry");
20
- const vBep20Factory = await ethers.getContract("VTokenProxyFactory");
21
- let accessControlManager;
22
- if (hre.network.live) {
23
- const networkName = hre.network.name === "bscmainnet" ? "bscmainnet" : "bsctestnet";
24
- accessControlManager = await ethers.getContractAt("AccessControlManager", ADDRESSES[networkName]);
25
- } else {
26
- await deploy("AccessControlManager", {
27
- from: deployer,
28
- args: [],
29
- log: true,
30
- autoMine: true,
31
- });
32
- accessControlManager = await ethers.getContract("AccessControlManager");
33
- }
34
-
35
- console.log("==================================================");
36
- console.log("Access Control Initial Configuration: ");
37
- console.log("==================================================");
38
- console.log(" Role | Contract | Function Sig");
39
- console.log("--------------------------------------------------");
40
- let tx = await accessControlManager.giveCallPermission(
41
- ethers.constants.AddressZero,
42
- "setCollateralFactor(address,uint256,uint256)",
43
- poolRegistry.address,
44
- );
45
- await tx.wait();
46
-
47
- console.log("DEFAULT_ADMIN | PoolRegistry | setCollateralFactor(address,uint256,uint256)");
48
-
49
- tx = await accessControlManager.giveCallPermission(
50
- ethers.constants.AddressZero,
51
- "setMarketSupplyCaps(address[],uint256[])",
52
- poolRegistry.address,
53
- );
54
- await tx.wait();
55
-
56
- console.log("DEFAULT_ADMIN | PoolRegistry | setMarketSupplyCaps(address[],uint256[])");
57
-
58
- tx = await accessControlManager.giveCallPermission(
59
- ethers.constants.AddressZero,
60
- "setMarketBorrowCaps(address[],uint256[])",
61
- poolRegistry.address,
62
- );
63
- await tx.wait();
64
- console.log("DEFAULT_ADMIN | PoolRegistry | setMarketBorrowCaps(address[],uint256[])");
65
-
66
- tx = await accessControlManager.giveCallPermission(
67
- ethers.constants.AddressZero,
68
- "setLiquidationIncentive(uint256)",
69
- poolRegistry.address,
70
- );
71
- await tx.wait();
72
- console.log("DEFAULT_ADMIN | PoolRegistry | setLiquidationIncentive(uint256)");
73
-
74
- tx = await accessControlManager.giveCallPermission(
75
- ethers.constants.AddressZero,
76
- "setCloseFactor(uint256)",
77
- poolRegistry.address,
78
- );
79
- await tx.wait();
80
- console.log("DEFAULT_ADMIN | PoolRegistry | setCloseFactor(uint256)");
81
-
82
- tx = await accessControlManager.giveCallPermission(
83
- ethers.constants.AddressZero,
84
- "setMinLiquidatableCollateral(uint256)",
85
- poolRegistry.address,
86
- );
87
- await tx.wait();
88
- console.log("DEFAULT_ADMIN | PoolRegistry | setMinLiquidatableCollateral(uint256)");
89
-
90
- tx = await accessControlManager.giveCallPermission(
91
- ethers.constants.AddressZero,
92
- "supportMarket(address)",
93
- poolRegistry.address,
94
- );
95
- await tx.wait();
96
- console.log("DEFAULT_ADMIN | PoolRegistry | supportMarket(address)");
97
-
98
- tx = await accessControlManager.giveCallPermission(
99
- ethers.constants.AddressZero,
100
- "setInterestRateModel(address)",
101
- vBep20Factory.address,
102
- );
103
- await tx.wait();
104
- console.log("DEFAULT_ADMIN | VTokenProxyFactory | setInterestRateModel(address)");
105
-
106
- tx = await accessControlManager.giveCallPermission(
107
- ethers.constants.AddressZero,
108
- "swapPoolsAssets(address[],uint256[],address[][])",
109
- deployer,
110
- );
111
- await tx.wait();
112
- console.log("DEFAULT_ADMIN | Deployer | swapPoolsAssets(address[],uint256[])");
113
-
114
- tx = await accessControlManager.giveCallPermission(
115
- poolRegistry.address,
116
- "createRegistryPool(string,address,uint256,uint256,uint256,address,uint256,address)",
117
- deployer,
118
- );
119
- await tx.wait();
120
- console.log(
121
- "PoolRegistry | Deployer | createRegistryPool(string,address,uint256,uint256,uint256,address,uint256,address)",
122
- );
123
-
124
- tx = await accessControlManager.giveCallPermission(poolRegistry.address, "addMarket(AddMarketInput)", deployer);
125
- await tx.wait();
126
- console.log("PoolRegistry | Deployer | addMarket(AddMarketInput)");
127
-
128
- tx = await accessControlManager.giveCallPermission(
129
- ethers.constants.AddressZero,
130
- "setRewardTokenSpeeds(address[],uint256[],uint256[])",
131
- deployer,
132
- );
133
- await tx.wait();
134
- console.log("DEFAULT_ADMIN | Deployer | setRewardTokenSpeeds(address[],uint256[],uint256[])");
135
-
136
- console.log("--------------------------------------------------");
137
- console.log("Access Control setup ended successfully");
138
- };
139
-
140
- func.tags = ["AccessControlConfig", "il"];
141
-
142
- export default func;
@@ -1,19 +0,0 @@
1
- import { DeployFunction } from "hardhat-deploy/types";
2
- import { HardhatRuntimeEnvironment } from "hardhat/types";
3
-
4
- const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) {
5
- const { deployments, getNamedAccounts } = hre;
6
- const { deploy } = deployments;
7
- const { deployer } = await getNamedAccounts();
8
-
9
- await deploy("PoolLens", {
10
- from: deployer,
11
- args: [],
12
- log: true,
13
- autoMine: true,
14
- });
15
- };
16
-
17
- func.tags = ["PoolLens", "il"];
18
-
19
- export default func;
@@ -1,171 +0,0 @@
1
- import { ethers } from "hardhat";
2
- import { DeployResult } from "hardhat-deploy/dist/types";
3
- import { DeployFunction } from "hardhat-deploy/types";
4
- import { HardhatRuntimeEnvironment } from "hardhat/types";
5
-
6
- import { getConfig, getTokenConfig } from "../helpers/deploymentConfig";
7
-
8
- const treasuryAddresses: { [network: string]: string } = {
9
- bsctestnet: "0xFEA1c651A47FE29dB9b1bf3cC1f224d8D9CFF68C", // one of testnet admin accounts
10
- bscmainnet: "0xF322942f644A996A617BD29c16bd7d231d9F35E9", // Venus Treasury
11
- };
12
-
13
- type AcmAddresses = {
14
- bsctestnet: string;
15
- bscmainnet: string;
16
- };
17
-
18
- const acmAddresses: AcmAddresses = {
19
- bsctestnet: "0x45f8a08F534f34A97187626E05d4b6648Eeaa9AA",
20
- bscmainnet: "0x4788629ABc6cFCA10F9f969efdEAa1cF70c23555",
21
- };
22
-
23
- const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) {
24
- const { deployments, getNamedAccounts } = hre;
25
- const { deploy } = deployments;
26
- const { deployer } = await getNamedAccounts();
27
- let tx;
28
- const priceOracle = await ethers.getContract("ResilientOracle");
29
- const poolRegistry = await ethers.getContract("PoolRegistry");
30
- let accessControlManager;
31
- if (hre.network.live) {
32
- const networkName = hre.network.name === "bscmainnet" ? "bscmainnet" : "bsctestnet";
33
- accessControlManager = await ethers.getContractAt("AccessControlManager", acmAddresses[networkName]);
34
- } else {
35
- accessControlManager = await ethers.getContract("AccessControlManager");
36
- }
37
- const maxLoopsLimit = 150;
38
-
39
- // Comptroller Beacon
40
- const comptrollerImpl: DeployResult = await deploy("ComptrollerImpl", {
41
- contract: "Comptroller",
42
- from: deployer,
43
- args: [poolRegistry.address],
44
- log: true,
45
- autoMine: true,
46
- });
47
-
48
- const ComptrollerBeacon: DeployResult = await deploy("ComptrollerBeacon", {
49
- contract: "Beacon",
50
- from: deployer,
51
- args: [comptrollerImpl.address],
52
- log: true,
53
- autoMine: true,
54
- });
55
-
56
- // VToken Beacon
57
- const vTokenImpl: DeployResult = await deploy("VtokenImpl", {
58
- contract: "VToken",
59
- from: deployer,
60
- args: [],
61
- log: true,
62
- autoMine: true,
63
- });
64
-
65
- const vTokenBeacon: DeployResult = await deploy("VTokenBeacon", {
66
- contract: "Beacon",
67
- from: deployer,
68
- args: [vTokenImpl.address],
69
- log: true,
70
- autoMine: true,
71
- });
72
-
73
- const { tokensConfig, poolConfig } = await getConfig(hre.network.name);
74
- let pools = await poolRegistry.callStatic.getAllPools();
75
-
76
- for (let i = 0; i < poolConfig.length; i++) {
77
- const pool = poolConfig[i];
78
- let comptrollerProxy;
79
-
80
- if (i >= pools.length) {
81
- // Create pool
82
- console.log("Registering new pool with name " + pool.name);
83
- tx = await poolRegistry.createRegistryPool(
84
- pool.name,
85
- ComptrollerBeacon.address,
86
- pool.closeFactor,
87
- pool.liquidationIncentive,
88
- pool.minLiquidatableCollateral,
89
- priceOracle.address,
90
- maxLoopsLimit,
91
- accessControlManager.address,
92
- );
93
- await tx.wait();
94
- console.log("New Pool Registered");
95
- pools = await poolRegistry.callStatic.getAllPools();
96
- comptrollerProxy = await ethers.getContractAt("Comptroller", pools[i].comptroller);
97
- tx = await comptrollerProxy.acceptOwnership();
98
- await tx.wait();
99
- } else {
100
- comptrollerProxy = await ethers.getContractAt("Comptroller", pools[i].comptroller);
101
- }
102
-
103
- // Add Markets
104
- for (const vtoken of pool.vtokens) {
105
- const {
106
- name,
107
- asset,
108
- symbol,
109
- rateModel,
110
- baseRatePerYear,
111
- multiplierPerYear,
112
- jumpMultiplierPerYear,
113
- kink_,
114
- collateralFactor,
115
- liquidationThreshold,
116
- reserveFactor,
117
- initialSupply,
118
- supplyCap,
119
- borrowCap,
120
- } = vtoken;
121
-
122
- const token = getTokenConfig(asset, tokensConfig);
123
- let tokenContract;
124
- if (token.isMock) {
125
- tokenContract = await ethers.getContract(`Mock${token.symbol}`);
126
- console.log("Minting " + initialSupply + " mock tokens to owner");
127
- tx = await tokenContract.faucet(initialSupply);
128
- await tx.wait(1);
129
- } else {
130
- tokenContract = await ethers.getContractAt(
131
- "@openzeppelin/contracts/token/ERC20/ERC20.sol:ERC20",
132
- token.tokenAddress,
133
- );
134
- // Make sure that deployer has at least `initialSupply` balance of the token
135
- }
136
-
137
- console.log("Approving PoolRegistry for: " + initialSupply);
138
- tx = await tokenContract.approve(poolRegistry.address, initialSupply);
139
- await tx.wait(1);
140
- console.log("Adding market " + name + " to pool " + pool.name);
141
- tx = await poolRegistry.addMarket({
142
- comptroller: comptrollerProxy.address,
143
- asset: tokenContract.address,
144
- decimals: 8,
145
- name: name,
146
- symbol: symbol,
147
- rateModel: rateModel,
148
- baseRatePerYear: baseRatePerYear,
149
- multiplierPerYear: multiplierPerYear,
150
- jumpMultiplierPerYear: jumpMultiplierPerYear,
151
- kink_: kink_,
152
- collateralFactor: collateralFactor,
153
- liquidationThreshold: liquidationThreshold,
154
- reserveFactor: reserveFactor,
155
- accessControlManager: accessControlManager.address,
156
- beaconAddress: vTokenBeacon.address,
157
- initialSupply: initialSupply,
158
- vTokenReceiver: hre.network.name === "hardhat" ? deployer : treasuryAddresses[hre.network.name],
159
- supplyCap: supplyCap,
160
- borrowCap: borrowCap,
161
- });
162
- await tx.wait();
163
- console.log(`Market ${name} added to pool ${pool.name}`);
164
- console.log(`-----------------------------------------`);
165
- }
166
- }
167
- };
168
-
169
- func.tags = ["Pools", "il"];
170
-
171
- export default func;
@@ -1,84 +0,0 @@
1
- import { ethers } from "hardhat";
2
- import { DeployFunction } from "hardhat-deploy/types";
3
- import { HardhatRuntimeEnvironment } from "hardhat/types";
4
-
5
- import { getConfig, getTokenAddress, getTokenConfig } from "../helpers/deploymentConfig";
6
-
7
- type AcmAddresses = {
8
- bsctestnet: string;
9
- bscmainnet: string;
10
- };
11
-
12
- const acmAddresses: AcmAddresses = {
13
- bsctestnet: "0x45f8a08F534f34A97187626E05d4b6648Eeaa9AA",
14
- bscmainnet: "0x4788629ABc6cFCA10F9f969efdEAa1cF70c23555",
15
- };
16
-
17
- const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) {
18
- const { deployments, getNamedAccounts } = hre;
19
- const { deploy } = deployments;
20
- const { deployer } = await getNamedAccounts();
21
- const maxLoopsLimit = 150;
22
- const poolRegistry = await ethers.getContract("PoolRegistry");
23
- let accessControl;
24
- if (hre.network.live) {
25
- const networkName = hre.network.name === "bscmainnet" ? "bscmainnet" : "bsctestnet";
26
- accessControl = await ethers.getContractAt("AccessControlManager", acmAddresses[networkName]);
27
- } else {
28
- accessControl = await ethers.getContract("AccessControlManager");
29
- }
30
-
31
- const { tokensConfig, poolConfig } = await getConfig(hre.network.name);
32
- const pools = await poolRegistry.callStatic.getAllPools();
33
- for (let i = 0; i < poolConfig.length; i++) {
34
- const rewards = poolConfig[i].rewards;
35
- if (!rewards) continue;
36
- for (const reward of rewards) {
37
- const comptrollerAddress = pools[i].comptroller;
38
- // Get reward token address
39
- const tokenConfig = getTokenConfig(reward.asset, tokensConfig);
40
- const rewardTokenAddress = await getTokenAddress(tokenConfig, deployments);
41
- // Custom contract name so we can obtain the proxy after that easily
42
- const contractName = "Rewards" + reward.asset + poolConfig[i].name;
43
- await deploy(contractName, {
44
- from: deployer,
45
- contract: "RewardsDistributor",
46
- proxy: {
47
- owner: deployer,
48
- proxyContract: "OpenZeppelinTransparentProxy",
49
- execute: {
50
- methodName: "initialize",
51
- args: [comptrollerAddress, rewardTokenAddress, maxLoopsLimit, accessControl.address],
52
- },
53
- upgradeIndex: 0,
54
- },
55
- autoMine: true,
56
- log: true,
57
- });
58
-
59
- const rewardsDistributor = await ethers.getContract(contractName);
60
- const vTokens: string[] = [];
61
- for (const marketUnderlying of reward.markets) {
62
- const assetConfig = getTokenConfig(marketUnderlying, tokensConfig);
63
- const tokenAddress = await getTokenAddress(assetConfig, deployments);
64
- const marketAddress = await poolRegistry.getVTokenForAsset(comptrollerAddress, tokenAddress);
65
- vTokens.push(marketAddress);
66
- }
67
- let tx = await rewardsDistributor.setRewardTokenSpeeds(vTokens, reward.supplySpeeds, reward.borrowSpeeds);
68
- await tx.wait(1);
69
- const comptrollerProxy = await ethers.getContractAt("Comptroller", pools[i].comptroller);
70
- try {
71
- console.log("Adding reward distributor to comptroller " + comptrollerAddress);
72
- tx = await comptrollerProxy.addRewardsDistributor(rewardsDistributor.address);
73
- await tx.wait(1);
74
- console.log("Added rewards distributor sucessfully");
75
- } catch (e) {
76
- console.log("Rewards distributor already added.");
77
- continue;
78
- }
79
- }
80
- }
81
- };
82
-
83
- func.tags = ["Rewards", "il"];
84
- export default func;