From 16a686e9323d56add8757ff8976fef7d9a31616a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 3 Feb 2025 12:23:19 +0100 Subject: [PATCH] chore(output): weekly command output update (#1423) update command output Co-authored-by: zerosnacks --- src/SUMMARY.md | 3 +- src/output/cast/cast-call | 2 +- .../forge-test-cheatcodes-expectrevert | 11 +- src/output/cheatcodes/forge-test-simple | 8 +- src/output/forge_tree/forge-tree | 214 +- src/output/forge_tree/forge-tree-no-dedupe | 2345 ++++++++++++++++- src/output/fuzz_testing/forge-test-fail-fuzz | 8 +- src/output/fuzz_testing/forge-test-no-fuzz | 8 +- .../fuzz_testing/forge-test-success-fuzz | 8 +- src/output/hello_foundry/forge-build | 2 +- src/output/hello_foundry/forge-init | 4 +- src/output/hello_foundry/forge-install | 9 + src/output/hello_foundry/forge-remappings | 9 + src/output/hello_foundry/forge-test | 8 +- .../forge-test-match-contract-and-test | 10 +- src/output/test_filters/forge-test-match-path | 6 +- src/reference/cli/SUMMARY.md | 3 +- src/reference/cli/cast.md | 6 +- src/reference/cli/cast/access-list.md | 2 +- src/reference/cli/cast/admin.md | 2 +- src/reference/cli/cast/age.md | 2 +- src/reference/cli/cast/artifact.md | 2 +- src/reference/cli/cast/balance.md | 2 +- src/reference/cli/cast/base-fee.md | 2 +- src/reference/cli/cast/block-number.md | 2 +- src/reference/cli/cast/block.md | 2 +- src/reference/cli/cast/call.md | 2 +- src/reference/cli/cast/chain-id.md | 2 +- src/reference/cli/cast/chain.md | 2 +- src/reference/cli/cast/client.md | 2 +- src/reference/cli/cast/code.md | 2 +- src/reference/cli/cast/codehash.md | 2 +- src/reference/cli/cast/codesize.md | 2 +- src/reference/cli/cast/compute-address.md | 2 +- src/reference/cli/cast/constructor-args.md | 2 +- src/reference/cli/cast/creation-code.md | 2 +- src/reference/cli/cast/estimate.md | 2 +- src/reference/cli/cast/find-block.md | 2 +- src/reference/cli/cast/gas-price.md | 2 +- src/reference/cli/cast/implementation.md | 2 +- src/reference/cli/cast/logs.md | 2 +- src/reference/cli/cast/lookup-address.md | 2 +- src/reference/cli/cast/mktx.md | 2 +- src/reference/cli/cast/nonce.md | 2 +- src/reference/cli/cast/proof.md | 2 +- src/reference/cli/cast/publish.md | 2 +- src/reference/cli/cast/receipt.md | 2 +- src/reference/cli/cast/resolve-name.md | 2 +- src/reference/cli/cast/rpc.md | 2 +- src/reference/cli/cast/run.md | 2 +- src/reference/cli/cast/send.md | 2 +- src/reference/cli/cast/source.md | 82 + src/reference/cli/cast/storage-root.md | 2 +- src/reference/cli/cast/storage.md | 2 +- src/reference/cli/cast/tx.md | 2 +- src/reference/cli/cast/wallet/sign-auth.md | 2 +- src/reference/cli/forge.md | 1 - src/reference/cli/forge/bind.md | 7 - src/reference/cli/forge/coverage.md | 18 +- src/reference/cli/forge/create.md | 4 +- src/reference/cli/forge/inspect.md | 3 - src/reference/cli/forge/install.md | 1 + src/reference/cli/forge/script.md | 2 +- src/reference/cli/forge/snapshot.md | 18 +- src/reference/cli/forge/test.md | 18 +- src/reference/cli/forge/verify-bytecode.md | 2 +- src/reference/cli/forge/verify-check.md | 2 +- src/reference/cli/forge/verify-contract.md | 4 +- 68 files changed, 2672 insertions(+), 228 deletions(-) create mode 100644 src/output/hello_foundry/forge-install create mode 100644 src/output/hello_foundry/forge-remappings create mode 100644 src/reference/cli/cast/source.md diff --git a/src/SUMMARY.md b/src/SUMMARY.md index e88bbd9fe..44238547f 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -93,7 +93,6 @@ - [`forge config`](./reference/cli/forge/config.md) - [`forge coverage`](./reference/cli/forge/coverage.md) - [`forge create`](./reference/cli/forge/create.md) - - [`forge debug`](./reference/cli/forge/debug.md) - [`forge doc`](./reference/cli/forge/doc.md) - [`forge eip712`](./reference/cli/forge/eip712.md) - [`forge flatten`](./reference/cli/forge/flatten.md) @@ -169,7 +168,6 @@ - [`cast disassemble`](./reference/cli/cast/disassemble.md) - [`cast estimate`](./reference/cli/cast/estimate.md) - [`cast estimate --create`](./reference/cli/cast/estimate/--create.md) - - [`cast etherscan-source`](./reference/cli/cast/etherscan-source.md) - [`cast find-block`](./reference/cli/cast/find-block.md) - [`cast format-bytes32-string`](./reference/cli/cast/format-bytes32-string.md) - [`cast format-units`](./reference/cli/cast/format-units.md) @@ -213,6 +211,7 @@ - [`cast shr`](./reference/cli/cast/shr.md) - [`cast sig`](./reference/cli/cast/sig.md) - [`cast sig-event`](./reference/cli/cast/sig-event.md) + - [`cast source`](./reference/cli/cast/source.md) - [`cast storage`](./reference/cli/cast/storage.md) - [`cast storage-root`](./reference/cli/cast/storage-root.md) - [`cast to-ascii`](./reference/cli/cast/to-ascii.md) diff --git a/src/output/cast/cast-call b/src/output/cast/cast-call index 9b20516aa..d0791ab5c 100644 --- a/src/output/cast/cast-call +++ b/src/output/cast/cast-call @@ -3,6 +3,6 @@ $ cast call 0x6b175474e89094c44da98b954eedeac495271d0f "totalSupply()(uint256)" --rpc-url https://eth-mainnet.alchemyapi.io/v2/Lc7oIGYeL_QvInzI0Wiu_pOZZDEKBrdf // ANCHOR_END: command // ANCHOR: output -3489177579704044951076718634 [3.489e27] +3522677596509514749719947116 [3.522e27] // ANCHOR_END: output // ANCHOR_END: all diff --git a/src/output/cheatcodes/forge-test-cheatcodes-expectrevert b/src/output/cheatcodes/forge-test-cheatcodes-expectrevert index 3ae807cc5..4bc945ff3 100644 --- a/src/output/cheatcodes/forge-test-cheatcodes-expectrevert +++ b/src/output/cheatcodes/forge-test-cheatcodes-expectrevert @@ -1,15 +1,14 @@ // ANCHOR: all // ANCHOR: command -$ forge test --match-path test/OwnerUpOnly.t.sol +$ forge test --match-test test_IncrementAsOwner|test_IncrementAsNotOwner --match-path test/OwnerUpOnly.t.sol // ANCHOR_END: command // ANCHOR: output No files changed, compilation skipped -Ran 2 tests for test/OwnerUpOnly.t.sol:OwnerUpOnlyTest -[PASS] test_IncrementAsOwner() (gas: 29161) -[PASS] test_RevertWhen_CallerIsNotOwner() (gas: 8656) -Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 389.64µs (53.79µs CPU time) +Ran 1 test for test/OwnerUpOnly.t.sol:OwnerUpOnlyTest +[PASS] test_IncrementAsOwner() (gas: 29808) +Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 392.31µs (52.75µs CPU time) -Ran 2 test suite in 5.83ms (389.64µs CPU time): 2 tests passed, 0 failed, 0 skipped (2 total tests) +Ran 1 test suite in 5.44ms (392.31µs CPU time): 1 tests passed, 0 failed, 0 skipped (1 total tests) // ANCHOR_END: output // ANCHOR_END: all diff --git a/src/output/cheatcodes/forge-test-simple b/src/output/cheatcodes/forge-test-simple index f36bd0e84..bc36a1c8e 100644 --- a/src/output/cheatcodes/forge-test-simple +++ b/src/output/cheatcodes/forge-test-simple @@ -4,13 +4,13 @@ $ forge test --match-test test_IncrementAsOwner // ANCHOR_END: command // ANCHOR: output Compiling 24 files with Solc 0.8.10 -Solc 0.8.10 finished in 1.09s +Solc 0.8.10 finished in 677.30ms Compiler run successful! Ran 1 test for test/OwnerUpOnly.t.sol:OwnerUpOnlyTest -[PASS] test_IncrementAsOwner() (gas: 29161) -Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 386.84µs (52.61µs CPU time) +[PASS] test_IncrementAsOwner() (gas: 29808) +Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 508.94µs (61.16µs CPU time) -Ran 1 test suite in 5.63ms (386.84µs CPU time): 1 tests passed, 0 failed, 0 skipped (1 total tests) +Ran 1 test suite in 5.40ms (508.94µs CPU time): 1 tests passed, 0 failed, 0 skipped (1 total tests) // ANCHOR_END: output // ANCHOR_END: all diff --git a/src/output/forge_tree/forge-tree b/src/output/forge_tree/forge-tree index ebbbed7c5..77fa0d923 100644 --- a/src/output/forge_tree/forge-tree +++ b/src/output/forge_tree/forge-tree @@ -3,41 +3,185 @@ $ forge tree // ANCHOR_END: command // ANCHOR: output -src/OpenZeppelinNft.sol =0.8.10 -├── lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol ^0.8.0 -│ ├── lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol ^0.8.0 -│ │ └── lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol ^0.8.0 -│ ├── lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol ^0.8.0 -│ ├── lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol ^0.8.0 -│ │ └── lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol ^0.8.0 (*) -│ ├── lib/openzeppelin-contracts/contracts/utils/Address.sol ^0.8.1 -│ ├── lib/openzeppelin-contracts/contracts/utils/Context.sol ^0.8.0 -│ ├── lib/openzeppelin-contracts/contracts/utils/Strings.sol ^0.8.0 -│ └── lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol ^0.8.0 -│ └── lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol ^0.8.0 -├── lib/openzeppelin-contracts/contracts/utils/Strings.sol ^0.8.0 -├── lib/openzeppelin-contracts/contracts/security/PullPayment.sol ^0.8.0 -│ └── lib/openzeppelin-contracts/contracts/utils/escrow/Escrow.sol ^0.8.0 -│ ├── lib/openzeppelin-contracts/contracts/access/Ownable.sol ^0.8.0 -│ │ └── lib/openzeppelin-contracts/contracts/utils/Context.sol ^0.8.0 -│ └── lib/openzeppelin-contracts/contracts/utils/Address.sol ^0.8.1 -└── lib/openzeppelin-contracts/contracts/access/Ownable.sol ^0.8.0 (*) -src/SolmateNft.sol =0.8.10 -├── lib/solmate/src/tokens/ERC721.sol >=0.8.0 -├── lib/openzeppelin-contracts/contracts/utils/Strings.sol ^0.8.0 -├── lib/openzeppelin-contracts/contracts/security/PullPayment.sol ^0.8.0 (*) -└── lib/openzeppelin-contracts/contracts/access/Ownable.sol ^0.8.0 (*) -test/OpenZeppelinNft.t.sol =0.8.10 -├── lib/forge-std/src/Test.sol >=0.6.0, <0.9.0 -│ ├── lib/forge-std/src/Script.sol >=0.6.0, <0.9.0 -│ │ ├── lib/forge-std/src/Vm.sol >=0.6.0 -│ │ ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 -│ │ └── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 +src/Morpho.sol =0.8.19 +├── src/interfaces/IMorpho.sol >=0.5.0 +├── src/interfaces/IMorphoCallbacks.sol >=0.5.0 +├── src/interfaces/IIrm.sol >=0.5.0 +│ └── src/interfaces/IMorpho.sol >=0.5.0 +├── src/interfaces/IERC20.sol >=0.5.0 +├── src/interfaces/IOracle.sol >=0.5.0 +├── src/libraries/ConstantsLib.sol ^0.8.0 +├── src/libraries/UtilsLib.sol ^0.8.0 +│ └── src/libraries/ErrorsLib.sol ^0.8.0 +├── src/libraries/EventsLib.sol ^0.8.0 +│ └── src/interfaces/IMorpho.sol >=0.5.0 +├── src/libraries/ErrorsLib.sol ^0.8.0 +├── src/libraries/MathLib.sol ^0.8.0 +├── src/libraries/SharesMathLib.sol ^0.8.0 +│ └── src/libraries/MathLib.sol ^0.8.0 +├── src/libraries/MarketParamsLib.sol ^0.8.0 +│ └── src/interfaces/IMorpho.sol >=0.5.0 +└── src/libraries/SafeTransferLib.sol ^0.8.0 + ├── src/interfaces/IERC20.sol >=0.5.0 + └── src/libraries/ErrorsLib.sol ^0.8.0 +src/interfaces/IERC20.sol >=0.5.0 +src/interfaces/IIrm.sol >=0.5.0 (*) +src/interfaces/IMorpho.sol >=0.5.0 +src/interfaces/IMorphoCallbacks.sol >=0.5.0 +src/interfaces/IOracle.sol >=0.5.0 +src/libraries/ConstantsLib.sol ^0.8.0 +src/libraries/ErrorsLib.sol ^0.8.0 +src/libraries/EventsLib.sol ^0.8.0 (*) +src/libraries/MarketParamsLib.sol ^0.8.0 (*) +src/libraries/MathLib.sol ^0.8.0 +src/libraries/SafeTransferLib.sol ^0.8.0 (*) +src/libraries/SharesMathLib.sol ^0.8.0 (*) +src/libraries/UtilsLib.sol ^0.8.0 (*) +src/libraries/periphery/MorphoBalancesLib.sol ^0.8.0 +├── src/interfaces/IMorpho.sol >=0.5.0 +├── src/interfaces/IIrm.sol >=0.5.0 (*) +├── src/libraries/MathLib.sol ^0.8.0 +├── src/libraries/UtilsLib.sol ^0.8.0 (*) +├── src/libraries/periphery/MorphoLib.sol ^0.8.0 +│ ├── src/interfaces/IMorpho.sol >=0.5.0 +│ └── src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 +│ └── src/interfaces/IMorpho.sol >=0.5.0 +├── src/libraries/SharesMathLib.sol ^0.8.0 (*) +└── src/libraries/MarketParamsLib.sol ^0.8.0 (*) +src/libraries/periphery/MorphoLib.sol ^0.8.0 (*) +src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 (*) +src/mocks/ERC20Mock.sol ^0.8.0 +└── src/mocks/interfaces/IERC20.sol ^0.8.0 +src/mocks/FlashBorrowerMock.sol ^0.8.0 +├── src/mocks/interfaces/IERC20.sol ^0.8.0 +├── src/interfaces/IMorpho.sol >=0.5.0 +└── src/interfaces/IMorphoCallbacks.sol >=0.5.0 +src/mocks/IrmMock.sol ^0.8.0 +├── src/interfaces/IIrm.sol >=0.5.0 (*) +├── src/interfaces/IMorpho.sol >=0.5.0 +└── src/libraries/MathLib.sol ^0.8.0 +src/mocks/OracleMock.sol ^0.8.0 +└── src/interfaces/IOracle.sol >=0.5.0 +src/mocks/interfaces/IERC20.sol ^0.8.0 +test/forge/BaseTest.sol ^0.8.0 +├── lib/forge-std/src/Test.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 +│ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 +│ ├── lib/forge-std/src/safeconsole.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdAssertions.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 +│ │ └── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdChains.sol >=0.6.2, <0.9.0 +│ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdCheats.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 +│ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 +│ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdError.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdInvariant.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdJson.sol >=0.6.0, <0.9.0 +│ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 (*) +│ ├── lib/forge-std/src/StdStyle.sol >=0.4.22, <0.9.0 +│ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdUtils.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/src/interfaces/IMulticall3.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/src/mocks/MockERC20.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/src/mocks/MockERC721.sol >=0.6.2, <0.9.0 +│ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/Base.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 (*) +│ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 │ └── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 -├── src/OpenZeppelinNft.sol =0.8.10 (*) -└── lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol ^0.8.0 -test/SolmateNft.sol =0.8.10 -├── lib/forge-std/src/Test.sol >=0.6.0, <0.9.0 (*) -└── src/SolmateNft.sol =0.8.10 (*) +├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 +├── src/interfaces/IMorpho.sol >=0.5.0 +├── src/interfaces/IMorphoCallbacks.sol >=0.5.0 +├── src/mocks/IrmMock.sol ^0.8.0 (*) +├── src/mocks/ERC20Mock.sol ^0.8.0 (*) +├── src/mocks/OracleMock.sol ^0.8.0 (*) +├── src/Morpho.sol =0.8.19 (*) +├── test/forge/helpers/Math.sol ^0.8.0 +├── test/forge/helpers/SigUtils.sol ^0.8.0 +│ ├── src/libraries/ConstantsLib.sol ^0.8.0 +│ └── src/interfaces/IMorpho.sol >=0.5.0 +├── test/forge/helpers/ArrayLib.sol ^0.8.0 +├── src/libraries/periphery/MorphoLib.sol ^0.8.0 (*) +└── src/libraries/periphery/MorphoBalancesLib.sol ^0.8.0 (*) +test/forge/InvariantTest.sol ^0.8.0 +└── test/forge/BaseTest.sol ^0.8.0 (*) +test/forge/MarketParamsLibTest.sol ^0.8.0 +├── lib/forge-std/src/Test.sol >=0.6.2, <0.9.0 (*) +└── src/libraries/MarketParamsLib.sol ^0.8.0 (*) +test/forge/helpers/ArrayLib.sol ^0.8.0 +test/forge/helpers/Math.sol ^0.8.0 +test/forge/helpers/SigUtils.sol ^0.8.0 (*) +test/forge/helpers/WadMath.sol ^0.8.0 +test/forge/integration/AccrueInterestIntegrationTest.sol ^0.8.0 +└── test/forge/BaseTest.sol ^0.8.0 (*) +test/forge/integration/AuthorizationIntegrationTest.sol ^0.8.0 +└── test/forge/BaseTest.sol ^0.8.0 (*) +test/forge/integration/BorrowIntegrationTest.sol ^0.8.0 +└── test/forge/BaseTest.sol ^0.8.0 (*) +test/forge/integration/CallbacksIntegrationTest.sol ^0.8.0 +└── test/forge/BaseTest.sol ^0.8.0 (*) +test/forge/integration/CreateMarketIntegrationTest.sol ^0.8.0 +└── test/forge/BaseTest.sol ^0.8.0 (*) +test/forge/integration/ExtSloadIntegrationTest.sol ^0.8.0 +└── test/forge/BaseTest.sol ^0.8.0 (*) +test/forge/integration/LiquidateIntegrationTest.sol ^0.8.0 +└── test/forge/BaseTest.sol ^0.8.0 (*) +test/forge/integration/OnlyOwnerIntegrationTest.sol ^0.8.0 +└── test/forge/BaseTest.sol ^0.8.0 (*) +test/forge/integration/RepayIntegrationTest.sol ^0.8.0 +└── test/forge/BaseTest.sol ^0.8.0 (*) +test/forge/integration/SupplyCollateralIntegrationTest.sol ^0.8.0 +└── test/forge/BaseTest.sol ^0.8.0 (*) +test/forge/integration/SupplyIntegrationTest.sol ^0.8.0 +└── test/forge/BaseTest.sol ^0.8.0 (*) +test/forge/integration/WithdrawCollateralIntegrationTest.sol ^0.8.0 +└── test/forge/BaseTest.sol ^0.8.0 (*) +test/forge/integration/WithdrawIntegrationTest.sol ^0.8.0 +└── test/forge/BaseTest.sol ^0.8.0 (*) +test/forge/invariant/BaseInvariantTest.sol ^0.8.0 +└── test/forge/InvariantTest.sol ^0.8.0 (*) +test/forge/invariant/DynamicInvariantTest.sol ^0.8.0 +└── test/forge/invariant/BaseInvariantTest.sol ^0.8.0 (*) +test/forge/invariant/StaticInvariantTest.sol ^0.8.0 +└── test/forge/invariant/BaseInvariantTest.sol ^0.8.0 (*) +test/forge/libraries/MathLibTest.sol ^0.8.0 +├── lib/forge-std/src/Test.sol >=0.6.2, <0.9.0 (*) +├── src/libraries/MathLib.sol ^0.8.0 +└── test/forge/helpers/WadMath.sol ^0.8.0 +test/forge/libraries/SafeTransferLibTest.sol ^0.8.0 +├── lib/forge-std/src/Test.sol >=0.6.2, <0.9.0 (*) +├── src/libraries/ErrorsLib.sol ^0.8.0 +└── src/libraries/SafeTransferLib.sol ^0.8.0 (*) +test/forge/libraries/UtilsLibTest.sol ^0.8.0 +├── lib/forge-std/src/Test.sol >=0.6.2, <0.9.0 (*) +├── src/libraries/ErrorsLib.sol ^0.8.0 +└── src/libraries/UtilsLib.sol ^0.8.0 (*) +test/forge/libraries/periphery/MorphoBalancesLibTest.sol ^0.8.0 +└── test/forge/BaseTest.sol ^0.8.0 (*) +test/forge/libraries/periphery/MorphoLibTest.sol ^0.8.0 +└── test/forge/BaseTest.sol ^0.8.0 (*) +test/forge/libraries/periphery/MorphoStorageLibTest.sol ^0.8.0 +├── src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 (*) +├── test/forge/helpers/SigUtils.sol ^0.8.0 (*) +└── test/forge/BaseTest.sol ^0.8.0 (*) +test/halmos/HalmosTest.sol ^0.8.0 +├── lib/forge-std/src/Test.sol >=0.6.2, <0.9.0 (*) +├── lib/halmos-cheatcodes/src/SymTest.sol >=0.8.0, <0.9.0 +│ └── lib/halmos-cheatcodes/src/SVM.sol >=0.8.0, <0.9.0 +├── src/interfaces/IMorpho.sol >=0.5.0 +├── src/mocks/IrmMock.sol ^0.8.0 (*) +├── src/mocks/ERC20Mock.sol ^0.8.0 (*) +├── src/mocks/OracleMock.sol ^0.8.0 (*) +├── src/mocks/FlashBorrowerMock.sol ^0.8.0 (*) +├── src/Morpho.sol =0.8.19 (*) +├── src/libraries/ConstantsLib.sol ^0.8.0 +└── src/libraries/periphery/MorphoLib.sol ^0.8.0 (*) // ANCHOR_END: output // ANCHOR_END: all diff --git a/src/output/forge_tree/forge-tree-no-dedupe b/src/output/forge_tree/forge-tree-no-dedupe index ec70c441e..0aa5810a7 100644 --- a/src/output/forge_tree/forge-tree-no-dedupe +++ b/src/output/forge_tree/forge-tree-no-dedupe @@ -3,82 +3,2277 @@ $ forge tree --no-dedupe // ANCHOR_END: command // ANCHOR: output -src/OpenZeppelinNft.sol =0.8.10 -├── lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol ^0.8.0 -│ ├── lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol ^0.8.0 -│ │ └── lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol ^0.8.0 -│ ├── lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol ^0.8.0 -│ ├── lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol ^0.8.0 -│ │ └── lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol ^0.8.0 -│ │ └── lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol ^0.8.0 -│ ├── lib/openzeppelin-contracts/contracts/utils/Address.sol ^0.8.1 -│ ├── lib/openzeppelin-contracts/contracts/utils/Context.sol ^0.8.0 -│ ├── lib/openzeppelin-contracts/contracts/utils/Strings.sol ^0.8.0 -│ └── lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol ^0.8.0 -│ └── lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol ^0.8.0 -├── lib/openzeppelin-contracts/contracts/utils/Strings.sol ^0.8.0 -├── lib/openzeppelin-contracts/contracts/security/PullPayment.sol ^0.8.0 -│ └── lib/openzeppelin-contracts/contracts/utils/escrow/Escrow.sol ^0.8.0 -│ ├── lib/openzeppelin-contracts/contracts/access/Ownable.sol ^0.8.0 -│ │ └── lib/openzeppelin-contracts/contracts/utils/Context.sol ^0.8.0 -│ └── lib/openzeppelin-contracts/contracts/utils/Address.sol ^0.8.1 -└── lib/openzeppelin-contracts/contracts/access/Ownable.sol ^0.8.0 - └── lib/openzeppelin-contracts/contracts/utils/Context.sol ^0.8.0 -src/SolmateNft.sol =0.8.10 -├── lib/solmate/src/tokens/ERC721.sol >=0.8.0 -├── lib/openzeppelin-contracts/contracts/utils/Strings.sol ^0.8.0 -├── lib/openzeppelin-contracts/contracts/security/PullPayment.sol ^0.8.0 -│ └── lib/openzeppelin-contracts/contracts/utils/escrow/Escrow.sol ^0.8.0 -│ ├── lib/openzeppelin-contracts/contracts/access/Ownable.sol ^0.8.0 -│ │ └── lib/openzeppelin-contracts/contracts/utils/Context.sol ^0.8.0 -│ └── lib/openzeppelin-contracts/contracts/utils/Address.sol ^0.8.1 -└── lib/openzeppelin-contracts/contracts/access/Ownable.sol ^0.8.0 - └── lib/openzeppelin-contracts/contracts/utils/Context.sol ^0.8.0 -test/OpenZeppelinNft.t.sol =0.8.10 -├── lib/forge-std/src/Test.sol >=0.6.0, <0.9.0 -│ ├── lib/forge-std/src/Script.sol >=0.6.0, <0.9.0 -│ │ ├── lib/forge-std/src/Vm.sol >=0.6.0 -│ │ ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 -│ │ └── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 +src/Morpho.sol =0.8.19 +├── src/interfaces/IMorpho.sol >=0.5.0 +├── src/interfaces/IMorphoCallbacks.sol >=0.5.0 +├── src/interfaces/IIrm.sol >=0.5.0 +│ └── src/interfaces/IMorpho.sol >=0.5.0 +├── src/interfaces/IERC20.sol >=0.5.0 +├── src/interfaces/IOracle.sol >=0.5.0 +├── src/libraries/ConstantsLib.sol ^0.8.0 +├── src/libraries/UtilsLib.sol ^0.8.0 +│ └── src/libraries/ErrorsLib.sol ^0.8.0 +├── src/libraries/EventsLib.sol ^0.8.0 +│ └── src/interfaces/IMorpho.sol >=0.5.0 +├── src/libraries/ErrorsLib.sol ^0.8.0 +├── src/libraries/MathLib.sol ^0.8.0 +├── src/libraries/SharesMathLib.sol ^0.8.0 +│ └── src/libraries/MathLib.sol ^0.8.0 +├── src/libraries/MarketParamsLib.sol ^0.8.0 +│ └── src/interfaces/IMorpho.sol >=0.5.0 +└── src/libraries/SafeTransferLib.sol ^0.8.0 + ├── src/interfaces/IERC20.sol >=0.5.0 + └── src/libraries/ErrorsLib.sol ^0.8.0 +src/interfaces/IERC20.sol >=0.5.0 +src/interfaces/IIrm.sol >=0.5.0 +└── src/interfaces/IMorpho.sol >=0.5.0 +src/interfaces/IMorpho.sol >=0.5.0 +src/interfaces/IMorphoCallbacks.sol >=0.5.0 +src/interfaces/IOracle.sol >=0.5.0 +src/libraries/ConstantsLib.sol ^0.8.0 +src/libraries/ErrorsLib.sol ^0.8.0 +src/libraries/EventsLib.sol ^0.8.0 +└── src/interfaces/IMorpho.sol >=0.5.0 +src/libraries/MarketParamsLib.sol ^0.8.0 +└── src/interfaces/IMorpho.sol >=0.5.0 +src/libraries/MathLib.sol ^0.8.0 +src/libraries/SafeTransferLib.sol ^0.8.0 +├── src/interfaces/IERC20.sol >=0.5.0 +└── src/libraries/ErrorsLib.sol ^0.8.0 +src/libraries/SharesMathLib.sol ^0.8.0 +└── src/libraries/MathLib.sol ^0.8.0 +src/libraries/UtilsLib.sol ^0.8.0 +└── src/libraries/ErrorsLib.sol ^0.8.0 +src/libraries/periphery/MorphoBalancesLib.sol ^0.8.0 +├── src/interfaces/IMorpho.sol >=0.5.0 +├── src/interfaces/IIrm.sol >=0.5.0 +│ └── src/interfaces/IMorpho.sol >=0.5.0 +├── src/libraries/MathLib.sol ^0.8.0 +├── src/libraries/UtilsLib.sol ^0.8.0 +│ └── src/libraries/ErrorsLib.sol ^0.8.0 +├── src/libraries/periphery/MorphoLib.sol ^0.8.0 +│ ├── src/interfaces/IMorpho.sol >=0.5.0 +│ └── src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 +│ └── src/interfaces/IMorpho.sol >=0.5.0 +├── src/libraries/SharesMathLib.sol ^0.8.0 +│ └── src/libraries/MathLib.sol ^0.8.0 +└── src/libraries/MarketParamsLib.sol ^0.8.0 + └── src/interfaces/IMorpho.sol >=0.5.0 +src/libraries/periphery/MorphoLib.sol ^0.8.0 +├── src/interfaces/IMorpho.sol >=0.5.0 +└── src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 + └── src/interfaces/IMorpho.sol >=0.5.0 +src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 +└── src/interfaces/IMorpho.sol >=0.5.0 +src/mocks/ERC20Mock.sol ^0.8.0 +└── src/mocks/interfaces/IERC20.sol ^0.8.0 +src/mocks/FlashBorrowerMock.sol ^0.8.0 +├── src/mocks/interfaces/IERC20.sol ^0.8.0 +├── src/interfaces/IMorpho.sol >=0.5.0 +└── src/interfaces/IMorphoCallbacks.sol >=0.5.0 +src/mocks/IrmMock.sol ^0.8.0 +├── src/interfaces/IIrm.sol >=0.5.0 +│ └── src/interfaces/IMorpho.sol >=0.5.0 +├── src/interfaces/IMorpho.sol >=0.5.0 +└── src/libraries/MathLib.sol ^0.8.0 +src/mocks/OracleMock.sol ^0.8.0 +└── src/interfaces/IOracle.sol >=0.5.0 +src/mocks/interfaces/IERC20.sol ^0.8.0 +test/forge/BaseTest.sol ^0.8.0 +├── lib/forge-std/src/Test.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 +│ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 +│ ├── lib/forge-std/src/safeconsole.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdAssertions.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 +│ │ └── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdChains.sol >=0.6.2, <0.9.0 +│ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdCheats.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 +│ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 +│ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdError.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdInvariant.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdJson.sol >=0.6.0, <0.9.0 +│ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 +│ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdStyle.sol >=0.4.22, <0.9.0 +│ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdUtils.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/src/interfaces/IMulticall3.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/src/mocks/MockERC20.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/src/mocks/MockERC721.sol >=0.6.2, <0.9.0 +│ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/Base.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 +│ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 │ └── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 -├── src/OpenZeppelinNft.sol =0.8.10 -│ ├── lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol ^0.8.0 -│ │ ├── lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol ^0.8.0 -│ │ │ └── lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol ^0.8.0 -│ │ ├── lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol ^0.8.0 -│ │ ├── lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol ^0.8.0 -│ │ │ └── lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol ^0.8.0 -│ │ │ └── lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol ^0.8.0 -│ │ ├── lib/openzeppelin-contracts/contracts/utils/Address.sol ^0.8.1 -│ │ ├── lib/openzeppelin-contracts/contracts/utils/Context.sol ^0.8.0 -│ │ ├── lib/openzeppelin-contracts/contracts/utils/Strings.sol ^0.8.0 -│ │ └── lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol ^0.8.0 -│ │ └── lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol ^0.8.0 -│ ├── lib/openzeppelin-contracts/contracts/utils/Strings.sol ^0.8.0 -│ ├── lib/openzeppelin-contracts/contracts/security/PullPayment.sol ^0.8.0 -│ │ └── lib/openzeppelin-contracts/contracts/utils/escrow/Escrow.sol ^0.8.0 -│ │ ├── lib/openzeppelin-contracts/contracts/access/Ownable.sol ^0.8.0 -│ │ │ └── lib/openzeppelin-contracts/contracts/utils/Context.sol ^0.8.0 -│ │ └── lib/openzeppelin-contracts/contracts/utils/Address.sol ^0.8.1 -│ └── lib/openzeppelin-contracts/contracts/access/Ownable.sol ^0.8.0 -│ └── lib/openzeppelin-contracts/contracts/utils/Context.sol ^0.8.0 -└── lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol ^0.8.0 -test/SolmateNft.sol =0.8.10 -├── lib/forge-std/src/Test.sol >=0.6.0, <0.9.0 -│ ├── lib/forge-std/src/Script.sol >=0.6.0, <0.9.0 -│ │ ├── lib/forge-std/src/Vm.sol >=0.6.0 -│ │ ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 -│ │ └── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 +├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 +├── src/interfaces/IMorpho.sol >=0.5.0 +├── src/interfaces/IMorphoCallbacks.sol >=0.5.0 +├── src/mocks/IrmMock.sol ^0.8.0 +│ ├── src/interfaces/IIrm.sol >=0.5.0 +│ │ └── src/interfaces/IMorpho.sol >=0.5.0 +│ ├── src/interfaces/IMorpho.sol >=0.5.0 +│ └── src/libraries/MathLib.sol ^0.8.0 +├── src/mocks/ERC20Mock.sol ^0.8.0 +│ └── src/mocks/interfaces/IERC20.sol ^0.8.0 +├── src/mocks/OracleMock.sol ^0.8.0 +│ └── src/interfaces/IOracle.sol >=0.5.0 +├── src/Morpho.sol =0.8.19 +│ ├── src/interfaces/IMorpho.sol >=0.5.0 +│ ├── src/interfaces/IMorphoCallbacks.sol >=0.5.0 +│ ├── src/interfaces/IIrm.sol >=0.5.0 +│ │ └── src/interfaces/IMorpho.sol >=0.5.0 +│ ├── src/interfaces/IERC20.sol >=0.5.0 +│ ├── src/interfaces/IOracle.sol >=0.5.0 +│ ├── src/libraries/ConstantsLib.sol ^0.8.0 +│ ├── src/libraries/UtilsLib.sol ^0.8.0 +│ │ └── src/libraries/ErrorsLib.sol ^0.8.0 +│ ├── src/libraries/EventsLib.sol ^0.8.0 +│ │ └── src/interfaces/IMorpho.sol >=0.5.0 +│ ├── src/libraries/ErrorsLib.sol ^0.8.0 +│ ├── src/libraries/MathLib.sol ^0.8.0 +│ ├── src/libraries/SharesMathLib.sol ^0.8.0 +│ │ └── src/libraries/MathLib.sol ^0.8.0 +│ ├── src/libraries/MarketParamsLib.sol ^0.8.0 +│ │ └── src/interfaces/IMorpho.sol >=0.5.0 +│ └── src/libraries/SafeTransferLib.sol ^0.8.0 +│ ├── src/interfaces/IERC20.sol >=0.5.0 +│ └── src/libraries/ErrorsLib.sol ^0.8.0 +├── test/forge/helpers/Math.sol ^0.8.0 +├── test/forge/helpers/SigUtils.sol ^0.8.0 +│ ├── src/libraries/ConstantsLib.sol ^0.8.0 +│ └── src/interfaces/IMorpho.sol >=0.5.0 +├── test/forge/helpers/ArrayLib.sol ^0.8.0 +├── src/libraries/periphery/MorphoLib.sol ^0.8.0 +│ ├── src/interfaces/IMorpho.sol >=0.5.0 +│ └── src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 +│ └── src/interfaces/IMorpho.sol >=0.5.0 +└── src/libraries/periphery/MorphoBalancesLib.sol ^0.8.0 + ├── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/interfaces/IIrm.sol >=0.5.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/libraries/MathLib.sol ^0.8.0 + ├── src/libraries/UtilsLib.sol ^0.8.0 + │ └── src/libraries/ErrorsLib.sol ^0.8.0 + ├── src/libraries/periphery/MorphoLib.sol ^0.8.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/libraries/SharesMathLib.sol ^0.8.0 + │ └── src/libraries/MathLib.sol ^0.8.0 + └── src/libraries/MarketParamsLib.sol ^0.8.0 + └── src/interfaces/IMorpho.sol >=0.5.0 +test/forge/InvariantTest.sol ^0.8.0 +└── test/forge/BaseTest.sol ^0.8.0 + ├── lib/forge-std/src/Test.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 + │ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 + │ ├── lib/forge-std/src/safeconsole.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdAssertions.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 + │ │ └── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdChains.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdCheats.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdError.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdInvariant.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdJson.sol >=0.6.0, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdStyle.sol >=0.4.22, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdUtils.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/interfaces/IMulticall3.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/mocks/MockERC20.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/mocks/MockERC721.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/Base.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ └── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 + ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 + ├── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/interfaces/IMorphoCallbacks.sol >=0.5.0 + ├── src/mocks/IrmMock.sol ^0.8.0 + │ ├── src/interfaces/IIrm.sol >=0.5.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/MathLib.sol ^0.8.0 + ├── src/mocks/ERC20Mock.sol ^0.8.0 + │ └── src/mocks/interfaces/IERC20.sol ^0.8.0 + ├── src/mocks/OracleMock.sol ^0.8.0 + │ └── src/interfaces/IOracle.sol >=0.5.0 + ├── src/Morpho.sol =0.8.19 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IMorphoCallbacks.sol >=0.5.0 + │ ├── src/interfaces/IIrm.sol >=0.5.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IERC20.sol >=0.5.0 + │ ├── src/interfaces/IOracle.sol >=0.5.0 + │ ├── src/libraries/ConstantsLib.sol ^0.8.0 + │ ├── src/libraries/UtilsLib.sol ^0.8.0 + │ │ └── src/libraries/ErrorsLib.sol ^0.8.0 + │ ├── src/libraries/EventsLib.sol ^0.8.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/libraries/ErrorsLib.sol ^0.8.0 + │ ├── src/libraries/MathLib.sol ^0.8.0 + │ ├── src/libraries/SharesMathLib.sol ^0.8.0 + │ │ └── src/libraries/MathLib.sol ^0.8.0 + │ ├── src/libraries/MarketParamsLib.sol ^0.8.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/SafeTransferLib.sol ^0.8.0 + │ ├── src/interfaces/IERC20.sol >=0.5.0 + │ └── src/libraries/ErrorsLib.sol ^0.8.0 + ├── test/forge/helpers/Math.sol ^0.8.0 + ├── test/forge/helpers/SigUtils.sol ^0.8.0 + │ ├── src/libraries/ConstantsLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── test/forge/helpers/ArrayLib.sol ^0.8.0 + ├── src/libraries/periphery/MorphoLib.sol ^0.8.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + └── src/libraries/periphery/MorphoBalancesLib.sol ^0.8.0 + ├── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/interfaces/IIrm.sol >=0.5.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/libraries/MathLib.sol ^0.8.0 + ├── src/libraries/UtilsLib.sol ^0.8.0 + │ └── src/libraries/ErrorsLib.sol ^0.8.0 + ├── src/libraries/periphery/MorphoLib.sol ^0.8.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/libraries/SharesMathLib.sol ^0.8.0 + │ └── src/libraries/MathLib.sol ^0.8.0 + └── src/libraries/MarketParamsLib.sol ^0.8.0 + └── src/interfaces/IMorpho.sol >=0.5.0 +test/forge/MarketParamsLibTest.sol ^0.8.0 +├── lib/forge-std/src/Test.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 +│ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 +│ ├── lib/forge-std/src/safeconsole.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdAssertions.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 +│ │ └── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdChains.sol >=0.6.2, <0.9.0 +│ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdCheats.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 +│ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 +│ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdError.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdInvariant.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdJson.sol >=0.6.0, <0.9.0 +│ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 +│ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdStyle.sol >=0.4.22, <0.9.0 +│ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdUtils.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/src/interfaces/IMulticall3.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/src/mocks/MockERC20.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/src/mocks/MockERC721.sol >=0.6.2, <0.9.0 +│ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/Base.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 +│ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 │ └── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 -└── src/SolmateNft.sol =0.8.10 - ├── lib/solmate/src/tokens/ERC721.sol >=0.8.0 - ├── lib/openzeppelin-contracts/contracts/utils/Strings.sol ^0.8.0 - ├── lib/openzeppelin-contracts/contracts/security/PullPayment.sol ^0.8.0 - │ └── lib/openzeppelin-contracts/contracts/utils/escrow/Escrow.sol ^0.8.0 - │ ├── lib/openzeppelin-contracts/contracts/access/Ownable.sol ^0.8.0 - │ │ └── lib/openzeppelin-contracts/contracts/utils/Context.sol ^0.8.0 - │ └── lib/openzeppelin-contracts/contracts/utils/Address.sol ^0.8.1 - └── lib/openzeppelin-contracts/contracts/access/Ownable.sol ^0.8.0 - └── lib/openzeppelin-contracts/contracts/utils/Context.sol ^0.8.0 +└── src/libraries/MarketParamsLib.sol ^0.8.0 + └── src/interfaces/IMorpho.sol >=0.5.0 +test/forge/helpers/ArrayLib.sol ^0.8.0 +test/forge/helpers/Math.sol ^0.8.0 +test/forge/helpers/SigUtils.sol ^0.8.0 +├── src/libraries/ConstantsLib.sol ^0.8.0 +└── src/interfaces/IMorpho.sol >=0.5.0 +test/forge/helpers/WadMath.sol ^0.8.0 +test/forge/integration/AccrueInterestIntegrationTest.sol ^0.8.0 +└── test/forge/BaseTest.sol ^0.8.0 + ├── lib/forge-std/src/Test.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 + │ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 + │ ├── lib/forge-std/src/safeconsole.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdAssertions.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 + │ │ └── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdChains.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdCheats.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdError.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdInvariant.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdJson.sol >=0.6.0, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdStyle.sol >=0.4.22, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdUtils.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/interfaces/IMulticall3.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/mocks/MockERC20.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/mocks/MockERC721.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/Base.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ └── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 + ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 + ├── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/interfaces/IMorphoCallbacks.sol >=0.5.0 + ├── src/mocks/IrmMock.sol ^0.8.0 + │ ├── src/interfaces/IIrm.sol >=0.5.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/MathLib.sol ^0.8.0 + ├── src/mocks/ERC20Mock.sol ^0.8.0 + │ └── src/mocks/interfaces/IERC20.sol ^0.8.0 + ├── src/mocks/OracleMock.sol ^0.8.0 + │ └── src/interfaces/IOracle.sol >=0.5.0 + ├── src/Morpho.sol =0.8.19 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IMorphoCallbacks.sol >=0.5.0 + │ ├── src/interfaces/IIrm.sol >=0.5.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IERC20.sol >=0.5.0 + │ ├── src/interfaces/IOracle.sol >=0.5.0 + │ ├── src/libraries/ConstantsLib.sol ^0.8.0 + │ ├── src/libraries/UtilsLib.sol ^0.8.0 + │ │ └── src/libraries/ErrorsLib.sol ^0.8.0 + │ ├── src/libraries/EventsLib.sol ^0.8.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/libraries/ErrorsLib.sol ^0.8.0 + │ ├── src/libraries/MathLib.sol ^0.8.0 + │ ├── src/libraries/SharesMathLib.sol ^0.8.0 + │ │ └── src/libraries/MathLib.sol ^0.8.0 + │ ├── src/libraries/MarketParamsLib.sol ^0.8.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/SafeTransferLib.sol ^0.8.0 + │ ├── src/interfaces/IERC20.sol >=0.5.0 + │ └── src/libraries/ErrorsLib.sol ^0.8.0 + ├── test/forge/helpers/Math.sol ^0.8.0 + ├── test/forge/helpers/SigUtils.sol ^0.8.0 + │ ├── src/libraries/ConstantsLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── test/forge/helpers/ArrayLib.sol ^0.8.0 + ├── src/libraries/periphery/MorphoLib.sol ^0.8.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + └── src/libraries/periphery/MorphoBalancesLib.sol ^0.8.0 + ├── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/interfaces/IIrm.sol >=0.5.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/libraries/MathLib.sol ^0.8.0 + ├── src/libraries/UtilsLib.sol ^0.8.0 + │ └── src/libraries/ErrorsLib.sol ^0.8.0 + ├── src/libraries/periphery/MorphoLib.sol ^0.8.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/libraries/SharesMathLib.sol ^0.8.0 + │ └── src/libraries/MathLib.sol ^0.8.0 + └── src/libraries/MarketParamsLib.sol ^0.8.0 + └── src/interfaces/IMorpho.sol >=0.5.0 +test/forge/integration/AuthorizationIntegrationTest.sol ^0.8.0 +└── test/forge/BaseTest.sol ^0.8.0 + ├── lib/forge-std/src/Test.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 + │ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 + │ ├── lib/forge-std/src/safeconsole.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdAssertions.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 + │ │ └── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdChains.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdCheats.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdError.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdInvariant.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdJson.sol >=0.6.0, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdStyle.sol >=0.4.22, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdUtils.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/interfaces/IMulticall3.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/mocks/MockERC20.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/mocks/MockERC721.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/Base.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ └── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 + ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 + ├── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/interfaces/IMorphoCallbacks.sol >=0.5.0 + ├── src/mocks/IrmMock.sol ^0.8.0 + │ ├── src/interfaces/IIrm.sol >=0.5.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/MathLib.sol ^0.8.0 + ├── src/mocks/ERC20Mock.sol ^0.8.0 + │ └── src/mocks/interfaces/IERC20.sol ^0.8.0 + ├── src/mocks/OracleMock.sol ^0.8.0 + │ └── src/interfaces/IOracle.sol >=0.5.0 + ├── src/Morpho.sol =0.8.19 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IMorphoCallbacks.sol >=0.5.0 + │ ├── src/interfaces/IIrm.sol >=0.5.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IERC20.sol >=0.5.0 + │ ├── src/interfaces/IOracle.sol >=0.5.0 + │ ├── src/libraries/ConstantsLib.sol ^0.8.0 + │ ├── src/libraries/UtilsLib.sol ^0.8.0 + │ │ └── src/libraries/ErrorsLib.sol ^0.8.0 + │ ├── src/libraries/EventsLib.sol ^0.8.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/libraries/ErrorsLib.sol ^0.8.0 + │ ├── src/libraries/MathLib.sol ^0.8.0 + │ ├── src/libraries/SharesMathLib.sol ^0.8.0 + │ │ └── src/libraries/MathLib.sol ^0.8.0 + │ ├── src/libraries/MarketParamsLib.sol ^0.8.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/SafeTransferLib.sol ^0.8.0 + │ ├── src/interfaces/IERC20.sol >=0.5.0 + │ └── src/libraries/ErrorsLib.sol ^0.8.0 + ├── test/forge/helpers/Math.sol ^0.8.0 + ├── test/forge/helpers/SigUtils.sol ^0.8.0 + │ ├── src/libraries/ConstantsLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── test/forge/helpers/ArrayLib.sol ^0.8.0 + ├── src/libraries/periphery/MorphoLib.sol ^0.8.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + └── src/libraries/periphery/MorphoBalancesLib.sol ^0.8.0 + ├── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/interfaces/IIrm.sol >=0.5.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/libraries/MathLib.sol ^0.8.0 + ├── src/libraries/UtilsLib.sol ^0.8.0 + │ └── src/libraries/ErrorsLib.sol ^0.8.0 + ├── src/libraries/periphery/MorphoLib.sol ^0.8.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/libraries/SharesMathLib.sol ^0.8.0 + │ └── src/libraries/MathLib.sol ^0.8.0 + └── src/libraries/MarketParamsLib.sol ^0.8.0 + └── src/interfaces/IMorpho.sol >=0.5.0 +test/forge/integration/BorrowIntegrationTest.sol ^0.8.0 +└── test/forge/BaseTest.sol ^0.8.0 + ├── lib/forge-std/src/Test.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 + │ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 + │ ├── lib/forge-std/src/safeconsole.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdAssertions.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 + │ │ └── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdChains.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdCheats.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdError.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdInvariant.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdJson.sol >=0.6.0, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdStyle.sol >=0.4.22, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdUtils.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/interfaces/IMulticall3.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/mocks/MockERC20.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/mocks/MockERC721.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/Base.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ └── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 + ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 + ├── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/interfaces/IMorphoCallbacks.sol >=0.5.0 + ├── src/mocks/IrmMock.sol ^0.8.0 + │ ├── src/interfaces/IIrm.sol >=0.5.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/MathLib.sol ^0.8.0 + ├── src/mocks/ERC20Mock.sol ^0.8.0 + │ └── src/mocks/interfaces/IERC20.sol ^0.8.0 + ├── src/mocks/OracleMock.sol ^0.8.0 + │ └── src/interfaces/IOracle.sol >=0.5.0 + ├── src/Morpho.sol =0.8.19 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IMorphoCallbacks.sol >=0.5.0 + │ ├── src/interfaces/IIrm.sol >=0.5.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IERC20.sol >=0.5.0 + │ ├── src/interfaces/IOracle.sol >=0.5.0 + │ ├── src/libraries/ConstantsLib.sol ^0.8.0 + │ ├── src/libraries/UtilsLib.sol ^0.8.0 + │ │ └── src/libraries/ErrorsLib.sol ^0.8.0 + │ ├── src/libraries/EventsLib.sol ^0.8.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/libraries/ErrorsLib.sol ^0.8.0 + │ ├── src/libraries/MathLib.sol ^0.8.0 + │ ├── src/libraries/SharesMathLib.sol ^0.8.0 + │ │ └── src/libraries/MathLib.sol ^0.8.0 + │ ├── src/libraries/MarketParamsLib.sol ^0.8.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/SafeTransferLib.sol ^0.8.0 + │ ├── src/interfaces/IERC20.sol >=0.5.0 + │ └── src/libraries/ErrorsLib.sol ^0.8.0 + ├── test/forge/helpers/Math.sol ^0.8.0 + ├── test/forge/helpers/SigUtils.sol ^0.8.0 + │ ├── src/libraries/ConstantsLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── test/forge/helpers/ArrayLib.sol ^0.8.0 + ├── src/libraries/periphery/MorphoLib.sol ^0.8.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + └── src/libraries/periphery/MorphoBalancesLib.sol ^0.8.0 + ├── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/interfaces/IIrm.sol >=0.5.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/libraries/MathLib.sol ^0.8.0 + ├── src/libraries/UtilsLib.sol ^0.8.0 + │ └── src/libraries/ErrorsLib.sol ^0.8.0 + ├── src/libraries/periphery/MorphoLib.sol ^0.8.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/libraries/SharesMathLib.sol ^0.8.0 + │ └── src/libraries/MathLib.sol ^0.8.0 + └── src/libraries/MarketParamsLib.sol ^0.8.0 + └── src/interfaces/IMorpho.sol >=0.5.0 +test/forge/integration/CallbacksIntegrationTest.sol ^0.8.0 +└── test/forge/BaseTest.sol ^0.8.0 + ├── lib/forge-std/src/Test.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 + │ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 + │ ├── lib/forge-std/src/safeconsole.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdAssertions.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 + │ │ └── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdChains.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdCheats.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdError.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdInvariant.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdJson.sol >=0.6.0, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdStyle.sol >=0.4.22, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdUtils.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/interfaces/IMulticall3.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/mocks/MockERC20.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/mocks/MockERC721.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/Base.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ └── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 + ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 + ├── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/interfaces/IMorphoCallbacks.sol >=0.5.0 + ├── src/mocks/IrmMock.sol ^0.8.0 + │ ├── src/interfaces/IIrm.sol >=0.5.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/MathLib.sol ^0.8.0 + ├── src/mocks/ERC20Mock.sol ^0.8.0 + │ └── src/mocks/interfaces/IERC20.sol ^0.8.0 + ├── src/mocks/OracleMock.sol ^0.8.0 + │ └── src/interfaces/IOracle.sol >=0.5.0 + ├── src/Morpho.sol =0.8.19 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IMorphoCallbacks.sol >=0.5.0 + │ ├── src/interfaces/IIrm.sol >=0.5.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IERC20.sol >=0.5.0 + │ ├── src/interfaces/IOracle.sol >=0.5.0 + │ ├── src/libraries/ConstantsLib.sol ^0.8.0 + │ ├── src/libraries/UtilsLib.sol ^0.8.0 + │ │ └── src/libraries/ErrorsLib.sol ^0.8.0 + │ ├── src/libraries/EventsLib.sol ^0.8.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/libraries/ErrorsLib.sol ^0.8.0 + │ ├── src/libraries/MathLib.sol ^0.8.0 + │ ├── src/libraries/SharesMathLib.sol ^0.8.0 + │ │ └── src/libraries/MathLib.sol ^0.8.0 + │ ├── src/libraries/MarketParamsLib.sol ^0.8.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/SafeTransferLib.sol ^0.8.0 + │ ├── src/interfaces/IERC20.sol >=0.5.0 + │ └── src/libraries/ErrorsLib.sol ^0.8.0 + ├── test/forge/helpers/Math.sol ^0.8.0 + ├── test/forge/helpers/SigUtils.sol ^0.8.0 + │ ├── src/libraries/ConstantsLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── test/forge/helpers/ArrayLib.sol ^0.8.0 + ├── src/libraries/periphery/MorphoLib.sol ^0.8.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + └── src/libraries/periphery/MorphoBalancesLib.sol ^0.8.0 + ├── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/interfaces/IIrm.sol >=0.5.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/libraries/MathLib.sol ^0.8.0 + ├── src/libraries/UtilsLib.sol ^0.8.0 + │ └── src/libraries/ErrorsLib.sol ^0.8.0 + ├── src/libraries/periphery/MorphoLib.sol ^0.8.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/libraries/SharesMathLib.sol ^0.8.0 + │ └── src/libraries/MathLib.sol ^0.8.0 + └── src/libraries/MarketParamsLib.sol ^0.8.0 + └── src/interfaces/IMorpho.sol >=0.5.0 +test/forge/integration/CreateMarketIntegrationTest.sol ^0.8.0 +└── test/forge/BaseTest.sol ^0.8.0 + ├── lib/forge-std/src/Test.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 + │ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 + │ ├── lib/forge-std/src/safeconsole.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdAssertions.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 + │ │ └── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdChains.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdCheats.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdError.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdInvariant.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdJson.sol >=0.6.0, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdStyle.sol >=0.4.22, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdUtils.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/interfaces/IMulticall3.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/mocks/MockERC20.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/mocks/MockERC721.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/Base.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ └── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 + ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 + ├── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/interfaces/IMorphoCallbacks.sol >=0.5.0 + ├── src/mocks/IrmMock.sol ^0.8.0 + │ ├── src/interfaces/IIrm.sol >=0.5.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/MathLib.sol ^0.8.0 + ├── src/mocks/ERC20Mock.sol ^0.8.0 + │ └── src/mocks/interfaces/IERC20.sol ^0.8.0 + ├── src/mocks/OracleMock.sol ^0.8.0 + │ └── src/interfaces/IOracle.sol >=0.5.0 + ├── src/Morpho.sol =0.8.19 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IMorphoCallbacks.sol >=0.5.0 + │ ├── src/interfaces/IIrm.sol >=0.5.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IERC20.sol >=0.5.0 + │ ├── src/interfaces/IOracle.sol >=0.5.0 + │ ├── src/libraries/ConstantsLib.sol ^0.8.0 + │ ├── src/libraries/UtilsLib.sol ^0.8.0 + │ │ └── src/libraries/ErrorsLib.sol ^0.8.0 + │ ├── src/libraries/EventsLib.sol ^0.8.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/libraries/ErrorsLib.sol ^0.8.0 + │ ├── src/libraries/MathLib.sol ^0.8.0 + │ ├── src/libraries/SharesMathLib.sol ^0.8.0 + │ │ └── src/libraries/MathLib.sol ^0.8.0 + │ ├── src/libraries/MarketParamsLib.sol ^0.8.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/SafeTransferLib.sol ^0.8.0 + │ ├── src/interfaces/IERC20.sol >=0.5.0 + │ └── src/libraries/ErrorsLib.sol ^0.8.0 + ├── test/forge/helpers/Math.sol ^0.8.0 + ├── test/forge/helpers/SigUtils.sol ^0.8.0 + │ ├── src/libraries/ConstantsLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── test/forge/helpers/ArrayLib.sol ^0.8.0 + ├── src/libraries/periphery/MorphoLib.sol ^0.8.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + └── src/libraries/periphery/MorphoBalancesLib.sol ^0.8.0 + ├── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/interfaces/IIrm.sol >=0.5.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/libraries/MathLib.sol ^0.8.0 + ├── src/libraries/UtilsLib.sol ^0.8.0 + │ └── src/libraries/ErrorsLib.sol ^0.8.0 + ├── src/libraries/periphery/MorphoLib.sol ^0.8.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/libraries/SharesMathLib.sol ^0.8.0 + │ └── src/libraries/MathLib.sol ^0.8.0 + └── src/libraries/MarketParamsLib.sol ^0.8.0 + └── src/interfaces/IMorpho.sol >=0.5.0 +test/forge/integration/ExtSloadIntegrationTest.sol ^0.8.0 +└── test/forge/BaseTest.sol ^0.8.0 + ├── lib/forge-std/src/Test.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 + │ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 + │ ├── lib/forge-std/src/safeconsole.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdAssertions.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 + │ │ └── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdChains.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdCheats.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdError.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdInvariant.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdJson.sol >=0.6.0, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdStyle.sol >=0.4.22, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdUtils.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/interfaces/IMulticall3.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/mocks/MockERC20.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/mocks/MockERC721.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/Base.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ └── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 + ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 + ├── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/interfaces/IMorphoCallbacks.sol >=0.5.0 + ├── src/mocks/IrmMock.sol ^0.8.0 + │ ├── src/interfaces/IIrm.sol >=0.5.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/MathLib.sol ^0.8.0 + ├── src/mocks/ERC20Mock.sol ^0.8.0 + │ └── src/mocks/interfaces/IERC20.sol ^0.8.0 + ├── src/mocks/OracleMock.sol ^0.8.0 + │ └── src/interfaces/IOracle.sol >=0.5.0 + ├── src/Morpho.sol =0.8.19 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IMorphoCallbacks.sol >=0.5.0 + │ ├── src/interfaces/IIrm.sol >=0.5.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IERC20.sol >=0.5.0 + │ ├── src/interfaces/IOracle.sol >=0.5.0 + │ ├── src/libraries/ConstantsLib.sol ^0.8.0 + │ ├── src/libraries/UtilsLib.sol ^0.8.0 + │ │ └── src/libraries/ErrorsLib.sol ^0.8.0 + │ ├── src/libraries/EventsLib.sol ^0.8.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/libraries/ErrorsLib.sol ^0.8.0 + │ ├── src/libraries/MathLib.sol ^0.8.0 + │ ├── src/libraries/SharesMathLib.sol ^0.8.0 + │ │ └── src/libraries/MathLib.sol ^0.8.0 + │ ├── src/libraries/MarketParamsLib.sol ^0.8.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/SafeTransferLib.sol ^0.8.0 + │ ├── src/interfaces/IERC20.sol >=0.5.0 + │ └── src/libraries/ErrorsLib.sol ^0.8.0 + ├── test/forge/helpers/Math.sol ^0.8.0 + ├── test/forge/helpers/SigUtils.sol ^0.8.0 + │ ├── src/libraries/ConstantsLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── test/forge/helpers/ArrayLib.sol ^0.8.0 + ├── src/libraries/periphery/MorphoLib.sol ^0.8.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + └── src/libraries/periphery/MorphoBalancesLib.sol ^0.8.0 + ├── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/interfaces/IIrm.sol >=0.5.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/libraries/MathLib.sol ^0.8.0 + ├── src/libraries/UtilsLib.sol ^0.8.0 + │ └── src/libraries/ErrorsLib.sol ^0.8.0 + ├── src/libraries/periphery/MorphoLib.sol ^0.8.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/libraries/SharesMathLib.sol ^0.8.0 + │ └── src/libraries/MathLib.sol ^0.8.0 + └── src/libraries/MarketParamsLib.sol ^0.8.0 + └── src/interfaces/IMorpho.sol >=0.5.0 +test/forge/integration/LiquidateIntegrationTest.sol ^0.8.0 +└── test/forge/BaseTest.sol ^0.8.0 + ├── lib/forge-std/src/Test.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 + │ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 + │ ├── lib/forge-std/src/safeconsole.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdAssertions.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 + │ │ └── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdChains.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdCheats.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdError.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdInvariant.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdJson.sol >=0.6.0, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdStyle.sol >=0.4.22, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdUtils.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/interfaces/IMulticall3.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/mocks/MockERC20.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/mocks/MockERC721.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/Base.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ └── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 + ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 + ├── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/interfaces/IMorphoCallbacks.sol >=0.5.0 + ├── src/mocks/IrmMock.sol ^0.8.0 + │ ├── src/interfaces/IIrm.sol >=0.5.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/MathLib.sol ^0.8.0 + ├── src/mocks/ERC20Mock.sol ^0.8.0 + │ └── src/mocks/interfaces/IERC20.sol ^0.8.0 + ├── src/mocks/OracleMock.sol ^0.8.0 + │ └── src/interfaces/IOracle.sol >=0.5.0 + ├── src/Morpho.sol =0.8.19 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IMorphoCallbacks.sol >=0.5.0 + │ ├── src/interfaces/IIrm.sol >=0.5.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IERC20.sol >=0.5.0 + │ ├── src/interfaces/IOracle.sol >=0.5.0 + │ ├── src/libraries/ConstantsLib.sol ^0.8.0 + │ ├── src/libraries/UtilsLib.sol ^0.8.0 + │ │ └── src/libraries/ErrorsLib.sol ^0.8.0 + │ ├── src/libraries/EventsLib.sol ^0.8.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/libraries/ErrorsLib.sol ^0.8.0 + │ ├── src/libraries/MathLib.sol ^0.8.0 + │ ├── src/libraries/SharesMathLib.sol ^0.8.0 + │ │ └── src/libraries/MathLib.sol ^0.8.0 + │ ├── src/libraries/MarketParamsLib.sol ^0.8.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/SafeTransferLib.sol ^0.8.0 + │ ├── src/interfaces/IERC20.sol >=0.5.0 + │ └── src/libraries/ErrorsLib.sol ^0.8.0 + ├── test/forge/helpers/Math.sol ^0.8.0 + ├── test/forge/helpers/SigUtils.sol ^0.8.0 + │ ├── src/libraries/ConstantsLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── test/forge/helpers/ArrayLib.sol ^0.8.0 + ├── src/libraries/periphery/MorphoLib.sol ^0.8.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + └── src/libraries/periphery/MorphoBalancesLib.sol ^0.8.0 + ├── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/interfaces/IIrm.sol >=0.5.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/libraries/MathLib.sol ^0.8.0 + ├── src/libraries/UtilsLib.sol ^0.8.0 + │ └── src/libraries/ErrorsLib.sol ^0.8.0 + ├── src/libraries/periphery/MorphoLib.sol ^0.8.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/libraries/SharesMathLib.sol ^0.8.0 + │ └── src/libraries/MathLib.sol ^0.8.0 + └── src/libraries/MarketParamsLib.sol ^0.8.0 + └── src/interfaces/IMorpho.sol >=0.5.0 +test/forge/integration/OnlyOwnerIntegrationTest.sol ^0.8.0 +└── test/forge/BaseTest.sol ^0.8.0 + ├── lib/forge-std/src/Test.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 + │ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 + │ ├── lib/forge-std/src/safeconsole.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdAssertions.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 + │ │ └── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdChains.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdCheats.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdError.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdInvariant.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdJson.sol >=0.6.0, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdStyle.sol >=0.4.22, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdUtils.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/interfaces/IMulticall3.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/mocks/MockERC20.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/mocks/MockERC721.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/Base.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ └── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 + ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 + ├── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/interfaces/IMorphoCallbacks.sol >=0.5.0 + ├── src/mocks/IrmMock.sol ^0.8.0 + │ ├── src/interfaces/IIrm.sol >=0.5.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/MathLib.sol ^0.8.0 + ├── src/mocks/ERC20Mock.sol ^0.8.0 + │ └── src/mocks/interfaces/IERC20.sol ^0.8.0 + ├── src/mocks/OracleMock.sol ^0.8.0 + │ └── src/interfaces/IOracle.sol >=0.5.0 + ├── src/Morpho.sol =0.8.19 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IMorphoCallbacks.sol >=0.5.0 + │ ├── src/interfaces/IIrm.sol >=0.5.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IERC20.sol >=0.5.0 + │ ├── src/interfaces/IOracle.sol >=0.5.0 + │ ├── src/libraries/ConstantsLib.sol ^0.8.0 + │ ├── src/libraries/UtilsLib.sol ^0.8.0 + │ │ └── src/libraries/ErrorsLib.sol ^0.8.0 + │ ├── src/libraries/EventsLib.sol ^0.8.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/libraries/ErrorsLib.sol ^0.8.0 + │ ├── src/libraries/MathLib.sol ^0.8.0 + │ ├── src/libraries/SharesMathLib.sol ^0.8.0 + │ │ └── src/libraries/MathLib.sol ^0.8.0 + │ ├── src/libraries/MarketParamsLib.sol ^0.8.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/SafeTransferLib.sol ^0.8.0 + │ ├── src/interfaces/IERC20.sol >=0.5.0 + │ └── src/libraries/ErrorsLib.sol ^0.8.0 + ├── test/forge/helpers/Math.sol ^0.8.0 + ├── test/forge/helpers/SigUtils.sol ^0.8.0 + │ ├── src/libraries/ConstantsLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── test/forge/helpers/ArrayLib.sol ^0.8.0 + ├── src/libraries/periphery/MorphoLib.sol ^0.8.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + └── src/libraries/periphery/MorphoBalancesLib.sol ^0.8.0 + ├── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/interfaces/IIrm.sol >=0.5.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/libraries/MathLib.sol ^0.8.0 + ├── src/libraries/UtilsLib.sol ^0.8.0 + │ └── src/libraries/ErrorsLib.sol ^0.8.0 + ├── src/libraries/periphery/MorphoLib.sol ^0.8.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/libraries/SharesMathLib.sol ^0.8.0 + │ └── src/libraries/MathLib.sol ^0.8.0 + └── src/libraries/MarketParamsLib.sol ^0.8.0 + └── src/interfaces/IMorpho.sol >=0.5.0 +test/forge/integration/RepayIntegrationTest.sol ^0.8.0 +└── test/forge/BaseTest.sol ^0.8.0 + ├── lib/forge-std/src/Test.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 + │ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 + │ ├── lib/forge-std/src/safeconsole.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdAssertions.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 + │ │ └── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdChains.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdCheats.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdError.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdInvariant.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdJson.sol >=0.6.0, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdStyle.sol >=0.4.22, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdUtils.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/interfaces/IMulticall3.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/mocks/MockERC20.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/mocks/MockERC721.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/Base.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ └── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 + ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 + ├── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/interfaces/IMorphoCallbacks.sol >=0.5.0 + ├── src/mocks/IrmMock.sol ^0.8.0 + │ ├── src/interfaces/IIrm.sol >=0.5.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/MathLib.sol ^0.8.0 + ├── src/mocks/ERC20Mock.sol ^0.8.0 + │ └── src/mocks/interfaces/IERC20.sol ^0.8.0 + ├── src/mocks/OracleMock.sol ^0.8.0 + │ └── src/interfaces/IOracle.sol >=0.5.0 + ├── src/Morpho.sol =0.8.19 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IMorphoCallbacks.sol >=0.5.0 + │ ├── src/interfaces/IIrm.sol >=0.5.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IERC20.sol >=0.5.0 + │ ├── src/interfaces/IOracle.sol >=0.5.0 + │ ├── src/libraries/ConstantsLib.sol ^0.8.0 + │ ├── src/libraries/UtilsLib.sol ^0.8.0 + │ │ └── src/libraries/ErrorsLib.sol ^0.8.0 + │ ├── src/libraries/EventsLib.sol ^0.8.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/libraries/ErrorsLib.sol ^0.8.0 + │ ├── src/libraries/MathLib.sol ^0.8.0 + │ ├── src/libraries/SharesMathLib.sol ^0.8.0 + │ │ └── src/libraries/MathLib.sol ^0.8.0 + │ ├── src/libraries/MarketParamsLib.sol ^0.8.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/SafeTransferLib.sol ^0.8.0 + │ ├── src/interfaces/IERC20.sol >=0.5.0 + │ └── src/libraries/ErrorsLib.sol ^0.8.0 + ├── test/forge/helpers/Math.sol ^0.8.0 + ├── test/forge/helpers/SigUtils.sol ^0.8.0 + │ ├── src/libraries/ConstantsLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── test/forge/helpers/ArrayLib.sol ^0.8.0 + ├── src/libraries/periphery/MorphoLib.sol ^0.8.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + └── src/libraries/periphery/MorphoBalancesLib.sol ^0.8.0 + ├── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/interfaces/IIrm.sol >=0.5.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/libraries/MathLib.sol ^0.8.0 + ├── src/libraries/UtilsLib.sol ^0.8.0 + │ └── src/libraries/ErrorsLib.sol ^0.8.0 + ├── src/libraries/periphery/MorphoLib.sol ^0.8.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/libraries/SharesMathLib.sol ^0.8.0 + │ └── src/libraries/MathLib.sol ^0.8.0 + └── src/libraries/MarketParamsLib.sol ^0.8.0 + └── src/interfaces/IMorpho.sol >=0.5.0 +test/forge/integration/SupplyCollateralIntegrationTest.sol ^0.8.0 +└── test/forge/BaseTest.sol ^0.8.0 + ├── lib/forge-std/src/Test.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 + │ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 + │ ├── lib/forge-std/src/safeconsole.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdAssertions.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 + │ │ └── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdChains.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdCheats.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdError.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdInvariant.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdJson.sol >=0.6.0, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdStyle.sol >=0.4.22, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdUtils.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/interfaces/IMulticall3.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/mocks/MockERC20.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/mocks/MockERC721.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/Base.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ └── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 + ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 + ├── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/interfaces/IMorphoCallbacks.sol >=0.5.0 + ├── src/mocks/IrmMock.sol ^0.8.0 + │ ├── src/interfaces/IIrm.sol >=0.5.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/MathLib.sol ^0.8.0 + ├── src/mocks/ERC20Mock.sol ^0.8.0 + │ └── src/mocks/interfaces/IERC20.sol ^0.8.0 + ├── src/mocks/OracleMock.sol ^0.8.0 + │ └── src/interfaces/IOracle.sol >=0.5.0 + ├── src/Morpho.sol =0.8.19 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IMorphoCallbacks.sol >=0.5.0 + │ ├── src/interfaces/IIrm.sol >=0.5.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IERC20.sol >=0.5.0 + │ ├── src/interfaces/IOracle.sol >=0.5.0 + │ ├── src/libraries/ConstantsLib.sol ^0.8.0 + │ ├── src/libraries/UtilsLib.sol ^0.8.0 + │ │ └── src/libraries/ErrorsLib.sol ^0.8.0 + │ ├── src/libraries/EventsLib.sol ^0.8.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/libraries/ErrorsLib.sol ^0.8.0 + │ ├── src/libraries/MathLib.sol ^0.8.0 + │ ├── src/libraries/SharesMathLib.sol ^0.8.0 + │ │ └── src/libraries/MathLib.sol ^0.8.0 + │ ├── src/libraries/MarketParamsLib.sol ^0.8.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/SafeTransferLib.sol ^0.8.0 + │ ├── src/interfaces/IERC20.sol >=0.5.0 + │ └── src/libraries/ErrorsLib.sol ^0.8.0 + ├── test/forge/helpers/Math.sol ^0.8.0 + ├── test/forge/helpers/SigUtils.sol ^0.8.0 + │ ├── src/libraries/ConstantsLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── test/forge/helpers/ArrayLib.sol ^0.8.0 + ├── src/libraries/periphery/MorphoLib.sol ^0.8.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + └── src/libraries/periphery/MorphoBalancesLib.sol ^0.8.0 + ├── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/interfaces/IIrm.sol >=0.5.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/libraries/MathLib.sol ^0.8.0 + ├── src/libraries/UtilsLib.sol ^0.8.0 + │ └── src/libraries/ErrorsLib.sol ^0.8.0 + ├── src/libraries/periphery/MorphoLib.sol ^0.8.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/libraries/SharesMathLib.sol ^0.8.0 + │ └── src/libraries/MathLib.sol ^0.8.0 + └── src/libraries/MarketParamsLib.sol ^0.8.0 + └── src/interfaces/IMorpho.sol >=0.5.0 +test/forge/integration/SupplyIntegrationTest.sol ^0.8.0 +└── test/forge/BaseTest.sol ^0.8.0 + ├── lib/forge-std/src/Test.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 + │ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 + │ ├── lib/forge-std/src/safeconsole.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdAssertions.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 + │ │ └── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdChains.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdCheats.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdError.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdInvariant.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdJson.sol >=0.6.0, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdStyle.sol >=0.4.22, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdUtils.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/interfaces/IMulticall3.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/mocks/MockERC20.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/mocks/MockERC721.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/Base.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ └── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 + ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 + ├── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/interfaces/IMorphoCallbacks.sol >=0.5.0 + ├── src/mocks/IrmMock.sol ^0.8.0 + │ ├── src/interfaces/IIrm.sol >=0.5.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/MathLib.sol ^0.8.0 + ├── src/mocks/ERC20Mock.sol ^0.8.0 + │ └── src/mocks/interfaces/IERC20.sol ^0.8.0 + ├── src/mocks/OracleMock.sol ^0.8.0 + │ └── src/interfaces/IOracle.sol >=0.5.0 + ├── src/Morpho.sol =0.8.19 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IMorphoCallbacks.sol >=0.5.0 + │ ├── src/interfaces/IIrm.sol >=0.5.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IERC20.sol >=0.5.0 + │ ├── src/interfaces/IOracle.sol >=0.5.0 + │ ├── src/libraries/ConstantsLib.sol ^0.8.0 + │ ├── src/libraries/UtilsLib.sol ^0.8.0 + │ │ └── src/libraries/ErrorsLib.sol ^0.8.0 + │ ├── src/libraries/EventsLib.sol ^0.8.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/libraries/ErrorsLib.sol ^0.8.0 + │ ├── src/libraries/MathLib.sol ^0.8.0 + │ ├── src/libraries/SharesMathLib.sol ^0.8.0 + │ │ └── src/libraries/MathLib.sol ^0.8.0 + │ ├── src/libraries/MarketParamsLib.sol ^0.8.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/SafeTransferLib.sol ^0.8.0 + │ ├── src/interfaces/IERC20.sol >=0.5.0 + │ └── src/libraries/ErrorsLib.sol ^0.8.0 + ├── test/forge/helpers/Math.sol ^0.8.0 + ├── test/forge/helpers/SigUtils.sol ^0.8.0 + │ ├── src/libraries/ConstantsLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── test/forge/helpers/ArrayLib.sol ^0.8.0 + ├── src/libraries/periphery/MorphoLib.sol ^0.8.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + └── src/libraries/periphery/MorphoBalancesLib.sol ^0.8.0 + ├── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/interfaces/IIrm.sol >=0.5.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/libraries/MathLib.sol ^0.8.0 + ├── src/libraries/UtilsLib.sol ^0.8.0 + │ └── src/libraries/ErrorsLib.sol ^0.8.0 + ├── src/libraries/periphery/MorphoLib.sol ^0.8.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/libraries/SharesMathLib.sol ^0.8.0 + │ └── src/libraries/MathLib.sol ^0.8.0 + └── src/libraries/MarketParamsLib.sol ^0.8.0 + └── src/interfaces/IMorpho.sol >=0.5.0 +test/forge/integration/WithdrawCollateralIntegrationTest.sol ^0.8.0 +└── test/forge/BaseTest.sol ^0.8.0 + ├── lib/forge-std/src/Test.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 + │ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 + │ ├── lib/forge-std/src/safeconsole.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdAssertions.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 + │ │ └── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdChains.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdCheats.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdError.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdInvariant.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdJson.sol >=0.6.0, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdStyle.sol >=0.4.22, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdUtils.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/interfaces/IMulticall3.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/mocks/MockERC20.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/mocks/MockERC721.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/Base.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ └── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 + ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 + ├── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/interfaces/IMorphoCallbacks.sol >=0.5.0 + ├── src/mocks/IrmMock.sol ^0.8.0 + │ ├── src/interfaces/IIrm.sol >=0.5.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/MathLib.sol ^0.8.0 + ├── src/mocks/ERC20Mock.sol ^0.8.0 + │ └── src/mocks/interfaces/IERC20.sol ^0.8.0 + ├── src/mocks/OracleMock.sol ^0.8.0 + │ └── src/interfaces/IOracle.sol >=0.5.0 + ├── src/Morpho.sol =0.8.19 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IMorphoCallbacks.sol >=0.5.0 + │ ├── src/interfaces/IIrm.sol >=0.5.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IERC20.sol >=0.5.0 + │ ├── src/interfaces/IOracle.sol >=0.5.0 + │ ├── src/libraries/ConstantsLib.sol ^0.8.0 + │ ├── src/libraries/UtilsLib.sol ^0.8.0 + │ │ └── src/libraries/ErrorsLib.sol ^0.8.0 + │ ├── src/libraries/EventsLib.sol ^0.8.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/libraries/ErrorsLib.sol ^0.8.0 + │ ├── src/libraries/MathLib.sol ^0.8.0 + │ ├── src/libraries/SharesMathLib.sol ^0.8.0 + │ │ └── src/libraries/MathLib.sol ^0.8.0 + │ ├── src/libraries/MarketParamsLib.sol ^0.8.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/SafeTransferLib.sol ^0.8.0 + │ ├── src/interfaces/IERC20.sol >=0.5.0 + │ └── src/libraries/ErrorsLib.sol ^0.8.0 + ├── test/forge/helpers/Math.sol ^0.8.0 + ├── test/forge/helpers/SigUtils.sol ^0.8.0 + │ ├── src/libraries/ConstantsLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── test/forge/helpers/ArrayLib.sol ^0.8.0 + ├── src/libraries/periphery/MorphoLib.sol ^0.8.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + └── src/libraries/periphery/MorphoBalancesLib.sol ^0.8.0 + ├── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/interfaces/IIrm.sol >=0.5.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/libraries/MathLib.sol ^0.8.0 + ├── src/libraries/UtilsLib.sol ^0.8.0 + │ └── src/libraries/ErrorsLib.sol ^0.8.0 + ├── src/libraries/periphery/MorphoLib.sol ^0.8.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/libraries/SharesMathLib.sol ^0.8.0 + │ └── src/libraries/MathLib.sol ^0.8.0 + └── src/libraries/MarketParamsLib.sol ^0.8.0 + └── src/interfaces/IMorpho.sol >=0.5.0 +test/forge/integration/WithdrawIntegrationTest.sol ^0.8.0 +└── test/forge/BaseTest.sol ^0.8.0 + ├── lib/forge-std/src/Test.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 + │ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 + │ ├── lib/forge-std/src/safeconsole.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdAssertions.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 + │ │ └── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdChains.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdCheats.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdError.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdInvariant.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdJson.sol >=0.6.0, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdStyle.sol >=0.4.22, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdUtils.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/interfaces/IMulticall3.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/mocks/MockERC20.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/mocks/MockERC721.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/Base.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ └── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 + ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 + ├── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/interfaces/IMorphoCallbacks.sol >=0.5.0 + ├── src/mocks/IrmMock.sol ^0.8.0 + │ ├── src/interfaces/IIrm.sol >=0.5.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/MathLib.sol ^0.8.0 + ├── src/mocks/ERC20Mock.sol ^0.8.0 + │ └── src/mocks/interfaces/IERC20.sol ^0.8.0 + ├── src/mocks/OracleMock.sol ^0.8.0 + │ └── src/interfaces/IOracle.sol >=0.5.0 + ├── src/Morpho.sol =0.8.19 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IMorphoCallbacks.sol >=0.5.0 + │ ├── src/interfaces/IIrm.sol >=0.5.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IERC20.sol >=0.5.0 + │ ├── src/interfaces/IOracle.sol >=0.5.0 + │ ├── src/libraries/ConstantsLib.sol ^0.8.0 + │ ├── src/libraries/UtilsLib.sol ^0.8.0 + │ │ └── src/libraries/ErrorsLib.sol ^0.8.0 + │ ├── src/libraries/EventsLib.sol ^0.8.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/libraries/ErrorsLib.sol ^0.8.0 + │ ├── src/libraries/MathLib.sol ^0.8.0 + │ ├── src/libraries/SharesMathLib.sol ^0.8.0 + │ │ └── src/libraries/MathLib.sol ^0.8.0 + │ ├── src/libraries/MarketParamsLib.sol ^0.8.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/SafeTransferLib.sol ^0.8.0 + │ ├── src/interfaces/IERC20.sol >=0.5.0 + │ └── src/libraries/ErrorsLib.sol ^0.8.0 + ├── test/forge/helpers/Math.sol ^0.8.0 + ├── test/forge/helpers/SigUtils.sol ^0.8.0 + │ ├── src/libraries/ConstantsLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── test/forge/helpers/ArrayLib.sol ^0.8.0 + ├── src/libraries/periphery/MorphoLib.sol ^0.8.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + └── src/libraries/periphery/MorphoBalancesLib.sol ^0.8.0 + ├── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/interfaces/IIrm.sol >=0.5.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/libraries/MathLib.sol ^0.8.0 + ├── src/libraries/UtilsLib.sol ^0.8.0 + │ └── src/libraries/ErrorsLib.sol ^0.8.0 + ├── src/libraries/periphery/MorphoLib.sol ^0.8.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/libraries/SharesMathLib.sol ^0.8.0 + │ └── src/libraries/MathLib.sol ^0.8.0 + └── src/libraries/MarketParamsLib.sol ^0.8.0 + └── src/interfaces/IMorpho.sol >=0.5.0 +test/forge/invariant/BaseInvariantTest.sol ^0.8.0 +└── test/forge/InvariantTest.sol ^0.8.0 + └── test/forge/BaseTest.sol ^0.8.0 + ├── lib/forge-std/src/Test.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 + │ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 + │ ├── lib/forge-std/src/safeconsole.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdAssertions.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 + │ │ └── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdChains.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdCheats.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdError.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdInvariant.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdJson.sol >=0.6.0, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdStyle.sol >=0.4.22, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdUtils.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/interfaces/IMulticall3.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/mocks/MockERC20.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/mocks/MockERC721.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/Base.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ └── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 + ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 + ├── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/interfaces/IMorphoCallbacks.sol >=0.5.0 + ├── src/mocks/IrmMock.sol ^0.8.0 + │ ├── src/interfaces/IIrm.sol >=0.5.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/MathLib.sol ^0.8.0 + ├── src/mocks/ERC20Mock.sol ^0.8.0 + │ └── src/mocks/interfaces/IERC20.sol ^0.8.0 + ├── src/mocks/OracleMock.sol ^0.8.0 + │ └── src/interfaces/IOracle.sol >=0.5.0 + ├── src/Morpho.sol =0.8.19 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IMorphoCallbacks.sol >=0.5.0 + │ ├── src/interfaces/IIrm.sol >=0.5.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IERC20.sol >=0.5.0 + │ ├── src/interfaces/IOracle.sol >=0.5.0 + │ ├── src/libraries/ConstantsLib.sol ^0.8.0 + │ ├── src/libraries/UtilsLib.sol ^0.8.0 + │ │ └── src/libraries/ErrorsLib.sol ^0.8.0 + │ ├── src/libraries/EventsLib.sol ^0.8.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/libraries/ErrorsLib.sol ^0.8.0 + │ ├── src/libraries/MathLib.sol ^0.8.0 + │ ├── src/libraries/SharesMathLib.sol ^0.8.0 + │ │ └── src/libraries/MathLib.sol ^0.8.0 + │ ├── src/libraries/MarketParamsLib.sol ^0.8.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/SafeTransferLib.sol ^0.8.0 + │ ├── src/interfaces/IERC20.sol >=0.5.0 + │ └── src/libraries/ErrorsLib.sol ^0.8.0 + ├── test/forge/helpers/Math.sol ^0.8.0 + ├── test/forge/helpers/SigUtils.sol ^0.8.0 + │ ├── src/libraries/ConstantsLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── test/forge/helpers/ArrayLib.sol ^0.8.0 + ├── src/libraries/periphery/MorphoLib.sol ^0.8.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + └── src/libraries/periphery/MorphoBalancesLib.sol ^0.8.0 + ├── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/interfaces/IIrm.sol >=0.5.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/libraries/MathLib.sol ^0.8.0 + ├── src/libraries/UtilsLib.sol ^0.8.0 + │ └── src/libraries/ErrorsLib.sol ^0.8.0 + ├── src/libraries/periphery/MorphoLib.sol ^0.8.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/libraries/SharesMathLib.sol ^0.8.0 + │ └── src/libraries/MathLib.sol ^0.8.0 + └── src/libraries/MarketParamsLib.sol ^0.8.0 + └── src/interfaces/IMorpho.sol >=0.5.0 +test/forge/invariant/DynamicInvariantTest.sol ^0.8.0 +└── test/forge/invariant/BaseInvariantTest.sol ^0.8.0 + └── test/forge/InvariantTest.sol ^0.8.0 + └── test/forge/BaseTest.sol ^0.8.0 + ├── lib/forge-std/src/Test.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 + │ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 + │ ├── lib/forge-std/src/safeconsole.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdAssertions.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 + │ │ └── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdChains.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdCheats.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdError.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdInvariant.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdJson.sol >=0.6.0, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdStyle.sol >=0.4.22, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdUtils.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/interfaces/IMulticall3.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/mocks/MockERC20.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/mocks/MockERC721.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/Base.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ └── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 + ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 + ├── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/interfaces/IMorphoCallbacks.sol >=0.5.0 + ├── src/mocks/IrmMock.sol ^0.8.0 + │ ├── src/interfaces/IIrm.sol >=0.5.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/MathLib.sol ^0.8.0 + ├── src/mocks/ERC20Mock.sol ^0.8.0 + │ └── src/mocks/interfaces/IERC20.sol ^0.8.0 + ├── src/mocks/OracleMock.sol ^0.8.0 + │ └── src/interfaces/IOracle.sol >=0.5.0 + ├── src/Morpho.sol =0.8.19 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IMorphoCallbacks.sol >=0.5.0 + │ ├── src/interfaces/IIrm.sol >=0.5.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IERC20.sol >=0.5.0 + │ ├── src/interfaces/IOracle.sol >=0.5.0 + │ ├── src/libraries/ConstantsLib.sol ^0.8.0 + │ ├── src/libraries/UtilsLib.sol ^0.8.0 + │ │ └── src/libraries/ErrorsLib.sol ^0.8.0 + │ ├── src/libraries/EventsLib.sol ^0.8.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/libraries/ErrorsLib.sol ^0.8.0 + │ ├── src/libraries/MathLib.sol ^0.8.0 + │ ├── src/libraries/SharesMathLib.sol ^0.8.0 + │ │ └── src/libraries/MathLib.sol ^0.8.0 + │ ├── src/libraries/MarketParamsLib.sol ^0.8.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/SafeTransferLib.sol ^0.8.0 + │ ├── src/interfaces/IERC20.sol >=0.5.0 + │ └── src/libraries/ErrorsLib.sol ^0.8.0 + ├── test/forge/helpers/Math.sol ^0.8.0 + ├── test/forge/helpers/SigUtils.sol ^0.8.0 + │ ├── src/libraries/ConstantsLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── test/forge/helpers/ArrayLib.sol ^0.8.0 + ├── src/libraries/periphery/MorphoLib.sol ^0.8.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + └── src/libraries/periphery/MorphoBalancesLib.sol ^0.8.0 + ├── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/interfaces/IIrm.sol >=0.5.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/libraries/MathLib.sol ^0.8.0 + ├── src/libraries/UtilsLib.sol ^0.8.0 + │ └── src/libraries/ErrorsLib.sol ^0.8.0 + ├── src/libraries/periphery/MorphoLib.sol ^0.8.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/libraries/SharesMathLib.sol ^0.8.0 + │ └── src/libraries/MathLib.sol ^0.8.0 + └── src/libraries/MarketParamsLib.sol ^0.8.0 + └── src/interfaces/IMorpho.sol >=0.5.0 +test/forge/invariant/StaticInvariantTest.sol ^0.8.0 +└── test/forge/invariant/BaseInvariantTest.sol ^0.8.0 + └── test/forge/InvariantTest.sol ^0.8.0 + └── test/forge/BaseTest.sol ^0.8.0 + ├── lib/forge-std/src/Test.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 + │ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 + │ ├── lib/forge-std/src/safeconsole.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdAssertions.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 + │ │ └── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdChains.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdCheats.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdError.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdInvariant.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdJson.sol >=0.6.0, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdStyle.sol >=0.4.22, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdUtils.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/interfaces/IMulticall3.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/mocks/MockERC20.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/mocks/MockERC721.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/Base.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ └── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 + ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 + ├── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/interfaces/IMorphoCallbacks.sol >=0.5.0 + ├── src/mocks/IrmMock.sol ^0.8.0 + │ ├── src/interfaces/IIrm.sol >=0.5.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/MathLib.sol ^0.8.0 + ├── src/mocks/ERC20Mock.sol ^0.8.0 + │ └── src/mocks/interfaces/IERC20.sol ^0.8.0 + ├── src/mocks/OracleMock.sol ^0.8.0 + │ └── src/interfaces/IOracle.sol >=0.5.0 + ├── src/Morpho.sol =0.8.19 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IMorphoCallbacks.sol >=0.5.0 + │ ├── src/interfaces/IIrm.sol >=0.5.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IERC20.sol >=0.5.0 + │ ├── src/interfaces/IOracle.sol >=0.5.0 + │ ├── src/libraries/ConstantsLib.sol ^0.8.0 + │ ├── src/libraries/UtilsLib.sol ^0.8.0 + │ │ └── src/libraries/ErrorsLib.sol ^0.8.0 + │ ├── src/libraries/EventsLib.sol ^0.8.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/libraries/ErrorsLib.sol ^0.8.0 + │ ├── src/libraries/MathLib.sol ^0.8.0 + │ ├── src/libraries/SharesMathLib.sol ^0.8.0 + │ │ └── src/libraries/MathLib.sol ^0.8.0 + │ ├── src/libraries/MarketParamsLib.sol ^0.8.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/SafeTransferLib.sol ^0.8.0 + │ ├── src/interfaces/IERC20.sol >=0.5.0 + │ └── src/libraries/ErrorsLib.sol ^0.8.0 + ├── test/forge/helpers/Math.sol ^0.8.0 + ├── test/forge/helpers/SigUtils.sol ^0.8.0 + │ ├── src/libraries/ConstantsLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── test/forge/helpers/ArrayLib.sol ^0.8.0 + ├── src/libraries/periphery/MorphoLib.sol ^0.8.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + └── src/libraries/periphery/MorphoBalancesLib.sol ^0.8.0 + ├── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/interfaces/IIrm.sol >=0.5.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/libraries/MathLib.sol ^0.8.0 + ├── src/libraries/UtilsLib.sol ^0.8.0 + │ └── src/libraries/ErrorsLib.sol ^0.8.0 + ├── src/libraries/periphery/MorphoLib.sol ^0.8.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/libraries/SharesMathLib.sol ^0.8.0 + │ └── src/libraries/MathLib.sol ^0.8.0 + └── src/libraries/MarketParamsLib.sol ^0.8.0 + └── src/interfaces/IMorpho.sol >=0.5.0 +test/forge/libraries/MathLibTest.sol ^0.8.0 +├── lib/forge-std/src/Test.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 +│ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 +│ ├── lib/forge-std/src/safeconsole.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdAssertions.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 +│ │ └── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdChains.sol >=0.6.2, <0.9.0 +│ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdCheats.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 +│ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 +│ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdError.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdInvariant.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdJson.sol >=0.6.0, <0.9.0 +│ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 +│ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdStyle.sol >=0.4.22, <0.9.0 +│ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdUtils.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/src/interfaces/IMulticall3.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/src/mocks/MockERC20.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/src/mocks/MockERC721.sol >=0.6.2, <0.9.0 +│ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/Base.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 +│ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ └── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 +├── src/libraries/MathLib.sol ^0.8.0 +└── test/forge/helpers/WadMath.sol ^0.8.0 +test/forge/libraries/SafeTransferLibTest.sol ^0.8.0 +├── lib/forge-std/src/Test.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 +│ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 +│ ├── lib/forge-std/src/safeconsole.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdAssertions.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 +│ │ └── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdChains.sol >=0.6.2, <0.9.0 +│ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdCheats.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 +│ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 +│ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdError.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdInvariant.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdJson.sol >=0.6.0, <0.9.0 +│ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 +│ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdStyle.sol >=0.4.22, <0.9.0 +│ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdUtils.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/src/interfaces/IMulticall3.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/src/mocks/MockERC20.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/src/mocks/MockERC721.sol >=0.6.2, <0.9.0 +│ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/Base.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 +│ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ └── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 +├── src/libraries/ErrorsLib.sol ^0.8.0 +└── src/libraries/SafeTransferLib.sol ^0.8.0 + ├── src/interfaces/IERC20.sol >=0.5.0 + └── src/libraries/ErrorsLib.sol ^0.8.0 +test/forge/libraries/UtilsLibTest.sol ^0.8.0 +├── lib/forge-std/src/Test.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 +│ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 +│ ├── lib/forge-std/src/safeconsole.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdAssertions.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 +│ │ └── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdChains.sol >=0.6.2, <0.9.0 +│ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdCheats.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 +│ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 +│ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdError.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdInvariant.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdJson.sol >=0.6.0, <0.9.0 +│ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 +│ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdStyle.sol >=0.4.22, <0.9.0 +│ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdUtils.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/src/interfaces/IMulticall3.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/src/mocks/MockERC20.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/src/mocks/MockERC721.sol >=0.6.2, <0.9.0 +│ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/Base.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 +│ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ └── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 +├── src/libraries/ErrorsLib.sol ^0.8.0 +└── src/libraries/UtilsLib.sol ^0.8.0 + └── src/libraries/ErrorsLib.sol ^0.8.0 +test/forge/libraries/periphery/MorphoBalancesLibTest.sol ^0.8.0 +└── test/forge/BaseTest.sol ^0.8.0 + ├── lib/forge-std/src/Test.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 + │ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 + │ ├── lib/forge-std/src/safeconsole.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdAssertions.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 + │ │ └── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdChains.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdCheats.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdError.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdInvariant.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdJson.sol >=0.6.0, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdStyle.sol >=0.4.22, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdUtils.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/interfaces/IMulticall3.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/mocks/MockERC20.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/mocks/MockERC721.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/Base.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ └── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 + ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 + ├── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/interfaces/IMorphoCallbacks.sol >=0.5.0 + ├── src/mocks/IrmMock.sol ^0.8.0 + │ ├── src/interfaces/IIrm.sol >=0.5.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/MathLib.sol ^0.8.0 + ├── src/mocks/ERC20Mock.sol ^0.8.0 + │ └── src/mocks/interfaces/IERC20.sol ^0.8.0 + ├── src/mocks/OracleMock.sol ^0.8.0 + │ └── src/interfaces/IOracle.sol >=0.5.0 + ├── src/Morpho.sol =0.8.19 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IMorphoCallbacks.sol >=0.5.0 + │ ├── src/interfaces/IIrm.sol >=0.5.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IERC20.sol >=0.5.0 + │ ├── src/interfaces/IOracle.sol >=0.5.0 + │ ├── src/libraries/ConstantsLib.sol ^0.8.0 + │ ├── src/libraries/UtilsLib.sol ^0.8.0 + │ │ └── src/libraries/ErrorsLib.sol ^0.8.0 + │ ├── src/libraries/EventsLib.sol ^0.8.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/libraries/ErrorsLib.sol ^0.8.0 + │ ├── src/libraries/MathLib.sol ^0.8.0 + │ ├── src/libraries/SharesMathLib.sol ^0.8.0 + │ │ └── src/libraries/MathLib.sol ^0.8.0 + │ ├── src/libraries/MarketParamsLib.sol ^0.8.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/SafeTransferLib.sol ^0.8.0 + │ ├── src/interfaces/IERC20.sol >=0.5.0 + │ └── src/libraries/ErrorsLib.sol ^0.8.0 + ├── test/forge/helpers/Math.sol ^0.8.0 + ├── test/forge/helpers/SigUtils.sol ^0.8.0 + │ ├── src/libraries/ConstantsLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── test/forge/helpers/ArrayLib.sol ^0.8.0 + ├── src/libraries/periphery/MorphoLib.sol ^0.8.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + └── src/libraries/periphery/MorphoBalancesLib.sol ^0.8.0 + ├── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/interfaces/IIrm.sol >=0.5.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/libraries/MathLib.sol ^0.8.0 + ├── src/libraries/UtilsLib.sol ^0.8.0 + │ └── src/libraries/ErrorsLib.sol ^0.8.0 + ├── src/libraries/periphery/MorphoLib.sol ^0.8.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/libraries/SharesMathLib.sol ^0.8.0 + │ └── src/libraries/MathLib.sol ^0.8.0 + └── src/libraries/MarketParamsLib.sol ^0.8.0 + └── src/interfaces/IMorpho.sol >=0.5.0 +test/forge/libraries/periphery/MorphoLibTest.sol ^0.8.0 +└── test/forge/BaseTest.sol ^0.8.0 + ├── lib/forge-std/src/Test.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 + │ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 + │ ├── lib/forge-std/src/safeconsole.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdAssertions.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 + │ │ └── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdChains.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdCheats.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdError.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdInvariant.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdJson.sol >=0.6.0, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdStyle.sol >=0.4.22, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdUtils.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/interfaces/IMulticall3.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/mocks/MockERC20.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/mocks/MockERC721.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/Base.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ └── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 + ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 + ├── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/interfaces/IMorphoCallbacks.sol >=0.5.0 + ├── src/mocks/IrmMock.sol ^0.8.0 + │ ├── src/interfaces/IIrm.sol >=0.5.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/MathLib.sol ^0.8.0 + ├── src/mocks/ERC20Mock.sol ^0.8.0 + │ └── src/mocks/interfaces/IERC20.sol ^0.8.0 + ├── src/mocks/OracleMock.sol ^0.8.0 + │ └── src/interfaces/IOracle.sol >=0.5.0 + ├── src/Morpho.sol =0.8.19 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IMorphoCallbacks.sol >=0.5.0 + │ ├── src/interfaces/IIrm.sol >=0.5.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IERC20.sol >=0.5.0 + │ ├── src/interfaces/IOracle.sol >=0.5.0 + │ ├── src/libraries/ConstantsLib.sol ^0.8.0 + │ ├── src/libraries/UtilsLib.sol ^0.8.0 + │ │ └── src/libraries/ErrorsLib.sol ^0.8.0 + │ ├── src/libraries/EventsLib.sol ^0.8.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/libraries/ErrorsLib.sol ^0.8.0 + │ ├── src/libraries/MathLib.sol ^0.8.0 + │ ├── src/libraries/SharesMathLib.sol ^0.8.0 + │ │ └── src/libraries/MathLib.sol ^0.8.0 + │ ├── src/libraries/MarketParamsLib.sol ^0.8.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/SafeTransferLib.sol ^0.8.0 + │ ├── src/interfaces/IERC20.sol >=0.5.0 + │ └── src/libraries/ErrorsLib.sol ^0.8.0 + ├── test/forge/helpers/Math.sol ^0.8.0 + ├── test/forge/helpers/SigUtils.sol ^0.8.0 + │ ├── src/libraries/ConstantsLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── test/forge/helpers/ArrayLib.sol ^0.8.0 + ├── src/libraries/periphery/MorphoLib.sol ^0.8.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + └── src/libraries/periphery/MorphoBalancesLib.sol ^0.8.0 + ├── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/interfaces/IIrm.sol >=0.5.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/libraries/MathLib.sol ^0.8.0 + ├── src/libraries/UtilsLib.sol ^0.8.0 + │ └── src/libraries/ErrorsLib.sol ^0.8.0 + ├── src/libraries/periphery/MorphoLib.sol ^0.8.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/libraries/SharesMathLib.sol ^0.8.0 + │ └── src/libraries/MathLib.sol ^0.8.0 + └── src/libraries/MarketParamsLib.sol ^0.8.0 + └── src/interfaces/IMorpho.sol >=0.5.0 +test/forge/libraries/periphery/MorphoStorageLibTest.sol ^0.8.0 +├── src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 +│ └── src/interfaces/IMorpho.sol >=0.5.0 +├── test/forge/helpers/SigUtils.sol ^0.8.0 +│ ├── src/libraries/ConstantsLib.sol ^0.8.0 +│ └── src/interfaces/IMorpho.sol >=0.5.0 +└── test/forge/BaseTest.sol ^0.8.0 + ├── lib/forge-std/src/Test.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 + │ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 + │ ├── lib/forge-std/src/safeconsole.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdAssertions.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 + │ │ └── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdChains.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdCheats.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdError.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdInvariant.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdJson.sol >=0.6.0, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdStyle.sol >=0.4.22, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/StdUtils.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/interfaces/IMulticall3.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/mocks/MockERC20.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/mocks/MockERC721.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ ├── lib/forge-std/src/Base.sol >=0.6.2, <0.9.0 + │ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 + │ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 + │ └── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 + ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 + ├── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/interfaces/IMorphoCallbacks.sol >=0.5.0 + ├── src/mocks/IrmMock.sol ^0.8.0 + │ ├── src/interfaces/IIrm.sol >=0.5.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/MathLib.sol ^0.8.0 + ├── src/mocks/ERC20Mock.sol ^0.8.0 + │ └── src/mocks/interfaces/IERC20.sol ^0.8.0 + ├── src/mocks/OracleMock.sol ^0.8.0 + │ └── src/interfaces/IOracle.sol >=0.5.0 + ├── src/Morpho.sol =0.8.19 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IMorphoCallbacks.sol >=0.5.0 + │ ├── src/interfaces/IIrm.sol >=0.5.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/interfaces/IERC20.sol >=0.5.0 + │ ├── src/interfaces/IOracle.sol >=0.5.0 + │ ├── src/libraries/ConstantsLib.sol ^0.8.0 + │ ├── src/libraries/UtilsLib.sol ^0.8.0 + │ │ └── src/libraries/ErrorsLib.sol ^0.8.0 + │ ├── src/libraries/EventsLib.sol ^0.8.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ ├── src/libraries/ErrorsLib.sol ^0.8.0 + │ ├── src/libraries/MathLib.sol ^0.8.0 + │ ├── src/libraries/SharesMathLib.sol ^0.8.0 + │ │ └── src/libraries/MathLib.sol ^0.8.0 + │ ├── src/libraries/MarketParamsLib.sol ^0.8.0 + │ │ └── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/SafeTransferLib.sol ^0.8.0 + │ ├── src/interfaces/IERC20.sol >=0.5.0 + │ └── src/libraries/ErrorsLib.sol ^0.8.0 + ├── test/forge/helpers/Math.sol ^0.8.0 + ├── test/forge/helpers/SigUtils.sol ^0.8.0 + │ ├── src/libraries/ConstantsLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── test/forge/helpers/ArrayLib.sol ^0.8.0 + ├── src/libraries/periphery/MorphoLib.sol ^0.8.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + └── src/libraries/periphery/MorphoBalancesLib.sol ^0.8.0 + ├── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/interfaces/IIrm.sol >=0.5.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/libraries/MathLib.sol ^0.8.0 + ├── src/libraries/UtilsLib.sol ^0.8.0 + │ └── src/libraries/ErrorsLib.sol ^0.8.0 + ├── src/libraries/periphery/MorphoLib.sol ^0.8.0 + │ ├── src/interfaces/IMorpho.sol >=0.5.0 + │ └── src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 + │ └── src/interfaces/IMorpho.sol >=0.5.0 + ├── src/libraries/SharesMathLib.sol ^0.8.0 + │ └── src/libraries/MathLib.sol ^0.8.0 + └── src/libraries/MarketParamsLib.sol ^0.8.0 + └── src/interfaces/IMorpho.sol >=0.5.0 +test/halmos/HalmosTest.sol ^0.8.0 +├── lib/forge-std/src/Test.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/console.sol >=0.4.22, <0.9.0 +│ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 +│ ├── lib/forge-std/src/safeconsole.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdAssertions.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 +│ │ └── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdChains.sol >=0.6.2, <0.9.0 +│ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdCheats.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 +│ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/src/console2.sol >=0.4.22, <0.9.0 +│ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdError.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdInvariant.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdJson.sol >=0.6.0, <0.9.0 +│ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdMath.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 +│ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdStyle.sol >=0.4.22, <0.9.0 +│ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/StdUtils.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/src/interfaces/IMulticall3.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/src/mocks/MockERC20.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/src/mocks/MockERC721.sol >=0.6.2, <0.9.0 +│ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ ├── lib/forge-std/src/Base.sol >=0.6.2, <0.9.0 +│ │ ├── lib/forge-std/src/StdStorage.sol >=0.6.2, <0.9.0 +│ │ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ │ └── lib/forge-std/src/Vm.sol >=0.6.2, <0.9.0 +│ └── lib/forge-std/lib/ds-test/src/test.sol >=0.5.0 +├── lib/halmos-cheatcodes/src/SymTest.sol >=0.8.0, <0.9.0 +│ └── lib/halmos-cheatcodes/src/SVM.sol >=0.8.0, <0.9.0 +├── src/interfaces/IMorpho.sol >=0.5.0 +├── src/mocks/IrmMock.sol ^0.8.0 +│ ├── src/interfaces/IIrm.sol >=0.5.0 +│ │ └── src/interfaces/IMorpho.sol >=0.5.0 +│ ├── src/interfaces/IMorpho.sol >=0.5.0 +│ └── src/libraries/MathLib.sol ^0.8.0 +├── src/mocks/ERC20Mock.sol ^0.8.0 +│ └── src/mocks/interfaces/IERC20.sol ^0.8.0 +├── src/mocks/OracleMock.sol ^0.8.0 +│ └── src/interfaces/IOracle.sol >=0.5.0 +├── src/mocks/FlashBorrowerMock.sol ^0.8.0 +│ ├── src/mocks/interfaces/IERC20.sol ^0.8.0 +│ ├── src/interfaces/IMorpho.sol >=0.5.0 +│ └── src/interfaces/IMorphoCallbacks.sol >=0.5.0 +├── src/Morpho.sol =0.8.19 +│ ├── src/interfaces/IMorpho.sol >=0.5.0 +│ ├── src/interfaces/IMorphoCallbacks.sol >=0.5.0 +│ ├── src/interfaces/IIrm.sol >=0.5.0 +│ │ └── src/interfaces/IMorpho.sol >=0.5.0 +│ ├── src/interfaces/IERC20.sol >=0.5.0 +│ ├── src/interfaces/IOracle.sol >=0.5.0 +│ ├── src/libraries/ConstantsLib.sol ^0.8.0 +│ ├── src/libraries/UtilsLib.sol ^0.8.0 +│ │ └── src/libraries/ErrorsLib.sol ^0.8.0 +│ ├── src/libraries/EventsLib.sol ^0.8.0 +│ │ └── src/interfaces/IMorpho.sol >=0.5.0 +│ ├── src/libraries/ErrorsLib.sol ^0.8.0 +│ ├── src/libraries/MathLib.sol ^0.8.0 +│ ├── src/libraries/SharesMathLib.sol ^0.8.0 +│ │ └── src/libraries/MathLib.sol ^0.8.0 +│ ├── src/libraries/MarketParamsLib.sol ^0.8.0 +│ │ └── src/interfaces/IMorpho.sol >=0.5.0 +│ └── src/libraries/SafeTransferLib.sol ^0.8.0 +│ ├── src/interfaces/IERC20.sol >=0.5.0 +│ └── src/libraries/ErrorsLib.sol ^0.8.0 +├── src/libraries/ConstantsLib.sol ^0.8.0 +└── src/libraries/periphery/MorphoLib.sol ^0.8.0 + ├── src/interfaces/IMorpho.sol >=0.5.0 + └── src/libraries/periphery/MorphoStorageLib.sol ^0.8.0 + └── src/interfaces/IMorpho.sol >=0.5.0 // ANCHOR_END: output // ANCHOR_END: all diff --git a/src/output/fuzz_testing/forge-test-fail-fuzz b/src/output/fuzz_testing/forge-test-fail-fuzz index 1092c3d8b..71e9060be 100644 --- a/src/output/fuzz_testing/forge-test-fail-fuzz +++ b/src/output/fuzz_testing/forge-test-fail-fuzz @@ -4,13 +4,13 @@ $ forge test --allow-failure // ANCHOR_END: command // ANCHOR: output Compiling 1 files with Solc 0.8.10 -Solc 0.8.10 finished in 1.06s +Solc 0.8.10 finished in 613.80ms Compiler run successful! Ran 1 test for test/Safe.t.sol:SafeTest -[FAIL: EvmError: Revert; counterexample: calldata=0x29facca742835313188484ef1baefb309455b5fb1f247956b287a7e31494eff5f14f9920 args=[30084678331749330539636246896742859463388980334974402481978762942666700200224 [3.008e76]]] testFuzz_Withdraw(uint256) (runs: 3, μ: 19531, ~: 19531) -Suite result: FAILED. 0 passed; 1 failed; 0 skipped; finished in 778.34µs (429.41µs CPU time) +[FAIL: EvmError: Revert; counterexample: calldata=0x29facca7000000000021c07e2a184c843934c60e1b7193dd926d92f4e1e12d634f926c9e args=[13884736649380709696296345338332420822780417755528196300064582814 [1.388e64]]] testFuzz_Withdraw(uint256) (runs: 2, μ: 19884, ~: 19884) +Suite result: FAILED. 0 passed; 1 failed; 0 skipped; finished in 880.88µs (445.41µs CPU time) -Ran 1 test suite in 6.00ms (778.34µs CPU time): 0 tests passed, 1 failed, 0 skipped (1 total tests) +Ran 1 test suite in 5.86ms (880.88µs CPU time): 0 tests passed, 1 failed, 0 skipped (1 total tests) // ANCHOR_END: output // ANCHOR_END: all diff --git a/src/output/fuzz_testing/forge-test-no-fuzz b/src/output/fuzz_testing/forge-test-no-fuzz index fbfc273c6..656abba05 100644 --- a/src/output/fuzz_testing/forge-test-no-fuzz +++ b/src/output/fuzz_testing/forge-test-no-fuzz @@ -4,13 +4,13 @@ $ forge test // ANCHOR_END: command // ANCHOR: output Compiling 24 files with Solc 0.8.10 -Solc 0.8.10 finished in 1.07s +Solc 0.8.10 finished in 662.74ms Compiler run successful! Ran 1 test for test/Safe.t.sol:SafeTest -[PASS] test_Withdraw() (gas: 19463) -Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 391.02µs (44.60µs CPU time) +[PASS] test_Withdraw() (gas: 19644) +Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 468.87µs (51.14µs CPU time) -Ran 1 test suite in 5.56ms (391.02µs CPU time): 1 tests passed, 0 failed, 0 skipped (1 total tests) +Ran 1 test suite in 5.32ms (468.87µs CPU time): 1 tests passed, 0 failed, 0 skipped (1 total tests) // ANCHOR_END: output // ANCHOR_END: all diff --git a/src/output/fuzz_testing/forge-test-success-fuzz b/src/output/fuzz_testing/forge-test-success-fuzz index 06dfe8858..ff0337865 100644 --- a/src/output/fuzz_testing/forge-test-success-fuzz +++ b/src/output/fuzz_testing/forge-test-success-fuzz @@ -4,13 +4,13 @@ $ forge test // ANCHOR_END: command // ANCHOR: output Compiling 1 files with Solc 0.8.10 -Solc 0.8.10 finished in 1.04s +Solc 0.8.10 finished in 622.20ms Compiler run successful! Ran 1 test for test/Safe.t.sol:SafeTest -[PASS] testFuzz_Withdraw(uint96) (runs: 257, μ: 19578, ~: 19631) -Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 5.03ms (4.65ms CPU time) +[PASS] testFuzz_Withdraw(uint96) (runs: 257, μ: 19714, ~: 19923) +Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 5.62ms (5.26ms CPU time) -Ran 1 test suite in 6.49ms (5.03ms CPU time): 1 tests passed, 0 failed, 0 skipped (1 total tests) +Ran 1 test suite in 6.61ms (5.62ms CPU time): 1 tests passed, 0 failed, 0 skipped (1 total tests) // ANCHOR_END: output // ANCHOR_END: all diff --git a/src/output/hello_foundry/forge-build b/src/output/hello_foundry/forge-build index 09a436025..f5a55b89f 100644 --- a/src/output/hello_foundry/forge-build +++ b/src/output/hello_foundry/forge-build @@ -4,7 +4,7 @@ $ forge build // ANCHOR_END: command // ANCHOR: output Compiling 22 files with Solc 0.8.19 -Solc 0.8.19 finished in 727.01ms +Solc 0.8.19 finished in 561.77ms Compiler run successful! // ANCHOR_END: output // ANCHOR_END: all diff --git a/src/output/hello_foundry/forge-init b/src/output/hello_foundry/forge-init index f12e993ca..51f051edb 100644 --- a/src/output/hello_foundry/forge-init +++ b/src/output/hello_foundry/forge-init @@ -3,8 +3,8 @@ $ forge init hello_foundry // ANCHOR_END: command // ANCHOR: output -Initializing /tmp/tmp.uJj4zehtbb/hello_foundry... -Installing forge-std in /tmp/tmp.uJj4zehtbb/hello_foundry/lib/forge-std (url: Some("https://github.com/foundry-rs/forge-std"), tag: None) +Initializing /tmp/tmp.zsoajxRxB4/hello_foundry... +Installing forge-std in /tmp/tmp.zsoajxRxB4/hello_foundry/lib/forge-std (url: Some("https://github.com/foundry-rs/forge-std"), tag: None) Installed forge-std v1.9.6 Initialized forge project // ANCHOR_END: output diff --git a/src/output/hello_foundry/forge-install b/src/output/hello_foundry/forge-install new file mode 100644 index 000000000..248130b05 --- /dev/null +++ b/src/output/hello_foundry/forge-install @@ -0,0 +1,9 @@ +// ANCHOR: all +// ANCHOR: command +$ forge install vectorized/solady +// ANCHOR_END: command +// ANCHOR: output +Installing solady in /tmp/tmp.zsoajxRxB4/hello_foundry/lib/solady (url: Some("https://github.com/vectorized/solady"), tag: None) + Installed solady v0.1.3 +// ANCHOR_END: output +// ANCHOR_END: all diff --git a/src/output/hello_foundry/forge-remappings b/src/output/hello_foundry/forge-remappings new file mode 100644 index 000000000..53c4644a6 --- /dev/null +++ b/src/output/hello_foundry/forge-remappings @@ -0,0 +1,9 @@ +// ANCHOR: all +// ANCHOR: command +$ forge remappings +// ANCHOR_END: command +// ANCHOR: output +forge-std/=lib/forge-std/src/ +solady/=lib/solady/src/ +// ANCHOR_END: output +// ANCHOR_END: all diff --git a/src/output/hello_foundry/forge-test b/src/output/hello_foundry/forge-test index 05aa81aee..602721496 100644 --- a/src/output/hello_foundry/forge-test +++ b/src/output/hello_foundry/forge-test @@ -6,10 +6,10 @@ $ forge test No files changed, compilation skipped Ran 2 tests for test/Counter.t.sol:CounterTest -[PASS] testFuzz_SetNumber(uint256) (runs: 256, μ: 30977, ~: 31288) -[PASS] test_Increment() (gas: 31303) -Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 8.82ms (8.54ms CPU time) +[PASS] testFuzz_SetNumber(uint256) (runs: 256, μ: 31685, ~: 32385) +[PASS] test_Increment() (gas: 31874) +Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 7.18ms (6.83ms CPU time) -Ran 1 test suite in 9.78ms (8.82ms CPU time): 2 tests passed, 0 failed, 0 skipped (2 total tests) +Ran 1 test suite in 8.11ms (7.18ms CPU time): 2 tests passed, 0 failed, 0 skipped (2 total tests) // ANCHOR_END: output // ANCHOR_END: all diff --git a/src/output/test_filters/forge-test-match-contract-and-test b/src/output/test_filters/forge-test-match-contract-and-test index 3aaed5f66..43b6a3c16 100644 --- a/src/output/test_filters/forge-test-match-contract-and-test +++ b/src/output/test_filters/forge-test-match-contract-and-test @@ -4,14 +4,14 @@ $ forge test --match-contract ComplicatedContractTest --match-test test_Deposit // ANCHOR_END: command // ANCHOR: output Compiling 24 files with Solc 0.8.10 -Solc 0.8.10 finished in 1.05s +Solc 0.8.10 finished in 663.14ms Compiler run successful! Ran 2 tests for test/ComplicatedContract.t.sol:ComplicatedContractTest -[PASS] test_DepositERC20() (gas: 102193) -[PASS] test_DepositETH() (gas: 61414) -Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 1.33ms (1.44ms CPU time) +[PASS] test_DepositERC20() (gas: 179207) +[PASS] test_DepositETH() (gas: 107628) +Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 2.24ms (2.86ms CPU time) -Ran 1 test suite in 5.78ms (1.33ms CPU time): 2 tests passed, 0 failed, 0 skipped (2 total tests) +Ran 1 test suite in 6.12ms (2.24ms CPU time): 2 tests passed, 0 failed, 0 skipped (2 total tests) // ANCHOR_END: output // ANCHOR_END: all diff --git a/src/output/test_filters/forge-test-match-path b/src/output/test_filters/forge-test-match-path index a00dce0dc..6c4d6b48e 100644 --- a/src/output/test_filters/forge-test-match-path +++ b/src/output/test_filters/forge-test-match-path @@ -4,13 +4,13 @@ $ forge test --match-path test/ContractB.t.sol // ANCHOR_END: command // ANCHOR: output Compiling 1 files with Solc 0.8.10 -Solc 0.8.10 finished in 1.02s +Solc 0.8.10 finished in 605.82ms Compiler run successful! Ran 1 test for test/ContractB.t.sol:ContractBTest [PASS] testExample() (gas: 257) -Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 309.91µs (47.65µs CPU time) +Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 361.93µs (46.38µs CPU time) -Ran 1 test suite in 5.75ms (309.91µs CPU time): 1 tests passed, 0 failed, 0 skipped (1 total tests) +Ran 1 test suite in 5.44ms (361.93µs CPU time): 1 tests passed, 0 failed, 0 skipped (1 total tests) // ANCHOR_END: output // ANCHOR_END: all diff --git a/src/reference/cli/SUMMARY.md b/src/reference/cli/SUMMARY.md index 651f08f00..64415a4a9 100644 --- a/src/reference/cli/SUMMARY.md +++ b/src/reference/cli/SUMMARY.md @@ -13,7 +13,6 @@ - [`forge config`](./forge/config.md) - [`forge coverage`](./forge/coverage.md) - [`forge create`](./forge/create.md) - - [`forge debug`](./forge/debug.md) - [`forge doc`](./forge/doc.md) - [`forge eip712`](./forge/eip712.md) - [`forge flatten`](./forge/flatten.md) @@ -89,7 +88,6 @@ - [`cast disassemble`](./cast/disassemble.md) - [`cast estimate`](./cast/estimate.md) - [`cast estimate --create`](./cast/estimate/--create.md) - - [`cast etherscan-source`](./cast/etherscan-source.md) - [`cast find-block`](./cast/find-block.md) - [`cast format-bytes32-string`](./cast/format-bytes32-string.md) - [`cast format-units`](./cast/format-units.md) @@ -133,6 +131,7 @@ - [`cast shr`](./cast/shr.md) - [`cast sig`](./cast/sig.md) - [`cast sig-event`](./cast/sig-event.md) + - [`cast source`](./cast/source.md) - [`cast storage`](./cast/storage.md) - [`cast storage-root`](./cast/storage-root.md) - [`cast to-ascii`](./cast/to-ascii.md) diff --git a/src/reference/cli/cast.md b/src/reference/cli/cast.md index 54369bb03..681f2afbc 100644 --- a/src/reference/cli/cast.md +++ b/src/reference/cli/cast.md @@ -1,6 +1,6 @@ # cast -Perform Ethereum RPC calls from the comfort of your command line +A Swiss Army knife for interacting with Ethereum applications from the command ```bash $ cast --help @@ -67,8 +67,6 @@ Commands: disassemble Disassembles a hex-encoded bytecode into a human-readable representation [aliases: da] estimate Estimate the gas cost of a transaction [aliases: e] - etherscan-source Get the source code of a contract from Etherscan - [aliases: et, src] find-block Get the block number closest to the provided timestamp [aliases: f] format-bytes32-string Formats a string into bytes32 encoding [aliases: @@ -137,6 +135,8 @@ Commands: sig Get the selector for a function [aliases: si] sig-event Generate event signatures from event string [aliases: se] + source Get the source code of a contract from a block explorer + [aliases: et, src] storage Get the raw value of a contract's storage slot [aliases: st] storage-root Get the storage root for an account [aliases: sr] diff --git a/src/reference/cli/cast/access-list.md b/src/reference/cli/cast/access-list.md index a5c961bdd..0656130dc 100644 --- a/src/reference/cli/cast/access-list.md +++ b/src/reference/cli/cast/access-list.md @@ -90,7 +90,7 @@ Transaction options: Ethereum options: -r, --rpc-url - The RPC endpoint + The RPC endpoint, default value is http://localhost:8545 [env: ETH_RPC_URL=] diff --git a/src/reference/cli/cast/admin.md b/src/reference/cli/cast/admin.md index 13c5167c0..718636c72 100644 --- a/src/reference/cli/cast/admin.md +++ b/src/reference/cli/cast/admin.md @@ -20,7 +20,7 @@ Options: Can also be the tags earliest, finalized, safe, latest, or pending. -r, --rpc-url - The RPC endpoint + The RPC endpoint, default value is http://localhost:8545 [env: ETH_RPC_URL=] diff --git a/src/reference/cli/cast/age.md b/src/reference/cli/cast/age.md index ed0d5243b..6dfce98a5 100644 --- a/src/reference/cli/cast/age.md +++ b/src/reference/cli/cast/age.md @@ -17,7 +17,7 @@ Arguments: Options: -r, --rpc-url - The RPC endpoint + The RPC endpoint, default value is http://localhost:8545 [env: ETH_RPC_URL=] diff --git a/src/reference/cli/cast/artifact.md b/src/reference/cli/cast/artifact.md index d51257907..126e41e85 100644 --- a/src/reference/cli/cast/artifact.md +++ b/src/reference/cli/cast/artifact.md @@ -34,7 +34,7 @@ Options: [env: CHAIN=] -r, --rpc-url - The RPC endpoint + The RPC endpoint, default value is http://localhost:8545 [env: ETH_RPC_URL=] diff --git a/src/reference/cli/cast/balance.md b/src/reference/cli/cast/balance.md index b7265967d..247bf4249 100644 --- a/src/reference/cli/cast/balance.md +++ b/src/reference/cli/cast/balance.md @@ -23,7 +23,7 @@ Options: Format the balance in ether -r, --rpc-url - The RPC endpoint + The RPC endpoint, default value is http://localhost:8545 [env: ETH_RPC_URL=] diff --git a/src/reference/cli/cast/base-fee.md b/src/reference/cli/cast/base-fee.md index e5044243e..894c39b75 100644 --- a/src/reference/cli/cast/base-fee.md +++ b/src/reference/cli/cast/base-fee.md @@ -17,7 +17,7 @@ Arguments: Options: -r, --rpc-url - The RPC endpoint + The RPC endpoint, default value is http://localhost:8545 [env: ETH_RPC_URL=] diff --git a/src/reference/cli/cast/block-number.md b/src/reference/cli/cast/block-number.md index ff6349b3f..6009ce7f7 100644 --- a/src/reference/cli/cast/block-number.md +++ b/src/reference/cli/cast/block-number.md @@ -16,7 +16,7 @@ Arguments: Options: -r, --rpc-url - The RPC endpoint + The RPC endpoint, default value is http://localhost:8545 [env: ETH_RPC_URL=] diff --git a/src/reference/cli/cast/block.md b/src/reference/cli/cast/block.md index a54926628..9a7e95a80 100644 --- a/src/reference/cli/cast/block.md +++ b/src/reference/cli/cast/block.md @@ -23,7 +23,7 @@ Options: [env: CAST_FULL_BLOCK=] -r, --rpc-url - The RPC endpoint + The RPC endpoint, default value is http://localhost:8545 [env: ETH_RPC_URL=] diff --git a/src/reference/cli/cast/call.md b/src/reference/cli/cast/call.md index 5d0883f57..12bd21805 100644 --- a/src/reference/cli/cast/call.md +++ b/src/reference/cli/cast/call.md @@ -117,7 +117,7 @@ Transaction options: Ethereum options: -r, --rpc-url - The RPC endpoint + The RPC endpoint, default value is http://localhost:8545 [env: ETH_RPC_URL=] diff --git a/src/reference/cli/cast/chain-id.md b/src/reference/cli/cast/chain-id.md index ba7d32dbc..d086257ea 100644 --- a/src/reference/cli/cast/chain-id.md +++ b/src/reference/cli/cast/chain-id.md @@ -11,7 +11,7 @@ Usage: cast chain-id [OPTIONS] Options: -r, --rpc-url - The RPC endpoint + The RPC endpoint, default value is http://localhost:8545 [env: ETH_RPC_URL=] diff --git a/src/reference/cli/cast/chain.md b/src/reference/cli/cast/chain.md index c8689c99b..e126b5c77 100644 --- a/src/reference/cli/cast/chain.md +++ b/src/reference/cli/cast/chain.md @@ -11,7 +11,7 @@ Usage: cast chain [OPTIONS] Options: -r, --rpc-url - The RPC endpoint + The RPC endpoint, default value is http://localhost:8545 [env: ETH_RPC_URL=] diff --git a/src/reference/cli/cast/client.md b/src/reference/cli/cast/client.md index 514d7ddf8..6da25e0aa 100644 --- a/src/reference/cli/cast/client.md +++ b/src/reference/cli/cast/client.md @@ -11,7 +11,7 @@ Usage: cast client [OPTIONS] Options: -r, --rpc-url - The RPC endpoint + The RPC endpoint, default value is http://localhost:8545 [env: ETH_RPC_URL=] diff --git a/src/reference/cli/cast/code.md b/src/reference/cli/cast/code.md index 2c7872570..3f379528c 100644 --- a/src/reference/cli/cast/code.md +++ b/src/reference/cli/cast/code.md @@ -23,7 +23,7 @@ Options: Disassemble bytecodes -r, --rpc-url - The RPC endpoint + The RPC endpoint, default value is http://localhost:8545 [env: ETH_RPC_URL=] diff --git a/src/reference/cli/cast/codehash.md b/src/reference/cli/cast/codehash.md index e01da552a..a75debf66 100644 --- a/src/reference/cli/cast/codehash.md +++ b/src/reference/cli/cast/codehash.md @@ -23,7 +23,7 @@ Options: Can also be the tags earliest, finalized, safe, latest, or pending. -r, --rpc-url - The RPC endpoint + The RPC endpoint, default value is http://localhost:8545 [env: ETH_RPC_URL=] diff --git a/src/reference/cli/cast/codesize.md b/src/reference/cli/cast/codesize.md index 407937fe6..3460f0219 100644 --- a/src/reference/cli/cast/codesize.md +++ b/src/reference/cli/cast/codesize.md @@ -20,7 +20,7 @@ Options: Can also be the tags earliest, finalized, safe, latest, or pending. -r, --rpc-url - The RPC endpoint + The RPC endpoint, default value is http://localhost:8545 [env: ETH_RPC_URL=] diff --git a/src/reference/cli/cast/compute-address.md b/src/reference/cli/cast/compute-address.md index 583e608e6..314f88f39 100644 --- a/src/reference/cli/cast/compute-address.md +++ b/src/reference/cli/cast/compute-address.md @@ -18,7 +18,7 @@ Options: The nonce of the deployer address -r, --rpc-url - The RPC endpoint + The RPC endpoint, default value is http://localhost:8545 [env: ETH_RPC_URL=] diff --git a/src/reference/cli/cast/constructor-args.md b/src/reference/cli/cast/constructor-args.md index c2abfc414..a804ef43c 100644 --- a/src/reference/cli/cast/constructor-args.md +++ b/src/reference/cli/cast/constructor-args.md @@ -29,7 +29,7 @@ Options: [env: CHAIN=] -r, --rpc-url - The RPC endpoint + The RPC endpoint, default value is http://localhost:8545 [env: ETH_RPC_URL=] diff --git a/src/reference/cli/cast/creation-code.md b/src/reference/cli/cast/creation-code.md index 9d059097c..a7c901583 100644 --- a/src/reference/cli/cast/creation-code.md +++ b/src/reference/cli/cast/creation-code.md @@ -38,7 +38,7 @@ Options: [env: CHAIN=] -r, --rpc-url - The RPC endpoint + The RPC endpoint, default value is http://localhost:8545 [env: ETH_RPC_URL=] diff --git a/src/reference/cli/cast/estimate.md b/src/reference/cli/cast/estimate.md index 9cfb44f45..ba0ed7ac0 100644 --- a/src/reference/cli/cast/estimate.md +++ b/src/reference/cli/cast/estimate.md @@ -94,7 +94,7 @@ Transaction options: Ethereum options: -r, --rpc-url - The RPC endpoint + The RPC endpoint, default value is http://localhost:8545 [env: ETH_RPC_URL=] diff --git a/src/reference/cli/cast/find-block.md b/src/reference/cli/cast/find-block.md index 965600409..732a5af50 100644 --- a/src/reference/cli/cast/find-block.md +++ b/src/reference/cli/cast/find-block.md @@ -15,7 +15,7 @@ Arguments: Options: -r, --rpc-url - The RPC endpoint + The RPC endpoint, default value is http://localhost:8545 [env: ETH_RPC_URL=] diff --git a/src/reference/cli/cast/gas-price.md b/src/reference/cli/cast/gas-price.md index 9c21a85b9..78955080d 100644 --- a/src/reference/cli/cast/gas-price.md +++ b/src/reference/cli/cast/gas-price.md @@ -11,7 +11,7 @@ Usage: cast gas-price [OPTIONS] Options: -r, --rpc-url - The RPC endpoint + The RPC endpoint, default value is http://localhost:8545 [env: ETH_RPC_URL=] diff --git a/src/reference/cli/cast/implementation.md b/src/reference/cli/cast/implementation.md index 74669ed54..3d31fd1f4 100644 --- a/src/reference/cli/cast/implementation.md +++ b/src/reference/cli/cast/implementation.md @@ -25,7 +25,7 @@ Options: If not specified, the implementation slot is used. -r, --rpc-url - The RPC endpoint + The RPC endpoint, default value is http://localhost:8545 [env: ETH_RPC_URL=] diff --git a/src/reference/cli/cast/logs.md b/src/reference/cli/cast/logs.md index c664b50dc..86c59424c 100644 --- a/src/reference/cli/cast/logs.md +++ b/src/reference/cli/cast/logs.md @@ -48,7 +48,7 @@ Options: Ethereum options: -r, --rpc-url - The RPC endpoint + The RPC endpoint, default value is http://localhost:8545 [env: ETH_RPC_URL=] diff --git a/src/reference/cli/cast/lookup-address.md b/src/reference/cli/cast/lookup-address.md index ce7e5588b..f9a1be847 100644 --- a/src/reference/cli/cast/lookup-address.md +++ b/src/reference/cli/cast/lookup-address.md @@ -18,7 +18,7 @@ Options: Perform a normal lookup to verify that the address is correct -r, --rpc-url - The RPC endpoint + The RPC endpoint, default value is http://localhost:8545 [env: ETH_RPC_URL=] diff --git a/src/reference/cli/cast/mktx.md b/src/reference/cli/cast/mktx.md index 2eee649f1..01b0f92e0 100644 --- a/src/reference/cli/cast/mktx.md +++ b/src/reference/cli/cast/mktx.md @@ -94,7 +94,7 @@ Transaction options: Ethereum options: -r, --rpc-url - The RPC endpoint + The RPC endpoint, default value is http://localhost:8545 [env: ETH_RPC_URL=] diff --git a/src/reference/cli/cast/nonce.md b/src/reference/cli/cast/nonce.md index b8ff98ea4..2bd8a228d 100644 --- a/src/reference/cli/cast/nonce.md +++ b/src/reference/cli/cast/nonce.md @@ -20,7 +20,7 @@ Options: Can also be the tags earliest, finalized, safe, latest, or pending. -r, --rpc-url - The RPC endpoint + The RPC endpoint, default value is http://localhost:8545 [env: ETH_RPC_URL=] diff --git a/src/reference/cli/cast/proof.md b/src/reference/cli/cast/proof.md index 97982a8bb..0f954deac 100644 --- a/src/reference/cli/cast/proof.md +++ b/src/reference/cli/cast/proof.md @@ -23,7 +23,7 @@ Options: Can also be the tags earliest, finalized, safe, latest, or pending. -r, --rpc-url - The RPC endpoint + The RPC endpoint, default value is http://localhost:8545 [env: ETH_RPC_URL=] diff --git a/src/reference/cli/cast/publish.md b/src/reference/cli/cast/publish.md index e150f0644..27deafe96 100644 --- a/src/reference/cli/cast/publish.md +++ b/src/reference/cli/cast/publish.md @@ -20,7 +20,7 @@ Options: [env: CAST_ASYNC=] -r, --rpc-url - The RPC endpoint + The RPC endpoint, default value is http://localhost:8545 [env: ETH_RPC_URL=] diff --git a/src/reference/cli/cast/receipt.md b/src/reference/cli/cast/receipt.md index 6defca796..b6fe61100 100644 --- a/src/reference/cli/cast/receipt.md +++ b/src/reference/cli/cast/receipt.md @@ -28,7 +28,7 @@ Options: [env: CAST_ASYNC=] -r, --rpc-url - The RPC endpoint + The RPC endpoint, default value is http://localhost:8545 [env: ETH_RPC_URL=] diff --git a/src/reference/cli/cast/resolve-name.md b/src/reference/cli/cast/resolve-name.md index dd8f14098..431d2b6a7 100644 --- a/src/reference/cli/cast/resolve-name.md +++ b/src/reference/cli/cast/resolve-name.md @@ -18,7 +18,7 @@ Options: Perform a reverse lookup to verify that the name is correct -r, --rpc-url - The RPC endpoint + The RPC endpoint, default value is http://localhost:8545 [env: ETH_RPC_URL=] diff --git a/src/reference/cli/cast/rpc.md b/src/reference/cli/cast/rpc.md index 907854b03..3b775d3ba 100644 --- a/src/reference/cli/cast/rpc.md +++ b/src/reference/cli/cast/rpc.md @@ -32,7 +32,7 @@ Options: "eth_getBlockByNumber", "params": ["0x123", false] ... } -r, --rpc-url - The RPC endpoint + The RPC endpoint, default value is http://localhost:8545 [env: ETH_RPC_URL=] diff --git a/src/reference/cli/cast/run.md b/src/reference/cli/cast/run.md index b56df728e..f1ba0c311 100644 --- a/src/reference/cli/cast/run.md +++ b/src/reference/cli/cast/run.md @@ -44,7 +44,7 @@ Options: [env: CHAIN=] -r, --rpc-url - The RPC endpoint + The RPC endpoint, default value is http://localhost:8545 [env: ETH_RPC_URL=] diff --git a/src/reference/cli/cast/send.md b/src/reference/cli/cast/send.md index d3cf9797e..e913ad793 100644 --- a/src/reference/cli/cast/send.md +++ b/src/reference/cli/cast/send.md @@ -113,7 +113,7 @@ Transaction options: Ethereum options: -r, --rpc-url - The RPC endpoint + The RPC endpoint, default value is http://localhost:8545 [env: ETH_RPC_URL=] diff --git a/src/reference/cli/cast/source.md b/src/reference/cli/cast/source.md new file mode 100644 index 000000000..2dcedc2ff --- /dev/null +++ b/src/reference/cli/cast/source.md @@ -0,0 +1,82 @@ +# cast source + +Get the source code of a contract from a block explorer + +```bash +$ cast source --help +``` + +```txt +Usage: cast source [OPTIONS]
+ +Arguments: +
+ The contract's address + +Options: + -f, --flatten + Whether to flatten the source code + + -d + The output directory/file to expand source tree into + + -e, --etherscan-api-key + The Etherscan (or equivalent) API key + + [env: ETHERSCAN_API_KEY=] + + -c, --chain + The chain name or EIP-155 chain ID + + [env: CHAIN=] + + --explorer-api-url + Alternative explorer API URL to use that adheres to the Etherscan API. + If not provided, defaults to Etherscan + + [env: EXPLORER_API_URL=] + + --explorer-url + Alternative explorer browser URL + + [env: EXPLORER_URL=] + + -h, --help + Print help (see a summary with '-h') + + -j, --threads + Number of threads to use. Specifying 0 defaults to the number of + logical cores + + [aliases: jobs] + +Display options: + --color + The color of the log messages + + Possible values: + - auto: Intelligently guess whether to use color output (default) + - always: Force color output + - never: Force disable color output + + --json + Format log messages as JSON + + -q, --quiet + Do not print log messages + + -v, --verbosity... + Verbosity level of the log messages. + + Pass multiple times to increase the verbosity (e.g. -v, -vv, -vvv). + + Depending on the context the verbosity levels have different meanings. + + For example, the verbosity levels of the EVM are: + - 2 (-vv): Print logs for all tests. + - 3 (-vvv): Print execution traces for failing tests. + - 4 (-vvvv): Print execution traces for all tests, and setup traces + for failing tests. + - 5 (-vvvvv): Print execution and setup traces for all tests, + including storage changes. +``` \ No newline at end of file diff --git a/src/reference/cli/cast/storage-root.md b/src/reference/cli/cast/storage-root.md index 7569f6382..c84df8391 100644 --- a/src/reference/cli/cast/storage-root.md +++ b/src/reference/cli/cast/storage-root.md @@ -23,7 +23,7 @@ Options: Can also be the tags earliest, finalized, safe, latest, or pending. -r, --rpc-url - The RPC endpoint + The RPC endpoint, default value is http://localhost:8545 [env: ETH_RPC_URL=] diff --git a/src/reference/cli/cast/storage.md b/src/reference/cli/cast/storage.md index 51abf72e0..2996a0193 100644 --- a/src/reference/cli/cast/storage.md +++ b/src/reference/cli/cast/storage.md @@ -24,7 +24,7 @@ Options: Can also be the tags earliest, finalized, safe, latest, or pending. -r, --rpc-url - The RPC endpoint + The RPC endpoint, default value is http://localhost:8545 [env: ETH_RPC_URL=] diff --git a/src/reference/cli/cast/tx.md b/src/reference/cli/cast/tx.md index e058947fb..a0f0fe1c5 100644 --- a/src/reference/cli/cast/tx.md +++ b/src/reference/cli/cast/tx.md @@ -22,7 +22,7 @@ Options: Print the raw RLP encoded transaction -r, --rpc-url - The RPC endpoint + The RPC endpoint, default value is http://localhost:8545 [env: ETH_RPC_URL=] diff --git a/src/reference/cli/cast/wallet/sign-auth.md b/src/reference/cli/cast/wallet/sign-auth.md index 306b9a78f..448401948 100644 --- a/src/reference/cli/cast/wallet/sign-auth.md +++ b/src/reference/cli/cast/wallet/sign-auth.md @@ -15,7 +15,7 @@ Arguments: Options: -r, --rpc-url - The RPC endpoint + The RPC endpoint, default value is http://localhost:8545 [env: ETH_RPC_URL=] diff --git a/src/reference/cli/forge.md b/src/reference/cli/forge.md index 4a7d86f2d..413326911 100644 --- a/src/reference/cli/forge.md +++ b/src/reference/cli/forge.md @@ -23,7 +23,6 @@ Commands: config Display the current config [aliases: co] coverage Generate coverage reports create Deploy a smart contract [aliases: c] - debug Debugs a single smart contract as a script [aliases: d] doc Generate documentation for the project eip712 Generate EIP-712 struct encodings for structs from a given file diff --git a/src/reference/cli/forge/bind.md b/src/reference/cli/forge/bind.md index 64657e2a5..0cc5d1c76 100644 --- a/src/reference/cli/forge/bind.md +++ b/src/reference/cli/forge/bind.md @@ -60,16 +60,9 @@ Options: --skip-extra-derives Don't add any additional derives to generated bindings - --alloy - Generate bindings for the `alloy` library, instead of `ethers` - --alloy-version Specify the alloy version - --ethers - Generate bindings for the `ethers` library, instead of `alloy` - (default, deprecated) - -h, --help Print help (see a summary with '-h') diff --git a/src/reference/cli/forge/coverage.md b/src/reference/cli/forge/coverage.md index 378f5c423..cfba70f3d 100644 --- a/src/reference/cli/forge/coverage.md +++ b/src/reference/cli/forge/coverage.md @@ -99,7 +99,7 @@ Test options: [aliases: jobs] - --debug [] + --debug Run a single test in the debugger. The matching test will be opened in the debugger regardless of the @@ -123,7 +123,7 @@ Test options: function is called (execution order) and how much gas it consumes at each point in the timeline. - --decode-internal [] + --decode-internal Identify internal functions in traces. This will trace internal functions and decode stack parameters. @@ -140,6 +140,12 @@ Test options: [env: FORGE_GAS_REPORT=] + --gas-snapshot-check + Check gas snapshots against previous runs + + [env: FORGE_SNAPSHOT_CHECK=] + [possible values: true, false] + --allow-failure Exit with code 0 even if a test fails @@ -167,6 +173,10 @@ Test options: --fuzz-input-file File to rerun fuzz failures from + --rerun + Re-run recorded test failures from last run. If no failure recorded + then regular test run is performed + [PATH] The contract file you want to test, it's a shortcut for --match-path @@ -209,10 +219,6 @@ Test filtering: [aliases: nmco] - --rerun - Re-run recorded test failures from last run. If no failure recorded - then regular test run is performed - EVM options: -f, --fork-url Fetch state over a remote endpoint instead of starting from an empty diff --git a/src/reference/cli/forge/create.md b/src/reference/cli/forge/create.md index 93b101eb2..01f38fbc3 100644 --- a/src/reference/cli/forge/create.md +++ b/src/reference/cli/forge/create.md @@ -243,7 +243,7 @@ Transaction options: Ethereum options: -r, --rpc-url - The RPC endpoint + The RPC endpoint, default value is http://localhost:8545 [env: ETH_RPC_URL=] @@ -374,7 +374,7 @@ Verifier options: --verifier The contract verification provider to use - [default: etherscan] + [default: sourcify] Possible values: - etherscan diff --git a/src/reference/cli/forge/inspect.md b/src/reference/cli/forge/inspect.md index fbeaf1fff..311e68c58 100644 --- a/src/reference/cli/forge/inspect.md +++ b/src/reference/cli/forge/inspect.md @@ -23,9 +23,6 @@ Arguments: errors, events, eof, eof-init] Options: - --pretty - Pretty print the selected field, if supported - -h, --help Print help (see a summary with '-h') diff --git a/src/reference/cli/forge/install.md b/src/reference/cli/forge/install.md index 772a59da9..5eae921a9 100644 --- a/src/reference/cli/forge/install.md +++ b/src/reference/cli/forge/install.md @@ -10,6 +10,7 @@ $ forge install --help Usage: forge install [OPTIONS] [DEPENDENCIES]... forge install [OPTIONS] /@... forge install [OPTIONS] =/@... + forge install [OPTIONS] @git url>...)] forge install [OPTIONS] ... Arguments: diff --git a/src/reference/cli/forge/script.md b/src/reference/cli/forge/script.md index d4eab1ba4..6b4b7fa28 100644 --- a/src/reference/cli/forge/script.md +++ b/src/reference/cli/forge/script.md @@ -512,7 +512,7 @@ Verifier options: --verifier The contract verification provider to use - [default: etherscan] + [default: sourcify] Possible values: - etherscan diff --git a/src/reference/cli/forge/snapshot.md b/src/reference/cli/forge/snapshot.md index 883d3925c..c81a2c7cb 100644 --- a/src/reference/cli/forge/snapshot.md +++ b/src/reference/cli/forge/snapshot.md @@ -86,7 +86,7 @@ Test options: [aliases: jobs] - --debug [] + --debug Run a single test in the debugger. The matching test will be opened in the debugger regardless of the @@ -110,7 +110,7 @@ Test options: function is called (execution order) and how much gas it consumes at each point in the timeline. - --decode-internal [] + --decode-internal Identify internal functions in traces. This will trace internal functions and decode stack parameters. @@ -127,6 +127,12 @@ Test options: [env: FORGE_GAS_REPORT=] + --gas-snapshot-check + Check gas snapshots against previous runs + + [env: FORGE_SNAPSHOT_CHECK=] + [possible values: true, false] + --allow-failure Exit with code 0 even if a test fails @@ -154,6 +160,10 @@ Test options: --fuzz-input-file File to rerun fuzz failures from + --rerun + Re-run recorded test failures from last run. If no failure recorded + then regular test run is performed + [PATH] The contract file you want to test, it's a shortcut for --match-path @@ -196,10 +206,6 @@ Test filtering: [aliases: nmco] - --rerun - Re-run recorded test failures from last run. If no failure recorded - then regular test run is performed - EVM options: -f, --fork-url Fetch state over a remote endpoint instead of starting from an empty diff --git a/src/reference/cli/forge/test.md b/src/reference/cli/forge/test.md index 4d55a18fd..bbff972ce 100644 --- a/src/reference/cli/forge/test.md +++ b/src/reference/cli/forge/test.md @@ -65,7 +65,7 @@ Test options: [aliases: jobs] - --debug [] + --debug Run a single test in the debugger. The matching test will be opened in the debugger regardless of the @@ -89,7 +89,7 @@ Test options: function is called (execution order) and how much gas it consumes at each point in the timeline. - --decode-internal [] + --decode-internal Identify internal functions in traces. This will trace internal functions and decode stack parameters. @@ -106,6 +106,12 @@ Test options: [env: FORGE_GAS_REPORT=] + --gas-snapshot-check + Check gas snapshots against previous runs + + [env: FORGE_SNAPSHOT_CHECK=] + [possible values: true, false] + --allow-failure Exit with code 0 even if a test fails @@ -133,6 +139,10 @@ Test options: --fuzz-input-file File to rerun fuzz failures from + --rerun + Re-run recorded test failures from last run. If no failure recorded + then regular test run is performed + [PATH] The contract file you want to test, it's a shortcut for --match-path @@ -175,10 +185,6 @@ Test filtering: [aliases: nmco] - --rerun - Re-run recorded test failures from last run. If no failure recorded - then regular test run is performed - EVM options: -f, --fork-url Fetch state over a remote endpoint instead of starting from an empty diff --git a/src/reference/cli/forge/verify-bytecode.md b/src/reference/cli/forge/verify-bytecode.md index 465cd2ffb..952cd8547 100644 --- a/src/reference/cli/forge/verify-bytecode.md +++ b/src/reference/cli/forge/verify-bytecode.md @@ -68,7 +68,7 @@ Verifier options: --verifier The contract verification provider to use - [default: etherscan] + [default: sourcify] Possible values: - etherscan diff --git a/src/reference/cli/forge/verify-check.md b/src/reference/cli/forge/verify-check.md index c5c35ff4f..52e1d7de9 100644 --- a/src/reference/cli/forge/verify-check.md +++ b/src/reference/cli/forge/verify-check.md @@ -51,7 +51,7 @@ Verifier options: --verifier The contract verification provider to use - [default: etherscan] + [default: sourcify] Possible values: - etherscan diff --git a/src/reference/cli/forge/verify-contract.md b/src/reference/cli/forge/verify-contract.md index be38d6ebc..967bef907 100644 --- a/src/reference/cli/forge/verify-contract.md +++ b/src/reference/cli/forge/verify-contract.md @@ -83,7 +83,7 @@ Options: [env: CHAIN=] -r, --rpc-url - The RPC endpoint + The RPC endpoint, default value is http://localhost:8545 [env: ETH_RPC_URL=] @@ -154,7 +154,7 @@ Verifier options: --verifier The contract verification provider to use - [default: etherscan] + [default: sourcify] Possible values: - etherscan