morpho-contracts-helper 0.0.5 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/contracts/external/morpho/interfaces/AggregatorV3Interface.sol +22 -0
  2. package/contracts/external/morpho/interfaces/IERC2612.sol +10 -0
  3. package/contracts/external/morpho/interfaces/IERC4626.sol +6 -0
  4. package/contracts/external/morpho/interfaces/IMorphoChainlinkOracleV2.sol +39 -0
  5. package/contracts/external/morpho/interfaces/IMorphoChainlinkOracleV2Factory.sol +56 -0
  6. package/contracts/external/morpho/interfaces/IVaultV2.sol +106 -0
  7. package/contracts/external/morpho/interfaces/IVaultV2Factory.sol +15 -0
  8. package/contracts/external/morpho/libraries/ChainlinkDataFeedLib.sol +36 -0
  9. package/contracts/external/morpho/libraries/ErrorsLib.sol +9 -0
  10. package/contracts/external/morpho/libraries/VaultLib.sol +18 -0
  11. package/dist/typechain-types/contracts/external/morpho/interfaces/AggregatorV3Interface.d.ts +104 -0
  12. package/dist/typechain-types/contracts/external/morpho/interfaces/AggregatorV3Interface.d.ts.map +1 -0
  13. package/dist/typechain-types/contracts/external/morpho/interfaces/AggregatorV3Interface.js +3 -0
  14. package/dist/typechain-types/contracts/external/morpho/interfaces/AggregatorV3Interface.js.map +1 -0
  15. package/dist/typechain-types/contracts/external/morpho/interfaces/IERC2612.d.ts +62 -0
  16. package/dist/typechain-types/contracts/external/morpho/interfaces/IERC2612.d.ts.map +1 -0
  17. package/dist/typechain-types/contracts/external/morpho/interfaces/IERC2612.js +3 -0
  18. package/dist/typechain-types/contracts/external/morpho/interfaces/IERC2612.js.map +1 -0
  19. package/dist/typechain-types/contracts/external/morpho/interfaces/IERC4626.d.ts +26 -0
  20. package/dist/typechain-types/contracts/external/morpho/interfaces/IERC4626.d.ts.map +1 -0
  21. package/dist/typechain-types/contracts/external/morpho/interfaces/IERC4626.js +3 -0
  22. package/dist/typechain-types/contracts/external/morpho/interfaces/IERC4626.js.map +1 -0
  23. package/dist/typechain-types/contracts/external/morpho/interfaces/IMorphoChainlinkOracleV2.d.ts +62 -0
  24. package/dist/typechain-types/contracts/external/morpho/interfaces/IMorphoChainlinkOracleV2.d.ts.map +1 -0
  25. package/dist/typechain-types/contracts/external/morpho/interfaces/IMorphoChainlinkOracleV2.js +3 -0
  26. package/dist/typechain-types/contracts/external/morpho/interfaces/IMorphoChainlinkOracleV2.js.map +1 -0
  27. package/dist/typechain-types/contracts/external/morpho/interfaces/IMorphoChainlinkOracleV2Factory.d.ts +91 -0
  28. package/dist/typechain-types/contracts/external/morpho/interfaces/IMorphoChainlinkOracleV2Factory.d.ts.map +1 -0
  29. package/dist/typechain-types/contracts/external/morpho/interfaces/IMorphoChainlinkOracleV2Factory.js +3 -0
  30. package/dist/typechain-types/contracts/external/morpho/interfaces/IMorphoChainlinkOracleV2Factory.js.map +1 -0
  31. package/dist/typechain-types/contracts/external/morpho/interfaces/IVaultV2.d.ts +598 -0
  32. package/dist/typechain-types/contracts/external/morpho/interfaces/IVaultV2.d.ts.map +1 -0
  33. package/dist/typechain-types/contracts/external/morpho/interfaces/IVaultV2.js +3 -0
  34. package/dist/typechain-types/contracts/external/morpho/interfaces/IVaultV2.js.map +1 -0
  35. package/dist/typechain-types/contracts/external/morpho/interfaces/IVaultV2Factory.d.ts +87 -0
  36. package/dist/typechain-types/contracts/external/morpho/interfaces/IVaultV2Factory.d.ts.map +1 -0
  37. package/dist/typechain-types/contracts/external/morpho/interfaces/IVaultV2Factory.js +3 -0
  38. package/dist/typechain-types/contracts/external/morpho/interfaces/IVaultV2Factory.js.map +1 -0
  39. package/dist/typechain-types/contracts/external/morpho/interfaces/index.d.ts +7 -0
  40. package/dist/typechain-types/contracts/external/morpho/interfaces/index.d.ts.map +1 -1
  41. package/dist/typechain-types/factories/contracts/external/morpho/interfaces/AggregatorV3Interface__factory.d.ts +94 -0
  42. package/dist/typechain-types/factories/contracts/external/morpho/interfaces/AggregatorV3Interface__factory.d.ts.map +1 -0
  43. package/dist/typechain-types/factories/contracts/external/morpho/interfaces/AggregatorV3Interface__factory.js +132 -0
  44. package/dist/typechain-types/factories/contracts/external/morpho/interfaces/AggregatorV3Interface__factory.js.map +1 -0
  45. package/dist/typechain-types/factories/contracts/external/morpho/interfaces/IERC2612__factory.d.ts +66 -0
  46. package/dist/typechain-types/factories/contracts/external/morpho/interfaces/IERC2612__factory.d.ts.map +1 -0
  47. package/dist/typechain-types/factories/contracts/external/morpho/interfaces/IERC2612__factory.js +96 -0
  48. package/dist/typechain-types/factories/contracts/external/morpho/interfaces/IERC2612__factory.js.map +1 -0
  49. package/dist/typechain-types/factories/contracts/external/morpho/interfaces/IERC4626__factory.d.ts +22 -0
  50. package/dist/typechain-types/factories/contracts/external/morpho/interfaces/IERC4626__factory.d.ts.map +1 -0
  51. package/dist/typechain-types/factories/contracts/external/morpho/interfaces/IERC4626__factory.js +40 -0
  52. package/dist/typechain-types/factories/contracts/external/morpho/interfaces/IERC4626__factory.js.map +1 -0
  53. package/dist/typechain-types/factories/contracts/external/morpho/interfaces/IMorphoChainlinkOracleV2Factory__factory.d.ts +91 -0
  54. package/dist/typechain-types/factories/contracts/external/morpho/interfaces/IMorphoChainlinkOracleV2Factory__factory.d.ts.map +1 -0
  55. package/dist/typechain-types/factories/contracts/external/morpho/interfaces/IMorphoChainlinkOracleV2Factory__factory.js +128 -0
  56. package/dist/typechain-types/factories/contracts/external/morpho/interfaces/IMorphoChainlinkOracleV2Factory__factory.js.map +1 -0
  57. package/dist/typechain-types/factories/contracts/external/morpho/interfaces/IMorphoChainlinkOracleV2__factory.d.ts +108 -0
  58. package/dist/typechain-types/factories/contracts/external/morpho/interfaces/IMorphoChainlinkOracleV2__factory.d.ts.map +1 -0
  59. package/dist/typechain-types/factories/contracts/external/morpho/interfaces/IMorphoChainlinkOracleV2__factory.js +151 -0
  60. package/dist/typechain-types/factories/contracts/external/morpho/interfaces/IMorphoChainlinkOracleV2__factory.js.map +1 -0
  61. package/dist/typechain-types/factories/contracts/external/morpho/interfaces/IVaultV2Factory__factory.d.ts +91 -0
  62. package/dist/typechain-types/factories/contracts/external/morpho/interfaces/IVaultV2Factory__factory.d.ts.map +1 -0
  63. package/dist/typechain-types/factories/contracts/external/morpho/interfaces/IVaultV2Factory__factory.js +129 -0
  64. package/dist/typechain-types/factories/contracts/external/morpho/interfaces/IVaultV2Factory__factory.js.map +1 -0
  65. package/dist/typechain-types/factories/contracts/external/morpho/interfaces/IVaultV2__factory.d.ts +906 -0
  66. package/dist/typechain-types/factories/contracts/external/morpho/interfaces/IVaultV2__factory.d.ts.map +1 -0
  67. package/dist/typechain-types/factories/contracts/external/morpho/interfaces/IVaultV2__factory.js +1197 -0
  68. package/dist/typechain-types/factories/contracts/external/morpho/interfaces/IVaultV2__factory.js.map +1 -0
  69. package/dist/typechain-types/factories/contracts/external/morpho/interfaces/index.d.ts +7 -0
  70. package/dist/typechain-types/factories/contracts/external/morpho/interfaces/index.d.ts.map +1 -1
  71. package/dist/typechain-types/factories/contracts/external/morpho/interfaces/index.js +15 -1
  72. package/dist/typechain-types/factories/contracts/external/morpho/interfaces/index.js.map +1 -1
  73. package/dist/typechain-types/index.d.ts +14 -0
  74. package/dist/typechain-types/index.d.ts.map +1 -1
  75. package/dist/typechain-types/index.js +15 -1
  76. package/dist/typechain-types/index.js.map +1 -1
  77. package/package.json +7 -7
