morpho-contracts-helper 0.0.4 → 0.0.6
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/contracts/OracleFactory.sol +141 -0
- package/contracts/TokenFactory.sol +93 -0
- package/contracts/external/morpho/interfaces/AggregatorV3Interface.sol +22 -0
- package/contracts/external/morpho/interfaces/IERC4626.sol +6 -0
- package/contracts/external/morpho/interfaces/IMorphoChainlinkOracleV2.sol +39 -0
- package/contracts/external/morpho/interfaces/IMorphoChainlinkOracleV2Factory.sol +56 -0
- package/contracts/external/morpho/libraries/ChainlinkDataFeedLib.sol +36 -0
- package/contracts/external/morpho/libraries/ErrorsLib.sol +9 -0
- package/contracts/external/morpho/libraries/VaultLib.sol +18 -0
- package/dist/typechain-types/@openzeppelin/contracts/interfaces/IERC5267.d.ts +79 -0
- package/dist/typechain-types/@openzeppelin/contracts/interfaces/IERC5267.d.ts.map +1 -0
- package/dist/typechain-types/@openzeppelin/contracts/interfaces/IERC5267.js +3 -0
- package/dist/typechain-types/@openzeppelin/contracts/interfaces/IERC5267.js.map +1 -0
- package/dist/typechain-types/@openzeppelin/contracts/interfaces/index.d.ts +1 -0
- package/dist/typechain-types/@openzeppelin/contracts/interfaces/index.d.ts.map +1 -1
- package/dist/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.d.ts +160 -0
- package/dist/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.d.ts.map +1 -0
- package/dist/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.js +3 -0
- package/dist/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.js.map +1 -0
- package/dist/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable.d.ts +174 -0
- package/dist/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable.d.ts.map +1 -0
- package/dist/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable.js +3 -0
- package/dist/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable.js.map +1 -0
- package/dist/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.d.ts +237 -0
- package/dist/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.d.ts.map +1 -0
- package/dist/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.js +3 -0
- package/dist/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.js.map +1 -0
- package/dist/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.d.ts +62 -0
- package/dist/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.d.ts.map +1 -0
- package/dist/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.js +3 -0
- package/dist/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.js.map +1 -0
- package/dist/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/index.d.ts +4 -0
- package/dist/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/index.d.ts.map +1 -1
- package/dist/typechain-types/@openzeppelin/contracts/utils/Nonces.d.ts +26 -0
- package/dist/typechain-types/@openzeppelin/contracts/utils/Nonces.d.ts.map +1 -0
- package/dist/typechain-types/@openzeppelin/contracts/utils/Nonces.js +3 -0
- package/dist/typechain-types/@openzeppelin/contracts/utils/Nonces.js.map +1 -0
- package/dist/typechain-types/@openzeppelin/contracts/utils/Pausable.d.ts +56 -0
- package/dist/typechain-types/@openzeppelin/contracts/utils/Pausable.d.ts.map +1 -0
- package/dist/typechain-types/@openzeppelin/contracts/utils/Pausable.js +3 -0
- package/dist/typechain-types/@openzeppelin/contracts/utils/Pausable.js.map +1 -0
- package/dist/typechain-types/@openzeppelin/contracts/utils/ShortStrings.d.ts +21 -0
- package/dist/typechain-types/@openzeppelin/contracts/utils/ShortStrings.d.ts.map +1 -0
- package/dist/typechain-types/@openzeppelin/contracts/utils/ShortStrings.js +3 -0
- package/dist/typechain-types/@openzeppelin/contracts/utils/ShortStrings.js.map +1 -0
- package/dist/typechain-types/@openzeppelin/contracts/utils/Strings.d.ts +21 -0
- package/dist/typechain-types/@openzeppelin/contracts/utils/Strings.d.ts.map +1 -0
- package/dist/typechain-types/@openzeppelin/contracts/utils/Strings.js +3 -0
- package/dist/typechain-types/@openzeppelin/contracts/utils/Strings.js.map +1 -0
- package/dist/typechain-types/@openzeppelin/contracts/utils/cryptography/ECDSA.d.ts +21 -0
- package/dist/typechain-types/@openzeppelin/contracts/utils/cryptography/ECDSA.d.ts.map +1 -0
- package/dist/typechain-types/@openzeppelin/contracts/utils/cryptography/ECDSA.js +3 -0
- package/dist/typechain-types/@openzeppelin/contracts/utils/cryptography/ECDSA.js.map +1 -0
- package/dist/typechain-types/@openzeppelin/contracts/utils/cryptography/EIP712.d.ts +79 -0
- package/dist/typechain-types/@openzeppelin/contracts/utils/cryptography/EIP712.d.ts.map +1 -0
- package/dist/typechain-types/@openzeppelin/contracts/utils/cryptography/EIP712.js +3 -0
- package/dist/typechain-types/@openzeppelin/contracts/utils/cryptography/EIP712.js.map +1 -0
- package/dist/typechain-types/@openzeppelin/contracts/utils/cryptography/index.d.ts +3 -0
- package/dist/typechain-types/@openzeppelin/contracts/utils/cryptography/index.d.ts.map +1 -0
- package/dist/typechain-types/@openzeppelin/contracts/utils/cryptography/index.js +3 -0
- package/dist/typechain-types/@openzeppelin/contracts/utils/cryptography/index.js.map +1 -0
- package/dist/typechain-types/@openzeppelin/contracts/utils/index.d.ts +8 -0
- package/dist/typechain-types/@openzeppelin/contracts/utils/index.d.ts.map +1 -1
- package/dist/typechain-types/@openzeppelin/contracts/utils/math/SafeCast.d.ts +21 -0
- package/dist/typechain-types/@openzeppelin/contracts/utils/math/SafeCast.d.ts.map +1 -0
- package/dist/typechain-types/@openzeppelin/contracts/utils/math/SafeCast.js +3 -0
- package/dist/typechain-types/@openzeppelin/contracts/utils/math/SafeCast.js.map +1 -0
- package/dist/typechain-types/@openzeppelin/contracts/utils/math/index.d.ts +2 -0
- package/dist/typechain-types/@openzeppelin/contracts/utils/math/index.d.ts.map +1 -0
- package/dist/typechain-types/@openzeppelin/contracts/utils/math/index.js +3 -0
- package/dist/typechain-types/@openzeppelin/contracts/utils/math/index.js.map +1 -0
- package/dist/typechain-types/contracts/OracleFactory.sol/IChainlinkAggregator.d.ts +60 -0
- package/dist/typechain-types/contracts/OracleFactory.sol/IChainlinkAggregator.d.ts.map +1 -0
- package/dist/typechain-types/contracts/OracleFactory.sol/IChainlinkAggregator.js +3 -0
- package/dist/typechain-types/contracts/OracleFactory.sol/IChainlinkAggregator.js.map +1 -0
- package/dist/typechain-types/contracts/OracleFactory.sol/ManualChainlinkMockFeed.d.ts +107 -0
- package/dist/typechain-types/contracts/OracleFactory.sol/ManualChainlinkMockFeed.d.ts.map +1 -0
- package/dist/typechain-types/contracts/OracleFactory.sol/ManualChainlinkMockFeed.js +3 -0
- package/dist/typechain-types/contracts/OracleFactory.sol/ManualChainlinkMockFeed.js.map +1 -0
- package/dist/typechain-types/contracts/OracleFactory.sol/ManualChainlinkMockFeedFactory.d.ts +84 -0
- package/dist/typechain-types/contracts/OracleFactory.sol/ManualChainlinkMockFeedFactory.d.ts.map +1 -0
- package/dist/typechain-types/contracts/OracleFactory.sol/ManualChainlinkMockFeedFactory.js +3 -0
- package/dist/typechain-types/contracts/OracleFactory.sol/ManualChainlinkMockFeedFactory.js.map +1 -0
- package/dist/typechain-types/contracts/OracleFactory.sol/index.d.ts +4 -0
- package/dist/typechain-types/contracts/OracleFactory.sol/index.d.ts.map +1 -0
- package/dist/typechain-types/contracts/OracleFactory.sol/index.js +3 -0
- package/dist/typechain-types/contracts/OracleFactory.sol/index.js.map +1 -0
- package/dist/typechain-types/contracts/TokenFactory.sol/Token.d.ts +340 -0
- package/dist/typechain-types/contracts/TokenFactory.sol/Token.d.ts.map +1 -0
- package/dist/typechain-types/contracts/TokenFactory.sol/Token.js +3 -0
- package/dist/typechain-types/contracts/TokenFactory.sol/Token.js.map +1 -0
- package/dist/typechain-types/contracts/TokenFactory.sol/TokenFactory.d.ts +117 -0
- package/dist/typechain-types/contracts/TokenFactory.sol/TokenFactory.d.ts.map +1 -0
- package/dist/typechain-types/contracts/TokenFactory.sol/TokenFactory.js +3 -0
- package/dist/typechain-types/contracts/TokenFactory.sol/TokenFactory.js.map +1 -0
- package/dist/typechain-types/contracts/TokenFactory.sol/index.d.ts +3 -0
- package/dist/typechain-types/contracts/TokenFactory.sol/index.d.ts.map +1 -0
- package/dist/typechain-types/contracts/TokenFactory.sol/index.js +3 -0
- package/dist/typechain-types/contracts/TokenFactory.sol/index.js.map +1 -0
- package/dist/typechain-types/contracts/external/morpho/interfaces/AggregatorV3Interface.d.ts +104 -0
- package/dist/typechain-types/contracts/external/morpho/interfaces/AggregatorV3Interface.d.ts.map +1 -0
- package/dist/typechain-types/contracts/external/morpho/interfaces/AggregatorV3Interface.js +3 -0
- package/dist/typechain-types/contracts/external/morpho/interfaces/AggregatorV3Interface.js.map +1 -0
- package/dist/typechain-types/contracts/external/morpho/interfaces/IERC4626.d.ts +26 -0
- package/dist/typechain-types/contracts/external/morpho/interfaces/IERC4626.d.ts.map +1 -0
- package/dist/typechain-types/contracts/external/morpho/interfaces/IERC4626.js +3 -0
- package/dist/typechain-types/contracts/external/morpho/interfaces/IERC4626.js.map +1 -0
- package/dist/typechain-types/contracts/external/morpho/interfaces/IMorphoChainlinkOracleV2.d.ts +62 -0
- package/dist/typechain-types/contracts/external/morpho/interfaces/IMorphoChainlinkOracleV2.d.ts.map +1 -0
- package/dist/typechain-types/contracts/external/morpho/interfaces/IMorphoChainlinkOracleV2.js +3 -0
- package/dist/typechain-types/contracts/external/morpho/interfaces/IMorphoChainlinkOracleV2.js.map +1 -0
- package/dist/typechain-types/contracts/external/morpho/interfaces/IMorphoChainlinkOracleV2Factory.d.ts +91 -0
- package/dist/typechain-types/contracts/external/morpho/interfaces/IMorphoChainlinkOracleV2Factory.d.ts.map +1 -0
- package/dist/typechain-types/contracts/external/morpho/interfaces/IMorphoChainlinkOracleV2Factory.js +3 -0
- package/dist/typechain-types/contracts/external/morpho/interfaces/IMorphoChainlinkOracleV2Factory.js.map +1 -0
- package/dist/typechain-types/contracts/external/morpho/interfaces/index.d.ts +4 -0
- package/dist/typechain-types/contracts/external/morpho/interfaces/index.d.ts.map +1 -1
- package/dist/typechain-types/contracts/index.d.ts +4 -0
- package/dist/typechain-types/contracts/index.d.ts.map +1 -1
- package/dist/typechain-types/factories/@openzeppelin/contracts/interfaces/IERC5267__factory.d.ts +47 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/interfaces/IERC5267__factory.d.ts.map +1 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/interfaces/IERC5267__factory.js +70 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/interfaces/IERC5267__factory.js.map +1 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/interfaces/index.d.ts +1 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/interfaces/index.d.ts.map +1 -1
- package/dist/typechain-types/factories/@openzeppelin/contracts/interfaces/index.js +3 -1
- package/dist/typechain-types/factories/@openzeppelin/contracts/interfaces/index.js.map +1 -1
- package/dist/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable__factory.d.ts +266 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable__factory.d.ts.map +1 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable__factory.js +360 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable__factory.js.map +1 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable__factory.d.ts +280 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable__factory.d.ts.map +1 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable__factory.js +378 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable__factory.js.map +1 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit__factory.d.ts +403 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit__factory.d.ts.map +1 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit__factory.js +539 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit__factory.js.map +1 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit__factory.d.ts +66 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit__factory.d.ts.map +1 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit__factory.js +96 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit__factory.js.map +1 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/index.d.ts +4 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/index.d.ts.map +1 -1
- package/dist/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/index.js +9 -1
- package/dist/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/index.js.map +1 -1
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/Nonces__factory.d.ts +34 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/Nonces__factory.d.ts.map +1 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/Nonces__factory.js +56 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/Nonces__factory.js.map +1 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/Pausable__factory.d.ts +46 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/Pausable__factory.d.ts.map +1 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/Pausable__factory.js +70 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/Pausable__factory.js.map +1 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/ShortStrings__factory.d.ts +35 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/ShortStrings__factory.d.ts.map +1 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/ShortStrings__factory.js +57 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/ShortStrings__factory.js.map +1 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/Strings__factory.d.ts +43 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/Strings__factory.d.ts.map +1 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/Strings__factory.js +67 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/Strings__factory.js.map +1 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/ECDSA__factory.d.ts +43 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/ECDSA__factory.d.ts.map +1 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/ECDSA__factory.js +68 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/ECDSA__factory.js.map +1 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/EIP712__factory.d.ts +59 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/EIP712__factory.d.ts.map +1 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/EIP712__factory.js +86 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/EIP712__factory.js.map +1 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/index.d.ts +3 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/index.d.ts.map +1 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/index.js +12 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/index.js.map +1 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/index.d.ts +6 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/index.d.ts.map +1 -1
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/index.js +11 -1
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/index.js.map +1 -1
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/math/SafeCast__factory.d.ts +63 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/math/SafeCast__factory.d.ts.map +1 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/math/SafeCast__factory.js +95 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/math/SafeCast__factory.js.map +1 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/math/index.d.ts +2 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/math/index.d.ts.map +1 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/math/index.js +10 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/math/index.js.map +1 -0
- package/dist/typechain-types/factories/contracts/OracleFactory.sol/IChainlinkAggregator__factory.d.ts +44 -0
- package/dist/typechain-types/factories/contracts/OracleFactory.sol/IChainlinkAggregator__factory.d.ts.map +1 -0
- package/dist/typechain-types/factories/contracts/OracleFactory.sol/IChainlinkAggregator__factory.js +67 -0
- package/dist/typechain-types/factories/contracts/OracleFactory.sol/IChainlinkAggregator__factory.js.map +1 -0
- package/dist/typechain-types/factories/contracts/OracleFactory.sol/ManualChainlinkMockFeedFactory__factory.d.ts +113 -0
- package/dist/typechain-types/factories/contracts/OracleFactory.sol/ManualChainlinkMockFeedFactory__factory.d.ts.map +1 -0
- package/dist/typechain-types/factories/contracts/OracleFactory.sol/ManualChainlinkMockFeedFactory__factory.js +157 -0
- package/dist/typechain-types/factories/contracts/OracleFactory.sol/ManualChainlinkMockFeedFactory__factory.js.map +1 -0
- package/dist/typechain-types/factories/contracts/OracleFactory.sol/ManualChainlinkMockFeed__factory.d.ts +148 -0
- package/dist/typechain-types/factories/contracts/OracleFactory.sol/ManualChainlinkMockFeed__factory.d.ts.map +1 -0
- package/dist/typechain-types/factories/contracts/OracleFactory.sol/ManualChainlinkMockFeed__factory.js +203 -0
- package/dist/typechain-types/factories/contracts/OracleFactory.sol/ManualChainlinkMockFeed__factory.js.map +1 -0
- package/dist/typechain-types/factories/contracts/OracleFactory.sol/index.d.ts +4 -0
- package/dist/typechain-types/factories/contracts/OracleFactory.sol/index.d.ts.map +1 -0
- package/dist/typechain-types/factories/contracts/OracleFactory.sol/index.js +14 -0
- package/dist/typechain-types/factories/contracts/OracleFactory.sol/index.js.map +1 -0
- package/dist/typechain-types/factories/contracts/TokenFactory.sol/TokenFactory__factory.d.ts +182 -0
- package/dist/typechain-types/factories/contracts/TokenFactory.sol/TokenFactory__factory.d.ts.map +1 -0
- package/dist/typechain-types/factories/contracts/TokenFactory.sol/TokenFactory__factory.js +247 -0
- package/dist/typechain-types/factories/contracts/TokenFactory.sol/TokenFactory__factory.js.map +1 -0
- package/dist/typechain-types/factories/contracts/TokenFactory.sol/Token__factory.d.ts +587 -0
- package/dist/typechain-types/factories/contracts/TokenFactory.sol/Token__factory.d.ts.map +1 -0
- package/dist/typechain-types/factories/contracts/TokenFactory.sol/Token__factory.js +776 -0
- package/dist/typechain-types/factories/contracts/TokenFactory.sol/Token__factory.js.map +1 -0
- package/dist/typechain-types/factories/contracts/TokenFactory.sol/index.d.ts +3 -0
- package/dist/typechain-types/factories/contracts/TokenFactory.sol/index.d.ts.map +1 -0
- package/dist/typechain-types/factories/contracts/TokenFactory.sol/index.js +12 -0
- package/dist/typechain-types/factories/contracts/TokenFactory.sol/index.js.map +1 -0
- package/dist/typechain-types/factories/contracts/external/morpho/interfaces/AggregatorV3Interface__factory.d.ts +94 -0
- package/dist/typechain-types/factories/contracts/external/morpho/interfaces/AggregatorV3Interface__factory.d.ts.map +1 -0
- package/dist/typechain-types/factories/contracts/external/morpho/interfaces/AggregatorV3Interface__factory.js +132 -0
- package/dist/typechain-types/factories/contracts/external/morpho/interfaces/AggregatorV3Interface__factory.js.map +1 -0
- package/dist/typechain-types/factories/contracts/external/morpho/interfaces/IERC4626__factory.d.ts +22 -0
- package/dist/typechain-types/factories/contracts/external/morpho/interfaces/IERC4626__factory.d.ts.map +1 -0
- package/dist/typechain-types/factories/contracts/external/morpho/interfaces/IERC4626__factory.js +40 -0
- package/dist/typechain-types/factories/contracts/external/morpho/interfaces/IERC4626__factory.js.map +1 -0
- package/dist/typechain-types/factories/contracts/external/morpho/interfaces/IMorphoChainlinkOracleV2Factory__factory.d.ts +91 -0
- package/dist/typechain-types/factories/contracts/external/morpho/interfaces/IMorphoChainlinkOracleV2Factory__factory.d.ts.map +1 -0
- package/dist/typechain-types/factories/contracts/external/morpho/interfaces/IMorphoChainlinkOracleV2Factory__factory.js +128 -0
- package/dist/typechain-types/factories/contracts/external/morpho/interfaces/IMorphoChainlinkOracleV2Factory__factory.js.map +1 -0
- package/dist/typechain-types/factories/contracts/external/morpho/interfaces/IMorphoChainlinkOracleV2__factory.d.ts +108 -0
- package/dist/typechain-types/factories/contracts/external/morpho/interfaces/IMorphoChainlinkOracleV2__factory.d.ts.map +1 -0
- package/dist/typechain-types/factories/contracts/external/morpho/interfaces/IMorphoChainlinkOracleV2__factory.js +151 -0
- package/dist/typechain-types/factories/contracts/external/morpho/interfaces/IMorphoChainlinkOracleV2__factory.js.map +1 -0
- package/dist/typechain-types/factories/contracts/external/morpho/interfaces/index.d.ts +4 -0
- package/dist/typechain-types/factories/contracts/external/morpho/interfaces/index.d.ts.map +1 -1
- package/dist/typechain-types/factories/contracts/external/morpho/interfaces/index.js +9 -1
- package/dist/typechain-types/factories/contracts/external/morpho/interfaces/index.js.map +1 -1
- package/dist/typechain-types/factories/contracts/index.d.ts +2 -0
- package/dist/typechain-types/factories/contracts/index.d.ts.map +1 -1
- package/dist/typechain-types/factories/contracts/index.js +3 -1
- package/dist/typechain-types/factories/contracts/index.js.map +1 -1
- package/dist/typechain-types/index.d.ts +42 -0
- package/dist/typechain-types/index.d.ts.map +1 -1
- package/dist/typechain-types/index.js +43 -1
- package/dist/typechain-types/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.20;
|
|
3
|
+
|
|
4
|
+
interface IChainlinkAggregator {
|
|
5
|
+
function decimals() external view returns (uint8);
|
|
6
|
+
|
|
7
|
+
function latestRoundData()
|
|
8
|
+
external
|
|
9
|
+
view
|
|
10
|
+
returns (
|
|
11
|
+
uint80 roundId,
|
|
12
|
+
int256 answer,
|
|
13
|
+
uint256 startedAt,
|
|
14
|
+
uint256 updatedAt,
|
|
15
|
+
uint80 answeredInRound
|
|
16
|
+
);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* @title ManualChainlinkMockFeed
|
|
21
|
+
* @notice Mock Chainlink feed with manual price updates
|
|
22
|
+
*/
|
|
23
|
+
contract ManualChainlinkMockFeed is IChainlinkAggregator {
|
|
24
|
+
mapping(address => bool) public isOwner;
|
|
25
|
+
|
|
26
|
+
int256 private _price;
|
|
27
|
+
uint8 private immutable _decimals;
|
|
28
|
+
|
|
29
|
+
string public symbol;
|
|
30
|
+
|
|
31
|
+
event PriceUpdated(int256 newPrice, address indexed updatedBy);
|
|
32
|
+
event OwnerAdded(address indexed newOwner);
|
|
33
|
+
|
|
34
|
+
modifier onlyOwner() {
|
|
35
|
+
require(isOwner[msg.sender], "Unauthorized");
|
|
36
|
+
_;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
constructor(
|
|
40
|
+
int256 initialPrice,
|
|
41
|
+
uint8 decimals_,
|
|
42
|
+
string memory symbol_,
|
|
43
|
+
address[] memory owners_
|
|
44
|
+
) {
|
|
45
|
+
require(owners_.length > 0, "No owners provided");
|
|
46
|
+
|
|
47
|
+
for (uint256 i = 0; i < owners_.length; i++) {
|
|
48
|
+
require(owners_[i] != address(0), "Zero address");
|
|
49
|
+
|
|
50
|
+
isOwner[owners_[i]] = true;
|
|
51
|
+
|
|
52
|
+
emit OwnerAdded(owners_[i]);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
_price = initialPrice;
|
|
56
|
+
_decimals = decimals_;
|
|
57
|
+
symbol = symbol_;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
function latestRoundData()
|
|
61
|
+
external
|
|
62
|
+
view
|
|
63
|
+
override
|
|
64
|
+
returns (
|
|
65
|
+
uint80 roundId,
|
|
66
|
+
int256 answer,
|
|
67
|
+
uint256 startedAt,
|
|
68
|
+
uint256 updatedAt,
|
|
69
|
+
uint80 answeredInRound
|
|
70
|
+
)
|
|
71
|
+
{
|
|
72
|
+
return (1, _price, block.timestamp, block.timestamp, 1);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
function decimals() external view override returns (uint8) {
|
|
76
|
+
return _decimals;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
function setPrice(int256 newPrice) external onlyOwner {
|
|
80
|
+
_price = newPrice;
|
|
81
|
+
|
|
82
|
+
emit PriceUpdated(newPrice, msg.sender);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
function addOwner(address newOwner) external onlyOwner {
|
|
86
|
+
require(newOwner != address(0), "Zero address");
|
|
87
|
+
|
|
88
|
+
isOwner[newOwner] = true;
|
|
89
|
+
|
|
90
|
+
emit OwnerAdded(newOwner);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* @title ManualChainlinkMockFeedFactory
|
|
96
|
+
*/
|
|
97
|
+
contract ManualChainlinkMockFeedFactory {
|
|
98
|
+
address[] public allFeeds;
|
|
99
|
+
|
|
100
|
+
event FeedCreated(
|
|
101
|
+
address indexed feed,
|
|
102
|
+
string symbol,
|
|
103
|
+
int256 initialPrice,
|
|
104
|
+
uint8 decimals,
|
|
105
|
+
address[] owners
|
|
106
|
+
);
|
|
107
|
+
|
|
108
|
+
function createFeed(
|
|
109
|
+
int256 initialPrice,
|
|
110
|
+
uint8 decimals_,
|
|
111
|
+
string memory symbol_,
|
|
112
|
+
address[] memory owners_
|
|
113
|
+
) external returns (address feedAddress) {
|
|
114
|
+
ManualChainlinkMockFeed feed = new ManualChainlinkMockFeed(
|
|
115
|
+
initialPrice,
|
|
116
|
+
decimals_,
|
|
117
|
+
symbol_,
|
|
118
|
+
owners_
|
|
119
|
+
);
|
|
120
|
+
|
|
121
|
+
feedAddress = address(feed);
|
|
122
|
+
|
|
123
|
+
allFeeds.push(feedAddress);
|
|
124
|
+
|
|
125
|
+
emit FeedCreated(
|
|
126
|
+
feedAddress,
|
|
127
|
+
symbol_,
|
|
128
|
+
initialPrice,
|
|
129
|
+
decimals_,
|
|
130
|
+
owners_
|
|
131
|
+
);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
function getAllFeeds() external view returns (address[] memory) {
|
|
135
|
+
return allFeeds;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
function totalFeeds() external view returns (uint256) {
|
|
139
|
+
return allFeeds.length;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.27;
|
|
3
|
+
|
|
4
|
+
import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
|
|
5
|
+
import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
|
|
6
|
+
import {ERC20Burnable} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol";
|
|
7
|
+
import {ERC20Pausable} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable.sol";
|
|
8
|
+
import {ERC20Permit} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol";
|
|
9
|
+
|
|
10
|
+
contract Token is ERC20, ERC20Burnable, ERC20Pausable, Ownable, ERC20Permit {
|
|
11
|
+
constructor(
|
|
12
|
+
string memory name_,
|
|
13
|
+
string memory symbol_,
|
|
14
|
+
address recipient,
|
|
15
|
+
address initialOwner,
|
|
16
|
+
uint256 initialSupply
|
|
17
|
+
)
|
|
18
|
+
ERC20(name_, symbol_)
|
|
19
|
+
Ownable(initialOwner)
|
|
20
|
+
ERC20Permit(name_)
|
|
21
|
+
{
|
|
22
|
+
_mint(recipient, initialSupply);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function pause() public onlyOwner {
|
|
26
|
+
_pause();
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
function unpause() public onlyOwner {
|
|
30
|
+
_unpause();
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function mint(address to, uint256 amount) public onlyOwner {
|
|
34
|
+
_mint(to, amount);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function _update(address from, address to, uint256 value)
|
|
38
|
+
internal
|
|
39
|
+
override(ERC20, ERC20Pausable)
|
|
40
|
+
{
|
|
41
|
+
super._update(from, to, value);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
contract TokenFactory is Ownable {
|
|
46
|
+
address[] public allTokens;
|
|
47
|
+
|
|
48
|
+
event TokenCreated(
|
|
49
|
+
address indexed token,
|
|
50
|
+
string name,
|
|
51
|
+
string symbol,
|
|
52
|
+
address indexed owner,
|
|
53
|
+
uint256 initialSupply
|
|
54
|
+
);
|
|
55
|
+
|
|
56
|
+
constructor(address initialOwner) Ownable(initialOwner) {}
|
|
57
|
+
|
|
58
|
+
function createToken(
|
|
59
|
+
string memory name_,
|
|
60
|
+
string memory symbol_,
|
|
61
|
+
address recipient,
|
|
62
|
+
address tokenOwner,
|
|
63
|
+
uint256 initialSupply
|
|
64
|
+
) external returns (address tokenAddress) {
|
|
65
|
+
Token token = new Token(
|
|
66
|
+
name_,
|
|
67
|
+
symbol_,
|
|
68
|
+
recipient,
|
|
69
|
+
tokenOwner,
|
|
70
|
+
initialSupply
|
|
71
|
+
);
|
|
72
|
+
|
|
73
|
+
tokenAddress = address(token);
|
|
74
|
+
|
|
75
|
+
allTokens.push(tokenAddress);
|
|
76
|
+
|
|
77
|
+
emit TokenCreated(
|
|
78
|
+
tokenAddress,
|
|
79
|
+
name_,
|
|
80
|
+
symbol_,
|
|
81
|
+
tokenOwner,
|
|
82
|
+
initialSupply
|
|
83
|
+
);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
function getAllTokens() external view returns (address[] memory) {
|
|
87
|
+
return allTokens;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
function totalTokens() external view returns (uint256) {
|
|
91
|
+
return allTokens.length;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity >=0.5.0;
|
|
3
|
+
|
|
4
|
+
/// @dev From
|
|
5
|
+
/// https://github.com/smartcontractkit/chainlink/blob/master/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol
|
|
6
|
+
interface AggregatorV3Interface {
|
|
7
|
+
function decimals() external view returns (uint8);
|
|
8
|
+
|
|
9
|
+
function description() external view returns (string memory);
|
|
10
|
+
|
|
11
|
+
function version() external view returns (uint256);
|
|
12
|
+
|
|
13
|
+
function getRoundData(uint80 _roundId)
|
|
14
|
+
external
|
|
15
|
+
view
|
|
16
|
+
returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound);
|
|
17
|
+
|
|
18
|
+
function latestRoundData()
|
|
19
|
+
external
|
|
20
|
+
view
|
|
21
|
+
returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound);
|
|
22
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
2
|
+
pragma solidity >=0.5.0;
|
|
3
|
+
|
|
4
|
+
import {IERC4626} from "./IERC4626.sol";
|
|
5
|
+
import {IOracle} from "./IOracle.sol";
|
|
6
|
+
import {AggregatorV3Interface} from "./AggregatorV3Interface.sol";
|
|
7
|
+
|
|
8
|
+
/// @title IMorphoChainlinkOracleV2
|
|
9
|
+
/// @author Morpho Labs
|
|
10
|
+
/// @custom:contact security@morpho.org
|
|
11
|
+
/// @notice Interface of MorphoChainlinkOracleV2.
|
|
12
|
+
interface IMorphoChainlinkOracleV2 is IOracle {
|
|
13
|
+
/// @notice Returns the address of the base ERC4626 vault.
|
|
14
|
+
function BASE_VAULT() external view returns (IERC4626);
|
|
15
|
+
|
|
16
|
+
/// @notice Returns the base vault conversion sample.
|
|
17
|
+
function BASE_VAULT_CONVERSION_SAMPLE() external view returns (uint256);
|
|
18
|
+
|
|
19
|
+
/// @notice Returns the address of the quote ERC4626 vault.
|
|
20
|
+
function QUOTE_VAULT() external view returns (IERC4626);
|
|
21
|
+
|
|
22
|
+
/// @notice Returns the quote vault conversion sample.
|
|
23
|
+
function QUOTE_VAULT_CONVERSION_SAMPLE() external view returns (uint256);
|
|
24
|
+
|
|
25
|
+
/// @notice Returns the address of the first base feed.
|
|
26
|
+
function BASE_FEED_1() external view returns (AggregatorV3Interface);
|
|
27
|
+
|
|
28
|
+
/// @notice Returns the address of the second base feed.
|
|
29
|
+
function BASE_FEED_2() external view returns (AggregatorV3Interface);
|
|
30
|
+
|
|
31
|
+
/// @notice Returns the address of the first quote feed.
|
|
32
|
+
function QUOTE_FEED_1() external view returns (AggregatorV3Interface);
|
|
33
|
+
|
|
34
|
+
/// @notice Returns the address of the second quote feed.
|
|
35
|
+
function QUOTE_FEED_2() external view returns (AggregatorV3Interface);
|
|
36
|
+
|
|
37
|
+
/// @notice Returns the price scale factor, calculated at contract creation.
|
|
38
|
+
function SCALE_FACTOR() external view returns (uint256);
|
|
39
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
2
|
+
pragma solidity >=0.5.0;
|
|
3
|
+
|
|
4
|
+
import {IERC4626} from "../libraries/VaultLib.sol";
|
|
5
|
+
import {AggregatorV3Interface} from "../libraries/ChainlinkDataFeedLib.sol";
|
|
6
|
+
import {IMorphoChainlinkOracleV2} from "./IMorphoChainlinkOracleV2.sol";
|
|
7
|
+
|
|
8
|
+
/// @title IMorphoChainlinkOracleV2Factory
|
|
9
|
+
/// @author Morpho Labs
|
|
10
|
+
/// @custom:contact security@morpho.org
|
|
11
|
+
/// @notice Interface for MorphoChainlinkOracleV2Factory
|
|
12
|
+
interface IMorphoChainlinkOracleV2Factory {
|
|
13
|
+
/// @notice Emitted when a new Chainlink oracle is created.
|
|
14
|
+
/// @param oracle The address of the Chainlink oracle.
|
|
15
|
+
/// @param caller The caller of the function.
|
|
16
|
+
event CreateMorphoChainlinkOracleV2(address caller, address oracle);
|
|
17
|
+
|
|
18
|
+
/// @notice Whether a Chainlink oracle vault was created with the factory.
|
|
19
|
+
function isMorphoChainlinkOracleV2(address target) external view returns (bool);
|
|
20
|
+
|
|
21
|
+
/// @dev Here is the list of assumptions that guarantees the oracle behaves as expected:
|
|
22
|
+
/// - The vaults, if set, are ERC4626-compliant.
|
|
23
|
+
/// - The feeds, if set, are Chainlink-interface-compliant.
|
|
24
|
+
/// - Decimals passed as argument are correct.
|
|
25
|
+
/// - The base vaults's sample shares quoted as assets and the base feed prices don't overflow when multiplied.
|
|
26
|
+
/// - The quote vault's sample shares quoted as assets and the quote feed prices don't overflow when multiplied.
|
|
27
|
+
/// @param baseVault Base vault. Pass address zero to omit this parameter.
|
|
28
|
+
/// @param baseVaultConversionSample The sample amount of base vault shares used to convert to underlying.
|
|
29
|
+
/// Pass 1 if the base asset is not a vault. Should be chosen such that converting `baseVaultConversionSample` to
|
|
30
|
+
/// assets has enough precision.
|
|
31
|
+
/// @param baseFeed1 First base feed. Pass address zero if the price = 1.
|
|
32
|
+
/// @param baseFeed2 Second base feed. Pass address zero if the price = 1.
|
|
33
|
+
/// @param baseTokenDecimals Base token decimals.
|
|
34
|
+
/// @param quoteVault Quote vault. Pass address zero to omit this parameter.
|
|
35
|
+
/// @param quoteVaultConversionSample The sample amount of quote vault shares used to convert to underlying.
|
|
36
|
+
/// Pass 1 if the quote asset is not a vault. Should be chosen such that converting `quoteVaultConversionSample` to
|
|
37
|
+
/// assets has enough precision.
|
|
38
|
+
/// @param quoteFeed1 First quote feed. Pass address zero if the price = 1.
|
|
39
|
+
/// @param quoteFeed2 Second quote feed. Pass address zero if the price = 1.
|
|
40
|
+
/// @param quoteTokenDecimals Quote token decimals.
|
|
41
|
+
/// @param salt The salt to use for the CREATE2.
|
|
42
|
+
/// @dev The base asset should be the collateral token and the quote asset the loan token.
|
|
43
|
+
function createMorphoChainlinkOracleV2(
|
|
44
|
+
IERC4626 baseVault,
|
|
45
|
+
uint256 baseVaultConversionSample,
|
|
46
|
+
AggregatorV3Interface baseFeed1,
|
|
47
|
+
AggregatorV3Interface baseFeed2,
|
|
48
|
+
uint256 baseTokenDecimals,
|
|
49
|
+
IERC4626 quoteVault,
|
|
50
|
+
uint256 quoteVaultConversionSample,
|
|
51
|
+
AggregatorV3Interface quoteFeed1,
|
|
52
|
+
AggregatorV3Interface quoteFeed2,
|
|
53
|
+
uint256 quoteTokenDecimals,
|
|
54
|
+
bytes32 salt
|
|
55
|
+
) external returns (IMorphoChainlinkOracleV2 oracle);
|
|
56
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
2
|
+
pragma solidity ^0.8.0;
|
|
3
|
+
|
|
4
|
+
import {AggregatorV3Interface} from "../interfaces/AggregatorV3Interface.sol";
|
|
5
|
+
|
|
6
|
+
import {ErrorsLib} from "./ErrorsLib.sol";
|
|
7
|
+
|
|
8
|
+
/// @title ChainlinkDataFeedLib
|
|
9
|
+
/// @author Morpho Labs
|
|
10
|
+
/// @custom:contact security@morpho.org
|
|
11
|
+
/// @notice Library exposing functions to interact with a Chainlink-compliant feed.
|
|
12
|
+
library ChainlinkDataFeedLib {
|
|
13
|
+
/// @dev Performs safety checks and returns the latest price of a `feed`.
|
|
14
|
+
/// @dev When `feed` is the address zero, returns 1.
|
|
15
|
+
/// @dev Notes on safety checks:
|
|
16
|
+
/// - L2s are not supported.
|
|
17
|
+
/// - Staleness is not checked because it's assumed that the Chainlink feed keeps its promises on this.
|
|
18
|
+
/// - The price is not checked to be in the min/max bounds because it's assumed that the Chainlink feed keeps its
|
|
19
|
+
/// promises on this.
|
|
20
|
+
function getPrice(AggregatorV3Interface feed) internal view returns (uint256) {
|
|
21
|
+
if (address(feed) == address(0)) return 1;
|
|
22
|
+
|
|
23
|
+
(, int256 answer,,,) = feed.latestRoundData();
|
|
24
|
+
require(answer >= 0, ErrorsLib.NEGATIVE_ANSWER);
|
|
25
|
+
|
|
26
|
+
return uint256(answer);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/// @dev Returns the number of decimals of a `feed`.
|
|
30
|
+
/// @dev When `feed` is the address zero, returns 0.
|
|
31
|
+
function getDecimals(AggregatorV3Interface feed) internal view returns (uint256) {
|
|
32
|
+
if (address(feed) == address(0)) return 0;
|
|
33
|
+
|
|
34
|
+
return feed.decimals();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -77,4 +77,13 @@ library ErrorsLib {
|
|
|
77
77
|
|
|
78
78
|
/// @notice Thrown when the maximum uint128 is exceeded.
|
|
79
79
|
string internal constant MAX_UINT128_EXCEEDED = "max uint128 exceeded";
|
|
80
|
+
|
|
81
|
+
/// @notice Thrown when the answer returned by a Chainlink feed is negative.
|
|
82
|
+
string constant NEGATIVE_ANSWER = "negative answer";
|
|
83
|
+
|
|
84
|
+
/// @notice Thrown when the vault conversion sample is 0.
|
|
85
|
+
string constant VAULT_CONVERSION_SAMPLE_IS_ZERO = "vault conversion sample is zero";
|
|
86
|
+
|
|
87
|
+
/// @notice Thrown when the vault conversion sample is not 1 while vault = address(0).
|
|
88
|
+
string constant VAULT_CONVERSION_SAMPLE_IS_NOT_ONE = "vault conversion sample is not one";
|
|
80
89
|
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
2
|
+
pragma solidity ^0.8.0;
|
|
3
|
+
|
|
4
|
+
import {IERC4626} from "../interfaces/IERC4626.sol";
|
|
5
|
+
|
|
6
|
+
/// @title VaultLib
|
|
7
|
+
/// @author Morpho Labs
|
|
8
|
+
/// @custom:contact security@morpho.org
|
|
9
|
+
/// @notice Library exposing functions to price shares of an ERC4626 vault.
|
|
10
|
+
library VaultLib {
|
|
11
|
+
/// @dev Converts `shares` into the corresponding assets on the `vault`.
|
|
12
|
+
/// @dev When `vault` is the address zero, returns 1.
|
|
13
|
+
function getAssets(IERC4626 vault, uint256 shares) internal view returns (uint256) {
|
|
14
|
+
if (address(vault) == address(0)) return 1;
|
|
15
|
+
|
|
16
|
+
return vault.convertToAssets(shares);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import type { BaseContract, BytesLike, FunctionFragment, Result, Interface, EventFragment, ContractRunner, ContractMethod, Listener } from "ethers";
|
|
2
|
+
import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedLogDescription, TypedListener, TypedContractMethod } from "../../../common";
|
|
3
|
+
export interface IERC5267Interface extends Interface {
|
|
4
|
+
getFunction(nameOrSignature: "eip712Domain"): FunctionFragment;
|
|
5
|
+
getEvent(nameOrSignatureOrTopic: "EIP712DomainChanged"): EventFragment;
|
|
6
|
+
encodeFunctionData(functionFragment: "eip712Domain", values?: undefined): string;
|
|
7
|
+
decodeFunctionResult(functionFragment: "eip712Domain", data: BytesLike): Result;
|
|
8
|
+
}
|
|
9
|
+
export declare namespace EIP712DomainChangedEvent {
|
|
10
|
+
type InputTuple = [];
|
|
11
|
+
type OutputTuple = [];
|
|
12
|
+
interface OutputObject {
|
|
13
|
+
}
|
|
14
|
+
type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
|
|
15
|
+
type Filter = TypedDeferredTopicFilter<Event>;
|
|
16
|
+
type Log = TypedEventLog<Event>;
|
|
17
|
+
type LogDescription = TypedLogDescription<Event>;
|
|
18
|
+
}
|
|
19
|
+
export interface IERC5267 extends BaseContract {
|
|
20
|
+
connect(runner?: ContractRunner | null): IERC5267;
|
|
21
|
+
waitForDeployment(): Promise<this>;
|
|
22
|
+
interface: IERC5267Interface;
|
|
23
|
+
queryFilter<TCEvent extends TypedContractEvent>(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
|
|
24
|
+
queryFilter<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
|
|
25
|
+
on<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
|
|
26
|
+
on<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
|
|
27
|
+
once<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
|
|
28
|
+
once<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
|
|
29
|
+
listeners<TCEvent extends TypedContractEvent>(event: TCEvent): Promise<Array<TypedListener<TCEvent>>>;
|
|
30
|
+
listeners(eventName?: string): Promise<Array<Listener>>;
|
|
31
|
+
removeAllListeners<TCEvent extends TypedContractEvent>(event?: TCEvent): Promise<this>;
|
|
32
|
+
eip712Domain: TypedContractMethod<[
|
|
33
|
+
], [
|
|
34
|
+
[
|
|
35
|
+
string,
|
|
36
|
+
string,
|
|
37
|
+
string,
|
|
38
|
+
bigint,
|
|
39
|
+
string,
|
|
40
|
+
string,
|
|
41
|
+
bigint[]
|
|
42
|
+
] & {
|
|
43
|
+
fields: string;
|
|
44
|
+
name: string;
|
|
45
|
+
version: string;
|
|
46
|
+
chainId: bigint;
|
|
47
|
+
verifyingContract: string;
|
|
48
|
+
salt: string;
|
|
49
|
+
extensions: bigint[];
|
|
50
|
+
}
|
|
51
|
+
], "view">;
|
|
52
|
+
getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T;
|
|
53
|
+
getFunction(nameOrSignature: "eip712Domain"): TypedContractMethod<[
|
|
54
|
+
], [
|
|
55
|
+
[
|
|
56
|
+
string,
|
|
57
|
+
string,
|
|
58
|
+
string,
|
|
59
|
+
bigint,
|
|
60
|
+
string,
|
|
61
|
+
string,
|
|
62
|
+
bigint[]
|
|
63
|
+
] & {
|
|
64
|
+
fields: string;
|
|
65
|
+
name: string;
|
|
66
|
+
version: string;
|
|
67
|
+
chainId: bigint;
|
|
68
|
+
verifyingContract: string;
|
|
69
|
+
salt: string;
|
|
70
|
+
extensions: bigint[];
|
|
71
|
+
}
|
|
72
|
+
], "view">;
|
|
73
|
+
getEvent(key: "EIP712DomainChanged"): TypedContractEvent<EIP712DomainChangedEvent.InputTuple, EIP712DomainChangedEvent.OutputTuple, EIP712DomainChangedEvent.OutputObject>;
|
|
74
|
+
filters: {
|
|
75
|
+
"EIP712DomainChanged()": TypedContractEvent<EIP712DomainChangedEvent.InputTuple, EIP712DomainChangedEvent.OutputTuple, EIP712DomainChangedEvent.OutputObject>;
|
|
76
|
+
EIP712DomainChanged: TypedContractEvent<EIP712DomainChangedEvent.InputTuple, EIP712DomainChangedEvent.OutputTuple, EIP712DomainChangedEvent.OutputObject>;
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=IERC5267.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IERC5267.d.ts","sourceRoot":"","sources":["../../../../../typechain-types/@openzeppelin/contracts/interfaces/IERC5267.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IERC5267.js","sourceRoot":"","sources":["../../../../../typechain-types/@openzeppelin/contracts/interfaces/IERC5267.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../typechain-types/@openzeppelin/contracts/interfaces/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,gBAAgB,MAAM,sBAAsB,CAAC;AAC9D,YAAY,EAAE,gBAAgB,EAAE,CAAC;AACjC,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../typechain-types/@openzeppelin/contracts/interfaces/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,gBAAgB,MAAM,sBAAsB,CAAC;AAC9D,YAAY,EAAE,gBAAgB,EAAE,CAAC;AACjC,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
|