@venusprotocol/isolated-pools 1.0.0-dev.1 → 1.0.0-dev.11
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.
- package/README.md +1 -11
- package/artifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.dbg.json +4 -0
- package/artifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.json +215 -0
- package/artifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.dbg.json +4 -0
- package/artifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.json +183 -0
- package/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json +4 -0
- package/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.json +63 -0
- package/artifacts/@openzeppelin/contracts/interfaces/IERC1967.sol/IERC1967.dbg.json +4 -0
- package/artifacts/@openzeppelin/contracts/interfaces/IERC1967.sol/IERC1967.json +56 -0
- package/artifacts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.dbg.json +4 -0
- package/artifacts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.json +24 -0
- package/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.dbg.json +4 -0
- package/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.json +56 -0
- package/artifacts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.dbg.json +4 -0
- package/artifacts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.json +19 -0
- package/artifacts/@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol/BeaconProxy.dbg.json +4 -0
- package/artifacts/@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol/BeaconProxy.json +80 -0
- package/artifacts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.dbg.json +4 -0
- package/artifacts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.json +24 -0
- package/artifacts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.dbg.json +4 -0
- package/artifacts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.json +113 -0
- package/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json +4 -0
- package/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json +297 -0
- package/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json +4 -0
- package/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json +194 -0
- package/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json +4 -0
- package/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.json +233 -0
- package/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json +4 -0
- package/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.json +10 -0
- package/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +4 -0
- package/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json +10 -0
- package/artifacts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json +4 -0
- package/artifacts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.json +10 -0
- package/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json +4 -0
- package/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json +10 -0
- package/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.dbg.json +4 -0
- package/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json +30 -0
- package/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.dbg.json +4 -0
- package/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json +30 -0
- package/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.dbg.json +4 -0
- package/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.json +10 -0
- package/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.dbg.json +4 -0
- package/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.json +10 -0
- package/artifacts/@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol/Ownable2StepUpgradeable.dbg.json +4 -0
- package/artifacts/@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol/Ownable2StepUpgradeable.json +115 -0
- package/artifacts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.dbg.json +4 -0
- package/artifacts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.json +76 -0
- package/artifacts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.dbg.json +4 -0
- package/artifacts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.json +24 -0
- package/artifacts/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol/ReentrancyGuardUpgradeable.dbg.json +4 -0
- package/artifacts/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol/ReentrancyGuardUpgradeable.json +24 -0
- package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.dbg.json +4 -0
- package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.json +194 -0
- package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20PermitUpgradeable.sol/IERC20PermitUpgradeable.dbg.json +4 -0
- package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20PermitUpgradeable.sol/IERC20PermitUpgradeable.json +86 -0
- package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol/SafeERC20Upgradeable.dbg.json +4 -0
- package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol/SafeERC20Upgradeable.json +10 -0
- package/artifacts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.dbg.json +4 -0
- package/artifacts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.json +10 -0
- package/artifacts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.dbg.json +4 -0
- package/artifacts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.json +24 -0
- package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/AccessControlManager.sol/AccessControlManager.dbg.json +4 -0
- package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/AccessControlManager.sol/AccessControlManager.json +369 -0
- package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol/AccessControlledV8.dbg.json +4 -0
- package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol/AccessControlledV8.json +181 -0
- package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol/IAccessControlManagerV8.dbg.json +4 -0
- package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol/IAccessControlManagerV8.json +282 -0
- package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/BoundValidatorInterface.dbg.json +4 -0
- package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/BoundValidatorInterface.json +40 -0
- package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/OracleInterface.dbg.json +4 -0
- package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/OracleInterface.json +30 -0
- package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/ResilientOracleInterface.dbg.json +4 -0
- package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/ResilientOracleInterface.json +43 -0
- package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/TwapInterface.dbg.json +4 -0
- package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/TwapInterface.json +49 -0
- package/artifacts/build-info/5d0b3e7c7d317c28bfc8eca20c31f64e.json +1 -0
- package/artifacts/build-info/f19d689bc99e63a20dd2a17a14e2b84a.json +1 -0
- package/artifacts/contracts/BaseJumpRateModelV2.sol/BaseJumpRateModelV2.dbg.json +4 -0
- package/artifacts/contracts/BaseJumpRateModelV2.sol/BaseJumpRateModelV2.json +276 -0
- package/artifacts/contracts/Comptroller.sol/Comptroller.dbg.json +4 -0
- package/artifacts/contracts/Comptroller.sol/Comptroller.json +1667 -0
- package/artifacts/contracts/ComptrollerInterface.sol/ComptrollerInterface.dbg.json +4 -0
- package/artifacts/contracts/ComptrollerInterface.sol/ComptrollerInterface.json +285 -0
- package/artifacts/contracts/ComptrollerInterface.sol/ComptrollerViewInterface.dbg.json +4 -0
- package/artifacts/contracts/ComptrollerInterface.sol/ComptrollerViewInterface.json +170 -0
- package/artifacts/contracts/ComptrollerStorage.sol/ComptrollerStorage.dbg.json +4 -0
- package/artifacts/contracts/ComptrollerStorage.sol/ComptrollerStorage.json +173 -0
- package/artifacts/contracts/ErrorReporter.sol/TokenErrorReporter.dbg.json +4 -0
- package/artifacts/contracts/ErrorReporter.sol/TokenErrorReporter.json +156 -0
- package/artifacts/contracts/ExponentialNoError.sol/ExponentialNoError.dbg.json +4 -0
- package/artifacts/contracts/ExponentialNoError.sol/ExponentialNoError.json +10 -0
- package/artifacts/contracts/IPancakeswapV2Router.sol/IPancakeswapV2Router.dbg.json +4 -0
- package/artifacts/contracts/IPancakeswapV2Router.sol/IPancakeswapV2Router.json +50 -0
- package/artifacts/contracts/InterestRateModel.sol/InterestRateModel.dbg.json +4 -0
- package/artifacts/contracts/InterestRateModel.sol/InterestRateModel.json +97 -0
- package/artifacts/contracts/JumpRateModelV2.sol/JumpRateModelV2.dbg.json +4 -0
- package/artifacts/contracts/JumpRateModelV2.sol/JumpRateModelV2.json +307 -0
- package/artifacts/contracts/Lens/PoolLens.sol/PoolLens.dbg.json +4 -0
- package/artifacts/contracts/Lens/PoolLens.sol/PoolLens.json +1087 -0
- package/artifacts/contracts/MaxLoopsLimitHelper.sol/MaxLoopsLimitHelper.dbg.json +4 -0
- package/artifacts/contracts/MaxLoopsLimitHelper.sol/MaxLoopsLimitHelper.json +59 -0
- package/artifacts/contracts/Pool/PoolRegistry.sol/PoolRegistry.dbg.json +4 -0
- package/artifacts/contracts/Pool/PoolRegistry.sol/PoolRegistry.json +689 -0
- package/artifacts/contracts/Pool/PoolRegistryInterface.sol/PoolRegistryInterface.dbg.json +4 -0
- package/artifacts/contracts/Pool/PoolRegistryInterface.sol/PoolRegistryInterface.json +176 -0
- package/artifacts/contracts/Rewards/RewardsDistributor.sol/RewardsDistributor.dbg.json +4 -0
- package/artifacts/contracts/Rewards/RewardsDistributor.sol/RewardsDistributor.json +928 -0
- package/artifacts/contracts/RiskFund/IProtocolShareReserve.sol/IProtocolShareReserve.dbg.json +4 -0
- package/artifacts/contracts/RiskFund/IProtocolShareReserve.sol/IProtocolShareReserve.json +29 -0
- package/artifacts/contracts/RiskFund/IRiskFund.sol/IRiskFund.dbg.json +4 -0
- package/artifacts/contracts/RiskFund/IRiskFund.sol/IRiskFund.json +101 -0
- package/artifacts/contracts/RiskFund/ProtocolShareReserve.sol/ProtocolShareReserve.dbg.json +4 -0
- package/artifacts/contracts/RiskFund/ProtocolShareReserve.sol/ProtocolShareReserve.json +296 -0
- package/artifacts/contracts/RiskFund/ReserveHelpers.sol/ReserveHelpers.dbg.json +4 -0
- package/artifacts/contracts/RiskFund/ReserveHelpers.sol/ReserveHelpers.json +83 -0
- package/artifacts/contracts/RiskFund/RiskFund.sol/RiskFund.dbg.json +4 -0
- package/artifacts/contracts/RiskFund/RiskFund.sol/RiskFund.json +596 -0
- package/artifacts/contracts/Shortfall/IShortfall.sol/IShortfall.dbg.json +4 -0
- package/artifacts/contracts/Shortfall/IShortfall.sol/IShortfall.json +24 -0
- package/artifacts/contracts/Shortfall/Shortfall.sol/Shortfall.dbg.json +4 -0
- package/artifacts/contracts/Shortfall/Shortfall.sol/Shortfall.json +761 -0
- package/artifacts/contracts/VToken.sol/VToken.dbg.json +4 -0
- package/artifacts/contracts/VToken.sol/VToken.json +1850 -0
- package/artifacts/contracts/VTokenInterfaces.sol/VTokenInterface.dbg.json +4 -0
- package/artifacts/contracts/VTokenInterfaces.sol/VTokenInterface.json +1398 -0
- package/artifacts/contracts/VTokenInterfaces.sol/VTokenStorage.dbg.json +4 -0
- package/artifacts/contracts/VTokenInterfaces.sol/VTokenStorage.json +219 -0
- package/artifacts/contracts/WhitePaperInterestRateModel.sol/WhitePaperInterestRateModel.dbg.json +4 -0
- package/artifacts/contracts/WhitePaperInterestRateModel.sol/WhitePaperInterestRateModel.json +192 -0
- package/artifacts/contracts/test/ComptrollerHarness.sol/ComptrollerHarness.dbg.json +4 -0
- package/artifacts/contracts/test/ComptrollerHarness.sol/ComptrollerHarness.json +1712 -0
- package/artifacts/contracts/test/ComptrollerHarness.sol/EchoTypesComptroller.dbg.json +4 -0
- package/artifacts/contracts/test/ComptrollerHarness.sol/EchoTypesComptroller.json +94 -0
- package/artifacts/contracts/test/ComptrollerScenario.sol/ComptrollerScenario.dbg.json +4 -0
- package/artifacts/contracts/test/ComptrollerScenario.sol/ComptrollerScenario.json +1744 -0
- package/artifacts/contracts/test/ERC20.sol/ERC20.dbg.json +4 -0
- package/artifacts/contracts/test/ERC20.sol/ERC20.json +194 -0
- package/artifacts/contracts/test/ERC20.sol/ERC20Base.dbg.json +4 -0
- package/artifacts/contracts/test/ERC20.sol/ERC20Base.json +141 -0
- package/artifacts/contracts/test/ERC20.sol/ERC20Harness.dbg.json +4 -0
- package/artifacts/contracts/test/ERC20.sol/ERC20Harness.json +351 -0
- package/artifacts/contracts/test/ERC20.sol/ERC20NS.dbg.json +4 -0
- package/artifacts/contracts/test/ERC20.sol/ERC20NS.json +182 -0
- package/artifacts/contracts/test/ERC20.sol/NonStandardToken.dbg.json +4 -0
- package/artifacts/contracts/test/ERC20.sol/NonStandardToken.json +247 -0
- package/artifacts/contracts/test/ERC20.sol/StandardToken.dbg.json +4 -0
- package/artifacts/contracts/test/ERC20.sol/StandardToken.json +259 -0
- package/artifacts/contracts/test/EvilToken.sol/EvilToken.dbg.json +4 -0
- package/artifacts/contracts/test/EvilToken.sol/EvilToken.json +303 -0
- package/artifacts/contracts/test/FaucetToken.sol/FaucetNonStandardToken.dbg.json +4 -0
- package/artifacts/contracts/test/FaucetToken.sol/FaucetNonStandardToken.json +265 -0
- package/artifacts/contracts/test/FaucetToken.sol/FaucetToken.dbg.json +4 -0
- package/artifacts/contracts/test/FaucetToken.sol/FaucetToken.json +277 -0
- package/artifacts/contracts/test/FaucetToken.sol/FaucetTokenReEntrantHarness.dbg.json +4 -0
- package/artifacts/contracts/test/FaucetToken.sol/FaucetTokenReEntrantHarness.json +313 -0
- package/artifacts/contracts/test/FeeToken.sol/FeeToken.dbg.json +4 -0
- package/artifacts/contracts/test/FeeToken.sol/FeeToken.json +313 -0
- package/artifacts/contracts/test/HarnessMaxLoopsLimitHelper.sol/HarnessMaxLoopsLimitHelper.dbg.json +4 -0
- package/artifacts/contracts/test/HarnessMaxLoopsLimitHelper.sol/HarnessMaxLoopsLimitHelper.json +85 -0
- package/artifacts/contracts/test/MockDeflationaryToken.sol/MockDeflatingToken.dbg.json +4 -0
- package/artifacts/contracts/test/MockDeflationaryToken.sol/MockDeflatingToken.json +332 -0
- package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IERC20.dbg.json +4 -0
- package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IERC20.json +233 -0
- package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IPancakeFactory.dbg.json +4 -0
- package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IPancakeFactory.json +187 -0
- package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IPancakePair.dbg.json +4 -0
- package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IPancakePair.json +668 -0
- package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IPancakeRouter01.dbg.json +4 -0
- package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IPancakeRouter01.json +760 -0
- package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IPancakeRouter02.dbg.json +4 -0
- package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IPancakeRouter02.json +962 -0
- package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IWETH.dbg.json +4 -0
- package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IWETH.json +55 -0
- package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/PancakeLibrary.dbg.json +4 -0
- package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/PancakeLibrary.json +10 -0
- package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/PancakeRouter.dbg.json +4 -0
- package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/PancakeRouter.json +982 -0
- package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/SafeMath.dbg.json +4 -0
- package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/SafeMath.json +10 -0
- package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/TransferHelper.dbg.json +4 -0
- package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/TransferHelper.json +10 -0
- package/artifacts/contracts/test/Mocks/MockPriceOracle.sol/MockPriceOracle.dbg.json +4 -0
- package/artifacts/contracts/test/Mocks/MockPriceOracle.sol/MockPriceOracle.json +85 -0
- package/artifacts/contracts/test/Mocks/MockToken.sol/MockToken.dbg.json +4 -0
- package/artifacts/contracts/test/Mocks/MockToken.sol/MockToken.json +315 -0
- package/artifacts/contracts/test/SafeMath.sol/SafeMath.dbg.json +4 -0
- package/artifacts/contracts/test/SafeMath.sol/SafeMath.json +10 -0
- package/artifacts/contracts/test/UpgradedVToken.sol/UpgradedVToken.dbg.json +4 -0
- package/artifacts/contracts/test/UpgradedVToken.sol/UpgradedVToken.json +1946 -0
- package/artifacts/contracts/test/VTokenHarness.sol/VTokenHarness.dbg.json +4 -0
- package/artifacts/contracts/test/VTokenHarness.sol/VTokenHarness.json +2306 -0
- package/contracts/BaseJumpRateModelV2.sol +4 -3
- package/contracts/Comptroller.sol +40 -15
- package/contracts/ComptrollerInterface.sol +10 -0
- package/contracts/ComptrollerStorage.sol +5 -0
- package/contracts/ErrorReporter.sol +5 -0
- package/contracts/ExponentialNoError.sol +0 -7
- package/contracts/Lens/PoolLens.sol +13 -0
- package/contracts/MaxLoopsLimitHelper.sol +5 -0
- package/contracts/Pool/PoolRegistry.sol +58 -206
- package/contracts/Pool/PoolRegistryInterface.sol +12 -7
- package/contracts/Rewards/RewardsDistributor.sol +15 -0
- package/contracts/RiskFund/IProtocolShareReserve.sol +5 -0
- package/contracts/RiskFund/IRiskFund.sol +5 -0
- package/contracts/RiskFund/ProtocolShareReserve.sol +5 -0
- package/contracts/RiskFund/ReserveHelpers.sol +5 -0
- package/contracts/RiskFund/RiskFund.sol +5 -5
- package/contracts/Shortfall/IShortfall.sol +5 -0
- package/contracts/Shortfall/Shortfall.sol +33 -22
- package/contracts/VToken.sol +31 -9
- package/contracts/VTokenInterfaces.sol +10 -0
- package/contracts/WhitePaperInterestRateModel.sol +1 -1
- package/contracts/lib/imports.sol +11 -0
- package/contracts/test/MockDeflationaryToken.sol +113 -0
- package/dist/deploy/001-deploy-mock-tokens.d.ts +3 -0
- package/dist/deploy/001-deploy-mock-tokens.js +23 -0
- package/dist/deploy/002-price-oracle.d.ts +2 -0
- package/dist/deploy/002-price-oracle.js +9 -0
- package/dist/deploy/003-price-oracle-configure-feeds.d.ts +2 -0
- package/dist/deploy/003-price-oracle-configure-feeds.js +9 -0
- package/{deploy/004-swap-router.ts → dist/deploy/004-swap-router.d.ts} +0 -3
- package/dist/deploy/004-swap-router.js +8 -0
- package/dist/deploy/005-access-control.d.ts +3 -0
- package/dist/deploy/005-access-control.js +16 -0
- package/dist/deploy/006-deploy-factories.d.ts +3 -0
- package/dist/deploy/006-deploy-factories.js +37 -0
- package/dist/deploy/007-access-control-configure.d.ts +3 -0
- package/dist/deploy/007-access-control-configure.js +69 -0
- package/dist/deploy/008-deploy-pool-lens.d.ts +3 -0
- package/dist/deploy/008-deploy-pool-lens.js +15 -0
- package/dist/deploy/009-deploy-pools.d.ts +3 -0
- package/dist/deploy/009-deploy-pools.js +186 -0
- package/dist/deploy/010-rewards.d.ts +3 -0
- package/dist/deploy/010-rewards.js +76 -0
- package/dist/deploy/011-transfer-pools-ownership.d.ts +3 -0
- package/dist/deploy/011-transfer-pools-ownership.js +75 -0
- package/dist/deploy/012-riskfund-protocolshare.d.ts +3 -0
- package/dist/deploy/012-riskfund-protocolshare.js +139 -0
- package/dist/deploy/013-transfer-funds-ownership.d.ts +3 -0
- package/dist/deploy/013-transfer-funds-ownership.js +46 -0
- package/dist/hardhat.config.d.ts +14 -0
- package/dist/hardhat.config.js +237 -0
- package/dist/helpers/deploymentConfig.d.ts +59 -0
- package/dist/helpers/deploymentConfig.js +836 -0
- package/dist/helpers/utils.d.ts +3 -0
- package/dist/helpers/utils.js +28 -0
- package/package.json +3 -11
- package/contracts/Factories/JumpRateModelFactory.sol +0 -26
- package/contracts/Factories/VTokenProxyFactory.sol +0 -53
- package/contracts/Factories/WhitePaperInterestRateModelFactory.sol +0 -12
- package/contracts/Proxy/UpgradeableBeacon.sol +0 -10
- package/deploy/001-deploy-mock-tokens.ts +0 -29
- package/deploy/002-price-oracle.ts +0 -7
- package/deploy/003-price-oracle-configure-feeds.ts +0 -7
- package/deploy/005-access-control.ts +0 -20
- package/deploy/006-deploy-factories.ts +0 -82
- package/deploy/007-access-control-configure.ts +0 -142
- package/deploy/008-deploy-pool-lens.ts +0 -19
- package/deploy/009-deploy-pools.ts +0 -171
- package/deploy/010-rewards.ts +0 -84
- package/deploy/011-transfer-pools-ownership.ts +0 -93
- package/deploy/012-riskfund-protocolshare.ts +0 -140
- package/deploy/013-transfer-funds-ownership.ts +0 -63
- package/helpers/deploymentConfig.ts +0 -897
- package/helpers/utils.ts +0 -24
|
@@ -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.
|
|
3
|
+
"version": "1.0.0-dev.11",
|
|
4
4
|
"description": "",
|
|
5
5
|
"files": [
|
|
6
6
|
"artifacts",
|
|
7
|
-
"
|
|
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",
|
|
@@ -45,7 +37,7 @@
|
|
|
45
37
|
},
|
|
46
38
|
"homepage": "https://github.com/VenusProtocol/isolated-pools#readme",
|
|
47
39
|
"engines": {
|
|
48
|
-
"node": "16.
|
|
40
|
+
"node": ">=16.0.0"
|
|
49
41
|
},
|
|
50
42
|
"dependencies": {
|
|
51
43
|
"@openzeppelin/contracts": "^4.8.3",
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: BSD-3-Clause
|
|
2
|
-
pragma solidity 0.8.13;
|
|
3
|
-
|
|
4
|
-
import { IAccessControlManagerV8 } from "@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol";
|
|
5
|
-
|
|
6
|
-
import { JumpRateModelV2 } from "../JumpRateModelV2.sol";
|
|
7
|
-
|
|
8
|
-
contract JumpRateModelFactory {
|
|
9
|
-
function deploy(
|
|
10
|
-
uint256 baseRatePerYear,
|
|
11
|
-
uint256 multiplierPerYear,
|
|
12
|
-
uint256 jumpMultiplierPerYear,
|
|
13
|
-
uint256 kink_,
|
|
14
|
-
IAccessControlManagerV8 accessControlManager_
|
|
15
|
-
) external returns (JumpRateModelV2) {
|
|
16
|
-
JumpRateModelV2 rate = new JumpRateModelV2(
|
|
17
|
-
baseRatePerYear,
|
|
18
|
-
multiplierPerYear,
|
|
19
|
-
jumpMultiplierPerYear,
|
|
20
|
-
kink_,
|
|
21
|
-
accessControlManager_
|
|
22
|
-
);
|
|
23
|
-
|
|
24
|
-
return rate;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: BSD-3-Clause
|
|
2
|
-
pragma solidity 0.8.13;
|
|
3
|
-
|
|
4
|
-
import { BeaconProxy } from "@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol";
|
|
5
|
-
import { AccessControlManager } from "@venusprotocol/governance-contracts/contracts/Governance/AccessControlManager.sol";
|
|
6
|
-
|
|
7
|
-
import { InterestRateModel } from "../InterestRateModel.sol";
|
|
8
|
-
import { ComptrollerInterface } from "../ComptrollerInterface.sol";
|
|
9
|
-
import { VToken } from "../VToken.sol";
|
|
10
|
-
import { VTokenInterface } from "../VTokenInterfaces.sol";
|
|
11
|
-
|
|
12
|
-
contract VTokenProxyFactory {
|
|
13
|
-
struct VTokenArgs {
|
|
14
|
-
address underlying_;
|
|
15
|
-
ComptrollerInterface comptroller_;
|
|
16
|
-
InterestRateModel interestRateModel_;
|
|
17
|
-
uint256 initialExchangeRateMantissa_;
|
|
18
|
-
string name_;
|
|
19
|
-
string symbol_;
|
|
20
|
-
uint8 decimals_;
|
|
21
|
-
address admin_;
|
|
22
|
-
AccessControlManager accessControlManager_;
|
|
23
|
-
VTokenInterface.RiskManagementInit riskManagement;
|
|
24
|
-
address beaconAddress;
|
|
25
|
-
uint256 reserveFactor;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
event VTokenProxyDeployed(VTokenArgs args);
|
|
29
|
-
|
|
30
|
-
function deployVTokenProxy(VTokenArgs memory input) external returns (VToken) {
|
|
31
|
-
BeaconProxy proxy = new BeaconProxy(
|
|
32
|
-
input.beaconAddress,
|
|
33
|
-
abi.encodeWithSelector(
|
|
34
|
-
VToken.initialize.selector,
|
|
35
|
-
input.underlying_,
|
|
36
|
-
input.comptroller_,
|
|
37
|
-
input.interestRateModel_,
|
|
38
|
-
input.initialExchangeRateMantissa_,
|
|
39
|
-
input.name_,
|
|
40
|
-
input.symbol_,
|
|
41
|
-
input.decimals_,
|
|
42
|
-
input.admin_,
|
|
43
|
-
input.accessControlManager_,
|
|
44
|
-
input.riskManagement,
|
|
45
|
-
input.reserveFactor
|
|
46
|
-
)
|
|
47
|
-
);
|
|
48
|
-
|
|
49
|
-
emit VTokenProxyDeployed(input);
|
|
50
|
-
|
|
51
|
-
return VToken(address(proxy));
|
|
52
|
-
}
|
|
53
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: BSD-3-Clause
|
|
2
|
-
pragma solidity 0.8.13;
|
|
3
|
-
|
|
4
|
-
import { WhitePaperInterestRateModel } from "../WhitePaperInterestRateModel.sol";
|
|
5
|
-
|
|
6
|
-
contract WhitePaperInterestRateModelFactory {
|
|
7
|
-
function deploy(uint256 baseRatePerYear, uint256 multiplierPerYear) external returns (WhitePaperInterestRateModel) {
|
|
8
|
-
WhitePaperInterestRateModel rate = new WhitePaperInterestRateModel(baseRatePerYear, multiplierPerYear);
|
|
9
|
-
|
|
10
|
-
return rate;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: BSD-3-Clause
|
|
2
|
-
pragma solidity 0.8.13;
|
|
3
|
-
|
|
4
|
-
import { UpgradeableBeacon } from "@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol";
|
|
5
|
-
|
|
6
|
-
contract Beacon is UpgradeableBeacon {
|
|
7
|
-
constructor(address implementation_) UpgradeableBeacon(implementation_) {
|
|
8
|
-
require(implementation_ != address(0), "Invalid implementation address");
|
|
9
|
-
}
|
|
10
|
-
}
|
|
@@ -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;
|