@@ -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,10 @@
1
+ // SPDX-License-Identifier: GPL-2.0-or-later
2
+ // Copyright (c) 2025 Morpho Association
3
+ pragma solidity >=0.5.0;
4
+
5
+ interface IERC2612 {
6
+ function permit(address owner, address spender, uint256 shares, uint256 deadline, uint8 v, bytes32 r, bytes32 s)
7
+ external;
8
+ function nonces(address owner) external view returns (uint256);
9
+ function DOMAIN_SEPARATOR() external view returns (bytes32);
10
+ }
@@ -0,0 +1,6 @@
1
+ // SPDX-License-Identifier: GPL-2.0-or-later
2
+ pragma solidity >=0.5.0;
3
+
4
+ interface IERC4626 {
5
+ function convertToAssets(uint256) external view returns (uint256);
6
+ }
@@ -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,106 @@
1
+ // SPDX-License-Identifier: GPL-2.0-or-later
2
+ // Copyright (c) 2025 Morpho Association
3
+ pragma solidity >=0.5.0;
4
+
5
+ import {IERC4626} from "./IERC4626.sol";
6
+ import {IERC2612} from "./IERC2612.sol";
7
+
8
+ struct Caps {
9
+ uint256 allocation;
10
+ uint128 absoluteCap;
11
+ uint128 relativeCap;
12
+ }
13
+
14
+ interface IVaultV2 is IERC4626, IERC2612 {
15
+ // State variables
16
+ function virtualShares() external view returns (uint256);
17
+ function owner() external view returns (address);
18
+ function curator() external view returns (address);
19
+ function receiveSharesGate() external view returns (address);
20
+ function sendSharesGate() external view returns (address);
21
+ function receiveAssetsGate() external view returns (address);
22
+ function sendAssetsGate() external view returns (address);
23
+ function adapterRegistry() external view returns (address);
24
+ function isSentinel(address account) external view returns (bool);
25
+ function isAllocator(address account) external view returns (bool);
26
+ function firstTotalAssets() external view returns (uint256);
27
+ function _totalAssets() external view returns (uint128);
28
+ function lastUpdate() external view returns (uint64);
29
+ function maxRate() external view returns (uint64);
30
+ function adapters(uint256 index) external view returns (address);
31
+ function adaptersLength() external view returns (uint256);
32
+ function isAdapter(address account) external view returns (bool);
33
+ function allocation(bytes32 id) external view returns (uint256);
34
+ function absoluteCap(bytes32 id) external view returns (uint256);
35
+ function relativeCap(bytes32 id) external view returns (uint256);
36
+ function forceDeallocatePenalty(address adapter) external view returns (uint256);
37
+ function liquidityAdapter() external view returns (address);
38
+ function liquidityData() external view returns (bytes memory);
39
+ function timelock(bytes4 selector) external view returns (uint256);
40
+ function abdicated(bytes4 selector) external view returns (bool);
41
+ function executableAt(bytes memory data) external view returns (uint256);
42
+ function performanceFee() external view returns (uint96);
43
+ function performanceFeeRecipient() external view returns (address);
44
+ function managementFee() external view returns (uint96);
45
+ function managementFeeRecipient() external view returns (address);
46
+
47
+ // Gating
48
+ function canSendShares(address account) external view returns (bool);
49
+ function canReceiveShares(address account) external view returns (bool);
50
+ function canSendAssets(address account) external view returns (bool);
51
+ function canReceiveAssets(address account) external view returns (bool);
52
+
53
+ // Multicall
54
+ function multicall(bytes[] memory data) external;
55
+
56
+ // Owner functions
57
+ function setOwner(address newOwner) external;
58
+ function setCurator(address newCurator) external;
59
+ function setIsSentinel(address account, bool isSentinel) external;
60
+ function setName(string memory newName) external;
61
+ function setSymbol(string memory newSymbol) external;
62
+
63
+ // Timelocks for curator functions
64
+ function submit(bytes memory data) external;
65
+ function revoke(bytes memory data) external;
66
+
67
+ // Curator functions
68
+ function setIsAllocator(address account, bool newIsAllocator) external;
69
+ function setReceiveSharesGate(address newReceiveSharesGate) external;
70
+ function setSendSharesGate(address newSendSharesGate) external;
71
+ function setReceiveAssetsGate(address newReceiveAssetsGate) external;
72
+ function setSendAssetsGate(address newSendAssetsGate) external;
73
+ function setAdapterRegistry(address newAdapterRegistry) external;
74
+ function addAdapter(address account) external;
75
+ function removeAdapter(address account) external;
76
+ function increaseTimelock(bytes4 selector, uint256 newDuration) external;
77
+ function decreaseTimelock(bytes4 selector, uint256 newDuration) external;
78
+ function abdicate(bytes4 selector) external;
79
+ function setPerformanceFee(uint256 newPerformanceFee) external;
80
+ function setManagementFee(uint256 newManagementFee) external;
81
+ function setPerformanceFeeRecipient(address newPerformanceFeeRecipient) external;
82
+ function setManagementFeeRecipient(address newManagementFeeRecipient) external;
83
+ function increaseAbsoluteCap(bytes memory idData, uint256 newAbsoluteCap) external;
84
+ function decreaseAbsoluteCap(bytes memory idData, uint256 newAbsoluteCap) external;
85
+ function increaseRelativeCap(bytes memory idData, uint256 newRelativeCap) external;
86
+ function decreaseRelativeCap(bytes memory idData, uint256 newRelativeCap) external;
87
+ function setMaxRate(uint256 newMaxRate) external;
88
+ function setForceDeallocatePenalty(address adapter, uint256 newForceDeallocatePenalty) external;
89
+
90
+ // Allocator functions
91
+ function allocate(address adapter, bytes memory data, uint256 assets) external;
92
+ function deallocate(address adapter, bytes memory data, uint256 assets) external;
93
+ function setLiquidityAdapterAndData(address newLiquidityAdapter, bytes memory newLiquidityData) external;
94
+
95
+ // Exchange rate
96
+ function accrueInterest() external;
97
+ function accrueInterestView()
98
+ external
99
+ view
100
+ returns (uint256 newTotalAssets, uint256 performanceFeeShares, uint256 managementFeeShares);
101
+
102
+ // Force deallocate
103
+ function forceDeallocate(address adapter, bytes memory data, uint256 assets, address onBehalf)
104
+ external
105
+ returns (uint256 penaltyShares);
106
+ }
@@ -0,0 +1,15 @@
1
+ // SPDX-License-Identifier: GPL-2.0-or-later
2
+ // Copyright (c) 2025 Morpho Association
3
+ pragma solidity >=0.5.0;
4
+
5
+ interface IVaultV2Factory {
6
+ /* EVENTS */
7
+
8
+ event CreateVaultV2(address indexed owner, address indexed asset, bytes32 salt, address indexed newVaultV2);
9
+
10
+ /* FUNCTIONS */
11
+
12
+ function isVaultV2(address account) external view returns (bool);
13
+ function vaultV2(address owner, address asset, bytes32 salt) external view returns (address);
14
+ function createVaultV2(address owner, address asset, bytes32 salt) external returns (address newVaultV2);
15
+ }
@@ -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,104 @@
1
+ import type { BaseContract, BigNumberish, BytesLike, FunctionFragment, Result, Interface, ContractRunner, ContractMethod, Listener } from "ethers";
2
+ import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedListener, TypedContractMethod } from "../../../../common";
3
+ export interface AggregatorV3InterfaceInterface extends Interface {
4
+ getFunction(nameOrSignature: "decimals" | "description" | "getRoundData" | "latestRoundData" | "version"): FunctionFragment;
5
+ encodeFunctionData(functionFragment: "decimals", values?: undefined): string;
6
+ encodeFunctionData(functionFragment: "description", values?: undefined): string;
7
+ encodeFunctionData(functionFragment: "getRoundData", values: [BigNumberish]): string;
8
+ encodeFunctionData(functionFragment: "latestRoundData", values?: undefined): string;
9
+ encodeFunctionData(functionFragment: "version", values?: undefined): string;
10
+ decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result;
11
+ decodeFunctionResult(functionFragment: "description", data: BytesLike): Result;
12
+ decodeFunctionResult(functionFragment: "getRoundData", data: BytesLike): Result;
13
+ decodeFunctionResult(functionFragment: "latestRoundData", data: BytesLike): Result;
14
+ decodeFunctionResult(functionFragment: "version", data: BytesLike): Result;
15
+ }
16
+ export interface AggregatorV3Interface extends BaseContract {
17
+ connect(runner?: ContractRunner | null): AggregatorV3Interface;
18
+ waitForDeployment(): Promise<this>;
19
+ interface: AggregatorV3InterfaceInterface;
20
+ queryFilter<TCEvent extends TypedContractEvent>(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
21
+ queryFilter<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
22
+ on<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
23
+ on<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
24
+ once<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
25
+ once<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
26
+ listeners<TCEvent extends TypedContractEvent>(event: TCEvent): Promise<Array<TypedListener<TCEvent>>>;
27
+ listeners(eventName?: string): Promise<Array<Listener>>;
28
+ removeAllListeners<TCEvent extends TypedContractEvent>(event?: TCEvent): Promise<this>;
29
+ decimals: TypedContractMethod<[], [bigint], "view">;
30
+ description: TypedContractMethod<[], [string], "view">;
31
+ getRoundData: TypedContractMethod<[
32
+ _roundId: BigNumberish
33
+ ], [
34
+ [
35
+ bigint,
36
+ bigint,
37
+ bigint,
38
+ bigint,
39
+ bigint
40
+ ] & {
41
+ roundId: bigint;
42
+ answer: bigint;
43
+ startedAt: bigint;
44
+ updatedAt: bigint;
45
+ answeredInRound: bigint;
46
+ }
47
+ ], "view">;
48
+ latestRoundData: TypedContractMethod<[
49
+ ], [
50
+ [
51
+ bigint,
52
+ bigint,
53
+ bigint,
54
+ bigint,
55
+ bigint
56
+ ] & {
57
+ roundId: bigint;
58
+ answer: bigint;
59
+ startedAt: bigint;
60
+ updatedAt: bigint;
61
+ answeredInRound: bigint;
62
+ }
63
+ ], "view">;
64
+ version: TypedContractMethod<[], [bigint], "view">;
65
+ getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T;
66
+ getFunction(nameOrSignature: "decimals"): TypedContractMethod<[], [bigint], "view">;
67
+ getFunction(nameOrSignature: "description"): TypedContractMethod<[], [string], "view">;
68
+ getFunction(nameOrSignature: "getRoundData"): TypedContractMethod<[
69
+ _roundId: BigNumberish
70
+ ], [
71
+ [
72
+ bigint,
73
+ bigint,
74
+ bigint,
75
+ bigint,
76
+ bigint
77
+ ] & {
78
+ roundId: bigint;
79
+ answer: bigint;
80
+ startedAt: bigint;
81
+ updatedAt: bigint;
82
+ answeredInRound: bigint;
83
+ }
84
+ ], "view">;
85
+ getFunction(nameOrSignature: "latestRoundData"): TypedContractMethod<[
86
+ ], [
87
+ [
88
+ bigint,
89
+ bigint,
90
+ bigint,
91
+ bigint,
92
+ bigint
93
+ ] & {
94
+ roundId: bigint;
95
+ answer: bigint;
96
+ startedAt: bigint;
97
+ updatedAt: bigint;
98
+ answeredInRound: bigint;
99
+ }
100
+ ], "view">;
101
+ getFunction(nameOrSignature: "version"): TypedContractMethod<[], [bigint], "view">;
102
+ filters: {};
103
+ }
104
+ //# sourceMappingURL=AggregatorV3Interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AggregatorV3Interface.d.ts","sourceRoot":"","sources":["../../../../../../typechain-types/contracts/external/morpho/interfaces/AggregatorV3Interface.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=AggregatorV3Interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AggregatorV3Interface.js","sourceRoot":"","sources":["../../../../../../typechain-types/contracts/external/morpho/interfaces/AggregatorV3Interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,62 @@
1
+ import type { BaseContract, BigNumberish, BytesLike, FunctionFragment, Result, Interface, AddressLike, ContractRunner, ContractMethod, Listener } from "ethers";
2
+ import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedListener, TypedContractMethod } from "../../../../common";
3
+ export interface IERC2612Interface extends Interface {
4
+ getFunction(nameOrSignature: "DOMAIN_SEPARATOR" | "nonces" | "permit"): FunctionFragment;
5
+ encodeFunctionData(functionFragment: "DOMAIN_SEPARATOR", values?: undefined): string;
6
+ encodeFunctionData(functionFragment: "nonces", values: [AddressLike]): string;
7
+ encodeFunctionData(functionFragment: "permit", values: [
8
+ AddressLike,
9
+ AddressLike,
10
+ BigNumberish,
11
+ BigNumberish,
12
+ BigNumberish,
13
+ BytesLike,
14
+ BytesLike
15
+ ]): string;
16
+ decodeFunctionResult(functionFragment: "DOMAIN_SEPARATOR", data: BytesLike): Result;
17
+ decodeFunctionResult(functionFragment: "nonces", data: BytesLike): Result;
18
+ decodeFunctionResult(functionFragment: "permit", data: BytesLike): Result;
19
+ }
20
+ export interface IERC2612 extends BaseContract {
21
+ connect(runner?: ContractRunner | null): IERC2612;
22
+ waitForDeployment(): Promise<this>;
23
+ interface: IERC2612Interface;
24
+ queryFilter<TCEvent extends TypedContractEvent>(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
25
+ queryFilter<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
26
+ on<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
27
+ on<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
28
+ once<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
29
+ once<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
30
+ listeners<TCEvent extends TypedContractEvent>(event: TCEvent): Promise<Array<TypedListener<TCEvent>>>;
31
+ listeners(eventName?: string): Promise<Array<Listener>>;
32
+ removeAllListeners<TCEvent extends TypedContractEvent>(event?: TCEvent): Promise<this>;
33
+ DOMAIN_SEPARATOR: TypedContractMethod<[], [string], "view">;
34
+ nonces: TypedContractMethod<[owner: AddressLike], [bigint], "view">;
35
+ permit: TypedContractMethod<[
36
+ owner: AddressLike,
37
+ spender: AddressLike,
38
+ shares: BigNumberish,
39
+ deadline: BigNumberish,
40
+ v: BigNumberish,
41
+ r: BytesLike,
42
+ s: BytesLike
43
+ ], [
44
+ void
45
+ ], "nonpayable">;
46
+ getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T;
47
+ getFunction(nameOrSignature: "DOMAIN_SEPARATOR"): TypedContractMethod<[], [string], "view">;
48
+ getFunction(nameOrSignature: "nonces"): TypedContractMethod<[owner: AddressLike], [bigint], "view">;
49
+ getFunction(nameOrSignature: "permit"): TypedContractMethod<[
50
+ owner: AddressLike,
51
+ spender: AddressLike,
52
+ shares: BigNumberish,
53
+ deadline: BigNumberish,
54
+ v: BigNumberish,
55
+ r: BytesLike,
56
+ s: BytesLike
57
+ ], [
58
+ void
59
+ ], "nonpayable">;
60
+ filters: {};
61
+ }
62
+ //# sourceMappingURL=IERC2612.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IERC2612.d.ts","sourceRoot":"","sources":["../../../../../../typechain-types/contracts/external/morpho/interfaces/IERC2612.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,MAAM,EACN,SAAS,EACT,WAAW,EACX,cAAc,EACd,cAAc,EACd,QAAQ,EACT,MAAM,QAAQ,CAAC;AAChB,OAAO,KAAK,EACV,kBAAkB,EAClB,wBAAwB,EACxB,aAAa,EACb,aAAa,EACb,mBAAmB,EACpB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IAClD,WAAW,CACT,eAAe,EAAE,kBAAkB,GAAG,QAAQ,GAAG,QAAQ,GACxD,gBAAgB,CAAC;IAEpB,kBAAkB,CAChB,gBAAgB,EAAE,kBAAkB,EACpC,MAAM,CAAC,EAAE,SAAS,GACjB,MAAM,CAAC;IACV,kBAAkB,CAAC,gBAAgB,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC;IAC9E,kBAAkB,CAChB,gBAAgB,EAAE,QAAQ,EAC1B,MAAM,EAAE;QACN,WAAW;QACX,WAAW;QACX,YAAY;QACZ,YAAY;QACZ,YAAY;QACZ,SAAS;QACT,SAAS;KACV,GACA,MAAM,CAAC;IAEV,oBAAoB,CAClB,gBAAgB,EAAE,kBAAkB,EACpC,IAAI,EAAE,SAAS,GACd,MAAM,CAAC;IACV,oBAAoB,CAAC,gBAAgB,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,CAAC;IAC1E,oBAAoB,CAAC,gBAAgB,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,CAAC;CAC3E;AAED,MAAM,WAAW,QAAS,SAAQ,YAAY;IAC5C,OAAO,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI,GAAG,QAAQ,CAAC;IAClD,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnC,SAAS,EAAE,iBAAiB,CAAC;IAE7B,WAAW,CAAC,OAAO,SAAS,kBAAkB,EAC5C,KAAK,EAAE,OAAO,EACd,oBAAoB,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EAClD,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GACpC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1C,WAAW,CAAC,OAAO,SAAS,kBAAkB,EAC5C,MAAM,EAAE,wBAAwB,CAAC,OAAO,CAAC,EACzC,oBAAoB,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EAClD,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GACpC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAE1C,EAAE,CAAC,OAAO,SAAS,kBAAkB,EACnC,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,GAC/B,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,EAAE,CAAC,OAAO,SAAS,kBAAkB,EACnC,MAAM,EAAE,wBAAwB,CAAC,OAAO,CAAC,EACzC,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,GAC/B,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,IAAI,CAAC,OAAO,SAAS,kBAAkB,EACrC,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,GAC/B,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,IAAI,CAAC,OAAO,SAAS,kBAAkB,EACrC,MAAM,EAAE,wBAAwB,CAAC,OAAO,CAAC,EACzC,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,GAC/B,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,SAAS,CAAC,OAAO,SAAS,kBAAkB,EAC1C,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1C,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IACxD,kBAAkB,CAAC,OAAO,SAAS,kBAAkB,EACnD,KAAK,CAAC,EAAE,OAAO,GACd,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,gBAAgB,EAAE,mBAAmB,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;IAE5D,MAAM,EAAE,mBAAmB,CAAC,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;IAEpE,MAAM,EAAE,mBAAmB,CACzB;QACE,KAAK,EAAE,WAAW;QAClB,OAAO,EAAE,WAAW;QACpB,MAAM,EAAE,YAAY;QACpB,QAAQ,EAAE,YAAY;QACtB,CAAC,EAAE,YAAY;QACf,CAAC,EAAE,SAAS;QACZ,CAAC,EAAE,SAAS;KACb,EACD;QAAC,IAAI;KAAC,EACN,YAAY,CACb,CAAC;IAEF,WAAW,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EACnD,GAAG,EAAE,MAAM,GAAG,gBAAgB,GAC7B,CAAC,CAAC;IAEL,WAAW,CACT,eAAe,EAAE,kBAAkB,GAClC,mBAAmB,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;IAC7C,WAAW,CACT,eAAe,EAAE,QAAQ,GACxB,mBAAmB,CAAC,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;IAC/D,WAAW,CACT,eAAe,EAAE,QAAQ,GACxB,mBAAmB,CACpB;QACE,KAAK,EAAE,WAAW;QAClB,OAAO,EAAE,WAAW;QACpB,MAAM,EAAE,YAAY;QACpB,QAAQ,EAAE,YAAY;QACtB,CAAC,EAAE,YAAY;QACf,CAAC,EAAE,SAAS;QACZ,CAAC,EAAE,SAAS;KACb,EACD;QAAC,IAAI;KAAC,EACN,YAAY,CACb,CAAC;IAEF,OAAO,EAAE,EAAE,CAAC;CACb"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IERC2612.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IERC2612.js","sourceRoot":"","sources":["../../../../../../typechain-types/contracts/external/morpho/interfaces/IERC2612.ts"],"names":[],"mappings":""}
@@ -0,0 +1,26 @@
1
+ import type { BaseContract, BigNumberish, BytesLike, FunctionFragment, Result, Interface, ContractRunner, ContractMethod, Listener } from "ethers";
2
+ import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedListener, TypedContractMethod } from "../../../../common";
3
+ export interface IERC4626Interface extends Interface {
4
+ getFunction(nameOrSignature: "convertToAssets"): FunctionFragment;
5
+ encodeFunctionData(functionFragment: "convertToAssets", values: [BigNumberish]): string;
6
+ decodeFunctionResult(functionFragment: "convertToAssets", data: BytesLike): Result;
7
+ }
8
+ export interface IERC4626 extends BaseContract {
9
+ connect(runner?: ContractRunner | null): IERC4626;
10
+ waitForDeployment(): Promise<this>;
11
+ interface: IERC4626Interface;
12
+ queryFilter<TCEvent extends TypedContractEvent>(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
13
+ queryFilter<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
14
+ on<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
15
+ on<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
16
+ once<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
17
+ once<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
18
+ listeners<TCEvent extends TypedContractEvent>(event: TCEvent): Promise<Array<TypedListener<TCEvent>>>;
19
+ listeners(eventName?: string): Promise<Array<Listener>>;
20
+ removeAllListeners<TCEvent extends TypedContractEvent>(event?: TCEvent): Promise<this>;
21
+ convertToAssets: TypedContractMethod<[arg0: BigNumberish], [bigint], "view">;
22
+ getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T;
23
+ getFunction(nameOrSignature: "convertToAssets"): TypedContractMethod<[arg0: BigNumberish], [bigint], "view">;
24
+ filters: {};
25
+ }
26
+ //# sourceMappingURL=IERC4626.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IERC4626.d.ts","sourceRoot":"","sources":["../../../../../../typechain-types/contracts/external/morpho/interfaces/IERC4626.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,MAAM,EACN,SAAS,EACT,cAAc,EACd,cAAc,EACd,QAAQ,EACT,MAAM,QAAQ,CAAC;AAChB,OAAO,KAAK,EACV,kBAAkB,EAClB,wBAAwB,EACxB,aAAa,EACb,aAAa,EACb,mBAAmB,EACpB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IAClD,WAAW,CAAC,eAAe,EAAE,iBAAiB,GAAG,gBAAgB,CAAC;IAElE,kBAAkB,CAChB,gBAAgB,EAAE,iBAAiB,EACnC,MAAM,EAAE,CAAC,YAAY,CAAC,GACrB,MAAM,CAAC;IAEV,oBAAoB,CAClB,gBAAgB,EAAE,iBAAiB,EACnC,IAAI,EAAE,SAAS,GACd,MAAM,CAAC;CACX;AAED,MAAM,WAAW,QAAS,SAAQ,YAAY;IAC5C,OAAO,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI,GAAG,QAAQ,CAAC;IAClD,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnC,SAAS,EAAE,iBAAiB,CAAC;IAE7B,WAAW,CAAC,OAAO,SAAS,kBAAkB,EAC5C,KAAK,EAAE,OAAO,EACd,oBAAoB,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EAClD,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GACpC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1C,WAAW,CAAC,OAAO,SAAS,kBAAkB,EAC5C,MAAM,EAAE,wBAAwB,CAAC,OAAO,CAAC,EACzC,oBAAoB,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EAClD,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GACpC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAE1C,EAAE,CAAC,OAAO,SAAS,kBAAkB,EACnC,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,GAC/B,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,EAAE,CAAC,OAAO,SAAS,kBAAkB,EACnC,MAAM,EAAE,wBAAwB,CAAC,OAAO,CAAC,EACzC,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,GAC/B,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,IAAI,CAAC,OAAO,SAAS,kBAAkB,EACrC,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,GAC/B,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,IAAI,CAAC,OAAO,SAAS,kBAAkB,EACrC,MAAM,EAAE,wBAAwB,CAAC,OAAO,CAAC,EACzC,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,GAC/B,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,SAAS,CAAC,OAAO,SAAS,kBAAkB,EAC1C,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1C,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IACxD,kBAAkB,CAAC,OAAO,SAAS,kBAAkB,EACnD,KAAK,CAAC,EAAE,OAAO,GACd,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,eAAe,EAAE,mBAAmB,CAAC,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;IAE7E,WAAW,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EACnD,GAAG,EAAE,MAAM,GAAG,gBAAgB,GAC7B,CAAC,CAAC;IAEL,WAAW,CACT,eAAe,EAAE,iBAAiB,GACjC,mBAAmB,CAAC,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;IAE/D,OAAO,EAAE,EAAE,CAAC;CACb"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IERC4626.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IERC4626.js","sourceRoot":"","sources":["../../../../../../typechain-types/contracts/external/morpho/interfaces/IERC4626.ts"],"names":[],"mappings":""}