@venusprotocol/protocol-reserve 1.3.0 → 1.4.0-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -0
- 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 +1 -1
- 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/{contracts/Interfaces/ComptrollerInterface.sol/ComptrollerInterface.json → @openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.json} +5 -5
- 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 +1 -1
- package/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json +1 -1
- 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 +1 -1
- 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 +1 -1
- package/artifacts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol/PausableUpgradeable.dbg.json +4 -0
- package/artifacts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol/PausableUpgradeable.json +63 -0
- package/artifacts/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol/ReentrancyGuardUpgradeable.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20PermitUpgradeable.sol/IERC20PermitUpgradeable.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol/SafeERC20Upgradeable.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.dbg.json +1 -1
- package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol/AccessControlledV8.dbg.json +1 -1
- package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol/IAccessControlManagerV8.dbg.json +1 -1
- package/artifacts/@venusprotocol/oracle/contracts/ResilientOracle.sol/ResilientOracle.dbg.json +4 -0
- package/artifacts/@venusprotocol/oracle/contracts/ResilientOracle.sol/ResilientOracle.json +649 -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 +75 -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/@venusprotocol/oracle/contracts/interfaces/VBep20Interface.sol/VBep20Interface.dbg.json +4 -0
- package/artifacts/@venusprotocol/oracle/contracts/interfaces/VBep20Interface.sol/VBep20Interface.json +246 -0
- package/artifacts/@venusprotocol/solidity-utilities/contracts/MaxLoopsLimitHelper.sol/MaxLoopsLimitHelper.dbg.json +1 -1
- package/artifacts/build-info/e6962244d9988e3e4bb55e591cf3b5d8.json +1 -0
- package/artifacts/contracts/Interfaces/IComptroller.sol/IComptroller.dbg.json +4 -0
- package/artifacts/contracts/Interfaces/IComptroller.sol/IComptroller.json +56 -0
- package/artifacts/contracts/Interfaces/IConverterNetwork.sol/IConverterNetwork.dbg.json +4 -0
- package/artifacts/contracts/Interfaces/IConverterNetwork.sol/IConverterNetwork.json +127 -0
- package/artifacts/contracts/Interfaces/IIncomeDestination.sol/IIncomeDestination.dbg.json +1 -1
- package/artifacts/contracts/Interfaces/IPoolRegistry.sol/IPoolRegistry.dbg.json +4 -0
- package/artifacts/contracts/Interfaces/IPoolRegistry.sol/IPoolRegistry.json +54 -0
- package/artifacts/contracts/Interfaces/IProtocolShareReserve.sol/IProtocolShareReserve.dbg.json +1 -1
- package/artifacts/contracts/Interfaces/IRiskFund.sol/IRiskFund.dbg.json +4 -0
- package/artifacts/contracts/Interfaces/IRiskFund.sol/IRiskFund.json +77 -0
- package/artifacts/contracts/Interfaces/IRiskFund.sol/IRiskFundGetters.dbg.json +4 -0
- package/artifacts/contracts/Interfaces/IRiskFund.sol/IRiskFundGetters.json +24 -0
- package/artifacts/contracts/Interfaces/IRiskFundConverter.sol/IRiskFundConverter.dbg.json +4 -0
- package/artifacts/contracts/Interfaces/{PoolRegistryInterface.sol/PoolRegistryInterface.json → IRiskFundConverter.sol/IRiskFundConverter.json} +23 -10
- package/artifacts/contracts/Interfaces/IShortfall.sol/IShortfall.dbg.json +4 -0
- package/artifacts/contracts/Interfaces/IShortfall.sol/IShortfall.json +24 -0
- package/artifacts/contracts/Interfaces/IVToken.sol/IVToken.dbg.json +1 -1
- package/artifacts/contracts/Interfaces/IXVSVault.sol/IXVSVault.dbg.json +4 -0
- package/artifacts/contracts/Interfaces/IXVSVault.sol/IXVSVault.json +24 -0
- package/artifacts/contracts/ProtocolReserve/ProtocolShareReserve.sol/ProtocolShareReserve.dbg.json +1 -1
- package/artifacts/contracts/ProtocolReserve/ProtocolShareReserve.sol/ProtocolShareReserve.json +7 -2
- package/artifacts/contracts/ProtocolReserve/RiskFundStorage.sol/MaxLoopsLimitHelpersStorage.dbg.json +4 -0
- package/artifacts/contracts/ProtocolReserve/RiskFundStorage.sol/MaxLoopsLimitHelpersStorage.json +24 -0
- package/artifacts/contracts/ProtocolReserve/RiskFundStorage.sol/ReserveHelpersStorage.dbg.json +4 -0
- package/artifacts/contracts/ProtocolReserve/RiskFundStorage.sol/ReserveHelpersStorage.json +139 -0
- package/artifacts/contracts/ProtocolReserve/RiskFundStorage.sol/RiskFundV1Storage.dbg.json +4 -0
- package/artifacts/contracts/ProtocolReserve/RiskFundStorage.sol/RiskFundV1Storage.json +178 -0
- package/artifacts/contracts/ProtocolReserve/RiskFundStorage.sol/RiskFundV2Storage.dbg.json +4 -0
- package/artifacts/contracts/ProtocolReserve/RiskFundStorage.sol/RiskFundV2Storage.json +191 -0
- package/artifacts/contracts/ProtocolReserve/RiskFundV2.sol/RiskFundV2.dbg.json +4 -0
- package/artifacts/contracts/ProtocolReserve/RiskFundV2.sol/RiskFundV2.json +630 -0
- package/artifacts/contracts/ProtocolReserve/XVSVaultTreasury.sol/XVSVaultTreasury.dbg.json +4 -0
- package/artifacts/contracts/ProtocolReserve/XVSVaultTreasury.sol/XVSVaultTreasury.json +315 -0
- package/artifacts/contracts/Test/Mocks/MockACM.sol/MockACM.dbg.json +4 -0
- package/artifacts/contracts/Test/Mocks/MockACM.sol/MockACM.json +369 -0
- package/artifacts/contracts/Test/Mocks/MockArraySorter.sol/MockArraySorter.dbg.json +4 -0
- package/artifacts/contracts/Test/Mocks/MockArraySorter.sol/MockArraySorter.json +40 -0
- package/artifacts/contracts/Test/Mocks/MockConverter.sol/MockConverter.dbg.json +4 -0
- package/artifacts/contracts/Test/Mocks/MockConverter.sol/MockConverter.json +1395 -0
- package/artifacts/contracts/Test/Mocks/MockDeflationaryToken.sol/MockDeflatingToken.dbg.json +4 -0
- package/artifacts/contracts/Test/Mocks/MockDeflationaryToken.sol/MockDeflatingToken.json +332 -0
- package/artifacts/contracts/Test/Mocks/MockRiskFundConverter.sol/MockRiskFundConverter.dbg.json +4 -0
- package/artifacts/contracts/Test/Mocks/MockRiskFundConverter.sol/MockRiskFundConverter.json +1761 -0
- package/artifacts/contracts/Test/Mocks/MockToken.sol/MockToken.dbg.json +1 -1
- package/artifacts/contracts/Test/Mocks/MockToken.sol/MockToken.json +20 -2
- package/artifacts/contracts/TokenConverter/AbstractTokenConverter.sol/AbstractTokenConverter.dbg.json +4 -0
- package/artifacts/contracts/TokenConverter/AbstractTokenConverter.sol/AbstractTokenConverter.json +1276 -0
- package/artifacts/contracts/TokenConverter/ConverterNetwork.sol/ConverterNetwork.dbg.json +4 -0
- package/artifacts/contracts/TokenConverter/ConverterNetwork.sol/ConverterNetwork.json +457 -0
- package/artifacts/contracts/TokenConverter/IAbstractTokenConverter.sol/IAbstractTokenConverter.dbg.json +4 -0
- package/artifacts/contracts/TokenConverter/IAbstractTokenConverter.sol/IAbstractTokenConverter.json +446 -0
- package/artifacts/contracts/TokenConverter/RiskFundConverter.sol/RiskFundConverter.dbg.json +4 -0
- package/artifacts/contracts/TokenConverter/RiskFundConverter.sol/RiskFundConverter.json +1631 -0
- package/artifacts/contracts/TokenConverter/SingleTokenConverter.sol/SingleTokenConverter.dbg.json +4 -0
- package/artifacts/contracts/TokenConverter/SingleTokenConverter.sol/SingleTokenConverter.json +1390 -0
- package/contracts/Interfaces/IComptroller.sol +10 -0
- package/contracts/Interfaces/IConverterNetwork.sol +46 -0
- package/contracts/Interfaces/IPoolRegistry.sol +10 -0
- package/contracts/Interfaces/IRiskFund.sol +28 -0
- package/contracts/Interfaces/IRiskFundConverter.sol +8 -0
- package/contracts/Interfaces/IShortfall.sol +11 -0
- package/contracts/Interfaces/IXVSVault.sol +9 -0
- package/contracts/ProtocolReserve/ProtocolShareReserve.sol +15 -12
- package/contracts/ProtocolReserve/RiskFundStorage.sol +67 -0
- package/contracts/ProtocolReserve/RiskFundV2.sol +253 -0
- package/contracts/ProtocolReserve/XVSVaultTreasury.sol +95 -0
- package/contracts/Test/Mocks/MockACM.sol +94 -0
- package/contracts/Test/Mocks/MockArraySorter.sol +14 -0
- package/contracts/Test/Mocks/MockConverter.sol +70 -0
- package/contracts/Test/Mocks/MockDeflationaryToken.sol +113 -0
- package/contracts/Test/Mocks/MockRiskFundConverter.sol +45 -0
- package/contracts/Test/Mocks/MockToken.sol +4 -0
- package/contracts/Test/imports.sol +11 -0
- package/contracts/TokenConverter/AbstractTokenConverter.sol +1167 -0
- package/contracts/TokenConverter/ConverterNetwork.sol +243 -0
- package/contracts/TokenConverter/IAbstractTokenConverter.sol +178 -0
- package/contracts/TokenConverter/RiskFundConverter.sol +449 -0
- package/contracts/TokenConverter/SingleTokenConverter.sol +103 -0
- package/contracts/Utils/ArrayHelpers.sol +41 -0
- package/deployments/bscmainnet/BTCBPrimeConverter.json +218 -0
- package/deployments/bscmainnet/ConverterNetwork.json +723 -0
- package/deployments/bscmainnet/ConverterNetwork_Implementation.json +823 -0
- package/deployments/bscmainnet/ConverterNetwork_Proxy.json +277 -0
- package/deployments/bscmainnet/ETHPrimeConverter.json +218 -0
- package/deployments/bscmainnet/ProtocolShareReserve_Implementation.json +89 -73
- package/deployments/bscmainnet/RiskFundConverter.json +2035 -0
- package/deployments/bscmainnet/RiskFundConverter_Implementation.json +2563 -0
- package/deployments/bscmainnet/RiskFundConverter_Proxy.json +403 -0
- package/deployments/bscmainnet/RiskFundV2.json +1049 -0
- package/deployments/bscmainnet/SingleTokenConverterBeacon.json +206 -0
- package/deployments/bscmainnet/SingleTokenConverterImp.json +2164 -0
- package/deployments/bscmainnet/USDCPrimeConverter.json +218 -0
- package/deployments/bscmainnet/USDTPrimeConverter.json +218 -0
- package/deployments/bscmainnet/XVSVaultConverter.json +218 -0
- package/deployments/bscmainnet/XVSVaultTreasury.json +579 -0
- package/deployments/bscmainnet/XVSVaultTreasury_Implementation.json +603 -0
- package/deployments/bscmainnet/XVSVaultTreasury_Proxy.json +281 -0
- package/deployments/bscmainnet/solcInputs/d02e743d886d63634298edb2c3d7a019.json +123 -0
- package/deployments/bscmainnet/solcInputs/ee8827a99e03cdf6f6a94fb8782ddf44.json +228 -0
- package/deployments/bscmainnet.json +8927 -873
- package/deployments/bscmainnet_addresses.json +19 -2
- package/deployments/bsctestnet/BTCBPrimeConverter.json +218 -0
- package/deployments/bsctestnet/ConverterNetwork.json +723 -0
- package/deployments/bsctestnet/ConverterNetwork_Implementation.json +823 -0
- package/deployments/bsctestnet/ConverterNetwork_Proxy.json +277 -0
- package/deployments/bsctestnet/ETHPrimeConverter.json +218 -0
- package/deployments/bsctestnet/ProtocolShareReserve_Implementation.json +89 -73
- package/deployments/bsctestnet/RiskFundConverter.json +2035 -0
- package/deployments/bsctestnet/RiskFundConverter_Implementation.json +2563 -0
- package/deployments/bsctestnet/RiskFundConverter_Proxy.json +403 -0
- package/deployments/bsctestnet/RiskFundV2.json +1049 -0
- package/deployments/bsctestnet/SingleTokenConverterBeacon.json +206 -0
- package/deployments/bsctestnet/SingleTokenConverterImp.json +2164 -0
- package/deployments/bsctestnet/USDCPrimeConverter.json +218 -0
- package/deployments/bsctestnet/USDTPrimeConverter.json +218 -0
- package/deployments/bsctestnet/XVSVaultConverter.json +218 -0
- package/deployments/bsctestnet/XVSVaultTreasury.json +579 -0
- package/deployments/bsctestnet/XVSVaultTreasury_Implementation.json +603 -0
- package/deployments/bsctestnet/XVSVaultTreasury_Proxy.json +281 -0
- package/deployments/bsctestnet/solcInputs/d02e743d886d63634298edb2c3d7a019.json +123 -0
- package/deployments/bsctestnet/solcInputs/ee8827a99e03cdf6f6a94fb8782ddf44.json +228 -0
- package/deployments/bsctestnet.json +8927 -873
- package/deployments/bsctestnet_addresses.json +19 -2
- package/dist/deploy/{1-deploy.d.ts → 001-psr.d.ts} +1 -1
- package/dist/deploy/001-psr.d.ts.map +1 -0
- package/dist/deploy/{1-deploy.js → 001-psr.js} +2 -2
- package/dist/deploy/001-psr.js.map +1 -0
- package/dist/deploy/002-risk-fund-converter.d.ts +4 -0
- package/dist/deploy/002-risk-fund-converter.d.ts.map +1 -0
- package/dist/deploy/002-risk-fund-converter.js +78 -0
- package/dist/deploy/002-risk-fund-converter.js.map +1 -0
- package/dist/deploy/003-xvs-vault-teasury.d.ts +2 -0
- package/dist/deploy/003-xvs-vault-teasury.d.ts.map +1 -0
- package/dist/deploy/003-xvs-vault-teasury.js +44 -0
- package/dist/deploy/003-xvs-vault-teasury.js.map +1 -0
- package/dist/deploy/004-single-token-converter.d.ts +4 -0
- package/dist/deploy/004-single-token-converter.d.ts.map +1 -0
- package/dist/deploy/004-single-token-converter.js +65 -0
- package/dist/deploy/004-single-token-converter.js.map +1 -0
- package/dist/deploy/005-converter-network.d.ts +2 -0
- package/dist/deploy/005-converter-network.d.ts.map +1 -0
- package/dist/deploy/005-converter-network.js +42 -0
- package/dist/deploy/005-converter-network.js.map +1 -0
- package/dist/hardhat.config.d.ts.map +1 -1
- package/dist/hardhat.config.js +6 -0
- package/dist/hardhat.config.js.map +1 -1
- package/dist/helpers/utils.d.ts +1 -0
- package/dist/helpers/utils.d.ts.map +1 -1
- package/dist/helpers/utils.js +2 -1
- package/dist/helpers/utils.js.map +1 -1
- package/package.json +19 -16
- package/typechain/AbstractTokenConverter.d.ts +1775 -0
- package/typechain/AccessControl.d.ts +388 -0
- package/typechain/BeaconProxy.d.ts +126 -0
- package/typechain/BoundValidatorInterface.d.ts +126 -0
- package/typechain/ConverterNetwork.d.ts +723 -0
- package/typechain/{PoolRegistryInterface.d.ts → ERC165.d.ts} +20 -25
- package/typechain/ERC1967Upgrade.d.ts +126 -0
- package/typechain/IAbstractTokenConverter.d.ts +773 -0
- package/typechain/IBeacon.d.ts +101 -0
- package/typechain/IComptroller.d.ts +136 -0
- package/typechain/IConverterNetwork.d.ts +292 -0
- package/typechain/IERC165.d.ts +116 -0
- package/typechain/{ComptrollerInterface.d.ts → IERC1822Proxiable.d.ts} +11 -11
- package/typechain/IERC1967.d.ts +126 -0
- package/typechain/IPoolRegistry.d.ts +155 -0
- package/typechain/IRiskFund.d.ts +200 -0
- package/typechain/IRiskFundConverter.d.ts +138 -0
- package/typechain/IRiskFundGetters.d.ts +103 -0
- package/typechain/IShortfall.d.ts +110 -0
- package/typechain/IXVSVault.d.ts +95 -0
- package/typechain/MaxLoopsLimitHelpersStorage.d.ts +101 -0
- package/typechain/MockACM.d.ts +615 -0
- package/typechain/MockArraySorter.d.ts +118 -0
- package/typechain/MockConverter.d.ts +1969 -0
- package/typechain/MockDeflatingToken.d.ts +486 -0
- package/typechain/MockRiskFundConverter.d.ts +2479 -0
- package/typechain/MockToken.d.ts +36 -0
- package/typechain/OracleInterface.d.ts +98 -0
- package/typechain/Ownable.d.ts +181 -0
- package/typechain/PausableUpgradeable.d.ts +129 -0
- package/typechain/Proxy.d.ts +78 -0
- package/typechain/ReserveHelpersStorage.d.ts +300 -0
- package/typechain/ResilientOracle.d.ts +1034 -0
- package/typechain/ResilientOracleInterface.d.ts +192 -0
- package/typechain/RiskFundConverter.d.ts +2235 -0
- package/typechain/RiskFundV1Storage.d.ts +353 -0
- package/typechain/RiskFundV2.d.ts +965 -0
- package/typechain/RiskFundV2Storage.d.ts +372 -0
- package/typechain/SingleTokenConverter.d.ts +1944 -0
- package/typechain/TwapInterface.d.ts +124 -0
- package/typechain/UpgradeableBeacon.d.ts +240 -0
- package/typechain/VBep20Interface.d.ts +379 -0
- package/typechain/XVSVaultTreasury.d.ts +515 -0
- package/typechain/factories/AbstractTokenConverter__factory.ts +1297 -0
- package/typechain/factories/AccessControl__factory.ts +227 -0
- package/typechain/factories/BeaconProxy__factory.ts +133 -0
- package/typechain/factories/BoundValidatorInterface__factory.ts +59 -0
- package/typechain/factories/ConverterNetwork__factory.ts +502 -0
- package/typechain/factories/ERC165__factory.ts +39 -0
- package/typechain/factories/ERC1967Upgrade__factory.ts +71 -0
- package/typechain/factories/IAbstractTokenConverter__factory.ts +466 -0
- package/typechain/factories/IBeacon__factory.ts +36 -0
- package/typechain/factories/IComptroller__factory.ts +68 -0
- package/typechain/factories/IConverterNetwork__factory.ts +142 -0
- package/typechain/factories/{ComptrollerInterface__factory.ts → IERC165__factory.ts} +14 -15
- package/typechain/factories/IERC1822Proxiable__factory.ts +39 -0
- package/typechain/factories/IERC1967__factory.ts +68 -0
- package/typechain/factories/IPoolRegistry__factory.ts +66 -0
- package/typechain/factories/{PoolRegistryInterface__factory.ts → IRiskFundConverter__factory.ts} +28 -19
- package/typechain/factories/IRiskFundGetters__factory.ts +39 -0
- package/typechain/factories/IRiskFund__factory.ts +89 -0
- package/typechain/factories/IShortfall__factory.ts +36 -0
- package/typechain/factories/IXVSVault__factory.ts +36 -0
- package/typechain/factories/MaxLoopsLimitHelpersStorage__factory.ts +75 -0
- package/typechain/factories/MockACM__factory.ts +411 -0
- package/typechain/factories/MockArraySorter__factory.ts +85 -0
- package/typechain/factories/MockConverter__factory.ts +1439 -0
- package/typechain/factories/MockDeflatingToken__factory.ts +389 -0
- package/typechain/factories/MockRiskFundConverter__factory.ts +1828 -0
- package/typechain/factories/MockToken__factory.ts +19 -1
- package/typechain/factories/OracleInterface__factory.ts +45 -0
- package/typechain/factories/Ownable__factory.ts +75 -0
- package/typechain/factories/PausableUpgradeable__factory.ts +78 -0
- package/typechain/factories/ProtocolShareReserve__factory.ts +6 -1
- package/typechain/factories/Proxy__factory.ts +28 -0
- package/typechain/factories/ReserveHelpersStorage__factory.ts +188 -0
- package/typechain/factories/ResilientOracleInterface__factory.ts +94 -0
- package/typechain/factories/ResilientOracle__factory.ts +710 -0
- package/typechain/factories/RiskFundConverter__factory.ts +1694 -0
- package/typechain/factories/RiskFundV1Storage__factory.ts +223 -0
- package/typechain/factories/RiskFundV2Storage__factory.ts +236 -0
- package/typechain/factories/RiskFundV2__factory.ts +672 -0
- package/typechain/factories/SingleTokenConverter__factory.ts +1441 -0
- package/typechain/factories/TwapInterface__factory.ts +61 -0
- package/typechain/factories/UpgradeableBeacon__factory.ts +163 -0
- package/typechain/factories/VBep20Interface__factory.ts +261 -0
- package/typechain/factories/XVSVaultTreasury__factory.ts +365 -0
- package/typechain/index.ts +84 -4
- package/artifacts/build-info/ac790619cb42a0f08af77d9ea733874e.json +0 -1
- package/artifacts/contracts/Interfaces/ComptrollerInterface.sol/ComptrollerInterface.dbg.json +0 -4
- package/artifacts/contracts/Interfaces/PoolRegistryInterface.sol/PoolRegistryInterface.dbg.json +0 -4
- package/contracts/Interfaces/ComptrollerInterface.sol +0 -6
- package/contracts/Interfaces/PoolRegistryInterface.sol +0 -7
- package/dist/deploy/1-deploy.d.ts.map +0 -1
- package/dist/deploy/1-deploy.js.map +0 -1
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
// SPDX-License-Identifier: BSD-3-Clause
|
|
2
|
+
pragma solidity 0.8.13;
|
|
3
|
+
|
|
4
|
+
import { AccessControl } from "@openzeppelin/contracts/access/AccessControl.sol";
|
|
5
|
+
|
|
6
|
+
contract MockACM is AccessControl {
|
|
7
|
+
/// @notice Emitted when an account is given a permission to a certain contract function
|
|
8
|
+
/// @dev If contract address is 0x000..0 this means that the account is a default admin of this function and
|
|
9
|
+
/// can call any contract function with this signature
|
|
10
|
+
event PermissionGranted(address account, address contractAddress, string functionSig);
|
|
11
|
+
|
|
12
|
+
/// @notice Emitted when an account is revoked a permission to a certain contract function
|
|
13
|
+
event PermissionRevoked(address account, address contractAddress, string functionSig);
|
|
14
|
+
|
|
15
|
+
constructor() {
|
|
16
|
+
// Grant the contract deployer the default admin role: it will be able
|
|
17
|
+
// to grant and revoke any roles
|
|
18
|
+
_setupRole(DEFAULT_ADMIN_ROLE, msg.sender);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* @notice Gives a function call permission to one single account
|
|
23
|
+
* @dev this function can be called only from Role Admin or DEFAULT_ADMIN_ROLE
|
|
24
|
+
* @param contractAddress address of contract for which call permissions will be granted
|
|
25
|
+
* @dev if contractAddress is zero address, the account can access the specified function
|
|
26
|
+
* on **any** contract managed by this ACL
|
|
27
|
+
* @param functionSig signature e.g. "functionName(uint256,bool)"
|
|
28
|
+
* @param accountToPermit account that will be given access to the contract function
|
|
29
|
+
* @custom:event Emits a {RoleGranted} and {PermissionGranted} events.
|
|
30
|
+
*/
|
|
31
|
+
function giveCallPermission(
|
|
32
|
+
address contractAddress,
|
|
33
|
+
string memory functionSig,
|
|
34
|
+
address accountToPermit
|
|
35
|
+
) public {
|
|
36
|
+
bytes32 role = keccak256(abi.encodePacked(contractAddress, functionSig));
|
|
37
|
+
grantRole(role, accountToPermit);
|
|
38
|
+
emit PermissionGranted(accountToPermit, contractAddress, functionSig);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* @notice Revokes an account's permission to a particular function call
|
|
43
|
+
* @dev this function can be called only from Role Admin or DEFAULT_ADMIN_ROLE
|
|
44
|
+
* May emit a {RoleRevoked} event.
|
|
45
|
+
* @param contractAddress address of contract for which call permissions will be revoked
|
|
46
|
+
* @param functionSig signature e.g. "functionName(uint256,bool)"
|
|
47
|
+
* @custom:event Emits {RoleRevoked} and {PermissionRevoked} events.
|
|
48
|
+
*/
|
|
49
|
+
function revokeCallPermission(
|
|
50
|
+
address contractAddress,
|
|
51
|
+
string memory functionSig,
|
|
52
|
+
address accountToRevoke
|
|
53
|
+
) public {
|
|
54
|
+
bytes32 role = keccak256(abi.encodePacked(contractAddress, functionSig));
|
|
55
|
+
revokeRole(role, accountToRevoke);
|
|
56
|
+
emit PermissionRevoked(accountToRevoke, contractAddress, functionSig);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* @notice Verifies if the given account can call a contract's guarded function
|
|
61
|
+
* @dev Since restricted contracts using this function as a permission hook, we can get contracts address with msg.sender
|
|
62
|
+
* @param account for which call permissions will be checked
|
|
63
|
+
* @param functionSig restricted function signature e.g. "functionName(uint256,bool)"
|
|
64
|
+
* @return false if the user account cannot call the particular contract function
|
|
65
|
+
*
|
|
66
|
+
*/
|
|
67
|
+
function isAllowedToCall(address account, string memory functionSig) public view returns (bool) {
|
|
68
|
+
bytes32 role = keccak256(abi.encodePacked(msg.sender, functionSig));
|
|
69
|
+
|
|
70
|
+
if (hasRole(role, account)) {
|
|
71
|
+
return true;
|
|
72
|
+
} else {
|
|
73
|
+
role = keccak256(abi.encodePacked(address(0), functionSig));
|
|
74
|
+
return hasRole(role, account);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* @notice Verifies if the given account can call a contract's guarded function
|
|
80
|
+
* @dev This function is used as a view function to check permissions rather than contract hook for access restriction check.
|
|
81
|
+
* @param account for which call permissions will be checked against
|
|
82
|
+
* @param contractAddress address of the restricted contract
|
|
83
|
+
* @param functionSig signature of the restricted function e.g. "functionName(uint256,bool)"
|
|
84
|
+
* @return false if the user account cannot call the particular contract function
|
|
85
|
+
*/
|
|
86
|
+
function hasPermission(
|
|
87
|
+
address account,
|
|
88
|
+
address contractAddress,
|
|
89
|
+
string memory functionSig
|
|
90
|
+
) public view returns (bool) {
|
|
91
|
+
bytes32 role = keccak256(abi.encodePacked(contractAddress, functionSig));
|
|
92
|
+
return hasRole(role, account);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// SPDX-License-Identifier: BSD-3-Clause
|
|
2
|
+
pragma solidity ^0.8.10;
|
|
3
|
+
import { sort } from "../../Utils/ArrayHelpers.sol";
|
|
4
|
+
|
|
5
|
+
contract MockArraySorter {
|
|
6
|
+
function sortArray(uint256[] memory balances, address[] memory addrs)
|
|
7
|
+
external
|
|
8
|
+
view
|
|
9
|
+
returns (address[] memory, uint256[] memory)
|
|
10
|
+
{
|
|
11
|
+
sort(balances, addrs);
|
|
12
|
+
return (addrs, balances);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
// SPDX-License-Identifier: BSD-3-Clause
|
|
2
|
+
pragma solidity ^0.8.10;
|
|
3
|
+
|
|
4
|
+
import { SafeERC20Upgradeable } from "@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol";
|
|
5
|
+
import { IERC20Upgradeable } from "@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol";
|
|
6
|
+
import { ResilientOracle } from "@venusprotocol/oracle/contracts/ResilientOracle.sol";
|
|
7
|
+
|
|
8
|
+
import { AbstractTokenConverter } from "../../TokenConverter/AbstractTokenConverter.sol";
|
|
9
|
+
import { IRiskFundGetters } from "../../Interfaces/IRiskFund.sol";
|
|
10
|
+
|
|
11
|
+
contract MockConverter is AbstractTokenConverter {
|
|
12
|
+
using SafeERC20Upgradeable for IERC20Upgradeable;
|
|
13
|
+
|
|
14
|
+
/// @notice Store the previous state for the asset transferred to ProtocolShareReserve combined(for all pools)
|
|
15
|
+
mapping(address => uint256) public assetsReserves;
|
|
16
|
+
|
|
17
|
+
/// @notice Store the asset's reserve per pool in the ProtocolShareReserve
|
|
18
|
+
/// @dev Comptroller(pool) -> Asset -> amount
|
|
19
|
+
mapping(address => mapping(address => uint256)) public poolsAssetsReserves;
|
|
20
|
+
|
|
21
|
+
/// @notice Emitted after updating of the assets reserves
|
|
22
|
+
/// amount -> reserve increased by amount
|
|
23
|
+
event AssetsReservesUpdated(address indexed comptroller, address indexed asset, uint256 amount);
|
|
24
|
+
|
|
25
|
+
function mockPrivateConversion(
|
|
26
|
+
address comptroller,
|
|
27
|
+
address tokenAddressOut,
|
|
28
|
+
uint256 balanceDiff
|
|
29
|
+
) external {
|
|
30
|
+
_privateConversion(comptroller, tokenAddressOut, balanceDiff);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function AbstractTokenConverter_init(
|
|
34
|
+
address accessControlManager_,
|
|
35
|
+
ResilientOracle priceOracle_,
|
|
36
|
+
address destinationAddress_,
|
|
37
|
+
uint256 minAmountToConvert_
|
|
38
|
+
) public initializer {
|
|
39
|
+
__AbstractTokenConverter_init(accessControlManager_, priceOracle_, destinationAddress_, minAmountToConvert_);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function balanceOf(address tokenAddress) public view override returns (uint256 tokenBalance) {
|
|
43
|
+
IERC20Upgradeable token = IERC20Upgradeable(tokenAddress);
|
|
44
|
+
tokenBalance = token.balanceOf(address(this));
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
function _postPrivateConversionHook(
|
|
48
|
+
address comptroller,
|
|
49
|
+
address tokenAddressIn,
|
|
50
|
+
uint256 convertedTokenInBalance,
|
|
51
|
+
address tokenAddressOut,
|
|
52
|
+
uint256 convertedTokenOutBalance
|
|
53
|
+
) internal override {
|
|
54
|
+
if (convertedTokenInBalance > 0) {
|
|
55
|
+
assetsReserves[tokenAddressIn] += convertedTokenInBalance;
|
|
56
|
+
poolsAssetsReserves[comptroller][tokenAddressIn] += convertedTokenInBalance;
|
|
57
|
+
emit AssetsReservesUpdated(comptroller, tokenAddressIn, convertedTokenInBalance);
|
|
58
|
+
}
|
|
59
|
+
if (convertedTokenOutBalance > 0) {
|
|
60
|
+
assetsReserves[tokenAddressOut] += convertedTokenOutBalance;
|
|
61
|
+
poolsAssetsReserves[comptroller][tokenAddressOut] += convertedTokenOutBalance;
|
|
62
|
+
emit AssetsReservesUpdated(comptroller, tokenAddressOut, convertedTokenOutBalance);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/// @notice Get base asset address
|
|
67
|
+
function _getDestinationBaseAsset() internal view override returns (address) {
|
|
68
|
+
return IRiskFundGetters(destinationAddress).convertibleBaseAsset();
|
|
69
|
+
}
|
|
70
|
+
}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
pragma solidity 0.8.13;
|
|
2
|
+
|
|
3
|
+
contract MockDeflatingToken {
|
|
4
|
+
string public constant NAME = "Deflating Test Token";
|
|
5
|
+
string public constant SYMBOL = "DTT";
|
|
6
|
+
uint8 public constant DECIMALS = 18;
|
|
7
|
+
uint256 public totalSupply;
|
|
8
|
+
mapping(address => uint256) public balanceOf;
|
|
9
|
+
mapping(address => mapping(address => uint256)) public allowance;
|
|
10
|
+
|
|
11
|
+
bytes32 public immutable DOMAIN_SEPARATOR;
|
|
12
|
+
// keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)");
|
|
13
|
+
bytes32 public constant PERMIT_TYPEHASH = 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9;
|
|
14
|
+
mapping(address => uint256) public nonces;
|
|
15
|
+
|
|
16
|
+
event Approval(address indexed owner, address indexed spender, uint256 value);
|
|
17
|
+
event Transfer(address indexed from, address indexed to, uint256 value);
|
|
18
|
+
|
|
19
|
+
constructor(uint256 _totalSupply) {
|
|
20
|
+
uint256 chainId;
|
|
21
|
+
assembly {
|
|
22
|
+
chainId := chainid()
|
|
23
|
+
}
|
|
24
|
+
DOMAIN_SEPARATOR = keccak256(
|
|
25
|
+
abi.encode(
|
|
26
|
+
keccak256("EIP712Domain(string NAME,string version,uint256 chainId,address verifyingContract)"),
|
|
27
|
+
keccak256(bytes(NAME)),
|
|
28
|
+
keccak256(bytes("1")),
|
|
29
|
+
chainId,
|
|
30
|
+
address(this)
|
|
31
|
+
)
|
|
32
|
+
);
|
|
33
|
+
_mint(msg.sender, _totalSupply);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function approve(address spender, uint256 value) external returns (bool) {
|
|
37
|
+
_approve(msg.sender, spender, value);
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function transfer(address to, uint256 value) external returns (bool) {
|
|
42
|
+
_transfer(msg.sender, to, value);
|
|
43
|
+
return true;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function transferFrom(
|
|
47
|
+
address from,
|
|
48
|
+
address to,
|
|
49
|
+
uint256 value
|
|
50
|
+
) external returns (bool) {
|
|
51
|
+
if (allowance[from][msg.sender] != type(uint256).max) {
|
|
52
|
+
allowance[from][msg.sender] = allowance[from][msg.sender] - value;
|
|
53
|
+
}
|
|
54
|
+
_transfer(from, to, value);
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
function permit(
|
|
59
|
+
address owner,
|
|
60
|
+
address spender,
|
|
61
|
+
uint256 value,
|
|
62
|
+
uint256 deadline,
|
|
63
|
+
uint8 v,
|
|
64
|
+
bytes32 r,
|
|
65
|
+
bytes32 s
|
|
66
|
+
) external {
|
|
67
|
+
require(deadline >= block.timestamp, "EXPIRED");
|
|
68
|
+
bytes32 digest = keccak256(
|
|
69
|
+
abi.encodePacked(
|
|
70
|
+
"\x19\x01",
|
|
71
|
+
DOMAIN_SEPARATOR,
|
|
72
|
+
keccak256(abi.encode(PERMIT_TYPEHASH, owner, spender, value, nonces[owner]++, deadline))
|
|
73
|
+
)
|
|
74
|
+
);
|
|
75
|
+
address recoveredAddress = ecrecover(digest, v, r, s);
|
|
76
|
+
require(recoveredAddress != address(0) && recoveredAddress == owner, "INVALID_SIGNATURE");
|
|
77
|
+
_approve(owner, spender, value);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
function _mint(address to, uint256 value) internal {
|
|
81
|
+
totalSupply = totalSupply + value;
|
|
82
|
+
balanceOf[to] = balanceOf[to] + value;
|
|
83
|
+
emit Transfer(address(0), to, value);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
function _burn(address from, uint256 value) internal {
|
|
87
|
+
balanceOf[from] = balanceOf[from] - value;
|
|
88
|
+
totalSupply = totalSupply - value;
|
|
89
|
+
emit Transfer(from, address(0), value);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
function _approve(
|
|
93
|
+
address owner,
|
|
94
|
+
address spender,
|
|
95
|
+
uint256 value
|
|
96
|
+
) private {
|
|
97
|
+
allowance[owner][spender] = value;
|
|
98
|
+
emit Approval(owner, spender, value);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
function _transfer(
|
|
102
|
+
address from,
|
|
103
|
+
address to,
|
|
104
|
+
uint256 value
|
|
105
|
+
) private {
|
|
106
|
+
uint256 burnAmount = value / 100;
|
|
107
|
+
_burn(from, burnAmount);
|
|
108
|
+
uint256 transferAmount = value - burnAmount;
|
|
109
|
+
balanceOf[from] = balanceOf[from] - transferAmount;
|
|
110
|
+
balanceOf[to] = balanceOf[to] + transferAmount;
|
|
111
|
+
emit Transfer(from, to, transferAmount);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
// SPDX-License-Identifier: BSD-3-Clause
|
|
2
|
+
pragma solidity 0.8.13;
|
|
3
|
+
|
|
4
|
+
import { RiskFundConverter } from "../../TokenConverter/RiskFundConverter.sol";
|
|
5
|
+
|
|
6
|
+
contract MockRiskFundConverter is RiskFundConverter {
|
|
7
|
+
constructor(
|
|
8
|
+
address corePoolComptroller_,
|
|
9
|
+
address vBNB_,
|
|
10
|
+
address nativeWrapped_
|
|
11
|
+
) RiskFundConverter(corePoolComptroller_, vBNB_, nativeWrapped_) {}
|
|
12
|
+
|
|
13
|
+
function postConversionHookMock(
|
|
14
|
+
address tokenInAddress,
|
|
15
|
+
address tokenOutAddress,
|
|
16
|
+
uint256 amountIn,
|
|
17
|
+
uint256 amountOut
|
|
18
|
+
) external {
|
|
19
|
+
super._postConversionHook(tokenInAddress, tokenOutAddress, amountIn, amountOut);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
function preTransferHookMock(address tokenOutAddress, uint256 amountOut) external {
|
|
23
|
+
super._preTransferHook(tokenOutAddress, amountOut);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function setAssetsReserves(address asset, uint256 amount) external {
|
|
27
|
+
assetsReserves[asset] = amount;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function setPoolsAssetsReserves(
|
|
31
|
+
address comptroller,
|
|
32
|
+
address asset,
|
|
33
|
+
uint256 amount
|
|
34
|
+
) external {
|
|
35
|
+
poolsAssetsReserves[comptroller][asset] = amount;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function getPoolsAssetsReserves(address comptroller, address asset) external view returns (uint256) {
|
|
39
|
+
return poolsAssetsReserves[comptroller][asset];
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function getAssetsReserves(address asset) external view returns (uint256) {
|
|
43
|
+
return assetsReserves[asset];
|
|
44
|
+
}
|
|
45
|
+
}
|
|
@@ -20,6 +20,10 @@ contract MockToken is ERC20 {
|
|
|
20
20
|
_mint(msg.sender, amount);
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
+
function allocateTo(address owner, uint256 amount) external {
|
|
24
|
+
_mint(owner, amount);
|
|
25
|
+
}
|
|
26
|
+
|
|
23
27
|
function decimals() public view virtual override returns (uint8) {
|
|
24
28
|
return _decimals;
|
|
25
29
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// SPDX-License-Identifier: BSD-3-Clause
|
|
2
|
+
pragma solidity 0.8.13;
|
|
3
|
+
|
|
4
|
+
// This file is needed to make hardhat and typechain generate artifacts for
|
|
5
|
+
// contracts we depend on (e.g. in tests or deployments) but not use directly.
|
|
6
|
+
// Another way to do this would be to use hardhat-dependency-compiler, but
|
|
7
|
+
// since we only have a couple of dependencies, installing a separate package
|
|
8
|
+
// seems an overhead.
|
|
9
|
+
|
|
10
|
+
import { UpgradeableBeacon } from "@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol";
|
|
11
|
+
import { BeaconProxy } from "@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol";
|