diff --git a/.gitignore b/.gitignore index f923f84e5..9ce6bb1d0 100644 --- a/.gitignore +++ b/.gitignore @@ -30,4 +30,9 @@ crytic-export/ .VsCodeCounter/ # Foundry -out/ \ No newline at end of file +out/ +cache/ + +# coverage +report/ +lcov.info \ No newline at end of file diff --git a/cache/solidity-files-cache.json b/cache/solidity-files-cache.json deleted file mode 100644 index db48976de..000000000 --- a/cache/solidity-files-cache.json +++ /dev/null @@ -1,10340 +0,0 @@ -{ - "_format": "ethers-rs-sol-cache-3", - "paths": { - "artifacts": "out", - "build_infos": "out/build-info", - "sources": "src", - "tests": "test", - "scripts": "script", - "libraries": [ - "lib" - ] - }, - "files": { - "lib/ERC3156/contracts/interfaces/IERC3156FlashBorrower.sol": { - "lastModificationDate": 1677500577408, - "contentHash": "c78ab7ef731c2b040b3e709f5b2dc9bd", - "sourceName": "lib/ERC3156/contracts/interfaces/IERC3156FlashBorrower.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": ">=0.6.0, <0.9.0", - "artifacts": { - "IERC3156FlashBorrower": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "IERC3156FlashBorrower.sol/IERC3156FlashBorrower.json" - } - } - }, - "lib/ERC3156/contracts/interfaces/IERC3156FlashLender.sol": { - "lastModificationDate": 1677500577409, - "contentHash": "cbd1895591d4e92d0ed90ebb1cc14c44", - "sourceName": "lib/ERC3156/contracts/interfaces/IERC3156FlashLender.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/ERC3156/contracts/interfaces/IERC3156FlashBorrower.sol" - ], - "versionRequirement": ">=0.6.0, <0.9.0", - "artifacts": { - "IERC3156FlashLender": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "IERC3156FlashLender.sol/IERC3156FlashLender.json" - } - } - }, - "lib/dss-interfaces/src/dss/DaiAbstract.sol": { - "lastModificationDate": 1677500590110, - "contentHash": "c99dd027ff9e54c6250c18d04232b46d", - "sourceName": "lib/dss-interfaces/src/dss/DaiAbstract.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": ">=0.5.12", - "artifacts": { - "DaiAbstract": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "DaiAbstract.sol/DaiAbstract.json" - } - } - }, - "lib/forge-std/lib/ds-test/src/test.sol": { - "lastModificationDate": 1677500408722, - "contentHash": "962996f0e05d5218857a538a62d7c47e", - "sourceName": "lib/forge-std/lib/ds-test/src/test.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": ">=0.5.0", - "artifacts": { - "DSTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "test.sol/DSTest.json" - } - } - }, - "lib/forge-std/src/Base.sol": { - "lastModificationDate": 1677500407708, - "contentHash": "8f04bbbb2c16f79e14fdc321695a8ec2", - "sourceName": "lib/forge-std/src/Base.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/forge-std/src/StdStorage.sol", - "lib/forge-std/src/Vm.sol" - ], - "versionRequirement": ">=0.6.2, <0.9.0", - "artifacts": { - "CommonBase": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "Base.sol/CommonBase.json" - }, - "ScriptBase": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "Base.sol/ScriptBase.json" - }, - "TestBase": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "Base.sol/TestBase.json" - } - } - }, - "lib/forge-std/src/StdAssertions.sol": { - "lastModificationDate": 1677500408724, - "contentHash": "5bc6a90903a666d831370fa46838ed73", - "sourceName": "lib/forge-std/src/StdAssertions.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/forge-std/lib/ds-test/src/test.sol", - "lib/forge-std/src/StdMath.sol" - ], - "versionRequirement": ">=0.6.2, <0.9.0", - "artifacts": { - "StdAssertions": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "StdAssertions.sol/StdAssertions.json" - } - } - }, - "lib/forge-std/src/StdChains.sol": { - "lastModificationDate": 1677500407709, - "contentHash": "f73fef006f384b898c755b0e404b84a2", - "sourceName": "lib/forge-std/src/StdChains.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/forge-std/src/Vm.sol" - ], - "versionRequirement": ">=0.6.2, <0.9.0", - "artifacts": { - "StdChains": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "StdChains.sol/StdChains.json" - } - } - }, - "lib/forge-std/src/StdCheats.sol": { - "lastModificationDate": 1677500407709, - "contentHash": "027b46591bff2397c69867fd06ddc0c1", - "sourceName": "lib/forge-std/src/StdCheats.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/forge-std/src/StdStorage.sol", - "lib/forge-std/src/Vm.sol" - ], - "versionRequirement": ">=0.6.2, <0.9.0", - "artifacts": { - "StdCheats": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "StdCheats.sol/StdCheats.json" - }, - "StdCheatsSafe": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "StdCheats.sol/StdCheatsSafe.json" - } - } - }, - "lib/forge-std/src/StdError.sol": { - "lastModificationDate": 1677500407709, - "contentHash": "64c896e1276a291776e5ea5aecb3870a", - "sourceName": "lib/forge-std/src/StdError.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": ">=0.6.2, <0.9.0", - "artifacts": { - "stdError": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "StdError.sol/stdError.json" - } - } - }, - "lib/forge-std/src/StdInvariant.sol": { - "lastModificationDate": 1677500407709, - "contentHash": "12c06010ec43ce935ed209d5aca30828", - "sourceName": "lib/forge-std/src/StdInvariant.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": ">=0.6.2, <0.9.0", - "artifacts": { - "StdInvariant": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "StdInvariant.sol/StdInvariant.json" - } - } - }, - "lib/forge-std/src/StdJson.sol": { - "lastModificationDate": 1677500407709, - "contentHash": "2e1d13674e152408867795362d833c24", - "sourceName": "lib/forge-std/src/StdJson.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/forge-std/src/Vm.sol" - ], - "versionRequirement": ">=0.6.0, <0.9.0", - "artifacts": { - "stdJson": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "StdJson.sol/stdJson.json" - } - } - }, - "lib/forge-std/src/StdMath.sol": { - "lastModificationDate": 1677500407709, - "contentHash": "9da8f453eba6bb98f3d75bc6822bfb29", - "sourceName": "lib/forge-std/src/StdMath.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": ">=0.6.2, <0.9.0", - "artifacts": { - "stdMath": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "StdMath.sol/stdMath.json" - } - } - }, - "lib/forge-std/src/StdStorage.sol": { - "lastModificationDate": 1677500407709, - "contentHash": "3cb9868082df39a53927db09dbc21f23", - "sourceName": "lib/forge-std/src/StdStorage.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/forge-std/src/Vm.sol" - ], - "versionRequirement": ">=0.6.2, <0.9.0", - "artifacts": { - "stdStorage": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "StdStorage.sol/stdStorage.json" - }, - "stdStorageSafe": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "StdStorage.sol/stdStorageSafe.json" - } - } - }, - "lib/forge-std/src/StdUtils.sol": { - "lastModificationDate": 1677500407709, - "contentHash": "45fc08daaa17b7908fa5de7d758d8c86", - "sourceName": "lib/forge-std/src/StdUtils.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/forge-std/src/Vm.sol", - "lib/forge-std/src/interfaces/IMulticall3.sol" - ], - "versionRequirement": ">=0.6.2, <0.9.0", - "artifacts": { - "StdUtils": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "StdUtils.sol/StdUtils.json" - } - } - }, - "lib/forge-std/src/Test.sol": { - "lastModificationDate": 1677500407710, - "contentHash": "095f745449cb5b6ff27a2e53892b648f", - "sourceName": "lib/forge-std/src/Test.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/forge-std/lib/ds-test/src/test.sol", - "lib/forge-std/src/Base.sol", - "lib/forge-std/src/StdAssertions.sol", - "lib/forge-std/src/StdChains.sol", - "lib/forge-std/src/StdCheats.sol", - "lib/forge-std/src/StdError.sol", - "lib/forge-std/src/StdInvariant.sol", - "lib/forge-std/src/StdJson.sol", - "lib/forge-std/src/StdMath.sol", - "lib/forge-std/src/StdStorage.sol", - "lib/forge-std/src/StdUtils.sol", - "lib/forge-std/src/Vm.sol", - "lib/forge-std/src/console.sol", - "lib/forge-std/src/console2.sol", - "lib/forge-std/src/interfaces/IMulticall3.sol" - ], - "versionRequirement": ">=0.6.2, <0.9.0", - "artifacts": { - "Test": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "Test.sol/Test.json" - } - } - }, - "lib/forge-std/src/Vm.sol": { - "lastModificationDate": 1677500408725, - "contentHash": "86d01713430fa0877970a6ed8f99dc78", - "sourceName": "lib/forge-std/src/Vm.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": ">=0.6.2, <0.9.0", - "artifacts": { - "Vm": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "Vm.sol/Vm.json" - }, - "VmSafe": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "Vm.sol/VmSafe.json" - } - } - }, - "lib/forge-std/src/console.sol": { - "lastModificationDate": 1677500407710, - "contentHash": "100b8a33b917da1147740d7ab8b0ded3", - "sourceName": "lib/forge-std/src/console.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": ">=0.4.22, <0.9.0", - "artifacts": { - "console": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "console.sol/console.json" - } - } - }, - "lib/forge-std/src/console2.sol": { - "lastModificationDate": 1677500407710, - "contentHash": "2096b4e5f252c5df9909cccbe3d2da2e", - "sourceName": "lib/forge-std/src/console2.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": ">=0.4.22, <0.9.0", - "artifacts": { - "console2": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "console2.sol/console2.json" - } - } - }, - "lib/forge-std/src/interfaces/IMulticall3.sol": { - "lastModificationDate": 1677500407711, - "contentHash": "7b131ca1ca32ef6378b7b9ad5488b901", - "sourceName": "lib/forge-std/src/interfaces/IMulticall3.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": ">=0.6.2, <0.9.0", - "artifacts": { - "IMulticall3": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "IMulticall3.sol/IMulticall3.json" - } - } - }, - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol": { - "lastModificationDate": 1677500366813, - "contentHash": "8a72d8f5255345c5756cc72a8952b620", - "sourceName": "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": "^0.8.0", - "artifacts": { - "AccessControl": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "AccessControl.sol/AccessControl.json" - } - } - }, - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/Ownable.sol": { - "lastModificationDate": 1677500366813, - "contentHash": "df011b503197ac463a97572996667291", - "sourceName": "lib/yieldspace-tv/lib/yield-utils-v2/src/access/Ownable.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": "^0.8.0", - "artifacts": { - "Ownable": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "Ownable.sol/Ownable.json" - } - } - }, - "lib/yieldspace-tv/lib/yield-utils-v2/src/interfaces/IWETH9.sol": { - "lastModificationDate": 1677500366814, - "contentHash": "b3c9f38a2e2d83933765e38a85f34ad0", - "sourceName": "lib/yieldspace-tv/lib/yield-utils-v2/src/interfaces/IWETH9.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol" - ], - "versionRequirement": "^0.8.0", - "artifacts": { - "IWETH9": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "IWETH9.sol/IWETH9.json" - } - } - }, - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol": { - "lastModificationDate": 1677500366814, - "contentHash": "717becb3eba94d8d3607a84ebd6f88c4", - "sourceName": "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol" - ], - "versionRequirement": "^0.8.0", - "artifacts": { - "ERC20": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "ERC20.sol/ERC20.json" - } - } - }, - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20Permit.sol": { - "lastModificationDate": 1677500366814, - "contentHash": "43cbacf0f9683ef274dc5b52550e5300", - "sourceName": "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20Permit.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol" - ], - "versionRequirement": "^0.8.0", - "artifacts": { - "ERC20Permit": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "ERC20Permit.sol/ERC20Permit.json" - } - } - }, - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol": { - "lastModificationDate": 1677500366814, - "contentHash": "776f140b8a9f56eddcebbf9a07982c7c", - "sourceName": "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": "^0.8.0", - "artifacts": { - "IERC20": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "IERC20.sol/IERC20.json" - } - } - }, - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol": { - "lastModificationDate": 1677500366814, - "contentHash": "16693e9c680c69c02d0979cdfa0407e4", - "sourceName": "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol" - ], - "versionRequirement": "^0.8.0", - "artifacts": { - "IERC20Metadata": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "IERC20Metadata.sol/IERC20Metadata.json" - } - } - }, - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol": { - "lastModificationDate": 1677500366814, - "contentHash": "e420861b28de80b995a8247ab92ca787", - "sourceName": "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": "^0.8.0", - "artifacts": { - "IERC2612": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "IERC2612.sol/IERC2612.json" - } - } - }, - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/MinimalTransferHelper.sol": { - "lastModificationDate": 1677500366814, - "contentHash": "d372000139f92d029ac128b6bfb512f8", - "sourceName": "lib/yieldspace-tv/lib/yield-utils-v2/src/token/MinimalTransferHelper.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/RevertMsgExtractor.sol" - ], - "versionRequirement": ">=0.6.0", - "artifacts": { - "MinimalTransferHelper": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "MinimalTransferHelper.sol/MinimalTransferHelper.json" - } - } - }, - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/SafeERC20Namer.sol": { - "lastModificationDate": 1677500366814, - "contentHash": "c04484b4d6dbba53aa1f5cbc35166bc6", - "sourceName": "lib/yieldspace-tv/lib/yield-utils-v2/src/token/SafeERC20Namer.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/AddressStringUtil.sol" - ], - "versionRequirement": ">=0.5.0", - "artifacts": { - "SafeERC20Namer": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "SafeERC20Namer.sol/SafeERC20Namer.json" - } - } - }, - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/TransferHelper.sol": { - "lastModificationDate": 1677500366815, - "contentHash": "69b36a0098368997dee405844187cab3", - "sourceName": "lib/yieldspace-tv/lib/yield-utils-v2/src/token/TransferHelper.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/RevertMsgExtractor.sol" - ], - "versionRequirement": "^0.8.0", - "artifacts": { - "TransferHelper": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "TransferHelper.sol/TransferHelper.json" - } - } - }, - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/AddressStringUtil.sol": { - "lastModificationDate": 1677500366815, - "contentHash": "e955c127dcc488f43ec8b850a4c7394f", - "sourceName": "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/AddressStringUtil.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": ">=0.5.0", - "artifacts": { - "AddressStringUtil": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "AddressStringUtil.sol/AddressStringUtil.json" - } - } - }, - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol": { - "lastModificationDate": 1677500366815, - "contentHash": "162ed110173f70fca1d0f63050539f0d", - "sourceName": "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": "^0.8.13", - "artifacts": { - "Cast": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "Cast.sol/Cast.json" - } - } - }, - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/IsContract.sol": { - "lastModificationDate": 1677500366815, - "contentHash": "59c2b4a265b68c1b3ba7666d47ae7fe0", - "sourceName": "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/IsContract.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": "^0.8.0", - "artifacts": { - "IsContract": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "IsContract.sol/IsContract.json" - } - } - }, - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Math.sol": { - "lastModificationDate": 1677500366815, - "contentHash": "ea4996aefc7d57d6832af5c0bf1f98a0", - "sourceName": "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Math.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": "^0.8.13", - "artifacts": { - "Math": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "Math.sol/Math.json" - } - } - }, - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/RevertMsgExtractor.sol": { - "lastModificationDate": 1677500366815, - "contentHash": "e6c569515585a617a539dd64cfd49dd3", - "sourceName": "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/RevertMsgExtractor.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": ">=0.6.0", - "artifacts": { - "RevertMsgExtractor": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "RevertMsgExtractor.sol/RevertMsgExtractor.json" - } - } - }, - "lib/yieldspace-tv/src/Exp64x64.sol": { - "lastModificationDate": 1677500361007, - "contentHash": "d99c5f2254d7957239545c6ee61b7249", - "sourceName": "lib/yieldspace-tv/src/Exp64x64.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/src/Math64x64.sol" - ], - "versionRequirement": ">=0.8.15", - "artifacts": { - "Exp64x64": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "Exp64x64.sol/Exp64x64.json" - } - } - }, - "lib/yieldspace-tv/src/Math64x64.sol": { - "lastModificationDate": 1677500361007, - "contentHash": "7650460df63b601c0ee856ee09666842", - "sourceName": "lib/yieldspace-tv/src/Math64x64.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": ">=0.8.15", - "artifacts": { - "Math64x64": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "Math64x64.sol/Math64x64.json" - } - } - }, - "lib/yieldspace-tv/src/Pool/Pool.sol": { - "lastModificationDate": 1677500361008, - "contentHash": "335ee7c30b236e4bf0519dfb67bd63a0", - "sourceName": "lib/yieldspace-tv/src/Pool/Pool.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20Permit.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/TransferHelper.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Math.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/RevertMsgExtractor.sol", - "lib/yieldspace-tv/src/Exp64x64.sol", - "lib/yieldspace-tv/src/Math64x64.sol", - "lib/yieldspace-tv/src/Pool/PoolErrors.sol", - "lib/yieldspace-tv/src/Pool/PoolEvents.sol", - "lib/yieldspace-tv/src/Pool/PoolImports.sol", - "lib/yieldspace-tv/src/YieldMath.sol", - "lib/yieldspace-tv/src/interfaces/IERC4626.sol", - "lib/yieldspace-tv/src/interfaces/IMaturingToken.sol", - "lib/yieldspace-tv/src/interfaces/IPool.sol" - ], - "versionRequirement": ">=0.8.15", - "artifacts": { - "Pool": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "Pool.sol/Pool.json" - } - } - }, - "lib/yieldspace-tv/src/Pool/PoolErrors.sol": { - "lastModificationDate": 1677500361008, - "contentHash": "752b4056131ad302d769c9f5d09614fe", - "sourceName": "lib/yieldspace-tv/src/Pool/PoolErrors.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": ">=0.8.15", - "artifacts": { - "PoolErrors": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "PoolErrors.sol/PoolErrors.json" - } - } - }, - "lib/yieldspace-tv/src/Pool/PoolEvents.sol": { - "lastModificationDate": 1677500361008, - "contentHash": "4fcba90dbbb1f28c9e6612b4305c4013", - "sourceName": "lib/yieldspace-tv/src/Pool/PoolEvents.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": ">=0.8.15", - "artifacts": { - "PoolEvents": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "PoolEvents.sol/PoolEvents.json" - } - } - }, - "lib/yieldspace-tv/src/Pool/PoolImports.sol": { - "lastModificationDate": 1677500361008, - "contentHash": "3e51dfee0c3a433927ceeabfc6350237", - "sourceName": "lib/yieldspace-tv/src/Pool/PoolImports.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20Permit.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/TransferHelper.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Math.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/RevertMsgExtractor.sol", - "lib/yieldspace-tv/src/Exp64x64.sol", - "lib/yieldspace-tv/src/Math64x64.sol", - "lib/yieldspace-tv/src/Pool/PoolErrors.sol", - "lib/yieldspace-tv/src/Pool/PoolEvents.sol", - "lib/yieldspace-tv/src/YieldMath.sol", - "lib/yieldspace-tv/src/interfaces/IERC4626.sol", - "lib/yieldspace-tv/src/interfaces/IMaturingToken.sol", - "lib/yieldspace-tv/src/interfaces/IPool.sol" - ], - "versionRequirement": ">=0.8.15", - "artifacts": { - "PoolImports": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "PoolImports.sol/PoolImports.json" - } - } - }, - "lib/yieldspace-tv/src/YieldMath.sol": { - "lastModificationDate": 1677500361008, - "contentHash": "a99b352d8d285868cfd120ac96481d77", - "sourceName": "lib/yieldspace-tv/src/YieldMath.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "lib/yieldspace-tv/src/Exp64x64.sol", - "lib/yieldspace-tv/src/Math64x64.sol" - ], - "versionRequirement": ">=0.8.15", - "artifacts": { - "YieldMath": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "YieldMath.sol/YieldMath.json" - } - } - }, - "lib/yieldspace-tv/src/interfaces/IERC4626.sol": { - "lastModificationDate": 1677500361009, - "contentHash": "36141e33c078bd42271054cc2ea91935", - "sourceName": "lib/yieldspace-tv/src/interfaces/IERC4626.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol" - ], - "versionRequirement": ">=0.8.15", - "artifacts": { - "IERC4626": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "IERC4626.sol/IERC4626.json" - } - } - }, - "lib/yieldspace-tv/src/interfaces/IMaturingToken.sol": { - "lastModificationDate": 1677500361009, - "contentHash": "16dbfc65c73503825be9e1d7a65cfdac", - "sourceName": "lib/yieldspace-tv/src/interfaces/IMaturingToken.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol" - ], - "versionRequirement": ">=0.8.15", - "artifacts": { - "IMaturingToken": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "IMaturingToken.sol/IMaturingToken.json" - } - } - }, - "lib/yieldspace-tv/src/interfaces/IPool.sol": { - "lastModificationDate": 1677500361009, - "contentHash": "9b53f22a04bd5cb0183c17da0fb80cd7", - "sourceName": "lib/yieldspace-tv/src/interfaces/IPool.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/src/interfaces/IMaturingToken.sol" - ], - "versionRequirement": null, - "artifacts": { - "IPool": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "IPool.sol/IPool.json" - } - } - }, - "lib/yieldspace-tv/src/interfaces/IPoolOracle.sol": { - "lastModificationDate": 1677500361009, - "contentHash": "2c361aac7074152a5d0415e2dd630908", - "sourceName": "lib/yieldspace-tv/src/interfaces/IPoolOracle.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/src/interfaces/IMaturingToken.sol", - "lib/yieldspace-tv/src/interfaces/IPool.sol" - ], - "versionRequirement": ">=0.8.15", - "artifacts": { - "IPoolOracle": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "IPoolOracle.sol/IPoolOracle.json" - } - } - }, - "lib/yieldspace-tv/src/oracle/PoolOracle.sol": { - "lastModificationDate": 1677500361009, - "contentHash": "8adf5c8232fff5d2b0f232193e045b0d", - "sourceName": "lib/yieldspace-tv/src/oracle/PoolOracle.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/src/Exp64x64.sol", - "lib/yieldspace-tv/src/Math64x64.sol", - "lib/yieldspace-tv/src/interfaces/IMaturingToken.sol", - "lib/yieldspace-tv/src/interfaces/IPool.sol", - "lib/yieldspace-tv/src/interfaces/IPoolOracle.sol" - ], - "versionRequirement": ">=0.8.15", - "artifacts": { - "PoolOracle": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "PoolOracle.sol/PoolOracle.json" - } - } - }, - "src/Cauldron.sol": { - "lastModificationDate": 1677499641271, - "contentHash": "bfad21f10e48bfd70d0570b88c376cf1", - "sourceName": "src/Cauldron.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Math.sol", - "src/constants/Constants.sol", - "src/interfaces/DataTypes.sol", - "src/interfaces/IERC5095.sol", - "src/interfaces/IFYToken.sol", - "src/interfaces/IJoin.sol", - "src/interfaces/IOracle.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "Cauldron": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "Cauldron.sol/Cauldron.json" - }, - "CauldronMath": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "Cauldron.sol/CauldronMath.json" - } - } - }, - "src/FYToken.sol": { - "lastModificationDate": 1677499641271, - "contentHash": "56285becaf2d2a4045241173215503f4", - "sourceName": "src/FYToken.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/ERC3156/contracts/interfaces/IERC3156FlashBorrower.sol", - "lib/ERC3156/contracts/interfaces/IERC3156FlashLender.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20Permit.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/SafeERC20Namer.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/AddressStringUtil.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Math.sol", - "src/constants/Constants.sol", - "src/interfaces/IERC5095.sol", - "src/interfaces/IFYToken.sol", - "src/interfaces/IJoin.sol", - "src/interfaces/IOracle.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "FYToken": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "FYToken.sol/FYToken.json" - } - } - }, - "src/FlashJoin.sol": { - "lastModificationDate": 1677499641270, - "contentHash": "4a44e7504ba288801c4a8f2120367635", - "sourceName": "src/FlashJoin.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/ERC3156/contracts/interfaces/IERC3156FlashBorrower.sol", - "lib/ERC3156/contracts/interfaces/IERC3156FlashLender.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/TransferHelper.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Math.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/RevertMsgExtractor.sol", - "src/Join.sol", - "src/interfaces/IJoin.sol", - "src/interfaces/IJoinFactory.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "FlashJoin": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "FlashJoin.sol/FlashJoin.json" - } - } - }, - "src/Join.sol": { - "lastModificationDate": 1677499641270, - "contentHash": "eca9de66bf065891e2170228e705c3ca", - "sourceName": "src/Join.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/ERC3156/contracts/interfaces/IERC3156FlashBorrower.sol", - "lib/ERC3156/contracts/interfaces/IERC3156FlashLender.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/TransferHelper.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Math.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/RevertMsgExtractor.sol", - "src/interfaces/IJoin.sol", - "src/interfaces/IJoinFactory.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "Join": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "Join.sol/Join.json" - } - } - }, - "src/Ladle.sol": { - "lastModificationDate": 1677499641270, - "contentHash": "1d3d2047df11eca438fa24490fe4a66f", - "sourceName": "src/Ladle.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/dss-interfaces/src/dss/DaiAbstract.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/interfaces/IWETH9.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/TransferHelper.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/IsContract.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Math.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/RevertMsgExtractor.sol", - "lib/yieldspace-tv/src/interfaces/IMaturingToken.sol", - "lib/yieldspace-tv/src/interfaces/IPool.sol", - "src/LadleStorage.sol", - "src/Router.sol", - "src/interfaces/DataTypes.sol", - "src/interfaces/ICauldron.sol", - "src/interfaces/IERC5095.sol", - "src/interfaces/IFYToken.sol", - "src/interfaces/IJoin.sol", - "src/interfaces/IOracle.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "Ladle": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "Ladle.sol/Ladle.json" - } - } - }, - "src/LadleStorage.sol": { - "lastModificationDate": 1677499641270, - "contentHash": "48f86639c130a500429ff93375834227", - "sourceName": "src/LadleStorage.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/interfaces/IWETH9.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/IsContract.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/RevertMsgExtractor.sol", - "lib/yieldspace-tv/src/interfaces/IMaturingToken.sol", - "lib/yieldspace-tv/src/interfaces/IPool.sol", - "src/Router.sol", - "src/interfaces/DataTypes.sol", - "src/interfaces/ICauldron.sol", - "src/interfaces/IERC5095.sol", - "src/interfaces/IFYToken.sol", - "src/interfaces/IJoin.sol", - "src/interfaces/IOracle.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "LadleStorage": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "LadleStorage.sol/LadleStorage.json" - } - } - }, - "src/Router.sol": { - "lastModificationDate": 1677499641270, - "contentHash": "d7391413179b1c07c3835e97a15b02ce", - "sourceName": "src/Router.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/IsContract.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/RevertMsgExtractor.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "Router": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "Router.sol/Router.json" - } - } - }, - "src/Witch.sol": { - "lastModificationDate": 1677499641270, - "contentHash": "099ede16588b5481096ad4087855c851", - "sourceName": "src/Witch.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/interfaces/IWETH9.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/IsContract.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Math.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/RevertMsgExtractor.sol", - "lib/yieldspace-tv/src/interfaces/IMaturingToken.sol", - "lib/yieldspace-tv/src/interfaces/IPool.sol", - "src/Router.sol", - "src/interfaces/DataTypes.sol", - "src/interfaces/ICauldron.sol", - "src/interfaces/IERC5095.sol", - "src/interfaces/IFYToken.sol", - "src/interfaces/IJoin.sol", - "src/interfaces/ILadle.sol", - "src/interfaces/IOracle.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "Witch": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "Witch.sol/Witch.json" - } - } - }, - "src/constants/Constants.sol": { - "lastModificationDate": 1677499641269, - "contentHash": "c3ddd7ca09b5a70a63845d1b1e8fc739", - "sourceName": "src/constants/Constants.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": ">=0.8.13", - "artifacts": { - "Constants": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "Constants.sol/Constants.json" - } - } - }, - "src/deprecated/FYTokenFactoryMock.sol": { - "lastModificationDate": 1677499641269, - "contentHash": "a81b26f8c12de85e68a512ed5d78d5f2", - "sourceName": "src/deprecated/FYTokenFactoryMock.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/ERC3156/contracts/interfaces/IERC3156FlashBorrower.sol", - "lib/ERC3156/contracts/interfaces/IERC3156FlashLender.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20Permit.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/SafeERC20Namer.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/AddressStringUtil.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Math.sol", - "src/FYToken.sol", - "src/constants/Constants.sol", - "src/interfaces/IERC5095.sol", - "src/interfaces/IFYToken.sol", - "src/interfaces/IFYTokenFactory.sol", - "src/interfaces/IJoin.sol", - "src/interfaces/IOracle.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "FYTokenFactoryMock": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "FYTokenFactoryMock.sol/FYTokenFactoryMock.json" - } - } - }, - "src/deprecated/IPoolFactory.sol": { - "lastModificationDate": 1677499641269, - "contentHash": "800a26da67c69b31e29497f3bb9680d7", - "sourceName": "src/deprecated/IPoolFactory.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": "^0.8.0", - "artifacts": { - "IPoolFactory": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "IPoolFactory.sol/IPoolFactory.json" - } - } - }, - "src/deprecated/JoinFactoryMock.sol": { - "lastModificationDate": 1677499641269, - "contentHash": "dbbb3e0495e54f04ae3fcc51135a8fd1", - "sourceName": "src/deprecated/JoinFactoryMock.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/ERC3156/contracts/interfaces/IERC3156FlashBorrower.sol", - "lib/ERC3156/contracts/interfaces/IERC3156FlashLender.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/TransferHelper.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Math.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/RevertMsgExtractor.sol", - "src/Join.sol", - "src/interfaces/IJoin.sol", - "src/interfaces/IJoinFactory.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "JoinFactoryMock": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "JoinFactoryMock.sol/JoinFactoryMock.json" - } - } - }, - "src/deprecated/PoolFactoryMock.sol": { - "lastModificationDate": 1677499641269, - "contentHash": "2bac320b9f64546800dd35a2ae485a0e", - "sourceName": "src/deprecated/PoolFactoryMock.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/Ownable.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20Permit.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "src/deprecated/IPoolFactory.sol", - "src/interfaces/IERC5095.sol", - "src/interfaces/IFYToken.sol", - "src/interfaces/IJoin.sol", - "src/interfaces/IOracle.sol", - "src/mocks/ERC20Mock.sol", - "src/mocks/PoolMock.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "PoolFactoryMock": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "PoolFactoryMock.sol/PoolFactoryMock.json" - } - } - }, - "src/deprecated/Wand.sol": { - "lastModificationDate": 1677499641269, - "contentHash": "5d942b39275070f71cd57912e6144274", - "sourceName": "src/deprecated/Wand.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "src/constants/Constants.sol", - "src/deprecated/IPoolFactory.sol", - "src/interfaces/DataTypes.sol", - "src/interfaces/ICauldronGov.sol", - "src/interfaces/IERC5095.sol", - "src/interfaces/IFYToken.sol", - "src/interfaces/IFYTokenFactory.sol", - "src/interfaces/IJoin.sol", - "src/interfaces/IJoinFactory.sol", - "src/interfaces/ILadleGov.sol", - "src/interfaces/IMultiOracleGov.sol", - "src/interfaces/IOracle.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "IWitchGov": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "Wand.sol/IWitchGov.json" - }, - "Wand": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "Wand.sol/Wand.json" - } - } - }, - "src/deprecated/WitchOld.sol": { - "lastModificationDate": 1677499641269, - "contentHash": "d0b3fc31f2dce786f01a7b90bde5cdcc", - "sourceName": "src/deprecated/WitchOld.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/interfaces/IWETH9.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/IsContract.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Math.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/RevertMsgExtractor.sol", - "lib/yieldspace-tv/src/interfaces/IMaturingToken.sol", - "lib/yieldspace-tv/src/interfaces/IPool.sol", - "src/Router.sol", - "src/interfaces/DataTypes.sol", - "src/interfaces/ICauldron.sol", - "src/interfaces/IERC5095.sol", - "src/interfaces/IFYToken.sol", - "src/interfaces/IJoin.sol", - "src/interfaces/ILadle.sol", - "src/interfaces/IOracle.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "WitchOld": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "WitchOld.sol/WitchOld.json" - } - } - }, - "src/interfaces/DataTypes.sol": { - "lastModificationDate": 1677499641269, - "contentHash": "e3c86fd61226fa77ac9d110acf3f0b70", - "sourceName": "src/interfaces/DataTypes.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "src/interfaces/IERC5095.sol", - "src/interfaces/IFYToken.sol", - "src/interfaces/IJoin.sol", - "src/interfaces/IOracle.sol" - ], - "versionRequirement": "^0.8.0", - "artifacts": { - "DataTypes": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "DataTypes.sol/DataTypes.json" - } - } - }, - "src/interfaces/ICauldron.sol": { - "lastModificationDate": 1677499641268, - "contentHash": "3713f28b5f2487e6cd23d9cf06fae066", - "sourceName": "src/interfaces/ICauldron.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "src/interfaces/DataTypes.sol", - "src/interfaces/IERC5095.sol", - "src/interfaces/IFYToken.sol", - "src/interfaces/IJoin.sol", - "src/interfaces/IOracle.sol" - ], - "versionRequirement": "^0.8.0", - "artifacts": { - "ICauldron": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "ICauldron.sol/ICauldron.json" - } - } - }, - "src/interfaces/ICauldronGov.sol": { - "lastModificationDate": 1677499641268, - "contentHash": "e09763bc5e22803dba05b2ff5a9bb695", - "sourceName": "src/interfaces/ICauldronGov.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "src/interfaces/DataTypes.sol", - "src/interfaces/IERC5095.sol", - "src/interfaces/IFYToken.sol", - "src/interfaces/IJoin.sol", - "src/interfaces/IOracle.sol" - ], - "versionRequirement": "^0.8.0", - "artifacts": { - "ICauldronGov": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "ICauldronGov.sol/ICauldronGov.json" - } - } - }, - "src/interfaces/IERC5095.sol": { - "lastModificationDate": 1677499641268, - "contentHash": "a52f45d8389356aefa8c48af2dc903d0", - "sourceName": "src/interfaces/IERC5095.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "IERC5095": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "IERC5095.sol/IERC5095.json" - } - } - }, - "src/interfaces/IFYToken.sol": { - "lastModificationDate": 1677499641268, - "contentHash": "2dde05b49e84f14b757b62ef78beb517", - "sourceName": "src/interfaces/IFYToken.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "src/interfaces/IERC5095.sol", - "src/interfaces/IJoin.sol", - "src/interfaces/IOracle.sol" - ], - "versionRequirement": "^0.8.0", - "artifacts": { - "IFYToken": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "IFYToken.sol/IFYToken.json" - } - } - }, - "src/interfaces/IFYTokenFactory.sol": { - "lastModificationDate": 1677499641268, - "contentHash": "7d2e2f3addf1080c9e0ac318535b4a61", - "sourceName": "src/interfaces/IFYTokenFactory.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "src/interfaces/IJoin.sol", - "src/interfaces/IOracle.sol" - ], - "versionRequirement": "^0.8.0", - "artifacts": { - "IFYTokenFactory": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "IFYTokenFactory.sol/IFYTokenFactory.json" - } - } - }, - "src/interfaces/IJoin.sol": { - "lastModificationDate": 1677499641268, - "contentHash": "540020ec7d91348df94a506411040ec0", - "sourceName": "src/interfaces/IJoin.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol" - ], - "versionRequirement": "^0.8.0", - "artifacts": { - "IJoin": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "IJoin.sol/IJoin.json" - } - } - }, - "src/interfaces/IJoinFactory.sol": { - "lastModificationDate": 1677499641268, - "contentHash": "1426c885a7cb4c4c89931c6e958405e3", - "sourceName": "src/interfaces/IJoinFactory.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": "^0.8.0", - "artifacts": { - "IJoinFactory": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "IJoinFactory.sol/IJoinFactory.json" - } - } - }, - "src/interfaces/ILadle.sol": { - "lastModificationDate": 1677499641268, - "contentHash": "993fb6448ab02c216c47d7cdf496b36e", - "sourceName": "src/interfaces/ILadle.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/interfaces/IWETH9.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/IsContract.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/RevertMsgExtractor.sol", - "lib/yieldspace-tv/src/interfaces/IMaturingToken.sol", - "lib/yieldspace-tv/src/interfaces/IPool.sol", - "src/Router.sol", - "src/interfaces/DataTypes.sol", - "src/interfaces/ICauldron.sol", - "src/interfaces/IERC5095.sol", - "src/interfaces/IFYToken.sol", - "src/interfaces/IJoin.sol", - "src/interfaces/IOracle.sol" - ], - "versionRequirement": "^0.8.0", - "artifacts": { - "ILadle": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "ILadle.sol/ILadle.json" - } - } - }, - "src/interfaces/ILadleGov.sol": { - "lastModificationDate": 1677499641268, - "contentHash": "4a3e1dde77c4c8a5fc0733c6687c8139", - "sourceName": "src/interfaces/ILadleGov.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "src/interfaces/IJoin.sol" - ], - "versionRequirement": "^0.8.0", - "artifacts": { - "ILadleGov": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "ILadleGov.sol/ILadleGov.json" - } - } - }, - "src/interfaces/IMultiOracleGov.sol": { - "lastModificationDate": 1677499641267, - "contentHash": "e0cad6c6985bbddc1c519c53da67ad95", - "sourceName": "src/interfaces/IMultiOracleGov.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": "^0.8.0", - "artifacts": { - "IMultiOracleGov": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "IMultiOracleGov.sol/IMultiOracleGov.json" - } - } - }, - "src/interfaces/IOracle.sol": { - "lastModificationDate": 1677499641267, - "contentHash": "fbec703dd8228a0636d95f02596cca53", - "sourceName": "src/interfaces/IOracle.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": "^0.8.0", - "artifacts": { - "IOracle": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "IOracle.sol/IOracle.json" - } - } - }, - "src/interfaces/IStrategy.sol": { - "lastModificationDate": 1677499641267, - "contentHash": "77e33c88764c278be63e4d57e74f331c", - "sourceName": "src/interfaces/IStrategy.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": ">=0.8.13", - "artifacts": { - "IStrategy": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "IStrategy.sol/IStrategy.json" - } - } - }, - "src/interfaces/IWitch.sol": { - "lastModificationDate": 1677499641267, - "contentHash": "9c7cbc5e6e506d664972afc0301d09c2", - "sourceName": "src/interfaces/IWitch.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/interfaces/IWETH9.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/IsContract.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/RevertMsgExtractor.sol", - "lib/yieldspace-tv/src/interfaces/IMaturingToken.sol", - "lib/yieldspace-tv/src/interfaces/IPool.sol", - "src/Router.sol", - "src/interfaces/DataTypes.sol", - "src/interfaces/ICauldron.sol", - "src/interfaces/IERC5095.sol", - "src/interfaces/IFYToken.sol", - "src/interfaces/IJoin.sol", - "src/interfaces/ILadle.sol", - "src/interfaces/IOracle.sol" - ], - "versionRequirement": "^0.8.0", - "artifacts": { - "IWitch": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "IWitch.sol/IWitch.json" - } - } - }, - "src/mocks/ConvexPoolMock.sol": { - "lastModificationDate": 1677499641267, - "contentHash": "59f06a4b00a23526b690a778b0ec1061", - "sourceName": "src/mocks/ConvexPoolMock.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/TransferHelper.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/RevertMsgExtractor.sol", - "src/interfaces/DataTypes.sol", - "src/interfaces/IERC5095.sol", - "src/interfaces/IFYToken.sol", - "src/interfaces/IJoin.sol", - "src/interfaces/IOracle.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "ConvexPoolMock": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "ConvexPoolMock.sol/ConvexPoolMock.json" - } - } - }, - "src/mocks/ConvexYieldWrapperMock.sol": { - "lastModificationDate": 1677499641267, - "contentHash": "860bdcf3611cc6f4cc67720162ea7dbc", - "sourceName": "src/mocks/ConvexYieldWrapperMock.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/TransferHelper.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/RevertMsgExtractor.sol", - "src/interfaces/DataTypes.sol", - "src/interfaces/IERC5095.sol", - "src/interfaces/IFYToken.sol", - "src/interfaces/IJoin.sol", - "src/interfaces/IOracle.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "ConvexYieldWrapperMock": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "ConvexYieldWrapperMock.sol/ConvexYieldWrapperMock.json" - }, - "ICauldron": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "ConvexYieldWrapperMock.sol/ICauldron.json" - }, - "IRewardStaking": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "ConvexYieldWrapperMock.sol/IRewardStaking.json" - } - } - }, - "src/mocks/DAIMock.sol": { - "lastModificationDate": 1677499641267, - "contentHash": "4cfc400e3026ecaadd1b778b977d578b", - "sourceName": "src/mocks/DAIMock.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "DAIMock": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "DAIMock.sol/DAIMock.json" - } - } - }, - "src/mocks/ERC20Mock.sol": { - "lastModificationDate": 1677499641267, - "contentHash": "d10127a12042b0848a077a1b1806bc0c", - "sourceName": "src/mocks/ERC20Mock.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20Permit.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "ERC20Mock": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "ERC20Mock.sol/ERC20Mock.json" - } - } - }, - "src/mocks/FlashBorrower.sol": { - "lastModificationDate": 1677499641266, - "contentHash": "b8671650af40061e7fbe3850b4c26cb5", - "sourceName": "src/mocks/FlashBorrower.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/ERC3156/contracts/interfaces/IERC3156FlashBorrower.sol", - "lib/ERC3156/contracts/interfaces/IERC3156FlashLender.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "FlashBorrower": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "FlashBorrower.sol/FlashBorrower.json" - } - } - }, - "src/mocks/PoolMock.sol": { - "lastModificationDate": 1677499641266, - "contentHash": "c15b280ee6d6ba9e896c3cb3830bee38", - "sourceName": "src/mocks/PoolMock.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/Ownable.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20Permit.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "src/deprecated/IPoolFactory.sol", - "src/interfaces/IERC5095.sol", - "src/interfaces/IFYToken.sol", - "src/interfaces/IJoin.sol", - "src/interfaces/IOracle.sol", - "src/mocks/ERC20Mock.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "PoolMock": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "PoolMock.sol/PoolMock.json" - }, - "RMath": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "PoolMock.sol/RMath.json" - } - } - }, - "src/mocks/RestrictedERC20Mock.sol": { - "lastModificationDate": 1677499641266, - "contentHash": "ed278818d4467a9965222a2f575dcab0", - "sourceName": "src/mocks/RestrictedERC20Mock.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20Permit.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "RestrictedERC20Mock": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "RestrictedERC20Mock.sol/RestrictedERC20Mock.json" - } - } - }, - "src/mocks/TLMMock.sol": { - "lastModificationDate": 1677499641266, - "contentHash": "e5e6f32ff7f3e5d28a2159e00d2abc6b", - "sourceName": "src/mocks/TLMMock.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20Permit.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "src/mocks/ERC20Mock.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "GemJoinMock": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "TLMMock.sol/GemJoinMock.json" - }, - "TLMMock": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "TLMMock.sol/TLMMock.json" - } - } - }, - "src/mocks/TokenProxy.sol": { - "lastModificationDate": 1677499641266, - "contentHash": "c1bc4f95082996118aa3856405815e2c", - "sourceName": "src/mocks/TokenProxy.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "TokenProxy": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "TokenProxy.sol/TokenProxy.json" - } - } - }, - "src/mocks/USDCMock.sol": { - "lastModificationDate": 1677499641266, - "contentHash": "36e91fc2f2a61b18464cea61abc40e40", - "sourceName": "src/mocks/USDCMock.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20Permit.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "USDCMock": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "USDCMock.sol/USDCMock.json" - } - } - }, - "src/mocks/WETH9Mock.sol": { - "lastModificationDate": 1677499641266, - "contentHash": "0968bbd7ca8cb68e648aa5ca6a2fe16f", - "sourceName": "src/mocks/WETH9Mock.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "WETH9Mock": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "WETH9Mock.sol/WETH9Mock.json" - } - } - }, - "src/mocks/WstETHMock.sol": { - "lastModificationDate": 1677499641266, - "contentHash": "b2df47e4b404a6e194e94a11edffa4d8", - "sourceName": "src/mocks/WstETHMock.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20Permit.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "WstETHMock": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "WstETHMock.sol/WstETHMock.json" - } - } - }, - "src/mocks/YvTokenMock.sol": { - "lastModificationDate": 1677499641265, - "contentHash": "ff1de7e2fe5066589a44ee1a84125593", - "sourceName": "src/mocks/YvTokenMock.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "src/mocks/oracles/ISourceMock.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "YvTokenMock": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "YvTokenMock.sol/YvTokenMock.json" - } - } - }, - "src/mocks/oracles/ISourceMock.sol": { - "lastModificationDate": 1677499641265, - "contentHash": "44e9d8e43fb84387fac4ce7fe69353f0", - "sourceName": "src/mocks/oracles/ISourceMock.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": ">=0.8.13", - "artifacts": { - "ISourceMock": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "ISourceMock.sol/ISourceMock.json" - } - } - }, - "src/mocks/oracles/OracleMock.sol": { - "lastModificationDate": 1677499641265, - "contentHash": "ab94ce6bee1e837994859e6e1886d028", - "sourceName": "src/mocks/oracles/OracleMock.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "src/interfaces/IOracle.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "OracleMock": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "OracleMock.sol/OracleMock.json" - } - } - }, - "src/mocks/oracles/chainlink/ChainlinkAggregatorV3Mock.sol": { - "lastModificationDate": 1677499641265, - "contentHash": "4bea9abf9ef7926e11c65e0b73e40871", - "sourceName": "src/mocks/oracles/chainlink/ChainlinkAggregatorV3Mock.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "src/mocks/oracles/ISourceMock.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "ChainlinkAggregatorV3Mock": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "ChainlinkAggregatorV3Mock.sol/ChainlinkAggregatorV3Mock.json" - } - } - }, - "src/mocks/oracles/chainlink/ChainlinkAggregatorV3MockEx.sol": { - "lastModificationDate": 1677499641265, - "contentHash": "3ec23d2f742d6cf3208a113d26d68e85", - "sourceName": "src/mocks/oracles/chainlink/ChainlinkAggregatorV3MockEx.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "src/mocks/oracles/ISourceMock.sol", - "src/mocks/oracles/chainlink/ChainlinkAggregatorV3Mock.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "ChainlinkAggregatorV3MockEx": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "ChainlinkAggregatorV3MockEx.sol/ChainlinkAggregatorV3MockEx.json" - } - } - }, - "src/mocks/oracles/chainlink/FlagsInterfaceMock.sol": { - "lastModificationDate": 1677499641265, - "contentHash": "ce3c5add5ac42ab0b279fd5b1a28624d", - "sourceName": "src/mocks/oracles/chainlink/FlagsInterfaceMock.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "src/oracles/chainlink/FlagsInterface.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "FlagsInterfaceMock": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "FlagsInterfaceMock.sol/FlagsInterfaceMock.json" - } - } - }, - "src/mocks/oracles/compound/CTokenChiMock.sol": { - "lastModificationDate": 1677499641265, - "contentHash": "fbaf55af65ede5b41e5a13e715f87499", - "sourceName": "src/mocks/oracles/compound/CTokenChiMock.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "src/mocks/oracles/ISourceMock.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "CTokenChiMock": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "CTokenChiMock.sol/CTokenChiMock.json" - } - } - }, - "src/mocks/oracles/compound/CTokenMock.sol": { - "lastModificationDate": 1677499641265, - "contentHash": "6af91788f1ce96cc22001438fa940424", - "sourceName": "src/mocks/oracles/compound/CTokenMock.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "src/mocks/oracles/ISourceMock.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "CTokenMock": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "CTokenMock.sol/CTokenMock.json" - } - } - }, - "src/mocks/oracles/compound/CTokenRateMock.sol": { - "lastModificationDate": 1677499641265, - "contentHash": "b3592dc089d7c5fe16551877c823f6cd", - "sourceName": "src/mocks/oracles/compound/CTokenRateMock.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "src/mocks/oracles/ISourceMock.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "CTokenRateMock": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "CTokenRateMock.sol/CTokenRateMock.json" - } - } - }, - "src/mocks/oracles/convex/CurvePoolMock.sol": { - "lastModificationDate": 1677499641264, - "contentHash": "a821051acdb945b4af901fa5fbcd2aa4", - "sourceName": "src/mocks/oracles/convex/CurvePoolMock.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": ">=0.8.13", - "artifacts": { - "CurvePoolMock": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "CurvePoolMock.sol/CurvePoolMock.json" - }, - "ICurvePool": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "CurvePoolMock.sol/ICurvePool.json" - } - } - }, - "src/mocks/oracles/lido/WstETHMock.sol": { - "lastModificationDate": 1677499641264, - "contentHash": "97b6c02ceaf8d34118040c12fba59cd8", - "sourceName": "src/mocks/oracles/lido/WstETHMock.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20Permit.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "src/mocks/ERC20Mock.sol", - "src/mocks/oracles/ISourceMock.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "WstETHMock": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "lido/WstETHMock.sol/WstETHMock.json" - } - } - }, - "src/mocks/oracles/uniswap/UniswapV2PairMock.sol": { - "lastModificationDate": 1677499641264, - "contentHash": "7524c32b3e7e74e0dfe07c89b45f6161", - "sourceName": "src/mocks/oracles/uniswap/UniswapV2PairMock.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": ">=0.8.13", - "artifacts": { - "UniswapV2PairMock": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "UniswapV2PairMock.sol/UniswapV2PairMock.json" - } - } - }, - "src/mocks/oracles/uniswap/UniswapV3FactoryMock.sol": { - "lastModificationDate": 1677499641264, - "contentHash": "86f6dc18a002434300868f7557661467", - "sourceName": "src/mocks/oracles/uniswap/UniswapV3FactoryMock.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "src/mocks/oracles/ISourceMock.sol", - "src/mocks/oracles/uniswap/UniswapV3PoolMock.sol", - "src/oracles/uniswap/IUniswapV3PoolImmutables.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "UniswapV3FactoryMock": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "UniswapV3FactoryMock.sol/UniswapV3FactoryMock.json" - } - } - }, - "src/mocks/oracles/uniswap/UniswapV3OracleLibraryMock.sol": { - "lastModificationDate": 1677499641264, - "contentHash": "94086dd7e88f41b6774b4c02fc649f4a", - "sourceName": "src/mocks/oracles/uniswap/UniswapV3OracleLibraryMock.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Math.sol", - "src/mocks/oracles/ISourceMock.sol", - "src/mocks/oracles/uniswap/UniswapV3FactoryMock.sol", - "src/mocks/oracles/uniswap/UniswapV3PoolMock.sol", - "src/oracles/uniswap/IUniswapV3PoolImmutables.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "UniswapV3OracleLibraryMock": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "UniswapV3OracleLibraryMock.sol/UniswapV3OracleLibraryMock.json" - } - } - }, - "src/mocks/oracles/uniswap/UniswapV3PoolMock.sol": { - "lastModificationDate": 1677499641264, - "contentHash": "af699a9b2dab7167484fbd10d5f2b2ad", - "sourceName": "src/mocks/oracles/uniswap/UniswapV3PoolMock.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "src/mocks/oracles/ISourceMock.sol", - "src/oracles/uniswap/IUniswapV3PoolImmutables.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "UniswapV3PoolMock": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "UniswapV3PoolMock.sol/UniswapV3PoolMock.json" - } - } - }, - "src/modules/HealerModule.sol": { - "lastModificationDate": 1677499641264, - "contentHash": "143b9671a2c51d508f819687fce4c16b", - "sourceName": "src/modules/HealerModule.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/interfaces/IWETH9.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/IsContract.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Math.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/RevertMsgExtractor.sol", - "lib/yieldspace-tv/src/interfaces/IMaturingToken.sol", - "lib/yieldspace-tv/src/interfaces/IPool.sol", - "src/LadleStorage.sol", - "src/Router.sol", - "src/interfaces/DataTypes.sol", - "src/interfaces/ICauldron.sol", - "src/interfaces/IERC5095.sol", - "src/interfaces/IFYToken.sol", - "src/interfaces/IJoin.sol", - "src/interfaces/ILadle.sol", - "src/interfaces/IOracle.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "HealerModule": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "HealerModule.sol/HealerModule.json" - } - } - }, - "src/modules/RepayFromLadleModule.sol": { - "lastModificationDate": 1677499641264, - "contentHash": "856d5fe0d07b5ba0e1d4d809df445b8b", - "sourceName": "src/modules/RepayFromLadleModule.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/interfaces/IWETH9.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/TransferHelper.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/IsContract.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/RevertMsgExtractor.sol", - "lib/yieldspace-tv/src/interfaces/IMaturingToken.sol", - "lib/yieldspace-tv/src/interfaces/IPool.sol", - "src/LadleStorage.sol", - "src/Router.sol", - "src/interfaces/DataTypes.sol", - "src/interfaces/ICauldron.sol", - "src/interfaces/IERC5095.sol", - "src/interfaces/IFYToken.sol", - "src/interfaces/IJoin.sol", - "src/interfaces/IOracle.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "RepayFromLadleModule": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "RepayFromLadleModule.sol/RepayFromLadleModule.json" - } - } - }, - "src/modules/TLMModule.sol": { - "lastModificationDate": 1677499641263, - "contentHash": "369d818283378a7340be67f748d56b33", - "sourceName": "src/modules/TLMModule.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/interfaces/IWETH9.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/IsContract.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/RevertMsgExtractor.sol", - "lib/yieldspace-tv/src/interfaces/IMaturingToken.sol", - "lib/yieldspace-tv/src/interfaces/IPool.sol", - "src/LadleStorage.sol", - "src/Router.sol", - "src/interfaces/DataTypes.sol", - "src/interfaces/ICauldron.sol", - "src/interfaces/IERC5095.sol", - "src/interfaces/IFYToken.sol", - "src/interfaces/IJoin.sol", - "src/interfaces/IOracle.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "AuthGemJoinAbstract": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "TLMModule.sol/AuthGemJoinAbstract.json" - }, - "DssTlmAbstract": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "TLMModule.sol/DssTlmAbstract.json" - }, - "MaturingGemAbstract": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "TLMModule.sol/MaturingGemAbstract.json" - }, - "TLMModule": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "TLMModule.sol/TLMModule.json" - } - } - }, - "src/modules/WrapEtherModule.sol": { - "lastModificationDate": 1677499641263, - "contentHash": "4b4b24b86d0c31e2159fce649008f256", - "sourceName": "src/modules/WrapEtherModule.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/interfaces/IWETH9.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/TransferHelper.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/IsContract.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/RevertMsgExtractor.sol", - "lib/yieldspace-tv/src/interfaces/IMaturingToken.sol", - "lib/yieldspace-tv/src/interfaces/IPool.sol", - "src/LadleStorage.sol", - "src/Router.sol", - "src/interfaces/DataTypes.sol", - "src/interfaces/ICauldron.sol", - "src/interfaces/IERC5095.sol", - "src/interfaces/IFYToken.sol", - "src/interfaces/IJoin.sol", - "src/interfaces/IOracle.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "WrapEtherModule": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "WrapEtherModule.sol/WrapEtherModule.json" - } - } - }, - "src/oracles/accumulator/AccumulatorMultiOracle.sol": { - "lastModificationDate": 1677499641263, - "contentHash": "f77f8696a88dbe9674f1fdd8fc88db25", - "sourceName": "src/oracles/accumulator/AccumulatorMultiOracle.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Math.sol", - "src/constants/Constants.sol", - "src/interfaces/IOracle.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "AccumulatorMultiOracle": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "AccumulatorMultiOracle.sol/AccumulatorMultiOracle.json" - } - } - }, - "src/oracles/chainlink/AggregatorV3Interface.sol": { - "lastModificationDate": 1677499641263, - "contentHash": "b213894d1186ed5f03cceedb9a7811a2", - "sourceName": "src/oracles/chainlink/AggregatorV3Interface.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": ">=0.6.0", - "artifacts": { - "AggregatorV3Interface": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "AggregatorV3Interface.sol/AggregatorV3Interface.json" - } - } - }, - "src/oracles/chainlink/ChainlinkL2USDMultiOracle.sol": { - "lastModificationDate": 1677499641263, - "contentHash": "54600a72189318340a2e35068ce967ff", - "sourceName": "src/oracles/chainlink/ChainlinkL2USDMultiOracle.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "src/constants/Constants.sol", - "src/interfaces/IOracle.sol", - "src/oracles/chainlink/AggregatorV3Interface.sol", - "src/oracles/chainlink/ChainlinkUSDMultiOracle.sol", - "src/oracles/chainlink/FlagsInterface.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "ChainlinkL2USDMultiOracle": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "ChainlinkL2USDMultiOracle.sol/ChainlinkL2USDMultiOracle.json" - } - } - }, - "src/oracles/chainlink/ChainlinkMultiOracle.sol": { - "lastModificationDate": 1677499641263, - "contentHash": "a22b18e9ca40e7135457b337d8c3fd38", - "sourceName": "src/oracles/chainlink/ChainlinkMultiOracle.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "src/constants/Constants.sol", - "src/interfaces/IOracle.sol", - "src/oracles/chainlink/AggregatorV3Interface.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "ChainlinkMultiOracle": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "ChainlinkMultiOracle.sol/ChainlinkMultiOracle.json" - } - } - }, - "src/oracles/chainlink/ChainlinkUSDMultiOracle.sol": { - "lastModificationDate": 1677499641263, - "contentHash": "e3eafb32950259d322666e47d29ffebd", - "sourceName": "src/oracles/chainlink/ChainlinkUSDMultiOracle.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "src/constants/Constants.sol", - "src/interfaces/IOracle.sol", - "src/oracles/chainlink/AggregatorV3Interface.sol", - "src/oracles/chainlink/FlagsInterface.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "ChainlinkUSDMultiOracle": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "ChainlinkUSDMultiOracle.sol/ChainlinkUSDMultiOracle.json" - } - } - }, - "src/oracles/chainlink/FlagsInterface.sol": { - "lastModificationDate": 1677499641263, - "contentHash": "d37f32515fb3edcdcc0728ca80cfe987", - "sourceName": "src/oracles/chainlink/FlagsInterface.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": "^0.8.0", - "artifacts": { - "FlagsInterface": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "FlagsInterface.sol/FlagsInterface.json" - } - } - }, - "src/oracles/composite/CompositeMultiOracle.sol": { - "lastModificationDate": 1677499641262, - "contentHash": "aaf5d39dd4a9b1274f02bf4099bc32ac", - "sourceName": "src/oracles/composite/CompositeMultiOracle.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "src/interfaces/IOracle.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "CompositeMultiOracle": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "CompositeMultiOracle.sol/CompositeMultiOracle.json" - } - } - }, - "src/oracles/compound/CTokenInterface.sol": { - "lastModificationDate": 1677499641262, - "contentHash": "c2c3908e2ef28463858f56d16113b926", - "sourceName": "src/oracles/compound/CTokenInterface.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol" - ], - "versionRequirement": ">=0.5.16", - "artifacts": { - "CTokenInterface": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "CTokenInterface.sol/CTokenInterface.json" - } - } - }, - "src/oracles/compound/CTokenMultiOracle.sol": { - "lastModificationDate": 1677499641262, - "contentHash": "37cce1c8be448a4b289477b00f189811", - "sourceName": "src/oracles/compound/CTokenMultiOracle.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "src/constants/Constants.sol", - "src/interfaces/IOracle.sol", - "src/oracles/compound/CTokenInterface.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "CTokenMultiOracle": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "CTokenMultiOracle.sol/CTokenMultiOracle.json" - } - } - }, - "src/oracles/compound/CompoundMultiOracle.sol": { - "lastModificationDate": 1677499641262, - "contentHash": "a38b16ba44ac30c2261de503e0d7b1ea", - "sourceName": "src/oracles/compound/CompoundMultiOracle.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "src/constants/Constants.sol", - "src/interfaces/IOracle.sol", - "src/oracles/compound/CTokenInterface.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "CompoundMultiOracle": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "CompoundMultiOracle.sol/CompoundMultiOracle.json" - } - } - }, - "src/oracles/convex/Cvx3CrvOracle.sol": { - "lastModificationDate": 1677499641262, - "contentHash": "c57bb600d05628698d51d7d1614de190", - "sourceName": "src/oracles/convex/Cvx3CrvOracle.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "src/interfaces/IOracle.sol", - "src/oracles/chainlink/AggregatorV3Interface.sol", - "src/oracles/convex/ICurvePool.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "Cvx3CrvOracle": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "Cvx3CrvOracle.sol/Cvx3CrvOracle.json" - } - } - }, - "src/oracles/convex/ICurvePool.sol": { - "lastModificationDate": 1677499641262, - "contentHash": "e89afd47a330d791e058f8215c6aaf1a", - "sourceName": "src/oracles/convex/ICurvePool.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": ">=0.8.13", - "artifacts": { - "ICurvePool": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "ICurvePool.sol/ICurvePool.json" - } - } - }, - "src/oracles/crab/CrabOracle.sol": { - "lastModificationDate": 1677499641262, - "contentHash": "b85271615dd82b3ffa9c49da0c4afcf2", - "sourceName": "src/oracles/crab/CrabOracle.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "src/interfaces/IOracle.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "CrabOracle": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "CrabOracle.sol/CrabOracle.json" - }, - "ICrabStrategy": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "CrabOracle.sol/ICrabStrategy.json" - } - } - }, - "src/oracles/euler/ETokenMultiOracle.sol": { - "lastModificationDate": 1677499641261, - "contentHash": "1bf8321912a233ffc4091c5342c848ff", - "sourceName": "src/oracles/euler/ETokenMultiOracle.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "src/interfaces/IOracle.sol", - "src/oracles/euler/IEToken.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "ETokenMultiOracle": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "ETokenMultiOracle.sol/ETokenMultiOracle.json" - } - } - }, - "src/oracles/euler/IEToken.sol": { - "lastModificationDate": 1677499641261, - "contentHash": "cfd4d6aae3f8d8abf6272154423f73f8", - "sourceName": "src/oracles/euler/IEToken.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": ">=0.6.0", - "artifacts": { - "IEToken": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "IEToken.sol/IEToken.json" - } - } - }, - "src/oracles/lido/IWstETH.sol": { - "lastModificationDate": 1677499641261, - "contentHash": "a460d641bb88bcea2f5a410b964f3296", - "sourceName": "src/oracles/lido/IWstETH.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol" - ], - "versionRequirement": ">=0.6.0", - "artifacts": { - "IWstETH": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "IWstETH.sol/IWstETH.json" - } - } - }, - "src/oracles/lido/LidoOracle.sol": { - "lastModificationDate": 1677499641261, - "contentHash": "9392d449de9d6d72bd8a9feb30bc62c2", - "sourceName": "src/oracles/lido/LidoOracle.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "src/interfaces/IOracle.sol", - "src/oracles/lido/IWstETH.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "LidoOracle": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "LidoOracle.sol/LidoOracle.json" - } - } - }, - "src/oracles/rocket/RETHOracle.sol": { - "lastModificationDate": 1677499641261, - "contentHash": "baaee57d6e94e29d174a3711738869b7", - "sourceName": "src/oracles/rocket/RETHOracle.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "src/interfaces/IOracle.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "IRocketTokenRETH": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "RETHOracle.sol/IRocketTokenRETH.json" - }, - "RETHOracle": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "RETHOracle.sol/RETHOracle.json" - } - } - }, - "src/oracles/strategy/StrategyOracle.sol": { - "lastModificationDate": 1677499641260, - "contentHash": "95db87bd5d85fb1638640bc20e7053b4", - "sourceName": "src/oracles/strategy/StrategyOracle.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "src/interfaces/IOracle.sol", - "src/interfaces/IStrategy.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "StrategyOracle": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "StrategyOracle.sol/StrategyOracle.json" - } - } - }, - "src/oracles/uniswap/IUniswapV3PoolImmutables.sol": { - "lastModificationDate": 1677499641260, - "contentHash": "e236e09a9d654fb2f20a6da5dba2bd2f", - "sourceName": "src/oracles/uniswap/IUniswapV3PoolImmutables.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": ">=0.5.0", - "artifacts": { - "IUniswapV3PoolImmutables": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "IUniswapV3PoolImmutables.sol/IUniswapV3PoolImmutables.json" - } - } - }, - "src/oracles/uniswap/UniswapV3Oracle.sol": { - "lastModificationDate": 1677499641260, - "contentHash": "26e047d35409662423f0818194fa883f", - "sourceName": "src/oracles/uniswap/UniswapV3Oracle.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "src/interfaces/IOracle.sol", - "src/oracles/uniswap/uniswapv0.8/FullMath.sol", - "src/oracles/uniswap/uniswapv0.8/IUniswapV3Pool.sol", - "src/oracles/uniswap/uniswapv0.8/LowGasSafeMath.sol", - "src/oracles/uniswap/uniswapv0.8/OracleLibrary.sol", - "src/oracles/uniswap/uniswapv0.8/PoolAddress.sol", - "src/oracles/uniswap/uniswapv0.8/TickMath.sol", - "src/oracles/uniswap/uniswapv0.8/pool/IUniswapV3PoolActions.sol", - "src/oracles/uniswap/uniswapv0.8/pool/IUniswapV3PoolDerivedState.sol", - "src/oracles/uniswap/uniswapv0.8/pool/IUniswapV3PoolEvents.sol", - "src/oracles/uniswap/uniswapv0.8/pool/IUniswapV3PoolImmutables.sol", - "src/oracles/uniswap/uniswapv0.8/pool/IUniswapV3PoolOwnerActions.sol", - "src/oracles/uniswap/uniswapv0.8/pool/IUniswapV3PoolState.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "UniswapV3Oracle": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "UniswapV3Oracle.sol/UniswapV3Oracle.json" - } - } - }, - "src/oracles/uniswap/uniswapv0.8/FullMath.sol": { - "lastModificationDate": 1677499641260, - "contentHash": "604af1431f8a64e05968a314822fa488", - "sourceName": "src/oracles/uniswap/uniswapv0.8/FullMath.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": ">=0.4.0", - "artifacts": { - "FullMath": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "FullMath.sol/FullMath.json" - } - } - }, - "src/oracles/uniswap/uniswapv0.8/IUniswapV3Pool.sol": { - "lastModificationDate": 1677499641260, - "contentHash": "e6badd8268772b99e7ca397aff11a965", - "sourceName": "src/oracles/uniswap/uniswapv0.8/IUniswapV3Pool.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "src/oracles/uniswap/uniswapv0.8/pool/IUniswapV3PoolActions.sol", - "src/oracles/uniswap/uniswapv0.8/pool/IUniswapV3PoolDerivedState.sol", - "src/oracles/uniswap/uniswapv0.8/pool/IUniswapV3PoolEvents.sol", - "src/oracles/uniswap/uniswapv0.8/pool/IUniswapV3PoolImmutables.sol", - "src/oracles/uniswap/uniswapv0.8/pool/IUniswapV3PoolOwnerActions.sol", - "src/oracles/uniswap/uniswapv0.8/pool/IUniswapV3PoolState.sol" - ], - "versionRequirement": ">=0.5.0", - "artifacts": { - "IUniswapV3Pool": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "IUniswapV3Pool.sol/IUniswapV3Pool.json" - } - } - }, - "src/oracles/uniswap/uniswapv0.8/LowGasSafeMath.sol": { - "lastModificationDate": 1677499641260, - "contentHash": "ff4d506a22d90b314ab325b437ff7729", - "sourceName": "src/oracles/uniswap/uniswapv0.8/LowGasSafeMath.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": ">=0.7.0", - "artifacts": { - "LowGasSafeMath": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "LowGasSafeMath.sol/LowGasSafeMath.json" - } - } - }, - "src/oracles/uniswap/uniswapv0.8/OracleLibrary.sol": { - "lastModificationDate": 1677499641260, - "contentHash": "db5b1e96b6fa2ce26bf049ab8c516366", - "sourceName": "src/oracles/uniswap/uniswapv0.8/OracleLibrary.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "src/oracles/uniswap/uniswapv0.8/FullMath.sol", - "src/oracles/uniswap/uniswapv0.8/IUniswapV3Pool.sol", - "src/oracles/uniswap/uniswapv0.8/LowGasSafeMath.sol", - "src/oracles/uniswap/uniswapv0.8/PoolAddress.sol", - "src/oracles/uniswap/uniswapv0.8/TickMath.sol", - "src/oracles/uniswap/uniswapv0.8/pool/IUniswapV3PoolActions.sol", - "src/oracles/uniswap/uniswapv0.8/pool/IUniswapV3PoolDerivedState.sol", - "src/oracles/uniswap/uniswapv0.8/pool/IUniswapV3PoolEvents.sol", - "src/oracles/uniswap/uniswapv0.8/pool/IUniswapV3PoolImmutables.sol", - "src/oracles/uniswap/uniswapv0.8/pool/IUniswapV3PoolOwnerActions.sol", - "src/oracles/uniswap/uniswapv0.8/pool/IUniswapV3PoolState.sol" - ], - "versionRequirement": ">=0.5.0", - "artifacts": { - "OracleLibrary": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "OracleLibrary.sol/OracleLibrary.json" - } - } - }, - "src/oracles/uniswap/uniswapv0.8/PoolAddress.sol": { - "lastModificationDate": 1677499641260, - "contentHash": "0ede1d2569429314158fd791823e9148", - "sourceName": "src/oracles/uniswap/uniswapv0.8/PoolAddress.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": ">=0.5.0", - "artifacts": { - "PoolAddress": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "PoolAddress.sol/PoolAddress.json" - } - } - }, - "src/oracles/uniswap/uniswapv0.8/TickMath.sol": { - "lastModificationDate": 1677499641259, - "contentHash": "51f56be5c19bedfa154a201466e87be6", - "sourceName": "src/oracles/uniswap/uniswapv0.8/TickMath.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": ">=0.5.0", - "artifacts": { - "TickMath": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "TickMath.sol/TickMath.json" - } - } - }, - "src/oracles/uniswap/uniswapv0.8/pool/IUniswapV3PoolActions.sol": { - "lastModificationDate": 1677499641259, - "contentHash": "83d338eb1394008c808a20ac7c5bab0c", - "sourceName": "src/oracles/uniswap/uniswapv0.8/pool/IUniswapV3PoolActions.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": ">=0.5.0", - "artifacts": { - "IUniswapV3PoolActions": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "IUniswapV3PoolActions.sol/IUniswapV3PoolActions.json" - } - } - }, - "src/oracles/uniswap/uniswapv0.8/pool/IUniswapV3PoolDerivedState.sol": { - "lastModificationDate": 1677499641259, - "contentHash": "25b71180ec9f5132a158334971ee2ace", - "sourceName": "src/oracles/uniswap/uniswapv0.8/pool/IUniswapV3PoolDerivedState.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": ">=0.5.0", - "artifacts": { - "IUniswapV3PoolDerivedState": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "IUniswapV3PoolDerivedState.sol/IUniswapV3PoolDerivedState.json" - } - } - }, - "src/oracles/uniswap/uniswapv0.8/pool/IUniswapV3PoolEvents.sol": { - "lastModificationDate": 1677499641259, - "contentHash": "05abb59ec113db1046f7dadc78bb297b", - "sourceName": "src/oracles/uniswap/uniswapv0.8/pool/IUniswapV3PoolEvents.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": ">=0.5.0", - "artifacts": { - "IUniswapV3PoolEvents": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "IUniswapV3PoolEvents.sol/IUniswapV3PoolEvents.json" - } - } - }, - "src/oracles/uniswap/uniswapv0.8/pool/IUniswapV3PoolImmutables.sol": { - "lastModificationDate": 1677499641259, - "contentHash": "e236e09a9d654fb2f20a6da5dba2bd2f", - "sourceName": "src/oracles/uniswap/uniswapv0.8/pool/IUniswapV3PoolImmutables.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": ">=0.5.0", - "artifacts": { - "IUniswapV3PoolImmutables": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "pool/IUniswapV3PoolImmutables.sol/IUniswapV3PoolImmutables.json" - } - } - }, - "src/oracles/uniswap/uniswapv0.8/pool/IUniswapV3PoolOwnerActions.sol": { - "lastModificationDate": 1677499641259, - "contentHash": "1b06ecc79e75f836c446ccf286e671e4", - "sourceName": "src/oracles/uniswap/uniswapv0.8/pool/IUniswapV3PoolOwnerActions.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": ">=0.5.0", - "artifacts": { - "IUniswapV3PoolOwnerActions": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "IUniswapV3PoolOwnerActions.sol/IUniswapV3PoolOwnerActions.json" - } - } - }, - "src/oracles/uniswap/uniswapv0.8/pool/IUniswapV3PoolState.sol": { - "lastModificationDate": 1677499641259, - "contentHash": "0488495ef9087b4513d3b43634035ef9", - "sourceName": "src/oracles/uniswap/uniswapv0.8/pool/IUniswapV3PoolState.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": ">=0.5.0", - "artifacts": { - "IUniswapV3PoolState": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "IUniswapV3PoolState.sol/IUniswapV3PoolState.json" - } - } - }, - "src/oracles/yearn/IYvToken.sol": { - "lastModificationDate": 1677499641258, - "contentHash": "9dc68080d5785ae36d098a8ede1d7daf", - "sourceName": "src/oracles/yearn/IYvToken.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol" - ], - "versionRequirement": ">=0.6.0", - "artifacts": { - "IYvToken": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "IYvToken.sol/IYvToken.json" - } - } - }, - "src/oracles/yearn/YearnVaultMultiOracle.sol": { - "lastModificationDate": 1677499641258, - "contentHash": "4ae06b6b44beb7693d8072bc33e01169", - "sourceName": "src/oracles/yearn/YearnVaultMultiOracle.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "src/interfaces/IOracle.sol", - "src/oracles/yearn/IYvToken.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "YearnVaultMultiOracle": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "YearnVaultMultiOracle.sol/YearnVaultMultiOracle.json" - } - } - }, - "src/oracles/yieldspace/YieldSpaceMultiOracle.sol": { - "lastModificationDate": 1677499641258, - "contentHash": "96ed0890aa962024b18f4a784003bd41", - "sourceName": "src/oracles/yieldspace/YieldSpaceMultiOracle.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "lib/yieldspace-tv/src/interfaces/IMaturingToken.sol", - "lib/yieldspace-tv/src/interfaces/IPool.sol", - "lib/yieldspace-tv/src/interfaces/IPoolOracle.sol", - "src/interfaces/IOracle.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "YieldSpaceMultiOracle": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "YieldSpaceMultiOracle.sol/YieldSpaceMultiOracle.json" - } - } - }, - "src/other/contango/ContangoLadle.sol": { - "lastModificationDate": 1677499641258, - "contentHash": "80ac1df950baf0e14779de3ffbdc89bb", - "sourceName": "src/other/contango/ContangoLadle.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/dss-interfaces/src/dss/DaiAbstract.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/interfaces/IWETH9.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/TransferHelper.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/IsContract.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Math.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/RevertMsgExtractor.sol", - "lib/yieldspace-tv/src/interfaces/IMaturingToken.sol", - "lib/yieldspace-tv/src/interfaces/IPool.sol", - "src/Ladle.sol", - "src/LadleStorage.sol", - "src/Router.sol", - "src/interfaces/DataTypes.sol", - "src/interfaces/ICauldron.sol", - "src/interfaces/IERC5095.sol", - "src/interfaces/IFYToken.sol", - "src/interfaces/IJoin.sol", - "src/interfaces/IOracle.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "ContangoLadle": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "ContangoLadle.sol/ContangoLadle.json" - } - } - }, - "src/other/contango/ContangoWitch.sol": { - "lastModificationDate": 1677499641258, - "contentHash": "d7951e3fd7f0ef6bd40a555ab634126c", - "sourceName": "src/other/contango/ContangoWitch.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/interfaces/IWETH9.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/IsContract.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Math.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/RevertMsgExtractor.sol", - "lib/yieldspace-tv/src/interfaces/IMaturingToken.sol", - "lib/yieldspace-tv/src/interfaces/IPool.sol", - "src/Router.sol", - "src/Witch.sol", - "src/interfaces/DataTypes.sol", - "src/interfaces/ICauldron.sol", - "src/interfaces/IERC5095.sol", - "src/interfaces/IFYToken.sol", - "src/interfaces/IJoin.sol", - "src/interfaces/ILadle.sol", - "src/interfaces/IOracle.sol", - "src/other/contango/interfaces/IContangoWitchListener.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "ContangoWitch": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "ContangoWitch.sol/ContangoWitch.json" - } - } - }, - "src/other/contango/interfaces/IContangoLadle.sol": { - "lastModificationDate": 1677499641258, - "contentHash": "b52ec7e556d20d66531bf885a4e9466b", - "sourceName": "src/other/contango/interfaces/IContangoLadle.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/interfaces/IWETH9.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/IsContract.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/RevertMsgExtractor.sol", - "lib/yieldspace-tv/src/interfaces/IMaturingToken.sol", - "lib/yieldspace-tv/src/interfaces/IPool.sol", - "src/Router.sol", - "src/interfaces/DataTypes.sol", - "src/interfaces/ICauldron.sol", - "src/interfaces/IERC5095.sol", - "src/interfaces/IFYToken.sol", - "src/interfaces/IJoin.sol", - "src/interfaces/ILadle.sol", - "src/interfaces/IOracle.sol" - ], - "versionRequirement": "^0.8.0", - "artifacts": { - "IContangoLadle": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "IContangoLadle.sol/IContangoLadle.json" - } - } - }, - "src/other/contango/interfaces/IContangoWitchListener.sol": { - "lastModificationDate": 1677499641257, - "contentHash": "4dcb34ccccdcff6e59ed64d65302390e", - "sourceName": "src/other/contango/interfaces/IContangoWitchListener.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": "^0.8.0", - "artifacts": { - "IContangoWitchListener": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "IContangoWitchListener.sol/IContangoWitchListener.json" - } - } - }, - "src/other/convex/ConvexJoin.sol": { - "lastModificationDate": 1677499641257, - "contentHash": "588ae49fcafb47ea0d29f5982657d5e0", - "sourceName": "src/other/convex/ConvexJoin.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/ERC3156/contracts/interfaces/IERC3156FlashBorrower.sol", - "lib/ERC3156/contracts/interfaces/IERC3156FlashLender.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/TransferHelper.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Math.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/RevertMsgExtractor.sol", - "src/Join.sol", - "src/interfaces/DataTypes.sol", - "src/interfaces/ICauldron.sol", - "src/interfaces/IERC5095.sol", - "src/interfaces/IFYToken.sol", - "src/interfaces/IJoin.sol", - "src/interfaces/IJoinFactory.sol", - "src/interfaces/IOracle.sol", - "src/other/convex/CvxMining.sol", - "src/other/convex/interfaces/ICvx.sol", - "src/other/convex/interfaces/IRewardStaking.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "ConvexJoin": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "ConvexJoin.sol/ConvexJoin.json" - } - } - }, - "src/other/convex/ConvexModule.sol": { - "lastModificationDate": 1677499641257, - "contentHash": "1d03761a915274ba81e37cbe5b3c578a", - "sourceName": "src/other/convex/ConvexModule.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/interfaces/IWETH9.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/IsContract.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/RevertMsgExtractor.sol", - "lib/yieldspace-tv/src/interfaces/IMaturingToken.sol", - "lib/yieldspace-tv/src/interfaces/IPool.sol", - "src/LadleStorage.sol", - "src/Router.sol", - "src/interfaces/DataTypes.sol", - "src/interfaces/ICauldron.sol", - "src/interfaces/IERC5095.sol", - "src/interfaces/IFYToken.sol", - "src/interfaces/IJoin.sol", - "src/interfaces/IOracle.sol", - "src/other/convex/interfaces/IConvexJoin.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "ConvexModule": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "ConvexModule.sol/ConvexModule.json" - } - } - }, - "src/other/convex/CvxMining.sol": { - "lastModificationDate": 1677499641257, - "contentHash": "b4bbfab3943d36b8ca8f4ccdfc370258", - "sourceName": "src/other/convex/CvxMining.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "src/other/convex/interfaces/ICvx.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "CvxMining": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "CvxMining.sol/CvxMining.json" - } - } - }, - "src/other/convex/interfaces/IConvexDeposits.sol": { - "lastModificationDate": 1677499641257, - "contentHash": "3027b43c9e67f94fa3c9850b41357114", - "sourceName": "src/other/convex/interfaces/IConvexDeposits.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": ">=0.8.13", - "artifacts": { - "IConvexDeposits": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "IConvexDeposits.sol/IConvexDeposits.json" - } - } - }, - "src/other/convex/interfaces/IConvexJoin.sol": { - "lastModificationDate": 1677499641257, - "contentHash": "70485476a0dca0bff99588df9754c261", - "sourceName": "src/other/convex/interfaces/IConvexJoin.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": ">=0.8.13", - "artifacts": { - "IConvexJoin": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "IConvexJoin.sol/IConvexJoin.json" - } - } - }, - "src/other/convex/interfaces/ICvx.sol": { - "lastModificationDate": 1677499641257, - "contentHash": "1cbd674278dc1ad5aff0241240720723", - "sourceName": "src/other/convex/interfaces/ICvx.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": ">=0.8.13", - "artifacts": { - "ICvx": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "ICvx.sol/ICvx.json" - } - } - }, - "src/other/convex/interfaces/IRewardStaking.sol": { - "lastModificationDate": 1677499641256, - "contentHash": "e723f65694b3775bc182d938bcf19598", - "sourceName": "src/other/convex/interfaces/IRewardStaking.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": ">=0.8.13", - "artifacts": { - "IRewardStaking": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "IRewardStaking.sol/IRewardStaking.json" - } - } - }, - "src/other/lido/StEthConverter.sol": { - "lastModificationDate": 1677499641256, - "contentHash": "2186b39d065ead42197108d38843b964", - "sourceName": "src/other/lido/StEthConverter.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/TransferHelper.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/RevertMsgExtractor.sol", - "src/oracles/lido/IWstETH.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "StEthConverter": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "StEthConverter.sol/StEthConverter.json" - } - } - }, - "src/other/notional/ERC1155.sol": { - "lastModificationDate": 1677499641256, - "contentHash": "47c2fbebd45a0f3c61ba2751d867fbfd", - "sourceName": "src/other/notional/ERC1155.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": ">=0.8.0", - "artifacts": { - "ERC1155": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "ERC1155.sol/ERC1155.json" - }, - "ERC1155TokenReceiver": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "ERC1155.sol/ERC1155TokenReceiver.json" - } - } - }, - "src/other/notional/ERC1155Mock.sol": { - "lastModificationDate": 1677499641256, - "contentHash": "8bfe53e4dbd2b7b9194a923104465a0c", - "sourceName": "src/other/notional/ERC1155Mock.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "src/other/notional/ERC1155.sol" - ], - "versionRequirement": ">=0.8.0", - "artifacts": { - "ERC1155Mock": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "ERC1155Mock.sol/ERC1155Mock.json" - } - } - }, - "src/other/notional/FCashMock.sol": { - "lastModificationDate": 1677499641256, - "contentHash": "54192903a7f90f8fda596f7d330707c5", - "sourceName": "src/other/notional/FCashMock.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20Permit.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Math.sol", - "src/mocks/ERC20Mock.sol", - "src/other/notional/ERC1155.sol", - "src/other/notional/interfaces/IBatchAction.sol" - ], - "versionRequirement": ">=0.8.0", - "artifacts": { - "FCashMock": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "FCashMock.sol/FCashMock.json" - } - } - }, - "src/other/notional/NotionalJoin.sol": { - "lastModificationDate": 1677499641256, - "contentHash": "cf5b9df6c1245ea872416c12493525ed", - "sourceName": "src/other/notional/NotionalJoin.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/interfaces/IWETH9.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/MinimalTransferHelper.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Math.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/RevertMsgExtractor.sol", - "src/interfaces/IJoin.sol", - "src/other/notional/ERC1155.sol", - "src/other/notional/interfaces/IBatchAction.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "NotionalJoin": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "NotionalJoin.sol/NotionalJoin.json" - } - } - }, - "src/other/notional/NotionalMultiOracle.sol": { - "lastModificationDate": 1677499641256, - "contentHash": "a41c58912e815e862563da016e9a629b", - "sourceName": "src/other/notional/NotionalMultiOracle.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "src/interfaces/IOracle.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "NotionalMultiOracle": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "NotionalMultiOracle.sol/NotionalMultiOracle.json" - } - } - }, - "src/other/notional/Transfer1155Module.sol": { - "lastModificationDate": 1677499641255, - "contentHash": "84c6baf88798989885df4b13ccc1d1a2", - "sourceName": "src/other/notional/Transfer1155Module.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/interfaces/IWETH9.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/IsContract.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/RevertMsgExtractor.sol", - "lib/yieldspace-tv/src/interfaces/IMaturingToken.sol", - "lib/yieldspace-tv/src/interfaces/IPool.sol", - "src/LadleStorage.sol", - "src/Router.sol", - "src/interfaces/DataTypes.sol", - "src/interfaces/ICauldron.sol", - "src/interfaces/IERC5095.sol", - "src/interfaces/IFYToken.sol", - "src/interfaces/IJoin.sol", - "src/interfaces/IOracle.sol", - "src/other/notional/ERC1155.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "Transfer1155Module": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "Transfer1155Module.sol/Transfer1155Module.json" - } - } - }, - "src/other/notional/interfaces/IBatchAction.sol": { - "lastModificationDate": 1677499641255, - "contentHash": "927fc9f85037f762f69573227d76b2e9", - "sourceName": "src/other/notional/interfaces/IBatchAction.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": ">=0.8.13", - "artifacts": { - "IBatchAction": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "IBatchAction.sol/IBatchAction.json" - } - } - }, - "src/other/notional/interfaces/INotionalJoin.sol": { - "lastModificationDate": 1677499641255, - "contentHash": "c9d88f7310d32a1d920ad02bd7f482d4", - "sourceName": "src/other/notional/interfaces/INotionalJoin.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "src/interfaces/IJoin.sol" - ], - "versionRequirement": "^0.8.0", - "artifacts": { - "INotionalJoin": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "INotionalJoin.sol/INotionalJoin.json" - } - } - }, - "src/other/tether/IUSDT.sol": { - "lastModificationDate": 1677499641255, - "contentHash": "5c4a8103d08bde65e8c291109bd6688f", - "sourceName": "src/other/tether/IUSDT.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": "^0.8.13", - "artifacts": { - "IUSDT": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "IUSDT.sol/IUSDT.json" - } - } - }, - "src/other/tether/TetherJoin.sol": { - "lastModificationDate": 1677499641255, - "contentHash": "3087600c8a27b7dbca389506df0d5349", - "sourceName": "src/other/tether/TetherJoin.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/ERC3156/contracts/interfaces/IERC3156FlashBorrower.sol", - "lib/ERC3156/contracts/interfaces/IERC3156FlashLender.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/TransferHelper.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Math.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/RevertMsgExtractor.sol", - "src/FlashJoin.sol", - "src/Join.sol", - "src/interfaces/IJoin.sol", - "src/interfaces/IJoinFactory.sol", - "src/other/tether/IUSDT.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "TetherJoin": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "TetherJoin.sol/TetherJoin.json" - } - } - }, - "src/test/Witch.t.sol": { - "lastModificationDate": 1677499641255, - "contentHash": "c0b8779fc6b702cf9066fb226d04f889", - "sourceName": "src/test/Witch.t.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/forge-std/lib/ds-test/src/test.sol", - "lib/forge-std/src/Base.sol", - "lib/forge-std/src/StdAssertions.sol", - "lib/forge-std/src/StdChains.sol", - "lib/forge-std/src/StdCheats.sol", - "lib/forge-std/src/StdError.sol", - "lib/forge-std/src/StdInvariant.sol", - "lib/forge-std/src/StdJson.sol", - "lib/forge-std/src/StdMath.sol", - "lib/forge-std/src/StdStorage.sol", - "lib/forge-std/src/StdUtils.sol", - "lib/forge-std/src/Test.sol", - "lib/forge-std/src/Vm.sol", - "lib/forge-std/src/console.sol", - "lib/forge-std/src/console2.sol", - "lib/forge-std/src/interfaces/IMulticall3.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/interfaces/IWETH9.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/IsContract.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Math.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/RevertMsgExtractor.sol", - "lib/yieldspace-tv/src/interfaces/IMaturingToken.sol", - "lib/yieldspace-tv/src/interfaces/IPool.sol", - "lib/yieldspace-tv/src/interfaces/IPoolOracle.sol", - "src/Router.sol", - "src/Witch.sol", - "src/interfaces/DataTypes.sol", - "src/interfaces/ICauldron.sol", - "src/interfaces/IERC5095.sol", - "src/interfaces/IFYToken.sol", - "src/interfaces/IJoin.sol", - "src/interfaces/ILadle.sol", - "src/interfaces/IOracle.sol", - "src/interfaces/IWitch.sol", - "src/test/utils/Mocks.sol", - "src/test/utils/TestConstants.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "WitchStateZero": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "Witch.t.sol/WitchStateZero.json" - }, - "WitchStateZeroTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "Witch.t.sol/WitchStateZeroTest.json" - }, - "WitchWithAuction": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "Witch.t.sol/WitchWithAuction.json" - }, - "WitchWithMetadata": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "Witch.t.sol/WitchWithMetadata.json" - }, - "WitchWithMetadataTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "Witch.t.sol/WitchWithMetadataTest.json" - } - } - }, - "src/test/fyToken/FYToken.t.sol": { - "lastModificationDate": 1677499641254, - "contentHash": "15841854951d4b33ed24331502ce9abe", - "sourceName": "src/test/fyToken/FYToken.t.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/ERC3156/contracts/interfaces/IERC3156FlashBorrower.sol", - "lib/ERC3156/contracts/interfaces/IERC3156FlashLender.sol", - "lib/forge-std/lib/ds-test/src/test.sol", - "lib/forge-std/src/Base.sol", - "lib/forge-std/src/StdAssertions.sol", - "lib/forge-std/src/StdChains.sol", - "lib/forge-std/src/StdCheats.sol", - "lib/forge-std/src/StdError.sol", - "lib/forge-std/src/StdInvariant.sol", - "lib/forge-std/src/StdJson.sol", - "lib/forge-std/src/StdMath.sol", - "lib/forge-std/src/StdStorage.sol", - "lib/forge-std/src/StdUtils.sol", - "lib/forge-std/src/Test.sol", - "lib/forge-std/src/Vm.sol", - "lib/forge-std/src/console.sol", - "lib/forge-std/src/console2.sol", - "lib/forge-std/src/interfaces/IMulticall3.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/interfaces/IWETH9.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20Permit.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/SafeERC20Namer.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/TransferHelper.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/AddressStringUtil.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/IsContract.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Math.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/RevertMsgExtractor.sol", - "lib/yieldspace-tv/src/interfaces/IMaturingToken.sol", - "lib/yieldspace-tv/src/interfaces/IPool.sol", - "src/Cauldron.sol", - "src/FYToken.sol", - "src/Join.sol", - "src/Router.sol", - "src/constants/Constants.sol", - "src/interfaces/DataTypes.sol", - "src/interfaces/ICauldron.sol", - "src/interfaces/IERC5095.sol", - "src/interfaces/IFYToken.sol", - "src/interfaces/IJoin.sol", - "src/interfaces/IJoinFactory.sol", - "src/interfaces/ILadle.sol", - "src/interfaces/IOracle.sol", - "src/mocks/ERC20Mock.sol", - "src/mocks/oracles/ISourceMock.sol", - "src/mocks/oracles/compound/CTokenChiMock.sol", - "src/test/utils/TestConstants.sol", - "src/test/utils/TestExtensions.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "AfterMaturity": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "FYToken.t.sol/AfterMaturity.json" - }, - "AfterMaturityTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "FYToken.t.sol/AfterMaturityTest.json" - }, - "FYTokenTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "FYToken.t.sol/FYTokenTest.json" - }, - "OnceMatured": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "FYToken.t.sol/OnceMatured.json" - }, - "OnceMaturedTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "FYToken.t.sol/OnceMaturedTest.json" - }, - "ZeroState": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "FYToken.t.sol/ZeroState.json" - } - } - }, - "src/test/fyToken/FYTokenFlash.t.sol": { - "lastModificationDate": 1677499641254, - "contentHash": "a95e82148d824ae9a71c490bbb187323", - "sourceName": "src/test/fyToken/FYTokenFlash.t.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/ERC3156/contracts/interfaces/IERC3156FlashBorrower.sol", - "lib/ERC3156/contracts/interfaces/IERC3156FlashLender.sol", - "lib/forge-std/lib/ds-test/src/test.sol", - "lib/forge-std/src/Base.sol", - "lib/forge-std/src/StdAssertions.sol", - "lib/forge-std/src/StdChains.sol", - "lib/forge-std/src/StdCheats.sol", - "lib/forge-std/src/StdError.sol", - "lib/forge-std/src/StdInvariant.sol", - "lib/forge-std/src/StdJson.sol", - "lib/forge-std/src/StdMath.sol", - "lib/forge-std/src/StdStorage.sol", - "lib/forge-std/src/StdUtils.sol", - "lib/forge-std/src/Test.sol", - "lib/forge-std/src/Vm.sol", - "lib/forge-std/src/console.sol", - "lib/forge-std/src/console2.sol", - "lib/forge-std/src/interfaces/IMulticall3.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/interfaces/IWETH9.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20Permit.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/SafeERC20Namer.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/TransferHelper.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/AddressStringUtil.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/IsContract.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Math.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/RevertMsgExtractor.sol", - "lib/yieldspace-tv/src/interfaces/IMaturingToken.sol", - "lib/yieldspace-tv/src/interfaces/IPool.sol", - "src/Cauldron.sol", - "src/FYToken.sol", - "src/Join.sol", - "src/Router.sol", - "src/constants/Constants.sol", - "src/interfaces/DataTypes.sol", - "src/interfaces/ICauldron.sol", - "src/interfaces/IERC5095.sol", - "src/interfaces/IFYToken.sol", - "src/interfaces/IJoin.sol", - "src/interfaces/IJoinFactory.sol", - "src/interfaces/ILadle.sol", - "src/interfaces/IOracle.sol", - "src/mocks/ERC20Mock.sol", - "src/mocks/FlashBorrower.sol", - "src/mocks/oracles/ISourceMock.sol", - "src/mocks/oracles/compound/CTokenChiMock.sol", - "src/test/utils/TestConstants.sol", - "src/test/utils/TestExtensions.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "AfterMaturity": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "FYTokenFlash.t.sol/AfterMaturity.json" - }, - "AfterMaturityTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "FYTokenFlash.t.sol/AfterMaturityTest.json" - }, - "FYTokenFlashTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "FYTokenFlash.t.sol/FYTokenFlashTest.json" - }, - "WithNonZeroFee": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "FYTokenFlash.t.sol/WithNonZeroFee.json" - }, - "WithNonZeroFeeTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "FYTokenFlash.t.sol/WithNonZeroFeeTest.json" - }, - "WithZeroFee": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "FYTokenFlash.t.sol/WithZeroFee.json" - }, - "WithZeroFeeTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "FYTokenFlash.t.sol/WithZeroFeeTest.json" - }, - "ZeroState": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "FYTokenFlash.t.sol/ZeroState.json" - } - } - }, - "src/test/join/FlashJoin.t.sol": { - "lastModificationDate": 1677499641254, - "contentHash": "52728dcb19e2d1946adacaeb7b292ace", - "sourceName": "src/test/join/FlashJoin.t.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/ERC3156/contracts/interfaces/IERC3156FlashBorrower.sol", - "lib/ERC3156/contracts/interfaces/IERC3156FlashLender.sol", - "lib/forge-std/lib/ds-test/src/test.sol", - "lib/forge-std/src/Base.sol", - "lib/forge-std/src/StdAssertions.sol", - "lib/forge-std/src/StdChains.sol", - "lib/forge-std/src/StdCheats.sol", - "lib/forge-std/src/StdError.sol", - "lib/forge-std/src/StdInvariant.sol", - "lib/forge-std/src/StdJson.sol", - "lib/forge-std/src/StdMath.sol", - "lib/forge-std/src/StdStorage.sol", - "lib/forge-std/src/StdUtils.sol", - "lib/forge-std/src/Test.sol", - "lib/forge-std/src/Vm.sol", - "lib/forge-std/src/console.sol", - "lib/forge-std/src/console2.sol", - "lib/forge-std/src/interfaces/IMulticall3.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20Permit.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/TransferHelper.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Math.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/RevertMsgExtractor.sol", - "src/FlashJoin.sol", - "src/Join.sol", - "src/interfaces/IJoin.sol", - "src/interfaces/IJoinFactory.sol", - "src/mocks/ERC20Mock.sol", - "src/mocks/FlashBorrower.sol", - "src/test/utils/TestConstants.sol", - "src/test/utils/TestExtensions.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "Deployed": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "FlashJoin.t.sol/Deployed.json" - }, - "NonZeroFees": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "FlashJoin.t.sol/NonZeroFees.json" - }, - "NonZeroFeesTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "FlashJoin.t.sol/NonZeroFeesTest.json" - }, - "ZeroFeeTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "FlashJoin.t.sol/ZeroFeeTest.json" - } - } - }, - "src/test/join/Join.t.sol": { - "lastModificationDate": 1677499641254, - "contentHash": "99f930b94db5104be3d747110d30b6d7", - "sourceName": "src/test/join/Join.t.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/ERC3156/contracts/interfaces/IERC3156FlashBorrower.sol", - "lib/ERC3156/contracts/interfaces/IERC3156FlashLender.sol", - "lib/forge-std/lib/ds-test/src/test.sol", - "lib/forge-std/src/Base.sol", - "lib/forge-std/src/StdAssertions.sol", - "lib/forge-std/src/StdChains.sol", - "lib/forge-std/src/StdCheats.sol", - "lib/forge-std/src/StdError.sol", - "lib/forge-std/src/StdInvariant.sol", - "lib/forge-std/src/StdJson.sol", - "lib/forge-std/src/StdMath.sol", - "lib/forge-std/src/StdStorage.sol", - "lib/forge-std/src/StdUtils.sol", - "lib/forge-std/src/Test.sol", - "lib/forge-std/src/Vm.sol", - "lib/forge-std/src/console.sol", - "lib/forge-std/src/console2.sol", - "lib/forge-std/src/interfaces/IMulticall3.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20Permit.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/TransferHelper.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Math.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/RevertMsgExtractor.sol", - "src/Join.sol", - "src/interfaces/IJoin.sol", - "src/interfaces/IJoinFactory.sol", - "src/mocks/ERC20Mock.sol", - "src/test/utils/TestConstants.sol", - "src/test/utils/TestExtensions.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "Deployed": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "Join.t.sol/Deployed.json" - }, - "DeployedTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "Join.t.sol/DeployedTest.json" - }, - "WithOtherTokens": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "Join.t.sol/WithOtherTokens.json" - }, - "WithOtherTokensTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "Join.t.sol/WithOtherTokensTest.json" - }, - "WithTokens": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "Join.t.sol/WithTokens.json" - }, - "WithTokensTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "Join.t.sol/WithTokensTest.json" - } - } - }, - "src/test/modules/HealerModule.t.sol": { - "lastModificationDate": 1677499641253, - "contentHash": "c548642a373402a87398131d3c291d9b", - "sourceName": "src/test/modules/HealerModule.t.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/forge-std/lib/ds-test/src/test.sol", - "lib/forge-std/src/Base.sol", - "lib/forge-std/src/StdAssertions.sol", - "lib/forge-std/src/StdChains.sol", - "lib/forge-std/src/StdCheats.sol", - "lib/forge-std/src/StdError.sol", - "lib/forge-std/src/StdInvariant.sol", - "lib/forge-std/src/StdJson.sol", - "lib/forge-std/src/StdMath.sol", - "lib/forge-std/src/StdStorage.sol", - "lib/forge-std/src/StdUtils.sol", - "lib/forge-std/src/Test.sol", - "lib/forge-std/src/Vm.sol", - "lib/forge-std/src/console.sol", - "lib/forge-std/src/console2.sol", - "lib/forge-std/src/interfaces/IMulticall3.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/interfaces/IWETH9.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/IsContract.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Math.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/RevertMsgExtractor.sol", - "lib/yieldspace-tv/src/interfaces/IMaturingToken.sol", - "lib/yieldspace-tv/src/interfaces/IPool.sol", - "src/LadleStorage.sol", - "src/Router.sol", - "src/interfaces/DataTypes.sol", - "src/interfaces/ICauldron.sol", - "src/interfaces/IERC5095.sol", - "src/interfaces/IFYToken.sol", - "src/interfaces/IJoin.sol", - "src/interfaces/ILadle.sol", - "src/interfaces/IOracle.sol", - "src/mocks/WETH9Mock.sol", - "src/modules/HealerModule.sol", - "src/test/utils/TestConstants.sol", - "src/test/utils/TestExtensions.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "HealerModuleTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "HealerModule.t.sol/HealerModuleTest.json" - } - } - }, - "src/test/modules/RepayFromLadleModule.t.sol": { - "lastModificationDate": 1677499641253, - "contentHash": "0b799e38332723fc51a32ba4c70978b1", - "sourceName": "src/test/modules/RepayFromLadleModule.t.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/forge-std/lib/ds-test/src/test.sol", - "lib/forge-std/src/Base.sol", - "lib/forge-std/src/StdAssertions.sol", - "lib/forge-std/src/StdChains.sol", - "lib/forge-std/src/StdCheats.sol", - "lib/forge-std/src/StdError.sol", - "lib/forge-std/src/StdInvariant.sol", - "lib/forge-std/src/StdJson.sol", - "lib/forge-std/src/StdMath.sol", - "lib/forge-std/src/StdStorage.sol", - "lib/forge-std/src/StdUtils.sol", - "lib/forge-std/src/Test.sol", - "lib/forge-std/src/Vm.sol", - "lib/forge-std/src/console.sol", - "lib/forge-std/src/console2.sol", - "lib/forge-std/src/interfaces/IMulticall3.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/interfaces/IWETH9.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/TransferHelper.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/IsContract.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/RevertMsgExtractor.sol", - "lib/yieldspace-tv/src/interfaces/IMaturingToken.sol", - "lib/yieldspace-tv/src/interfaces/IPool.sol", - "src/LadleStorage.sol", - "src/Router.sol", - "src/interfaces/DataTypes.sol", - "src/interfaces/ICauldron.sol", - "src/interfaces/IERC5095.sol", - "src/interfaces/IFYToken.sol", - "src/interfaces/IJoin.sol", - "src/interfaces/ILadle.sol", - "src/interfaces/IOracle.sol", - "src/mocks/WETH9Mock.sol", - "src/modules/RepayFromLadleModule.sol", - "src/test/utils/TestConstants.sol", - "src/test/utils/TestExtensions.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "RepayFromLadleModuleTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "RepayFromLadleModule.t.sol/RepayFromLadleModuleTest.json" - }, - "WithVaultProvisioned": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "RepayFromLadleModule.t.sol/WithVaultProvisioned.json" - }, - "ZeroTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "RepayFromLadleModule.t.sol/ZeroTest.json" - } - } - }, - "src/test/oracles/AccumulatorOracle.t.sol": { - "lastModificationDate": 1677499641253, - "contentHash": "3ff730eaf458a6485d1745397760679d", - "sourceName": "src/test/oracles/AccumulatorOracle.t.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/forge-std/lib/ds-test/src/test.sol", - "lib/forge-std/src/Base.sol", - "lib/forge-std/src/StdAssertions.sol", - "lib/forge-std/src/StdChains.sol", - "lib/forge-std/src/StdCheats.sol", - "lib/forge-std/src/StdError.sol", - "lib/forge-std/src/StdInvariant.sol", - "lib/forge-std/src/StdJson.sol", - "lib/forge-std/src/StdMath.sol", - "lib/forge-std/src/StdStorage.sol", - "lib/forge-std/src/StdUtils.sol", - "lib/forge-std/src/Test.sol", - "lib/forge-std/src/Vm.sol", - "lib/forge-std/src/console.sol", - "lib/forge-std/src/console2.sol", - "lib/forge-std/src/interfaces/IMulticall3.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Math.sol", - "src/constants/Constants.sol", - "src/interfaces/IOracle.sol", - "src/oracles/accumulator/AccumulatorMultiOracle.sol", - "src/test/utils/TestConstants.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "AccumulatorOracleTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "AccumulatorOracle.t.sol/AccumulatorOracleTest.json" - }, - "WithSourceSet": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "AccumulatorOracle.t.sol/WithSourceSet.json" - }, - "WithSourceSetTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "AccumulatorOracle.t.sol/WithSourceSetTest.json" - }, - "ZeroState": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "AccumulatorOracle.t.sol/ZeroState.json" - } - } - }, - "src/test/oracles/CTokenMultiOracle.t.sol": { - "lastModificationDate": 1677499641253, - "contentHash": "ed46da9a58dc5f4d2a6c305383f0b027", - "sourceName": "src/test/oracles/CTokenMultiOracle.t.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/forge-std/lib/ds-test/src/test.sol", - "lib/forge-std/src/Base.sol", - "lib/forge-std/src/StdAssertions.sol", - "lib/forge-std/src/StdChains.sol", - "lib/forge-std/src/StdCheats.sol", - "lib/forge-std/src/StdError.sol", - "lib/forge-std/src/StdInvariant.sol", - "lib/forge-std/src/StdJson.sol", - "lib/forge-std/src/StdMath.sol", - "lib/forge-std/src/StdStorage.sol", - "lib/forge-std/src/StdUtils.sol", - "lib/forge-std/src/Test.sol", - "lib/forge-std/src/Vm.sol", - "lib/forge-std/src/console.sol", - "lib/forge-std/src/console2.sol", - "lib/forge-std/src/interfaces/IMulticall3.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20Permit.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "src/constants/Constants.sol", - "src/interfaces/IOracle.sol", - "src/mocks/DAIMock.sol", - "src/mocks/USDCMock.sol", - "src/mocks/oracles/ISourceMock.sol", - "src/mocks/oracles/compound/CTokenMock.sol", - "src/oracles/compound/CTokenInterface.sol", - "src/oracles/compound/CTokenMultiOracle.sol", - "src/test/utils/TestConstants.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "CTokenMultiOracleTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "CTokenMultiOracle.t.sol/CTokenMultiOracleTest.json" - } - } - }, - "src/test/oracles/ChainlinkMultiOracle.t.sol": { - "lastModificationDate": 1677499641253, - "contentHash": "55fbea7071b38f2f3fa3ef4575a80a0c", - "sourceName": "src/test/oracles/ChainlinkMultiOracle.t.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/forge-std/lib/ds-test/src/test.sol", - "lib/forge-std/src/Base.sol", - "lib/forge-std/src/StdAssertions.sol", - "lib/forge-std/src/StdChains.sol", - "lib/forge-std/src/StdCheats.sol", - "lib/forge-std/src/StdError.sol", - "lib/forge-std/src/StdInvariant.sol", - "lib/forge-std/src/StdJson.sol", - "lib/forge-std/src/StdMath.sol", - "lib/forge-std/src/StdStorage.sol", - "lib/forge-std/src/StdUtils.sol", - "lib/forge-std/src/Test.sol", - "lib/forge-std/src/Vm.sol", - "lib/forge-std/src/console.sol", - "lib/forge-std/src/console2.sol", - "lib/forge-std/src/interfaces/IMulticall3.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20Permit.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "src/constants/Constants.sol", - "src/interfaces/IOracle.sol", - "src/mocks/DAIMock.sol", - "src/mocks/ERC20Mock.sol", - "src/mocks/USDCMock.sol", - "src/mocks/WETH9Mock.sol", - "src/mocks/oracles/ISourceMock.sol", - "src/mocks/oracles/OracleMock.sol", - "src/mocks/oracles/chainlink/ChainlinkAggregatorV3Mock.sol", - "src/oracles/chainlink/AggregatorV3Interface.sol", - "src/oracles/chainlink/ChainlinkMultiOracle.sol", - "src/test/utils/TestConstants.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "ChainlinkMultiOracleTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "ChainlinkMultiOracle.t.sol/ChainlinkMultiOracleTest.json" - } - } - }, - "src/test/oracles/ChainlinkUSDMultiOracle.t.sol": { - "lastModificationDate": 1677499641252, - "contentHash": "58c8dbe1e62ebf85c8abe4cb4f4ce2d1", - "sourceName": "src/test/oracles/ChainlinkUSDMultiOracle.t.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/forge-std/lib/ds-test/src/test.sol", - "lib/forge-std/src/Base.sol", - "lib/forge-std/src/StdAssertions.sol", - "lib/forge-std/src/StdChains.sol", - "lib/forge-std/src/StdCheats.sol", - "lib/forge-std/src/StdError.sol", - "lib/forge-std/src/StdInvariant.sol", - "lib/forge-std/src/StdJson.sol", - "lib/forge-std/src/StdMath.sol", - "lib/forge-std/src/StdStorage.sol", - "lib/forge-std/src/StdUtils.sol", - "lib/forge-std/src/Test.sol", - "lib/forge-std/src/Vm.sol", - "lib/forge-std/src/console.sol", - "lib/forge-std/src/console2.sol", - "lib/forge-std/src/interfaces/IMulticall3.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20Permit.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "src/constants/Constants.sol", - "src/interfaces/IOracle.sol", - "src/mocks/ERC20Mock.sol", - "src/mocks/oracles/ISourceMock.sol", - "src/mocks/oracles/chainlink/ChainlinkAggregatorV3Mock.sol", - "src/mocks/oracles/chainlink/ChainlinkAggregatorV3MockEx.sol", - "src/mocks/oracles/chainlink/FlagsInterfaceMock.sol", - "src/oracles/chainlink/AggregatorV3Interface.sol", - "src/oracles/chainlink/ChainlinkL2USDMultiOracle.sol", - "src/oracles/chainlink/ChainlinkUSDMultiOracle.sol", - "src/oracles/chainlink/FlagsInterface.sol", - "src/test/utils/TestConstants.sol", - "src/test/utils/TestExtensions.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "ChainlinkUSDMultiOracleTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "ChainlinkUSDMultiOracle.t.sol/ChainlinkUSDMultiOracleTest.json" - } - } - }, - "src/test/oracles/CompositeMultiOracle.t.sol": { - "lastModificationDate": 1677499641252, - "contentHash": "18568dad409a49eb28f92db83eb4d627", - "sourceName": "src/test/oracles/CompositeMultiOracle.t.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/forge-std/lib/ds-test/src/test.sol", - "lib/forge-std/src/Base.sol", - "lib/forge-std/src/StdAssertions.sol", - "lib/forge-std/src/StdChains.sol", - "lib/forge-std/src/StdCheats.sol", - "lib/forge-std/src/StdError.sol", - "lib/forge-std/src/StdInvariant.sol", - "lib/forge-std/src/StdJson.sol", - "lib/forge-std/src/StdMath.sol", - "lib/forge-std/src/StdStorage.sol", - "lib/forge-std/src/StdUtils.sol", - "lib/forge-std/src/Test.sol", - "lib/forge-std/src/Vm.sol", - "lib/forge-std/src/console.sol", - "lib/forge-std/src/console2.sol", - "lib/forge-std/src/interfaces/IMulticall3.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20Permit.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "src/constants/Constants.sol", - "src/interfaces/IOracle.sol", - "src/mocks/DAIMock.sol", - "src/mocks/ERC20Mock.sol", - "src/mocks/USDCMock.sol", - "src/mocks/WETH9Mock.sol", - "src/mocks/oracles/ISourceMock.sol", - "src/mocks/oracles/chainlink/ChainlinkAggregatorV3Mock.sol", - "src/mocks/oracles/chainlink/ChainlinkAggregatorV3MockEx.sol", - "src/oracles/chainlink/AggregatorV3Interface.sol", - "src/oracles/chainlink/ChainlinkMultiOracle.sol", - "src/oracles/composite/CompositeMultiOracle.sol", - "src/test/utils/TestConstants.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "CompositeMultiOracleTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "CompositeMultiOracle.t.sol/CompositeMultiOracleTest.json" - } - } - }, - "src/test/oracles/CompoundMultiOracle.t.sol": { - "lastModificationDate": 1677499641252, - "contentHash": "a6674ff35055da68d04f0218bef97b19", - "sourceName": "src/test/oracles/CompoundMultiOracle.t.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/forge-std/lib/ds-test/src/test.sol", - "lib/forge-std/src/Base.sol", - "lib/forge-std/src/StdAssertions.sol", - "lib/forge-std/src/StdChains.sol", - "lib/forge-std/src/StdCheats.sol", - "lib/forge-std/src/StdError.sol", - "lib/forge-std/src/StdInvariant.sol", - "lib/forge-std/src/StdJson.sol", - "lib/forge-std/src/StdMath.sol", - "lib/forge-std/src/StdStorage.sol", - "lib/forge-std/src/StdUtils.sol", - "lib/forge-std/src/Test.sol", - "lib/forge-std/src/Vm.sol", - "lib/forge-std/src/console.sol", - "lib/forge-std/src/console2.sol", - "lib/forge-std/src/interfaces/IMulticall3.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20Permit.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "src/constants/Constants.sol", - "src/interfaces/IOracle.sol", - "src/mocks/ERC20Mock.sol", - "src/mocks/oracles/ISourceMock.sol", - "src/mocks/oracles/compound/CTokenChiMock.sol", - "src/mocks/oracles/compound/CTokenRateMock.sol", - "src/oracles/compound/CTokenInterface.sol", - "src/oracles/compound/CompoundMultiOracle.sol", - "src/test/utils/TestConstants.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "CompoundMultiOracleTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "CompoundMultiOracle.t.sol/CompoundMultiOracleTest.json" - } - } - }, - "src/test/oracles/ConvexOracle.t.sol": { - "lastModificationDate": 1677499641252, - "contentHash": "c513d51dd4cb2b35182e954712254e66", - "sourceName": "src/test/oracles/ConvexOracle.t.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/forge-std/lib/ds-test/src/test.sol", - "lib/forge-std/src/Base.sol", - "lib/forge-std/src/StdAssertions.sol", - "lib/forge-std/src/StdChains.sol", - "lib/forge-std/src/StdCheats.sol", - "lib/forge-std/src/StdError.sol", - "lib/forge-std/src/StdInvariant.sol", - "lib/forge-std/src/StdJson.sol", - "lib/forge-std/src/StdMath.sol", - "lib/forge-std/src/StdStorage.sol", - "lib/forge-std/src/StdUtils.sol", - "lib/forge-std/src/Test.sol", - "lib/forge-std/src/Vm.sol", - "lib/forge-std/src/console.sol", - "lib/forge-std/src/console2.sol", - "lib/forge-std/src/interfaces/IMulticall3.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20Permit.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "src/constants/Constants.sol", - "src/interfaces/IOracle.sol", - "src/mocks/ERC20Mock.sol", - "src/oracles/chainlink/AggregatorV3Interface.sol", - "src/oracles/chainlink/ChainlinkMultiOracle.sol", - "src/oracles/composite/CompositeMultiOracle.sol", - "src/oracles/convex/Cvx3CrvOracle.sol", - "src/oracles/convex/ICurvePool.sol", - "src/test/utils/TestConstants.sol", - "src/test/utils/TestExtensions.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "ConvexOracleTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "ConvexOracle.t.sol/ConvexOracleTest.json" - } - } - }, - "src/test/oracles/CrabOracle.t.sol": { - "lastModificationDate": 1677499641251, - "contentHash": "1b281dfae123db44bd39f177ccab84f7", - "sourceName": "src/test/oracles/CrabOracle.t.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/forge-std/lib/ds-test/src/test.sol", - "lib/forge-std/src/Base.sol", - "lib/forge-std/src/StdAssertions.sol", - "lib/forge-std/src/StdChains.sol", - "lib/forge-std/src/StdCheats.sol", - "lib/forge-std/src/StdError.sol", - "lib/forge-std/src/StdInvariant.sol", - "lib/forge-std/src/StdJson.sol", - "lib/forge-std/src/StdMath.sol", - "lib/forge-std/src/StdStorage.sol", - "lib/forge-std/src/StdUtils.sol", - "lib/forge-std/src/Test.sol", - "lib/forge-std/src/Vm.sol", - "lib/forge-std/src/console.sol", - "lib/forge-std/src/console2.sol", - "lib/forge-std/src/interfaces/IMulticall3.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20Permit.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "src/interfaces/IOracle.sol", - "src/mocks/ERC20Mock.sol", - "src/oracles/crab/CrabOracle.sol", - "src/oracles/uniswap/UniswapV3Oracle.sol", - "src/oracles/uniswap/uniswapv0.8/FullMath.sol", - "src/oracles/uniswap/uniswapv0.8/IUniswapV3Pool.sol", - "src/oracles/uniswap/uniswapv0.8/LowGasSafeMath.sol", - "src/oracles/uniswap/uniswapv0.8/OracleLibrary.sol", - "src/oracles/uniswap/uniswapv0.8/PoolAddress.sol", - "src/oracles/uniswap/uniswapv0.8/TickMath.sol", - "src/oracles/uniswap/uniswapv0.8/pool/IUniswapV3PoolActions.sol", - "src/oracles/uniswap/uniswapv0.8/pool/IUniswapV3PoolDerivedState.sol", - "src/oracles/uniswap/uniswapv0.8/pool/IUniswapV3PoolEvents.sol", - "src/oracles/uniswap/uniswapv0.8/pool/IUniswapV3PoolImmutables.sol", - "src/oracles/uniswap/uniswapv0.8/pool/IUniswapV3PoolOwnerActions.sol", - "src/oracles/uniswap/uniswapv0.8/pool/IUniswapV3PoolState.sol", - "src/test/utils/TestConstants.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "CrabOracleTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "CrabOracle.t.sol/CrabOracleTest.json" - } - } - }, - "src/test/oracles/ETokenMultiOracle.t.sol": { - "lastModificationDate": 1677499641251, - "contentHash": "c7b143488069190e39d78217e90c397f", - "sourceName": "src/test/oracles/ETokenMultiOracle.t.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/forge-std/lib/ds-test/src/test.sol", - "lib/forge-std/src/Base.sol", - "lib/forge-std/src/StdAssertions.sol", - "lib/forge-std/src/StdChains.sol", - "lib/forge-std/src/StdCheats.sol", - "lib/forge-std/src/StdError.sol", - "lib/forge-std/src/StdInvariant.sol", - "lib/forge-std/src/StdJson.sol", - "lib/forge-std/src/StdMath.sol", - "lib/forge-std/src/StdStorage.sol", - "lib/forge-std/src/StdUtils.sol", - "lib/forge-std/src/Test.sol", - "lib/forge-std/src/Vm.sol", - "lib/forge-std/src/console.sol", - "lib/forge-std/src/console2.sol", - "lib/forge-std/src/interfaces/IMulticall3.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "src/interfaces/IOracle.sol", - "src/oracles/euler/ETokenMultiOracle.sol", - "src/oracles/euler/IEToken.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "PermissionedState": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "ETokenMultiOracle.t.sol/PermissionedState.json" - }, - "PermissionedStateTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "ETokenMultiOracle.t.sol/PermissionedStateTest.json" - }, - "SourceSetState": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "ETokenMultiOracle.t.sol/SourceSetState.json" - }, - "SourceSetStateTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "ETokenMultiOracle.t.sol/SourceSetStateTest.json" - }, - "ZeroState": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "ETokenMultiOracle.t.sol/ZeroState.json" - }, - "ZeroStateTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "ETokenMultiOracle.t.sol/ZeroStateTest.json" - } - } - }, - "src/test/oracles/LidoOracle.t.sol": { - "lastModificationDate": 1677499641251, - "contentHash": "c7d1f36325a705467a6f7e1db92e5881", - "sourceName": "src/test/oracles/LidoOracle.t.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/forge-std/lib/ds-test/src/test.sol", - "lib/forge-std/src/Base.sol", - "lib/forge-std/src/StdAssertions.sol", - "lib/forge-std/src/StdChains.sol", - "lib/forge-std/src/StdCheats.sol", - "lib/forge-std/src/StdError.sol", - "lib/forge-std/src/StdInvariant.sol", - "lib/forge-std/src/StdJson.sol", - "lib/forge-std/src/StdMath.sol", - "lib/forge-std/src/StdStorage.sol", - "lib/forge-std/src/StdUtils.sol", - "lib/forge-std/src/Test.sol", - "lib/forge-std/src/Vm.sol", - "lib/forge-std/src/console.sol", - "lib/forge-std/src/console2.sol", - "lib/forge-std/src/interfaces/IMulticall3.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20Permit.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "src/constants/Constants.sol", - "src/interfaces/IOracle.sol", - "src/mocks/ERC20Mock.sol", - "src/mocks/USDCMock.sol", - "src/mocks/WETH9Mock.sol", - "src/mocks/oracles/ISourceMock.sol", - "src/mocks/oracles/chainlink/ChainlinkAggregatorV3Mock.sol", - "src/mocks/oracles/chainlink/ChainlinkAggregatorV3MockEx.sol", - "src/mocks/oracles/lido/WstETHMock.sol", - "src/oracles/chainlink/AggregatorV3Interface.sol", - "src/oracles/chainlink/ChainlinkMultiOracle.sol", - "src/oracles/composite/CompositeMultiOracle.sol", - "src/oracles/lido/IWstETH.sol", - "src/oracles/lido/LidoOracle.sol", - "src/test/utils/TestConstants.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "LidoOracleTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "LidoOracle.t.sol/LidoOracleTest.json" - } - } - }, - "src/test/oracles/NotionalMultiOracle.t.sol": { - "lastModificationDate": 1677499641251, - "contentHash": "ede5bda6ac3c4be170cb31151e847d4e", - "sourceName": "src/test/oracles/NotionalMultiOracle.t.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/forge-std/lib/ds-test/src/test.sol", - "lib/forge-std/src/Base.sol", - "lib/forge-std/src/StdAssertions.sol", - "lib/forge-std/src/StdChains.sol", - "lib/forge-std/src/StdCheats.sol", - "lib/forge-std/src/StdError.sol", - "lib/forge-std/src/StdInvariant.sol", - "lib/forge-std/src/StdJson.sol", - "lib/forge-std/src/StdMath.sol", - "lib/forge-std/src/StdStorage.sol", - "lib/forge-std/src/StdUtils.sol", - "lib/forge-std/src/Test.sol", - "lib/forge-std/src/Vm.sol", - "lib/forge-std/src/console.sol", - "lib/forge-std/src/console2.sol", - "lib/forge-std/src/interfaces/IMulticall3.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20Permit.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "src/interfaces/IOracle.sol", - "src/mocks/DAIMock.sol", - "src/mocks/ERC20Mock.sol", - "src/mocks/USDCMock.sol", - "src/other/notional/NotionalMultiOracle.sol", - "src/test/utils/TestConstants.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "NotionalMultiOracleTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "NotionalMultiOracle.t.sol/NotionalMultiOracleTest.json" - } - } - }, - "src/test/oracles/RETHOracle.t.sol": { - "lastModificationDate": 1677499641250, - "contentHash": "8993552921d5bd0cec1b0e9505442b2f", - "sourceName": "src/test/oracles/RETHOracle.t.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/forge-std/lib/ds-test/src/test.sol", - "lib/forge-std/src/Base.sol", - "lib/forge-std/src/StdAssertions.sol", - "lib/forge-std/src/StdChains.sol", - "lib/forge-std/src/StdCheats.sol", - "lib/forge-std/src/StdError.sol", - "lib/forge-std/src/StdInvariant.sol", - "lib/forge-std/src/StdJson.sol", - "lib/forge-std/src/StdMath.sol", - "lib/forge-std/src/StdStorage.sol", - "lib/forge-std/src/StdUtils.sol", - "lib/forge-std/src/Test.sol", - "lib/forge-std/src/Vm.sol", - "lib/forge-std/src/console.sol", - "lib/forge-std/src/console2.sol", - "lib/forge-std/src/interfaces/IMulticall3.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "src/interfaces/IOracle.sol", - "src/oracles/rocket/RETHOracle.sol", - "src/test/utils/TestConstants.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "RETHOracleTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "RETHOracle.t.sol/RETHOracleTest.json" - } - } - }, - "src/test/oracles/StrategyOracle.t.sol": { - "lastModificationDate": 1677499641250, - "contentHash": "73a690f07f5a49b3486d6d904a17165f", - "sourceName": "src/test/oracles/StrategyOracle.t.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/forge-std/lib/ds-test/src/test.sol", - "lib/forge-std/src/Base.sol", - "lib/forge-std/src/StdAssertions.sol", - "lib/forge-std/src/StdChains.sol", - "lib/forge-std/src/StdCheats.sol", - "lib/forge-std/src/StdError.sol", - "lib/forge-std/src/StdInvariant.sol", - "lib/forge-std/src/StdJson.sol", - "lib/forge-std/src/StdMath.sol", - "lib/forge-std/src/StdStorage.sol", - "lib/forge-std/src/StdUtils.sol", - "lib/forge-std/src/Test.sol", - "lib/forge-std/src/Vm.sol", - "lib/forge-std/src/console.sol", - "lib/forge-std/src/console2.sol", - "lib/forge-std/src/interfaces/IMulticall3.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20Permit.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "src/interfaces/IOracle.sol", - "src/interfaces/IStrategy.sol", - "src/mocks/ERC20Mock.sol", - "src/oracles/strategy/StrategyOracle.sol", - "src/test/utils/TestConstants.sol", - "src/test/utils/TestExtensions.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "StrategyOracleTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "StrategyOracle.t.sol/StrategyOracleTest.json" - } - } - }, - "src/test/oracles/UniswapOracle.t.sol": { - "lastModificationDate": 1677499641250, - "contentHash": "915c31d152bd2e0214ff3e98212823d5", - "sourceName": "src/test/oracles/UniswapOracle.t.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/forge-std/lib/ds-test/src/test.sol", - "lib/forge-std/src/Base.sol", - "lib/forge-std/src/StdAssertions.sol", - "lib/forge-std/src/StdChains.sol", - "lib/forge-std/src/StdCheats.sol", - "lib/forge-std/src/StdError.sol", - "lib/forge-std/src/StdInvariant.sol", - "lib/forge-std/src/StdJson.sol", - "lib/forge-std/src/StdMath.sol", - "lib/forge-std/src/StdStorage.sol", - "lib/forge-std/src/StdUtils.sol", - "lib/forge-std/src/Test.sol", - "lib/forge-std/src/Vm.sol", - "lib/forge-std/src/console.sol", - "lib/forge-std/src/console2.sol", - "lib/forge-std/src/interfaces/IMulticall3.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20Permit.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "src/interfaces/IOracle.sol", - "src/mocks/ERC20Mock.sol", - "src/oracles/uniswap/UniswapV3Oracle.sol", - "src/oracles/uniswap/uniswapv0.8/FullMath.sol", - "src/oracles/uniswap/uniswapv0.8/IUniswapV3Pool.sol", - "src/oracles/uniswap/uniswapv0.8/LowGasSafeMath.sol", - "src/oracles/uniswap/uniswapv0.8/OracleLibrary.sol", - "src/oracles/uniswap/uniswapv0.8/PoolAddress.sol", - "src/oracles/uniswap/uniswapv0.8/TickMath.sol", - "src/oracles/uniswap/uniswapv0.8/pool/IUniswapV3PoolActions.sol", - "src/oracles/uniswap/uniswapv0.8/pool/IUniswapV3PoolDerivedState.sol", - "src/oracles/uniswap/uniswapv0.8/pool/IUniswapV3PoolEvents.sol", - "src/oracles/uniswap/uniswapv0.8/pool/IUniswapV3PoolImmutables.sol", - "src/oracles/uniswap/uniswapv0.8/pool/IUniswapV3PoolOwnerActions.sol", - "src/oracles/uniswap/uniswapv0.8/pool/IUniswapV3PoolState.sol", - "src/test/utils/TestConstants.sol", - "src/test/utils/TestExtensions.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "UniswapOracleTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "UniswapOracle.t.sol/UniswapOracleTest.json" - } - } - }, - "src/test/oracles/YearnVaultMultiOracle.t.sol": { - "lastModificationDate": 1677499641250, - "contentHash": "66231107e451be12e074a2b39632fc65", - "sourceName": "src/test/oracles/YearnVaultMultiOracle.t.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/forge-std/lib/ds-test/src/test.sol", - "lib/forge-std/src/Base.sol", - "lib/forge-std/src/StdAssertions.sol", - "lib/forge-std/src/StdChains.sol", - "lib/forge-std/src/StdCheats.sol", - "lib/forge-std/src/StdError.sol", - "lib/forge-std/src/StdInvariant.sol", - "lib/forge-std/src/StdJson.sol", - "lib/forge-std/src/StdMath.sol", - "lib/forge-std/src/StdStorage.sol", - "lib/forge-std/src/StdUtils.sol", - "lib/forge-std/src/Test.sol", - "lib/forge-std/src/Vm.sol", - "lib/forge-std/src/console.sol", - "lib/forge-std/src/console2.sol", - "lib/forge-std/src/interfaces/IMulticall3.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20Permit.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "src/interfaces/IOracle.sol", - "src/mocks/DAIMock.sol", - "src/mocks/ERC20Mock.sol", - "src/mocks/USDCMock.sol", - "src/mocks/YvTokenMock.sol", - "src/mocks/oracles/ISourceMock.sol", - "src/oracles/yearn/IYvToken.sol", - "src/oracles/yearn/YearnVaultMultiOracle.sol", - "src/test/utils/TestConstants.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "YearnVaultMultiOracleTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "YearnVaultMultiOracle.t.sol/YearnVaultMultiOracleTest.json" - } - } - }, - "src/test/oracles/YieldSpaceMultiOracle.dai.it.t.sol": { - "lastModificationDate": 1677499641250, - "contentHash": "9d4cbb1f3b3ef1a4a8796127b5698ade", - "sourceName": "src/test/oracles/YieldSpaceMultiOracle.dai.it.t.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/forge-std/lib/ds-test/src/test.sol", - "lib/forge-std/src/Base.sol", - "lib/forge-std/src/StdAssertions.sol", - "lib/forge-std/src/StdChains.sol", - "lib/forge-std/src/StdCheats.sol", - "lib/forge-std/src/StdError.sol", - "lib/forge-std/src/StdInvariant.sol", - "lib/forge-std/src/StdJson.sol", - "lib/forge-std/src/StdMath.sol", - "lib/forge-std/src/StdStorage.sol", - "lib/forge-std/src/StdUtils.sol", - "lib/forge-std/src/Test.sol", - "lib/forge-std/src/Vm.sol", - "lib/forge-std/src/console.sol", - "lib/forge-std/src/console2.sol", - "lib/forge-std/src/interfaces/IMulticall3.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/interfaces/IWETH9.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20Permit.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/TransferHelper.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/IsContract.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Math.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/RevertMsgExtractor.sol", - "lib/yieldspace-tv/src/Exp64x64.sol", - "lib/yieldspace-tv/src/Math64x64.sol", - "lib/yieldspace-tv/src/Pool/Pool.sol", - "lib/yieldspace-tv/src/Pool/PoolErrors.sol", - "lib/yieldspace-tv/src/Pool/PoolEvents.sol", - "lib/yieldspace-tv/src/Pool/PoolImports.sol", - "lib/yieldspace-tv/src/YieldMath.sol", - "lib/yieldspace-tv/src/interfaces/IERC4626.sol", - "lib/yieldspace-tv/src/interfaces/IMaturingToken.sol", - "lib/yieldspace-tv/src/interfaces/IPool.sol", - "lib/yieldspace-tv/src/interfaces/IPoolOracle.sol", - "lib/yieldspace-tv/src/oracle/PoolOracle.sol", - "src/Router.sol", - "src/interfaces/DataTypes.sol", - "src/interfaces/ICauldron.sol", - "src/interfaces/IERC5095.sol", - "src/interfaces/IFYToken.sol", - "src/interfaces/IJoin.sol", - "src/interfaces/ILadle.sol", - "src/interfaces/IOracle.sol", - "src/oracles/yieldspace/YieldSpaceMultiOracle.sol", - "src/test/utils/Mocks.sol", - "src/test/utils/TestConstants.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "YieldSpaceMultiOracleDAIIntegrationTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "YieldSpaceMultiOracle.dai.it.t.sol/YieldSpaceMultiOracleDAIIntegrationTest.json" - } - } - }, - "src/test/oracles/YieldSpaceMultiOracle.t.sol": { - "lastModificationDate": 1677499641249, - "contentHash": "e2f0382f5e6cadfaf854b3b21ae56b1c", - "sourceName": "src/test/oracles/YieldSpaceMultiOracle.t.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/forge-std/lib/ds-test/src/test.sol", - "lib/forge-std/src/Base.sol", - "lib/forge-std/src/StdAssertions.sol", - "lib/forge-std/src/StdChains.sol", - "lib/forge-std/src/StdCheats.sol", - "lib/forge-std/src/StdError.sol", - "lib/forge-std/src/StdInvariant.sol", - "lib/forge-std/src/StdJson.sol", - "lib/forge-std/src/StdMath.sol", - "lib/forge-std/src/StdStorage.sol", - "lib/forge-std/src/StdUtils.sol", - "lib/forge-std/src/Test.sol", - "lib/forge-std/src/Vm.sol", - "lib/forge-std/src/console.sol", - "lib/forge-std/src/console2.sol", - "lib/forge-std/src/interfaces/IMulticall3.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20Permit.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "lib/yieldspace-tv/src/interfaces/IMaturingToken.sol", - "lib/yieldspace-tv/src/interfaces/IPool.sol", - "lib/yieldspace-tv/src/interfaces/IPoolOracle.sol", - "src/interfaces/DataTypes.sol", - "src/interfaces/IERC5095.sol", - "src/interfaces/IFYToken.sol", - "src/interfaces/IJoin.sol", - "src/interfaces/IOracle.sol", - "src/mocks/ERC20Mock.sol", - "src/oracles/yieldspace/YieldSpaceMultiOracle.sol", - "src/test/utils/Mocks.sol", - "src/test/utils/TestConstants.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "YieldSpaceMultiOracleTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "YieldSpaceMultiOracle.t.sol/YieldSpaceMultiOracleTest.json" - } - } - }, - "src/test/oracles/YieldSpaceMultiOracle.usdc.it.t.sol": { - "lastModificationDate": 1677499641249, - "contentHash": "c88e6a415bfa04702cde8722c5cd772b", - "sourceName": "src/test/oracles/YieldSpaceMultiOracle.usdc.it.t.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/forge-std/lib/ds-test/src/test.sol", - "lib/forge-std/src/Base.sol", - "lib/forge-std/src/StdAssertions.sol", - "lib/forge-std/src/StdChains.sol", - "lib/forge-std/src/StdCheats.sol", - "lib/forge-std/src/StdError.sol", - "lib/forge-std/src/StdInvariant.sol", - "lib/forge-std/src/StdJson.sol", - "lib/forge-std/src/StdMath.sol", - "lib/forge-std/src/StdStorage.sol", - "lib/forge-std/src/StdUtils.sol", - "lib/forge-std/src/Test.sol", - "lib/forge-std/src/Vm.sol", - "lib/forge-std/src/console.sol", - "lib/forge-std/src/console2.sol", - "lib/forge-std/src/interfaces/IMulticall3.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/interfaces/IWETH9.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/IsContract.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/RevertMsgExtractor.sol", - "lib/yieldspace-tv/src/Exp64x64.sol", - "lib/yieldspace-tv/src/Math64x64.sol", - "lib/yieldspace-tv/src/interfaces/IMaturingToken.sol", - "lib/yieldspace-tv/src/interfaces/IPool.sol", - "lib/yieldspace-tv/src/interfaces/IPoolOracle.sol", - "lib/yieldspace-tv/src/oracle/PoolOracle.sol", - "src/Router.sol", - "src/interfaces/DataTypes.sol", - "src/interfaces/ICauldron.sol", - "src/interfaces/IERC5095.sol", - "src/interfaces/IFYToken.sol", - "src/interfaces/IJoin.sol", - "src/interfaces/ILadle.sol", - "src/interfaces/IOracle.sol", - "src/oracles/yieldspace/YieldSpaceMultiOracle.sol", - "src/test/utils/Mocks.sol", - "src/test/utils/TestConstants.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "YieldSpaceMultiOracleUSDCIntegrationTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "YieldSpaceMultiOracle.usdc.it.t.sol/YieldSpaceMultiOracleUSDCIntegrationTest.json" - } - } - }, - "src/test/other/contango/ContangoLadle.t.sol": { - "lastModificationDate": 1677499641249, - "contentHash": "2a42cdbb44d8bc74b34e402808e65cce", - "sourceName": "src/test/other/contango/ContangoLadle.t.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/dss-interfaces/src/dss/DaiAbstract.sol", - "lib/forge-std/lib/ds-test/src/test.sol", - "lib/forge-std/src/Base.sol", - "lib/forge-std/src/StdAssertions.sol", - "lib/forge-std/src/StdChains.sol", - "lib/forge-std/src/StdCheats.sol", - "lib/forge-std/src/StdError.sol", - "lib/forge-std/src/StdInvariant.sol", - "lib/forge-std/src/StdJson.sol", - "lib/forge-std/src/StdMath.sol", - "lib/forge-std/src/StdStorage.sol", - "lib/forge-std/src/StdUtils.sol", - "lib/forge-std/src/Test.sol", - "lib/forge-std/src/Vm.sol", - "lib/forge-std/src/console.sol", - "lib/forge-std/src/console2.sol", - "lib/forge-std/src/interfaces/IMulticall3.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/interfaces/IWETH9.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/TransferHelper.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/IsContract.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Math.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/RevertMsgExtractor.sol", - "lib/yieldspace-tv/src/interfaces/IMaturingToken.sol", - "lib/yieldspace-tv/src/interfaces/IPool.sol", - "lib/yieldspace-tv/src/interfaces/IPoolOracle.sol", - "src/Ladle.sol", - "src/LadleStorage.sol", - "src/Router.sol", - "src/interfaces/DataTypes.sol", - "src/interfaces/ICauldron.sol", - "src/interfaces/IERC5095.sol", - "src/interfaces/IFYToken.sol", - "src/interfaces/IJoin.sol", - "src/interfaces/IOracle.sol", - "src/other/contango/ContangoLadle.sol", - "src/test/utils/Mocks.sol", - "src/test/utils/TestConstants.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "ContangoLadleTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "ContangoLadle.t.sol/ContangoLadleTest.json" - } - } - }, - "src/test/other/notional/NotionalJoin.t.sol": { - "lastModificationDate": 1677499641249, - "contentHash": "eb5c75a0e633784db02a9ffd2cca5f9a", - "sourceName": "src/test/other/notional/NotionalJoin.t.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/ERC3156/contracts/interfaces/IERC3156FlashBorrower.sol", - "lib/ERC3156/contracts/interfaces/IERC3156FlashLender.sol", - "lib/forge-std/lib/ds-test/src/test.sol", - "lib/forge-std/src/Base.sol", - "lib/forge-std/src/StdAssertions.sol", - "lib/forge-std/src/StdChains.sol", - "lib/forge-std/src/StdCheats.sol", - "lib/forge-std/src/StdError.sol", - "lib/forge-std/src/StdInvariant.sol", - "lib/forge-std/src/StdJson.sol", - "lib/forge-std/src/StdMath.sol", - "lib/forge-std/src/StdStorage.sol", - "lib/forge-std/src/StdUtils.sol", - "lib/forge-std/src/Test.sol", - "lib/forge-std/src/Vm.sol", - "lib/forge-std/src/console.sol", - "lib/forge-std/src/console2.sol", - "lib/forge-std/src/interfaces/IMulticall3.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/interfaces/IWETH9.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20Permit.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/MinimalTransferHelper.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/TransferHelper.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/IsContract.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Math.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/RevertMsgExtractor.sol", - "lib/yieldspace-tv/src/interfaces/IMaturingToken.sol", - "lib/yieldspace-tv/src/interfaces/IPool.sol", - "lib/yieldspace-tv/src/interfaces/IPoolOracle.sol", - "src/Join.sol", - "src/Router.sol", - "src/interfaces/DataTypes.sol", - "src/interfaces/ICauldron.sol", - "src/interfaces/IERC5095.sol", - "src/interfaces/IFYToken.sol", - "src/interfaces/IJoin.sol", - "src/interfaces/IJoinFactory.sol", - "src/interfaces/ILadle.sol", - "src/interfaces/IOracle.sol", - "src/mocks/ERC20Mock.sol", - "src/other/notional/ERC1155.sol", - "src/other/notional/NotionalJoin.sol", - "src/other/notional/interfaces/IBatchAction.sol", - "src/test/other/notional/NotionalTypes.sol", - "src/test/utils/Mocks.sol", - "src/test/utils/TestConstants.sol", - "src/test/utils/TestExtensions.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "StateJoined": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "NotionalJoin.t.sol/StateJoined.json" - }, - "StateJoinedTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "NotionalJoin.t.sol/StateJoinedTest.json" - }, - "StateMatured": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "NotionalJoin.t.sol/StateMatured.json" - }, - "StateMaturedTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "NotionalJoin.t.sol/StateMaturedTest.json" - }, - "StatePositiveStoredBalance": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "NotionalJoin.t.sol/StatePositiveStoredBalance.json" - }, - "StatePositiveStoredBalanceTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "NotionalJoin.t.sol/StatePositiveStoredBalanceTest.json" - }, - "StateRedeemed": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "NotionalJoin.t.sol/StateRedeemed.json" - }, - "StateRedeemedTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "NotionalJoin.t.sol/StateRedeemedTest.json" - }, - "StateZero": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "NotionalJoin.t.sol/StateZero.json" - }, - "StateZeroTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "NotionalJoin.t.sol/StateZeroTest.json" - } - } - }, - "src/test/other/notional/NotionalJoinHarness.t.sol": { - "lastModificationDate": 1677499641249, - "contentHash": "34f15d0086d0c54ba5f7f334e2f3d3f0", - "sourceName": "src/test/other/notional/NotionalJoinHarness.t.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/forge-std/lib/ds-test/src/test.sol", - "lib/forge-std/src/Base.sol", - "lib/forge-std/src/StdAssertions.sol", - "lib/forge-std/src/StdChains.sol", - "lib/forge-std/src/StdCheats.sol", - "lib/forge-std/src/StdError.sol", - "lib/forge-std/src/StdInvariant.sol", - "lib/forge-std/src/StdJson.sol", - "lib/forge-std/src/StdMath.sol", - "lib/forge-std/src/StdStorage.sol", - "lib/forge-std/src/StdUtils.sol", - "lib/forge-std/src/Test.sol", - "lib/forge-std/src/Vm.sol", - "lib/forge-std/src/console.sol", - "lib/forge-std/src/console2.sol", - "lib/forge-std/src/interfaces/IMulticall3.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/interfaces/IWETH9.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/MinimalTransferHelper.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Math.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/RevertMsgExtractor.sol", - "src/interfaces/IJoin.sol", - "src/other/notional/ERC1155.sol", - "src/other/notional/NotionalJoin.sol", - "src/other/notional/interfaces/IBatchAction.sol", - "src/test/other/notional/NotionalTypes.sol", - "src/test/utils/TestConstants.sol", - "src/test/utils/TestExtensions.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "StateJoined": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "NotionalJoinHarness.t.sol/StateJoined.json" - }, - "StateJoinedTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "NotionalJoinHarness.t.sol/StateJoinedTest.json" - }, - "StateMatured": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "NotionalJoinHarness.t.sol/StateMatured.json" - }, - "StateMaturedTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "NotionalJoinHarness.t.sol/StateMaturedTest.json" - }, - "StateRedeemed": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "NotionalJoinHarness.t.sol/StateRedeemed.json" - }, - "StateRedeemedTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "NotionalJoinHarness.t.sol/StateRedeemedTest.json" - }, - "StateZero": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "NotionalJoinHarness.t.sol/StateZero.json" - }, - "StateZeroTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "NotionalJoinHarness.t.sol/StateZeroTest.json" - } - } - }, - "src/test/other/notional/NotionalTypes.sol": { - "lastModificationDate": 1677499641249, - "contentHash": "4afe5c0b1d7be060d1a98b52905f9db4", - "sourceName": "src/test/other/notional/NotionalTypes.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": "^0.8.14", - "artifacts": { - "Notional": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "NotionalTypes.sol/Notional.json" - } - } - }, - "src/test/other/tether/TetherJoin.t.sol": { - "lastModificationDate": 1677499641248, - "contentHash": "dd73fdb47106b8b3dbdf59fc7f04fd33", - "sourceName": "src/test/other/tether/TetherJoin.t.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/ERC3156/contracts/interfaces/IERC3156FlashBorrower.sol", - "lib/ERC3156/contracts/interfaces/IERC3156FlashLender.sol", - "lib/forge-std/lib/ds-test/src/test.sol", - "lib/forge-std/src/Base.sol", - "lib/forge-std/src/StdAssertions.sol", - "lib/forge-std/src/StdChains.sol", - "lib/forge-std/src/StdCheats.sol", - "lib/forge-std/src/StdError.sol", - "lib/forge-std/src/StdInvariant.sol", - "lib/forge-std/src/StdJson.sol", - "lib/forge-std/src/StdMath.sol", - "lib/forge-std/src/StdStorage.sol", - "lib/forge-std/src/StdUtils.sol", - "lib/forge-std/src/Test.sol", - "lib/forge-std/src/Vm.sol", - "lib/forge-std/src/console.sol", - "lib/forge-std/src/console2.sol", - "lib/forge-std/src/interfaces/IMulticall3.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20Permit.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/TransferHelper.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Cast.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/Math.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/utils/RevertMsgExtractor.sol", - "src/FlashJoin.sol", - "src/Join.sol", - "src/interfaces/IJoin.sol", - "src/interfaces/IJoinFactory.sol", - "src/mocks/ERC20Mock.sol", - "src/other/tether/IUSDT.sol", - "src/other/tether/TetherJoin.sol", - "src/test/utils/TestConstants.sol", - "src/test/utils/TestExtensions.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "Deployed": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "TetherJoin.t.sol/Deployed.json" - }, - "DeployedTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "TetherJoin.t.sol/DeployedTest.json" - }, - "WithFees": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "TetherJoin.t.sol/WithFees.json" - }, - "WithFeesTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "TetherJoin.t.sol/WithFeesTest.json" - }, - "WithOtherTokens": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "TetherJoin.t.sol/WithOtherTokens.json" - }, - "WithOtherTokensTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "TetherJoin.t.sol/WithOtherTokensTest.json" - }, - "WithTokens": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "TetherJoin.t.sol/WithTokens.json" - }, - "WithTokensTest": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "TetherJoin.t.sol/WithTokensTest.json" - } - } - }, - "src/test/utils/Mocks.sol": { - "lastModificationDate": 1677499641248, - "contentHash": "74470ac67085ce047e81bcf096f28861", - "sourceName": "src/test/utils/Mocks.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/forge-std/lib/ds-test/src/test.sol", - "lib/forge-std/src/Base.sol", - "lib/forge-std/src/StdAssertions.sol", - "lib/forge-std/src/StdChains.sol", - "lib/forge-std/src/StdCheats.sol", - "lib/forge-std/src/StdError.sol", - "lib/forge-std/src/StdInvariant.sol", - "lib/forge-std/src/StdJson.sol", - "lib/forge-std/src/StdMath.sol", - "lib/forge-std/src/StdStorage.sol", - "lib/forge-std/src/StdUtils.sol", - "lib/forge-std/src/Test.sol", - "lib/forge-std/src/Vm.sol", - "lib/forge-std/src/console.sol", - "lib/forge-std/src/console2.sol", - "lib/forge-std/src/interfaces/IMulticall3.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/ERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20Metadata.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC2612.sol", - "lib/yieldspace-tv/src/interfaces/IMaturingToken.sol", - "lib/yieldspace-tv/src/interfaces/IPool.sol", - "lib/yieldspace-tv/src/interfaces/IPoolOracle.sol", - "src/interfaces/DataTypes.sol", - "src/interfaces/IERC5095.sol", - "src/interfaces/IFYToken.sol", - "src/interfaces/IJoin.sol", - "src/interfaces/IOracle.sol" - ], - "versionRequirement": ">=0.8.0", - "artifacts": { - "LenientMock": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "Mocks.sol/LenientMock.json" - }, - "Mocks": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "Mocks.sol/Mocks.json" - }, - "StrictMock": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "Mocks.sol/StrictMock.json" - } - } - }, - "src/test/utils/TestConstants.sol": { - "lastModificationDate": 1677499641248, - "contentHash": "c632ca2b52fdaee35c12cdf4a23f7121", - "sourceName": "src/test/utils/TestConstants.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [], - "versionRequirement": ">=0.8.13", - "artifacts": { - "TestConstants": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "TestConstants.sol/TestConstants.json" - } - } - }, - "src/test/utils/TestExtensions.sol": { - "lastModificationDate": 1677499641248, - "contentHash": "4abae3e71828d835276c94c24a413f2d", - "sourceName": "src/test/utils/TestExtensions.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/forge-std/lib/ds-test/src/test.sol", - "lib/forge-std/src/Base.sol", - "lib/forge-std/src/StdAssertions.sol", - "lib/forge-std/src/StdChains.sol", - "lib/forge-std/src/StdCheats.sol", - "lib/forge-std/src/StdError.sol", - "lib/forge-std/src/StdInvariant.sol", - "lib/forge-std/src/StdJson.sol", - "lib/forge-std/src/StdMath.sol", - "lib/forge-std/src/StdStorage.sol", - "lib/forge-std/src/StdUtils.sol", - "lib/forge-std/src/Test.sol", - "lib/forge-std/src/Vm.sol", - "lib/forge-std/src/console.sol", - "lib/forge-std/src/console2.sol", - "lib/forge-std/src/interfaces/IMulticall3.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "TestExtensions": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "TestExtensions.sol/TestExtensions.json" - } - } - }, - "src/test/utils/Utilities.sol": { - "lastModificationDate": 1677499641248, - "contentHash": "faf18186f6616798ae602ec4eea3132f", - "sourceName": "src/test/utils/Utilities.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/forge-std/lib/ds-test/src/test.sol", - "lib/forge-std/src/Base.sol", - "lib/forge-std/src/StdAssertions.sol", - "lib/forge-std/src/StdChains.sol", - "lib/forge-std/src/StdCheats.sol", - "lib/forge-std/src/StdError.sol", - "lib/forge-std/src/StdInvariant.sol", - "lib/forge-std/src/StdJson.sol", - "lib/forge-std/src/StdMath.sol", - "lib/forge-std/src/StdStorage.sol", - "lib/forge-std/src/StdUtils.sol", - "lib/forge-std/src/Test.sol", - "lib/forge-std/src/Vm.sol", - "lib/forge-std/src/console.sol", - "lib/forge-std/src/console2.sol", - "lib/forge-std/src/interfaces/IMulticall3.sol" - ], - "versionRequirement": ">=0.8.0", - "artifacts": { - "Utilities": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "Utilities.sol/Utilities.json" - } - } - }, - "src/utils/Giver.sol": { - "lastModificationDate": 1677499641247, - "contentHash": "d607aedbc9180c81a6a42f37e9884eca", - "sourceName": "src/utils/Giver.sol", - "solcConfig": { - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "": [ - "ast" - ], - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "london", - "libraries": {} - } - }, - "imports": [ - "lib/yieldspace-tv/lib/yield-utils-v2/src/access/AccessControl.sol", - "lib/yieldspace-tv/lib/yield-utils-v2/src/token/IERC20.sol", - "src/interfaces/DataTypes.sol", - "src/interfaces/ICauldron.sol", - "src/interfaces/IERC5095.sol", - "src/interfaces/IFYToken.sol", - "src/interfaces/IJoin.sol", - "src/interfaces/IOracle.sol" - ], - "versionRequirement": ">=0.8.13", - "artifacts": { - "Giver": { - "0.8.15+commit.e14f2714.Darwin.appleclang": "Giver.sol/Giver.json" - } - } - } - } -} \ No newline at end of file diff --git a/package.json b/package.json index e86bb3922..087c32b10 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@yield-protocol/vault-v2", - "version": "0.18.10", + "version": "0.18.12", "description": "Yield Collateralized Debt Engine v2", "author": "Yield Inc.", "files": [ @@ -15,7 +15,8 @@ "scripts": { "forge:build": "forge build", "forge:test": "forge test -vvv", - "forge:snapshot": "forge snapshot" + "forge:snapshot": "forge snapshot", + "forge:coverage": "forge coverage --report lcov && genhtml lcov.info -o report --branch-coverage --legend --dark-mode && open report/index.html" }, "repository": { "url": "git+https://github.com/yieldprotocol/vault-v2.git", diff --git a/src/interfaces/ICauldron.sol b/src/interfaces/ICauldron.sol index ea62f2228..27d9981d9 100644 --- a/src/interfaces/ICauldron.sol +++ b/src/interfaces/ICauldron.sol @@ -1,10 +1,12 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; + import "./IFYToken.sol"; import "./IOracle.sol"; import "./DataTypes.sol"; +import "./ICauldronGov.sol"; -interface ICauldron { +interface ICauldron is ICauldronGov { /// @dev Variable rate lending oracle for an underlying function lendingOracles(bytes6 baseId) external view returns (IOracle); diff --git a/src/interfaces/ILadleGov.sol b/src/interfaces/ILadleGov.sol index 1ad3ce690..b5bbabd55 100644 --- a/src/interfaces/ILadleGov.sol +++ b/src/interfaces/ILadleGov.sol @@ -6,6 +6,10 @@ import "./IJoin.sol"; interface ILadleGov { function joins(bytes6) external view returns (IJoin); + function addToken(address, bool) external; + + function addIntegration(address, bool) external; + function addJoin(bytes6, address) external; function addPool(bytes6, address) external; diff --git a/src/interfaces/IWitch.sol b/src/interfaces/IWitch.sol index e4357be33..f54d93557 100644 --- a/src/interfaces/IWitch.sol +++ b/src/interfaces/IWitch.sol @@ -2,10 +2,11 @@ pragma solidity ^0.8.0; import "./ILadle.sol"; +import "./IWitchGov.sol"; import "./ICauldron.sol"; import "./DataTypes.sol"; -interface IWitch { +interface IWitch is IWitchGov { /// @return The Cauldron the witch is using under-the-bonnet function cauldron() external view returns (ICauldron); diff --git a/src/interfaces/IWitchGov.sol b/src/interfaces/IWitchGov.sol new file mode 100644 index 000000000..f11d49454 --- /dev/null +++ b/src/interfaces/IWitchGov.sol @@ -0,0 +1,24 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "./ILadle.sol"; +import "./ICauldron.sol"; +import "./DataTypes.sol"; + +interface IWitchGov { + function point(bytes32 param, address value) external; + function setLineAndLimit( + bytes6 ilkId, + bytes6 baseId, + uint32 duration, + uint64 vaultProportion, + uint64 collateralProportion, + uint128 max + ) external; + + function setProtected(address owner, bool _protected) external; + + function setAuctioneerReward(uint256 auctioneerReward_) external; + + function auctioneerReward() external returns (uint256); +} diff --git a/src/other/contango/ContangoWand.sol b/src/other/contango/ContangoWand.sol new file mode 100644 index 000000000..3a21dc96b --- /dev/null +++ b/src/other/contango/ContangoWand.sol @@ -0,0 +1,317 @@ +// SPDX-License-Identifier: BUSL-1.1 +pragma solidity >=0.8.13; + +import "../../Join.sol"; +import "../../interfaces/ICauldronGov.sol"; +import "../../interfaces/ICauldron.sol"; +import "../../interfaces/ILadleGov.sol"; +import "../../interfaces/ILadle.sol"; +import "../../interfaces/IJoin.sol"; +import "../../interfaces/IWitch.sol"; +import "../../oracles/yieldspace/YieldSpaceMultiOracle.sol"; +import "../../oracles/composite/CompositeMultiOracle.sol"; +import "@yield-protocol/yieldspace-tv/src/interfaces/IPool.sol"; +import "@yield-protocol/utils-v2/src/access/AccessControl.sol"; + +/// @title A contract that allows configuring the cauldron and ladle within bounds +contract ContangoWand is AccessControl { + using CauldronUtils for ICauldron; + using Math for *; + + uint256 public constant WAD = 1e18; + + ICauldron public immutable contangoCauldron; + ICauldron public immutable yieldCauldron; + ILadle public immutable contangoLadle; + ILadle public immutable yieldLadle; + YieldSpaceMultiOracle public immutable yieldSpaceOracle; + CompositeMultiOracle public immutable compositeOracle; + address public immutable yieldTimelock; + IWitch public immutable contangoWitch; + + struct WitchDefaults { + uint32 duration; + uint64 vaultProportion; + uint64 intialDiscount; + } + + WitchDefaults public witchDefaults; + mapping(bytes6 => mapping(bytes6 => uint32)) public ratio; + mapping(bytes6 => mapping(bytes6 => DataTypes.Debt)) public debt; + + constructor( + ICauldron contangoCauldron_, + ICauldron yieldCauldron_, + ILadle contangoLadle_, + ILadle yieldLadle_, + YieldSpaceMultiOracle yieldSpaceOracle_, + CompositeMultiOracle compositeOracle_, + address yieldTimelock_, + IWitch contangoWitch_ + ) { + contangoCauldron = contangoCauldron_; + yieldCauldron = yieldCauldron_; + contangoLadle = contangoLadle_; + yieldLadle = yieldLadle_; + yieldSpaceOracle = yieldSpaceOracle_; + compositeOracle = compositeOracle_; + yieldTimelock = yieldTimelock_; + contangoWitch = contangoWitch_; + } + + /// ----------------- Cauldron Governance ----------------- + + /// @notice Copy the spotOracle and ratio from the master cauldron + function copySpotOracle(bytes6 baseId, bytes6 ilkId) external auth { + DataTypes.SpotOracle memory spotOracle_ = yieldCauldron.spotOracles(baseId, ilkId); + contangoCauldron.setSpotOracle(baseId, ilkId, spotOracle_.oracle, spotOracle_.ratio); + } + + /// @notice Copy the lending oracle from the master cauldron + function copyLendingOracle(bytes6 baseId) external auth { + _copyLendingOracle(baseId); + } + + function _copyLendingOracle(bytes6 baseId) internal { + contangoCauldron.setLendingOracle(baseId, yieldCauldron.lendingOracles(baseId)); + } + + /// @notice Copy the debt limits from the master cauldron + function copyDebtLimits(bytes6 baseId, bytes6 ilkId) external auth { + DataTypes.Debt memory debt_ = yieldCauldron.debt(baseId, ilkId); + if (debt_.max == 0) { + debt_ = yieldCauldron.debt(baseId, yieldCauldron.series(ilkId).baseId); + } + contangoCauldron.setDebtLimits(baseId, ilkId, debt_.max, debt_.min, debt_.dec); + } + + /// @notice Add a new asset in the Cauldron, as long as it is an asset or fyToken known to the Yield Cauldron + function addAsset(bytes6 assetId) external auth returns (address asset_) { + asset_ = _addAsset(assetId); + } + + function _addAsset(bytes6 assetId) internal returns (address asset_) { + asset_ = yieldCauldron.assets(assetId); + if (asset_ == address(0)) { + asset_ = address(yieldCauldron.series(assetId).fyToken); + } + require(asset_ != address(0), "Asset not known to the Yield Cauldron"); + contangoCauldron.addAsset(assetId, asset_); + } + + /// @notice Add a new series, if it exists in the Yield Cauldron + function addSeries(bytes6 seriesId) external auth returns (DataTypes.Series memory series_) { + series_ = yieldCauldron.series(seriesId); + require(address(series_.fyToken) != address(0), "Series not known to the Yield Cauldron"); + if (contangoCauldron.assets(series_.baseId) == address(0)) { + _addAsset(series_.baseId); + _copyLendingOracle(series_.baseId); + _copyJoin(series_.baseId); + } + + AccessControl(address(series_.fyToken)).grantRole(IFYToken.mint.selector, address(contangoLadle)); + AccessControl(address(series_.fyToken)).grantRole(IFYToken.burn.selector, address(contangoLadle)); + + AccessControl(address(series_.fyToken)).grantRole(IFYToken.burn.selector, address(contangoWitch)); + + contangoCauldron.addSeries(seriesId, series_.baseId, series_.fyToken); + } + + /// @notice Set the ratio for a given asset pair in the Cauldron, within bounds. Set the spot oracle always to the composite oracle. + function setRatio(bytes6 baseId, bytes6 ilkId, uint32 ratio_) external auth { + // If the ilkId is a series and boundaries are not set, set ratio to the default + uint32 bound_ = ratio[baseId][ilkId]; + if (bound_ == 0) { + bound_ = ratio[baseId][yieldCauldron.series(ilkId).baseId]; + } + if (bound_ == 0) { + bound_ = yieldCauldron.spotOracles(baseId, ilkId).ratio; + } + if (bound_ == 0) { + bound_ = yieldCauldron.spotOracles(baseId, yieldCauldron.series(ilkId).baseId).ratio; + } + + require(bound_ > 0, "Default ratio not set"); + require(ratio_ >= bound_, "Ratio out of bounds"); + + contangoCauldron.setSpotOracle(baseId, ilkId, compositeOracle, ratio_); + } + + /// @notice Bound ratio for a given asset pair + function boundRatio(bytes6 baseId, bytes6 ilkId, uint32 ratio_) external auth { + ratio[baseId][ilkId] = ratio_; + } + + /// @notice Add ilks to series + function addIlks(bytes6 seriesId, bytes6[] calldata ilkIds) external auth { + contangoCauldron.addIlks(seriesId, ilkIds); + } + + /// @notice Bound debt limits for a given asset pair + function boundDebtLimits(bytes6 baseId, bytes6 ilkId, uint96 max, uint24 min, uint8 dec) external auth { + debt[baseId][ilkId] = DataTypes.Debt({max: max, min: min, dec: dec, sum: 0}); + } + + /// @notice Set the debt limits for a given asset pair in the Cauldron, within bounds + function setDebtLimits(bytes6 baseId, bytes6 ilkId, uint96 max, uint24 min, uint8 dec) external auth { + // If the ilkId is a series and boundaries are not set, set them to default values + DataTypes.Debt memory bounds_ = debt[baseId][ilkId]; + if (bounds_.max == 0) { + bounds_ = debt[baseId][yieldCauldron.series(ilkId).baseId]; + } + if (bounds_.max == 0) { + bounds_ = yieldCauldron.debt(baseId, ilkId); + } + if (bounds_.max == 0) { + bounds_ = yieldCauldron.debt(baseId, yieldCauldron.series(ilkId).baseId); + } + + uint256 paramMultiplier = 10 ** dec; + uint256 boundsMultiplier = 10 ** bounds_.dec; + + require(max * paramMultiplier <= bounds_.max * boundsMultiplier, "Max debt out of bounds"); + require(min * paramMultiplier >= bounds_.min * boundsMultiplier, "Min debt out of bounds"); + + contangoCauldron.setDebtLimits(baseId, ilkId, max, min, dec); + } + + /// ----------------- Oracle Governance ----------------- + + /// @notice Set a pool as a source in the YieldSpace oracle, as long as: + /// - It is a pool known to the Yield Ladle + /// - The baseId matches the pool's baseId + /// - The quoteId matches the pool's seriesId + function setYieldSpaceOracleSource(bytes6 seriesId) external auth { + IPool pool_ = IPool(yieldLadle.pools(seriesId)); + require(address(pool_) != address(0), "Pool not known to the Yield Ladle"); + DataTypes.Series memory series_ = yieldCauldron.series(seriesId); + require(address(series_.fyToken) != address(0), "Series not known to the Yield Cauldron"); + require(address(series_.fyToken) == address(pool_.fyToken()), "fyToken mismatch"); // Sanity check + + yieldSpaceOracle.setSource(seriesId, series_.baseId, pool_); + } + + /// @notice Set the YieldSpace oracle as the source for a given asset pair in the Composite oracle, provided the source is set in the YieldSpace oracle + function setCompositeOracleSource(bytes6 baseId, bytes6 ilkId) external auth { + DataTypes.Series memory series_ = yieldCauldron.series(ilkId); + if (series_.fyToken != IFYToken(address(0))) { + (IPool pool_,) = yieldSpaceOracle.sources(baseId, ilkId); + require(address(pool_) != address(0), "YieldSpace oracle not set"); + compositeOracle.setSource(baseId, ilkId, yieldSpaceOracle); + } else if (yieldCauldron.assets(ilkId) != address(0)) { + DataTypes.SpotOracle memory spotOracle_ = yieldCauldron.lookupSpotOracle(baseId, ilkId); + compositeOracle.setSource(baseId, ilkId, spotOracle_.oracle); + } + } + + /// @notice Set a path in the Composite oracle, as long as the path is not overwriting anything + function setCompositeOraclePath(bytes6 baseId, bytes6 quoteId, bytes6[] calldata path) external auth { + // This is hideous, but's the only way to check if a path is already set + try compositeOracle.paths(baseId, quoteId, 0) { + revert("Path already set"); + } catch { + compositeOracle.setPath(baseId, quoteId, path); + } + } + + /// ----------------- Ladle Governance ----------------- + + /// @notice Propagate a pool to the Ladle from the Yield Ladle + function addPool(bytes6 seriesId) external auth returns (IPool pool_) { + pool_ = IPool(yieldLadle.pools(seriesId)); + require(address(pool_) != address(0), "Pool not known to the Yield Ladle"); + contangoLadle.addPool(seriesId, pool_); + } + + /// @notice Propagate an integration to the Ladle from the Yield Ladle + function addIntegration(address integration) external auth { + contangoLadle.addIntegration(integration, yieldLadle.integrations(integration)); + } + + /// @notice Propagate a token to the Ladle from the Yield Ladle + function addToken(address token) external auth { + contangoLadle.addToken(token, yieldLadle.tokens(token)); + } + + function copyJoin(bytes6 assetId) external auth { + _copyJoin(assetId); + } + + function _copyJoin(bytes6 assetId) internal { + IJoin join = yieldLadle.joins(assetId); + require(address(join) != address(0), "Join not known to the Yield Ladle"); + _addJoin(assetId, yieldLadle.joins(assetId)); + } + + function _addJoin(bytes6 assetId, IJoin join) internal { + contangoLadle.addJoin(assetId, join); + + AccessControl(address(join)).grantRole(IJoin.join.selector, address(contangoLadle)); + AccessControl(address(join)).grantRole(IJoin.exit.selector, address(contangoLadle)); + + AccessControl(address(join)).grantRole(IJoin.join.selector, address(contangoWitch)); + AccessControl(address(join)).grantRole(IJoin.exit.selector, address(contangoWitch)); + } + + // TODO Maybe check if the join exists before deploying? + + function deployJoin(bytes6 assetId) external auth returns (IJoin join) { + address asset = contangoCauldron.assets(assetId); + require(asset != address(0), "Asset not known to the Contango Cauldron"); + require(contangoLadle.joins(assetId) == IJoin(address(0)), "Join already known to the Contango Ladle"); + + Join join_ = new Join(asset); + join_.grantRole(join_.ROOT(), yieldTimelock); + + join = IJoin(address(join_)); + _addJoin(assetId, join); + } + + /// ----------------- Witch Governance ----------------- + + function setWitchDefaults(uint32 duration, uint64 vaultProportion, uint64 intialDiscount) external auth { + witchDefaults = WitchDefaults(duration, vaultProportion, intialDiscount); + } + + function setLineAndLimit( + bytes6 ilkId, + bytes6 baseId, + uint32 duration, + uint64 vaultProportion, + uint64 collateralProportion, + uint128 max + ) external auth { + contangoWitch.setLineAndLimit(ilkId, baseId, duration, vaultProportion, collateralProportion, max); + } + + function configureWitch(bytes6 ilkId, bytes6 baseId, uint128 max) external auth { + DataTypes.SpotOracle memory spotOracle_ = contangoCauldron.lookupSpotOracle(baseId, ilkId); + + contangoWitch.setLineAndLimit({ + ilkId: ilkId, + baseId: baseId, + duration: witchDefaults.duration, + vaultProportion: witchDefaults.vaultProportion, + collateralProportion: uint64((WAD + witchDefaults.intialDiscount).wdivup(uint256(spotOracle_.ratio) * 10 ** 12)), + max: max + }); + } + + function setAuctioneerReward(uint256 auctioneerReward) external auth { + contangoWitch.setAuctioneerReward(auctioneerReward); + } +} + +library CauldronUtils { + function lookupSpotOracle(ICauldron cauldron, bytes6 baseId, bytes6 ilkId) + internal + view + returns (DataTypes.SpotOracle memory spotOracle_) + { + spotOracle_ = cauldron.spotOracles(baseId, ilkId); + if (address(spotOracle_.oracle) == address(0)) { + spotOracle_ = cauldron.spotOracles(ilkId, baseId); + } + require(address(spotOracle_.oracle) != address(0), "Spot oracle not known to the Cauldron"); + } +} diff --git a/src/test/other/contango/ContangoWand.t.sol b/src/test/other/contango/ContangoWand.t.sol new file mode 100644 index 000000000..26b8728a7 --- /dev/null +++ b/src/test/other/contango/ContangoWand.t.sol @@ -0,0 +1,616 @@ +// SPDX-License-Identifier: BUSL-1.1 +pragma solidity >=0.8.13; + +import "forge-std/src/Test.sol"; +import "../../utils/TestConstants.sol"; +import "../../utils/Mocks.sol"; + +import "../../../interfaces/IWitch.sol"; +import "../../../Cauldron.sol"; +import "../../../Join.sol"; +import "../../../other/contango/ContangoLadle.sol"; +import "../../../other/contango/ContangoWand.sol"; + +contract ContangoWandTest is Test, TestConstants { + ICauldron internal contangoCauldron = ICauldron(0x44386ddB4C44E7CB8981f97AF89E928Ddd4258DD); + ILadle public immutable contangoLadle = ILadle(0x93343C08e2055b7793a3336d659Be348FC1B08f9); + IWitch internal immutable contangoWitch = IWitch(0x89343a24a217172A569A0bD68763Bf0671A3efd8); + + ICauldron internal yieldCauldron = ICauldron(0x23cc87FBEBDD67ccE167Fa9Ec6Ad3b7fE3892E30); + ILadle public immutable yieldLadle = ILadle(0x16E25cf364CeCC305590128335B8f327975d0560); + address internal immutable yieldTimelock = 0xd0a22827Aed2eF5198EbEc0093EA33A4CD641b6c; + + YieldSpaceMultiOracle public immutable yieldSpaceOracle = + YieldSpaceMultiOracle(0xb958bA862D70C0a4bD0ea976f9a1907686dd41e2); + CompositeMultiOracle public immutable compositeOracle = + CompositeMultiOracle(0x750B3a18115fe090Bc621F9E4B90bd442bcd02F2); + + address internal bob = address(0xb0b); + + ContangoWand internal wand; + + function setUp() public virtual { + vm.createSelectFork("ARBITRUM", 65404751); + + wand = new ContangoWand( + contangoCauldron, + yieldCauldron, + contangoLadle, + yieldLadle, + yieldSpaceOracle, + compositeOracle, + yieldTimelock, + contangoWitch + ); + + bytes4 root = 0x0; + wand.grantRole(root, addresses[ARBITRUM][TIMELOCK]); + + vm.startPrank(addresses[ARBITRUM][TIMELOCK]); + + AccessControl(address(yieldLadle.joins(USDT))).grantRole(root, address(wand)); + AccessControl(address(yieldCauldron.series(FYUSDT2306).fyToken)).grantRole(root, address(wand)); + + wand.grantRole(wand.copySpotOracle.selector, address(this)); + AccessControl(address(contangoCauldron)).grantRole(Cauldron.setSpotOracle.selector, address(wand)); + wand.grantRole(wand.copyLendingOracle.selector, address(this)); + AccessControl(address(contangoCauldron)).grantRole(Cauldron.setLendingOracle.selector, address(wand)); + wand.grantRole(wand.copyDebtLimits.selector, address(this)); + AccessControl(address(contangoCauldron)).grantRole(Cauldron.setDebtLimits.selector, address(wand)); + wand.grantRole(wand.addAsset.selector, address(this)); + AccessControl(address(contangoCauldron)).grantRole(Cauldron.addAsset.selector, address(wand)); + wand.grantRole(wand.addSeries.selector, address(this)); + AccessControl(address(contangoCauldron)).grantRole(Cauldron.addSeries.selector, address(wand)); + wand.grantRole(wand.addIlks.selector, address(this)); + AccessControl(address(contangoCauldron)).grantRole(Cauldron.addIlks.selector, address(wand)); + wand.grantRole(wand.setRatio.selector, address(this)); + wand.grantRole(wand.boundRatio.selector, address(this)); + wand.grantRole(wand.setDebtLimits.selector, address(this)); + wand.grantRole(wand.boundDebtLimits.selector, address(this)); + AccessControl(address(yieldSpaceOracle)).grantRole(YieldSpaceMultiOracle.setSource.selector, address(wand)); + wand.grantRole(wand.setYieldSpaceOracleSource.selector, address(this)); + AccessControl(address(compositeOracle)).grantRole(CompositeMultiOracle.setSource.selector, address(wand)); + wand.grantRole(wand.setCompositeOracleSource.selector, address(this)); + AccessControl(address(compositeOracle)).grantRole(CompositeMultiOracle.setPath.selector, address(wand)); + wand.grantRole(wand.setCompositeOraclePath.selector, address(this)); + AccessControl(address(contangoLadle)).grantRole(ILadle.addPool.selector, address(wand)); + wand.grantRole(wand.addPool.selector, address(this)); + AccessControl(address(contangoLadle)).grantRole(ILadle.addIntegration.selector, address(wand)); + wand.grantRole(wand.addIntegration.selector, address(this)); + AccessControl(address(contangoLadle)).grantRole(ILadle.addToken.selector, address(wand)); + wand.grantRole(wand.addToken.selector, address(this)); + AccessControl(address(contangoLadle)).grantRole(ILadle.addJoin.selector, address(wand)); + wand.grantRole(wand.copyJoin.selector, address(this)); + wand.grantRole(wand.deployJoin.selector, address(this)); + AccessControl(address(contangoWitch)).grantRole(IWitchGov.setLineAndLimit.selector, address(wand)); + wand.grantRole(wand.setLineAndLimit.selector, address(this)); + wand.grantRole(wand.setWitchDefaults.selector, address(this)); + wand.grantRole(wand.configureWitch.selector, address(this)); + AccessControl(address(contangoWitch)).grantRole(IWitchGov.setAuctioneerReward.selector, address(wand)); + wand.grantRole(wand.setAuctioneerReward.selector, address(this)); + vm.stopPrank(); + } + + function testCopySpotOracle_Auth() public { + vm.prank(bob); + vm.expectRevert("Access denied"); + wand.copySpotOracle(USDC, FYETH2306); + } + + function testCopySpotOracle() public { + wand.copySpotOracle(USDC, ETH); + + DataTypes.SpotOracle memory yieldOracle = yieldCauldron.spotOracles(USDC, ETH); + DataTypes.SpotOracle memory contangoOracle = contangoCauldron.spotOracles(USDC, ETH); + + assertEq(address(yieldOracle.oracle), address(contangoOracle.oracle), "oracle"); + assertEq(yieldOracle.ratio, contangoOracle.ratio, "ratio"); + } + + function testCopyLendingOracle_Auth() public { + vm.prank(bob); + vm.expectRevert("Access denied"); + wand.copyLendingOracle(USDC); + } + + function testCopyLendingOracle() public { + wand.copyLendingOracle(USDC); + + IOracle yieldOracle = yieldCauldron.lendingOracles(USDC); + IOracle contangoOracle = contangoCauldron.lendingOracles(USDC); + + assertEq(address(yieldOracle), address(contangoOracle), "oracle"); + } + + function testCopyDebtLimits_Auth() public { + vm.prank(bob); + vm.expectRevert("Access denied"); + wand.copyDebtLimits(USDC, FYETH2306); + } + + function testCopyDebtLimits() public { + wand.copyDebtLimits(USDC, ETH); + + DataTypes.Debt memory yieldDebt = yieldCauldron.debt(USDC, ETH); + DataTypes.Debt memory contangoDebt = contangoCauldron.debt(USDC, ETH); + + assertEq(yieldDebt.max, contangoDebt.max, "max"); + assertEq(yieldDebt.min, contangoDebt.min, "min"); + assertEq(yieldDebt.dec, contangoDebt.dec, "dec"); + } + + function testCopyDebtLimits_FromSeries() public { + wand.copyDebtLimits(USDC, FYETH2306); + + DataTypes.Debt memory yieldDebt = yieldCauldron.debt(USDC, ETH); + DataTypes.Debt memory contangoDebt = contangoCauldron.debt(USDC, FYETH2306); + + assertEq(yieldDebt.max, contangoDebt.max, "max"); + assertEq(yieldDebt.min, contangoDebt.min, "min"); + assertEq(yieldDebt.dec, contangoDebt.dec, "dec"); + } + + function testAddAsset_Auth() public { + vm.prank(bob); + vm.expectRevert("Access denied"); + wand.addAsset(USDT); + } + + function testAddAsset() public { + wand.addAsset(USDT); + assertEq(contangoCauldron.assets(USDT), 0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9, "asset"); + } + + function testAddAsset_FromSeries() public { + wand.addAsset(FYUSDT2306); + assertEq(contangoCauldron.assets(FYUSDT2306), 0x035072cb2912DAaB7B578F468Bd6F0d32a269E32, "asset"); + } + + function testAddSeries_Auth() public { + vm.prank(bob); + vm.expectRevert("Access denied"); + wand.addSeries(FYUSDT2306); + } + + function testAddSeries() public { + wand.addSeries(FYUSDT2306); + + DataTypes.Series memory yieldSeries = yieldCauldron.series(FYUSDT2306); + DataTypes.Series memory contangoSeries = contangoCauldron.series(FYUSDT2306); + + AccessControl fyToken = AccessControl(address(yieldSeries.fyToken)); + + assertEq(address(contangoSeries.fyToken), address(fyToken), "fyToken"); + assertEq(yieldSeries.baseId, contangoSeries.baseId, "baseId"); + assertEq(yieldSeries.maturity, contangoSeries.maturity, "maturity"); + + assertTrue(fyToken.hasRole(IFYToken.mint.selector, address(contangoLadle)), "contango ladle can mint"); + assertTrue(fyToken.hasRole(IFYToken.burn.selector, address(contangoLadle)), "contango ladle can burn"); + + assertTrue(fyToken.hasRole(IFYToken.burn.selector, address(contangoWitch)), "contango witch can burn"); + } + + function testSetRatio_Auth() public { + vm.prank(bob); + vm.expectRevert("Access denied"); + wand.setRatio(USDT, FYETH2306, 1.4e6); + } + + function testSetRatio_BoundsSetForSeriesId() public { + wand.addAsset(USDT); + uint32 bound = 1.3e6; + wand.boundRatio(USDT, FYETH2306, bound); + + vm.expectRevert("Ratio out of bounds"); + wand.setRatio(USDT, FYETH2306, bound - 1); + + wand.setRatio(USDT, FYETH2306, bound); + DataTypes.SpotOracle memory contangoOracle = contangoCauldron.spotOracles(USDT, FYETH2306); + assertEq(address(contangoOracle.oracle), address(compositeOracle), "oracle"); + assertEq(contangoOracle.ratio, bound, "ratio"); + } + + function testSetRatio_BoundsSetForSeriesIdBaseId() public { + wand.addAsset(USDT); + uint32 bound = 1.3e6; + wand.boundRatio(USDT, ETH, bound); + + vm.expectRevert("Ratio out of bounds"); + wand.setRatio(USDT, FYETH2306, bound - 1); + + wand.setRatio(USDT, FYETH2306, bound); + DataTypes.SpotOracle memory contangoOracle = contangoCauldron.spotOracles(USDT, FYETH2306); + assertEq(address(contangoOracle.oracle), address(compositeOracle), "oracle"); + assertEq(contangoOracle.ratio, bound, "ratio"); + } + + function testSetRatio_YieldCauldronAsBounds_BoundsSetForAssetId() public { + wand.addAsset(USDT); + uint32 bound = 1.4e6; + + vm.expectRevert("Ratio out of bounds"); + wand.setRatio(USDT, ETH, bound - 1); + + wand.setRatio(USDT, ETH, bound); + DataTypes.SpotOracle memory contangoOracle = contangoCauldron.spotOracles(USDT, ETH); + assertEq(address(contangoOracle.oracle), address(compositeOracle), "oracle"); + assertEq(contangoOracle.ratio, bound, "ratio"); + } + + function testSetRatio_YieldCauldronAsBounds_BoundsSetForSeriesIdBaseId() public { + wand.addAsset(USDT); + uint32 bound = 1.4e6; + + vm.expectRevert("Ratio out of bounds"); + wand.setRatio(USDT, FYETH2306, bound - 1); + + wand.setRatio(USDT, FYETH2306, bound); + DataTypes.SpotOracle memory contangoOracle = contangoCauldron.spotOracles(USDT, FYETH2306); + assertEq(address(contangoOracle.oracle), address(compositeOracle), "oracle"); + assertEq(contangoOracle.ratio, bound, "ratio"); + } + + function testAddIlks_Auth() public { + vm.prank(bob); + vm.expectRevert("Access denied"); + wand.addSeries(FYUSDT2306); + } + + function testAddIlks() public { + wand.addAsset(USDT); + wand.copyLendingOracle(USDT); + wand.addSeries(FYUSDT2306); + wand.setRatio(USDT, FYETH2306, 1.4e6); + + bytes6[] memory ilkIds = new bytes6[](1); + ilkIds[0] = FYETH2306; + + wand.addIlks(FYUSDT2306, ilkIds); + + assertTrue(contangoCauldron.ilks(FYUSDT2306, FYETH2306), "ilk"); + } + + function testSetDebtLimits_Auth() public { + vm.prank(bob); + vm.expectRevert("Access denied"); + wand.setDebtLimits(USDT, FYETH2306, 500_000, 40, 6); + } + + function testSetDebtLimits_BoundsSetForSeriesId() public { + wand.addAsset(USDT); + uint96 max = 500_000; + uint24 min = 40; + uint8 dec = 6; + wand.boundDebtLimits(USDT, FYETH2306, max, min, dec); + + vm.expectRevert("Max debt out of bounds"); + wand.setDebtLimits(USDT, FYETH2306, max + 1, min, dec); + + vm.expectRevert("Min debt out of bounds"); + wand.setDebtLimits(USDT, FYETH2306, max, min - 1, dec); + + wand.setDebtLimits(USDT, FYETH2306, max, min, dec); + DataTypes.Debt memory contangoDebtLimits = contangoCauldron.debt(USDT, FYETH2306); + assertEq(contangoDebtLimits.max, max, "max"); + assertEq(contangoDebtLimits.min, min, "min"); + assertEq(contangoDebtLimits.dec, dec, "dec"); + } + + function testSetDebtLimits_BoundsSetForSeriesIdBaseId() public { + wand.addAsset(USDT); + uint96 max = 500_000; + uint24 min = 40; + uint8 dec = 6; + wand.boundDebtLimits(USDT, ETH, max, min, dec); + + vm.expectRevert("Max debt out of bounds"); + wand.setDebtLimits(USDT, FYETH2306, max + 1, min, dec); + + vm.expectRevert("Min debt out of bounds"); + wand.setDebtLimits(USDT, FYETH2306, max, min - 1, dec); + + wand.setDebtLimits(USDT, FYETH2306, max, min, dec); + DataTypes.Debt memory contangoDebtLimits = contangoCauldron.debt(USDT, FYETH2306); + assertEq(contangoDebtLimits.max, max, "max"); + assertEq(contangoDebtLimits.min, min, "min"); + assertEq(contangoDebtLimits.dec, dec, "dec"); + } + + function testSetDebtLimits_YieldCauldronAsBounds_BoundsSetForAssetId() public { + wand.addAsset(USDT); + uint96 max = 100_000; + uint24 min = 100; + uint8 dec = 6; + + vm.expectRevert("Max debt out of bounds"); + wand.setDebtLimits(USDT, ETH, max + 1, min, dec); + + vm.expectRevert("Min debt out of bounds"); + wand.setDebtLimits(USDT, ETH, max, min - 1, dec); + + wand.setDebtLimits(USDT, ETH, max, min, dec); + DataTypes.Debt memory contangoDebtLimits = contangoCauldron.debt(USDT, ETH); + assertEq(contangoDebtLimits.max, max, "max"); + assertEq(contangoDebtLimits.min, min, "min"); + assertEq(contangoDebtLimits.dec, dec, "dec"); + } + + function testSetDebtLimits_YieldCauldronAsBounds_BoundsSetForSeriesIdBaseId() public { + wand.addAsset(USDT); + uint96 max = 100_000; + uint24 min = 100; + uint8 dec = 6; + + vm.expectRevert("Max debt out of bounds"); + wand.setDebtLimits(USDT, FYETH2306, max + 1, min, dec); + + vm.expectRevert("Min debt out of bounds"); + wand.setDebtLimits(USDT, FYETH2306, max, min - 1, dec); + + wand.setDebtLimits(USDT, FYETH2306, max, min, dec); + DataTypes.Debt memory contangoDebtLimits = contangoCauldron.debt(USDT, FYETH2306); + assertEq(contangoDebtLimits.max, max, "max"); + assertEq(contangoDebtLimits.min, min, "min"); + assertEq(contangoDebtLimits.dec, dec, "dec"); + } + + function testSetDebtLimits_OverrideDecPrecision() public { + wand.addAsset(USDT); + uint96 max = 100_000_0; + uint24 min = 100_0; + uint8 dec = 5; + + vm.expectRevert("Max debt out of bounds"); + wand.setDebtLimits(USDT, ETH, max + 1, min, dec); + + vm.expectRevert("Min debt out of bounds"); + wand.setDebtLimits(USDT, ETH, max, min - 1, dec); + + wand.setDebtLimits(USDT, ETH, max, min, dec); + DataTypes.Debt memory contangoDebtLimits = contangoCauldron.debt(USDT, ETH); + assertEq(contangoDebtLimits.max, max, "max"); + assertEq(contangoDebtLimits.min, min, "min"); + assertEq(contangoDebtLimits.dec, dec, "dec"); + } + + function testSetYieldSpaceOracleSource_Auth() public { + vm.prank(bob); + vm.expectRevert("Access denied"); + wand.setYieldSpaceOracleSource(FYUSDT2306); + } + + function testSetYieldSpaceOracleSource() public { + wand.setYieldSpaceOracleSource(FYUSDT2306); + + (IPool pool, bool lending) = yieldSpaceOracle.sources(USDT, FYUSDT2306); + assertEq(address(pool), 0xc6078e090641cC32b05a7F3F102F272A4Ee19867, "pool"); + assertTrue(lending, "lending"); + + (pool, lending) = yieldSpaceOracle.sources(FYUSDT2306, USDT); + assertEq(address(pool), 0xc6078e090641cC32b05a7F3F102F272A4Ee19867, "pool"); + assertFalse(lending, "lending"); + } + + function testSetYieldSpaceOracleSource_InvalidSeries() public { + vm.expectRevert("Pool not known to the Yield Ladle"); + wand.setYieldSpaceOracleSource("series"); + } + + function testCompositeOracleSource_Auth() public { + vm.prank(bob); + vm.expectRevert("Access denied"); + wand.setCompositeOracleSource(USDT, FYETH2306); + } + + function testCompositeOracleSource_InvalidPair() public { + vm.expectRevert("YieldSpace oracle not set"); + wand.setCompositeOracleSource(USDT, FYETH2306); + } + + function testCompositeOracleSource_FYToken() public { + wand.setYieldSpaceOracleSource(FYUSDT2306); + + wand.setCompositeOracleSource(USDT, FYUSDT2306); + + IOracle source = compositeOracle.sources(USDT, FYUSDT2306); + assertEq(address(source), address(yieldSpaceOracle), "source"); + } + + function testCompositeOracleSource_Asset() public { + wand.setCompositeOracleSource(USDT, ETH); + + IOracle source = compositeOracle.sources(USDT, ETH); + assertEq(address(source), 0x8E9696345632796e7D80fB341fF4a2A60aa39C89, "source"); + } + + function testCompositeOraclePath_Auth() public { + vm.prank(bob); + vm.expectRevert("Access denied"); + wand.setCompositeOraclePath(USDT, FYETH2306, new bytes6[](0)); + } + + function testCompositeOraclePath_InvalidPair() public { + vm.expectRevert("Path already set"); + wand.setCompositeOraclePath(USDC, FYETH2306, new bytes6[](0)); + } + + function testCompositeOraclePath() public { + wand.setYieldSpaceOracleSource(FYUSDT2306); + wand.setCompositeOracleSource(USDT, ETH); + wand.setCompositeOracleSource(USDT, FYUSDT2306); + + bytes6[] memory path = new bytes6[](1); + path[0] = ETH; + + wand.setCompositeOraclePath(USDT, FYETH2306, path); + + (uint256 amountQuote, uint256 updateTime) = compositeOracle.peek(USDT, FYETH2306, 1000e6); + assertGt(amountQuote, 0, "amountQuote"); + assertGt(updateTime, 0, "updateTime"); + } + + function testAddPool_Auth() public { + vm.prank(bob); + vm.expectRevert("Access denied"); + wand.addPool(FYUSDT2306); + } + + function testAddPool_Invalid() public { + vm.expectRevert("Pool not known to the Yield Ladle"); + wand.addPool("meh"); + } + + function testAddPool() public { + wand.addAsset(USDT); + wand.copyLendingOracle(USDT); + wand.addSeries(FYUSDT2306); + + wand.addPool(FYUSDT2306); + + assertEq(contangoLadle.pools(FYUSDT2306), 0xc6078e090641cC32b05a7F3F102F272A4Ee19867, "pool"); + } + + function testIntegration_Auth() public { + vm.prank(bob); + vm.expectRevert("Access denied"); + wand.addIntegration(address(0)); + } + + function testAddIntegration() public { + assertTrue(yieldLadle.integrations(0xE779cd75E6c574d83D3FD6C92F3CBE31DD32B1E1), "yield integration"); + + wand.addIntegration(0xE779cd75E6c574d83D3FD6C92F3CBE31DD32B1E1); + + assertTrue(contangoLadle.integrations(0xE779cd75E6c574d83D3FD6C92F3CBE31DD32B1E1), "yield integration"); + } + + function testToken_Auth() public { + vm.prank(bob); + vm.expectRevert("Access denied"); + wand.addToken(address(0)); + } + + function testAddToken() public { + assertTrue(yieldLadle.tokens(0xad1983745D6c739537fEaB5bed45795f47A940b3), "yield integration"); + + wand.addToken(0xad1983745D6c739537fEaB5bed45795f47A940b3); + + assertTrue(contangoLadle.tokens(0xad1983745D6c739537fEaB5bed45795f47A940b3), "yield integration"); + } + + function testCopyJoin_Auth() public { + vm.prank(bob); + vm.expectRevert("Access denied"); + wand.copyJoin(FYUSDT2306); + } + + function testCopyJoin_Invalid() public { + vm.expectRevert("Join not known to the Yield Ladle"); + wand.copyJoin("meh"); + } + + function testCopyJoin() public { + wand.addAsset(USDT); + + AccessControl join = AccessControl(address(yieldLadle.joins(USDT))); + + wand.copyJoin(USDT); + + assertEq(address(contangoLadle.joins(USDT)), address(join), "join"); + + assertTrue(join.hasRole(IJoin.join.selector, address(contangoLadle)), "contango ladle can join"); + assertTrue(join.hasRole(IJoin.exit.selector, address(contangoLadle)), "contango ladle can exit"); + + assertTrue(join.hasRole(IJoin.join.selector, address(contangoWitch)), "contango witch can join"); + assertTrue(join.hasRole(IJoin.exit.selector, address(contangoWitch)), "contango witch can exit"); + } + + function testDeployJoin_Auth() public { + vm.prank(bob); + vm.expectRevert("Access denied"); + wand.deployJoin(FYUSDT2306); + } + + function testDeployJoin_InvalidAsset() public { + vm.expectRevert("Asset not known to the Contango Cauldron"); + wand.deployJoin("meh"); + } + + function testDeployJoin_JoinExists() public { + vm.expectRevert("Join already known to the Contango Ladle"); + wand.deployJoin(ETH); + } + + function testDeployJoin() public { + wand.addAsset(USDT); + + AccessControl join = AccessControl(address(wand.deployJoin(USDT))); + + assertEq(address(contangoLadle.joins(USDT)), address(join), "join"); + + assertTrue(join.hasRole(IJoin.join.selector, address(contangoLadle)), "contango ladle can join"); + assertTrue(join.hasRole(IJoin.exit.selector, address(contangoLadle)), "contango ladle can exit"); + + assertTrue(join.hasRole(IJoin.join.selector, address(contangoWitch)), "contango witch can join"); + assertTrue(join.hasRole(IJoin.exit.selector, address(contangoWitch)), "contango witch can exit"); + } + + function testSetLineAndLimit_Auth() public { + vm.prank(bob); + vm.expectRevert("Access denied"); + wand.setLineAndLimit(FYUSDT2306, ETH, 10 minutes, 0.5e18, 0.75e18, 500_000e6); + } + + function testSetLineAndLimit() public { + wand.setLineAndLimit(FYUSDT2306, ETH, 10 minutes, 0.5e18, 0.75e18, 500_000e6); + + DataTypes.Line memory line = contangoWitch.lines(FYUSDT2306, ETH); + assertEq(line.duration, 10 minutes, "duration"); + assertEq(line.vaultProportion, 0.5e18, "vaultProportion"); + assertEq(line.collateralProportion, 0.75e18, "collateralProportion"); + DataTypes.Limits memory limits = contangoWitch.limits(FYUSDT2306, ETH); + assertEq(limits.max, 500_000e6, "max"); + } + + function testSetWitchDefaults_Auth() public { + vm.prank(bob); + vm.expectRevert("Access denied"); + wand.setWitchDefaults(10 minutes, 0.5e18, 0.05e18); + } + + function testSetWitchDefaults() public { + wand.setWitchDefaults(10 minutes, 0.5e18, 0.05e18); + + (uint32 duration, uint64 vaultProportion, uint64 intialDiscount) = wand.witchDefaults(); + assertEq(duration, 10 minutes, "duration"); + assertEq(vaultProportion, 0.5e18, "vaultProportion"); + assertEq(intialDiscount, 0.05e18, "intialDiscount"); + } + + function testConfigureWitch() public { + wand.setLineAndLimit(FYUSDC2306, ETH, 60 minutes, 1e18, 1e18, 1_000_000e6); + + wand.setWitchDefaults(10 minutes, 0.5e18, 0.05e18); + + wand.configureWitch(FYUSDC2306, ETH, 500_000e6); + + DataTypes.Line memory line = contangoWitch.lines(FYUSDC2306, ETH); + assertEq(line.duration, 10 minutes, "duration"); + assertEq(line.vaultProportion, 0.5e18, "vaultProportion"); + assertEq(line.collateralProportion, 0.75e18, "collateralProportion"); + DataTypes.Limits memory limits = contangoWitch.limits(FYUSDC2306, ETH); + assertEq(limits.max, 500_000e6, "max"); + } + + function testSetAuctioneerReward_Auth() public { + vm.prank(bob); + vm.expectRevert("Access denied"); + wand.setAuctioneerReward(0.02e18); + } + + function testSetAuctioneerReward() public { + wand.setAuctioneerReward(0.02e18); + + assertEq(contangoWitch.auctioneerReward(), 0.02e18, "auctioneerReward"); + } +} diff --git a/src/test/utils/TestConstants.sol b/src/test/utils/TestConstants.sol index 82c957c99..98cc278bc 100644 --- a/src/test/utils/TestConstants.sol +++ b/src/test/utils/TestConstants.sol @@ -23,6 +23,7 @@ contract TestConstants { bytes6 public constant RETH = 0xE03016000000; bytes6 public constant CRAB = 0x333800000000; bytes6 public constant OSQTH = 0x333900000000; + bytes6 public constant USDT = 0x30A000000000; bytes6 public constant FYETH2206 = bytes6("0006"); bytes6 public constant FYDAI2206 = bytes6("0106"); @@ -30,6 +31,9 @@ contract TestConstants { bytes6 public constant FYUSDC2209 = bytes6("0207"); bytes6 public constant FYUSDC2212 = bytes6("0208"); bytes6 public constant FYDAI2212 = bytes6("0108"); + bytes6 public constant FYETH2306 = 0x0_030_FF_000_28B; + bytes6 public constant FYUSDC2306 = 0x0_032_FF_000_28B; + bytes6 public constant FYUSDT2306 = 0x0_0A0_FF_000_28B; uint32 public constant EOJUN22 = 1656039600; @@ -46,6 +50,7 @@ contract TestConstants { string public constant TIMELOCK = "TIMELOCK"; string public constant CAULDRON = "CAULDRON"; string public constant LADLE = "LADLE"; + string public constant WETH = "WETH"; mapping (string => mapping (string => address)) public addresses; @@ -56,5 +61,6 @@ contract TestConstants { addresses[ARBITRUM][TIMELOCK] = 0xd0a22827Aed2eF5198EbEc0093EA33A4CD641b6c; addresses[ARBITRUM][CAULDRON] = 0x23cc87FBEBDD67ccE167Fa9Ec6Ad3b7fE3892E30; addresses[ARBITRUM][LADLE] = 0x16E25cf364CeCC305590128335B8f327975d0560; + addresses[ARBITRUM][WETH] = 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1; } }