├── .github └── workflows │ ├── build-infra.yaml │ ├── build-revmc-anvil-builder.yaml │ ├── build-revmc-anvil.yaml │ ├── build-safusol.yaml │ └── build-solalloc.yaml ├── .gitignore ├── README.md ├── bigen-layer ├── .challengeignore ├── README.md ├── challenge.yaml ├── challenge │ ├── Dockerfile │ ├── Dockerfile.local │ ├── challenge.py │ ├── docker-compose.yml │ └── project │ │ ├── .gitignore │ │ ├── foundry.toml │ │ ├── lib │ │ ├── forge-ctf │ │ │ └── src │ │ │ │ ├── CTFDeployer.sol │ │ │ │ └── CTFSolver.sol │ │ └── forge-std │ │ │ ├── .github │ │ │ └── workflows │ │ │ │ ├── ci.yml │ │ │ │ └── sync.yml │ │ │ ├── .gitignore │ │ │ ├── .gitmodules │ │ │ ├── LICENSE-APACHE │ │ │ ├── LICENSE-MIT │ │ │ ├── README.md │ │ │ ├── foundry.toml │ │ │ ├── lib │ │ │ └── ds-test │ │ │ │ ├── .github │ │ │ │ └── workflows │ │ │ │ │ └── build.yml │ │ │ │ ├── .gitignore │ │ │ │ ├── LICENSE │ │ │ │ ├── Makefile │ │ │ │ ├── default.nix │ │ │ │ ├── demo │ │ │ │ └── demo.sol │ │ │ │ ├── package.json │ │ │ │ └── src │ │ │ │ ├── test.sol │ │ │ │ └── test.t.sol │ │ │ ├── package.json │ │ │ ├── src │ │ │ ├── Base.sol │ │ │ ├── Script.sol │ │ │ ├── StdAssertions.sol │ │ │ ├── StdChains.sol │ │ │ ├── StdCheats.sol │ │ │ ├── StdError.sol │ │ │ ├── StdInvariant.sol │ │ │ ├── StdJson.sol │ │ │ ├── StdMath.sol │ │ │ ├── StdStorage.sol │ │ │ ├── StdStyle.sol │ │ │ ├── StdUtils.sol │ │ │ ├── Test.sol │ │ │ ├── Vm.sol │ │ │ ├── console.sol │ │ │ ├── console2.sol │ │ │ ├── interfaces │ │ │ │ ├── IERC1155.sol │ │ │ │ ├── IERC165.sol │ │ │ │ ├── IERC20.sol │ │ │ │ ├── IERC4626.sol │ │ │ │ ├── IERC721.sol │ │ │ │ └── IMulticall3.sol │ │ │ └── safeconsole.sol │ │ │ └── test │ │ │ ├── StdAssertions.t.sol │ │ │ ├── StdChains.t.sol │ │ │ ├── StdCheats.t.sol │ │ │ ├── StdError.t.sol │ │ │ ├── StdMath.t.sol │ │ │ ├── StdStorage.t.sol │ │ │ ├── StdStyle.t.sol │ │ │ ├── StdUtils.t.sol │ │ │ ├── Vm.t.sol │ │ │ ├── compilation │ │ │ ├── CompilationScript.sol │ │ │ ├── CompilationScriptBase.sol │ │ │ ├── CompilationTest.sol │ │ │ └── CompilationTestBase.sol │ │ │ └── fixtures │ │ │ └── broadcast.log.json │ │ ├── remappings.txt │ │ ├── script │ │ └── Deploy.s.sol │ │ └── src │ │ ├── Challenge.sol │ │ └── ERC20.sol └── deploy.sh ├── bundle.sh ├── chisel-as-a-service ├── .challengeignore ├── README.md ├── build-web.sh ├── challenge.yaml └── challenge │ ├── Dockerfile │ ├── Dockerfile.local │ ├── challenge.py │ ├── docker-compose.yml │ ├── project │ ├── .gitignore │ ├── foundry.toml │ ├── lib │ │ ├── forge-ctf │ │ │ └── src │ │ │ │ ├── CTFDeployer.sol │ │ │ │ └── CTFSolver.sol │ │ └── forge-std │ │ │ ├── .github │ │ │ └── workflows │ │ │ │ ├── ci.yml │ │ │ │ └── sync.yml │ │ │ ├── .gitignore │ │ │ ├── .gitmodules │ │ │ ├── LICENSE-APACHE │ │ │ ├── LICENSE-MIT │ │ │ ├── README.md │ │ │ ├── foundry.toml │ │ │ ├── lib │ │ │ └── ds-test │ │ │ │ ├── .github │ │ │ │ └── workflows │ │ │ │ │ └── build.yml │ │ │ │ ├── .gitignore │ │ │ │ ├── LICENSE │ │ │ │ ├── Makefile │ │ │ │ ├── default.nix │ │ │ │ ├── demo │ │ │ │ └── demo.sol │ │ │ │ ├── package.json │ │ │ │ └── src │ │ │ │ ├── test.sol │ │ │ │ └── test.t.sol │ │ │ ├── package.json │ │ │ ├── src │ │ │ ├── Base.sol │ │ │ ├── Script.sol │ │ │ ├── StdAssertions.sol │ │ │ ├── StdChains.sol │ │ │ ├── StdCheats.sol │ │ │ ├── StdError.sol │ │ │ ├── StdInvariant.sol │ │ │ ├── StdJson.sol │ │ │ ├── StdMath.sol │ │ │ ├── StdStorage.sol │ │ │ ├── StdStyle.sol │ │ │ ├── StdUtils.sol │ │ │ ├── Test.sol │ │ │ ├── Vm.sol │ │ │ ├── console.sol │ │ │ ├── console2.sol │ │ │ ├── interfaces │ │ │ │ ├── IERC1155.sol │ │ │ │ ├── IERC165.sol │ │ │ │ ├── IERC20.sol │ │ │ │ ├── IERC4626.sol │ │ │ │ ├── IERC721.sol │ │ │ │ └── IMulticall3.sol │ │ │ └── safeconsole.sol │ │ │ └── test │ │ │ ├── StdAssertions.t.sol │ │ │ ├── StdChains.t.sol │ │ │ ├── StdCheats.t.sol │ │ │ ├── StdError.t.sol │ │ │ ├── StdMath.t.sol │ │ │ ├── StdStorage.t.sol │ │ │ ├── StdStyle.t.sol │ │ │ ├── StdUtils.t.sol │ │ │ ├── Vm.t.sol │ │ │ ├── compilation │ │ │ ├── CompilationScript.sol │ │ │ ├── CompilationScriptBase.sol │ │ │ ├── CompilationTest.sol │ │ │ └── CompilationTestBase.sol │ │ │ └── fixtures │ │ │ └── broadcast.log.json │ ├── remappings.txt │ ├── script │ │ └── Deploy.s.sol │ └── src │ │ └── Challenge.sol │ ├── solve.py │ └── web │ ├── Dockerfile │ ├── flag.txt │ ├── index.js │ ├── package-lock.json │ ├── package.json │ └── public │ └── index.html ├── cyber-cartel ├── .challengeignore ├── README.md ├── challenge.yaml ├── challenge │ ├── Dockerfile │ ├── Dockerfile.local │ ├── challenge.py │ ├── docker-compose.yml │ └── project │ │ ├── .gitignore │ │ ├── foundry.toml │ │ ├── lib │ │ ├── forge-ctf │ │ │ └── src │ │ │ │ ├── CTFDeployer.sol │ │ │ │ └── CTFSolver.sol │ │ └── forge-std │ │ │ ├── .github │ │ │ └── workflows │ │ │ │ ├── ci.yml │ │ │ │ └── sync.yml │ │ │ ├── .gitignore │ │ │ ├── .gitmodules │ │ │ ├── LICENSE-APACHE │ │ │ ├── LICENSE-MIT │ │ │ ├── README.md │ │ │ ├── foundry.toml │ │ │ ├── lib │ │ │ └── ds-test │ │ │ │ ├── .github │ │ │ │ └── workflows │ │ │ │ │ └── build.yml │ │ │ │ ├── .gitignore │ │ │ │ ├── LICENSE │ │ │ │ ├── Makefile │ │ │ │ ├── default.nix │ │ │ │ ├── demo │ │ │ │ └── demo.sol │ │ │ │ ├── package.json │ │ │ │ └── src │ │ │ │ ├── test.sol │ │ │ │ └── test.t.sol │ │ │ ├── package.json │ │ │ ├── src │ │ │ ├── Base.sol │ │ │ ├── Script.sol │ │ │ ├── StdAssertions.sol │ │ │ ├── StdChains.sol │ │ │ ├── StdCheats.sol │ │ │ ├── StdError.sol │ │ │ ├── StdInvariant.sol │ │ │ ├── StdJson.sol │ │ │ ├── StdMath.sol │ │ │ ├── StdStorage.sol │ │ │ ├── StdStyle.sol │ │ │ ├── StdUtils.sol │ │ │ ├── Test.sol │ │ │ ├── Vm.sol │ │ │ ├── console.sol │ │ │ ├── console2.sol │ │ │ ├── interfaces │ │ │ │ ├── IERC1155.sol │ │ │ │ ├── IERC165.sol │ │ │ │ ├── IERC20.sol │ │ │ │ ├── IERC4626.sol │ │ │ │ ├── IERC721.sol │ │ │ │ └── IMulticall3.sol │ │ │ └── safeconsole.sol │ │ │ └── test │ │ │ ├── StdAssertions.t.sol │ │ │ ├── StdChains.t.sol │ │ │ ├── StdCheats.t.sol │ │ │ ├── StdError.t.sol │ │ │ ├── StdMath.t.sol │ │ │ ├── StdStorage.t.sol │ │ │ ├── StdStyle.t.sol │ │ │ ├── StdUtils.t.sol │ │ │ ├── Vm.t.sol │ │ │ ├── compilation │ │ │ ├── CompilationScript.sol │ │ │ ├── CompilationScriptBase.sol │ │ │ ├── CompilationTest.sol │ │ │ └── CompilationTestBase.sol │ │ │ └── fixtures │ │ │ └── broadcast.log.json │ │ ├── remappings.txt │ │ ├── script │ │ └── Deploy.s.sol │ │ └── src │ │ ├── Challenge.sol │ │ └── CyberCartel.sol └── deploy.sh ├── doju ├── .challengeignore ├── README.md ├── challenge.yaml ├── challenge │ ├── Dockerfile │ ├── Dockerfile.local │ ├── challenge.py │ ├── docker-compose.yml │ └── project │ │ ├── .gitignore │ │ ├── foundry.toml │ │ ├── lib │ │ ├── forge-ctf │ │ │ └── src │ │ │ │ ├── CTFDeployer.sol │ │ │ │ └── CTFSolver.sol │ │ └── forge-std │ │ │ ├── .github │ │ │ └── workflows │ │ │ │ ├── ci.yml │ │ │ │ └── sync.yml │ │ │ ├── .gitignore │ │ │ ├── .gitmodules │ │ │ ├── LICENSE-APACHE │ │ │ ├── LICENSE-MIT │ │ │ ├── README.md │ │ │ ├── foundry.toml │ │ │ ├── lib │ │ │ └── ds-test │ │ │ │ ├── .github │ │ │ │ └── workflows │ │ │ │ │ └── build.yml │ │ │ │ ├── .gitignore │ │ │ │ ├── LICENSE │ │ │ │ ├── Makefile │ │ │ │ ├── default.nix │ │ │ │ ├── demo │ │ │ │ └── demo.sol │ │ │ │ ├── package.json │ │ │ │ └── src │ │ │ │ ├── test.sol │ │ │ │ └── test.t.sol │ │ │ ├── package.json │ │ │ ├── src │ │ │ ├── Base.sol │ │ │ ├── Script.sol │ │ │ ├── StdAssertions.sol │ │ │ ├── StdChains.sol │ │ │ ├── StdCheats.sol │ │ │ ├── StdError.sol │ │ │ ├── StdInvariant.sol │ │ │ ├── StdJson.sol │ │ │ ├── StdMath.sol │ │ │ ├── StdStorage.sol │ │ │ ├── StdStyle.sol │ │ │ ├── StdUtils.sol │ │ │ ├── Test.sol │ │ │ ├── Vm.sol │ │ │ ├── console.sol │ │ │ ├── console2.sol │ │ │ ├── interfaces │ │ │ │ ├── IERC1155.sol │ │ │ │ ├── IERC165.sol │ │ │ │ ├── IERC20.sol │ │ │ │ ├── IERC4626.sol │ │ │ │ ├── IERC721.sol │ │ │ │ └── IMulticall3.sol │ │ │ └── safeconsole.sol │ │ │ └── test │ │ │ ├── StdAssertions.t.sol │ │ │ ├── StdChains.t.sol │ │ │ ├── StdCheats.t.sol │ │ │ ├── StdError.t.sol │ │ │ ├── StdMath.t.sol │ │ │ ├── StdStorage.t.sol │ │ │ ├── StdStyle.t.sol │ │ │ ├── StdUtils.t.sol │ │ │ ├── Vm.t.sol │ │ │ ├── compilation │ │ │ ├── CompilationScript.sol │ │ │ ├── CompilationScriptBase.sol │ │ │ ├── CompilationTest.sol │ │ │ └── CompilationTestBase.sol │ │ │ └── fixtures │ │ │ └── broadcast.log.json │ │ ├── remappings.txt │ │ ├── script │ │ └── Deploy.s.sol │ │ ├── src │ │ ├── Challenge.sol │ │ └── Doju.sol │ │ └── test │ │ └── Dojo.t.sol └── deploy.sh ├── eight-inch ├── .challengeignore ├── README.md ├── Solution.t.sol ├── challenge.yaml ├── challenge │ ├── Dockerfile │ ├── Dockerfile.local │ ├── challenge.py │ ├── docker-compose.yml │ └── project │ │ ├── .gitignore │ │ ├── foundry.toml │ │ ├── lib │ │ ├── forge-ctf │ │ │ └── src │ │ │ │ ├── CTFDeployer.sol │ │ │ │ └── CTFSolver.sol │ │ └── forge-std │ │ │ ├── .github │ │ │ └── workflows │ │ │ │ ├── ci.yml │ │ │ │ └── sync.yml │ │ │ ├── .gitignore │ │ │ ├── .gitmodules │ │ │ ├── LICENSE-APACHE │ │ │ ├── LICENSE-MIT │ │ │ ├── README.md │ │ │ ├── foundry.toml │ │ │ ├── lib │ │ │ └── ds-test │ │ │ │ ├── .github │ │ │ │ └── workflows │ │ │ │ │ └── build.yml │ │ │ │ ├── .gitignore │ │ │ │ ├── LICENSE │ │ │ │ ├── Makefile │ │ │ │ ├── default.nix │ │ │ │ ├── demo │ │ │ │ └── demo.sol │ │ │ │ ├── package.json │ │ │ │ └── src │ │ │ │ ├── test.sol │ │ │ │ └── test.t.sol │ │ │ ├── package.json │ │ │ ├── src │ │ │ ├── Base.sol │ │ │ ├── Script.sol │ │ │ ├── StdAssertions.sol │ │ │ ├── StdChains.sol │ │ │ ├── StdCheats.sol │ │ │ ├── StdError.sol │ │ │ ├── StdInvariant.sol │ │ │ ├── StdJson.sol │ │ │ ├── StdMath.sol │ │ │ ├── StdStorage.sol │ │ │ ├── StdStyle.sol │ │ │ ├── StdUtils.sol │ │ │ ├── Test.sol │ │ │ ├── Vm.sol │ │ │ ├── console.sol │ │ │ ├── console2.sol │ │ │ ├── interfaces │ │ │ │ ├── IERC1155.sol │ │ │ │ ├── IERC165.sol │ │ │ │ ├── IERC20.sol │ │ │ │ ├── IERC4626.sol │ │ │ │ ├── IERC721.sol │ │ │ │ └── IMulticall3.sol │ │ │ └── safeconsole.sol │ │ │ └── test │ │ │ ├── StdAssertions.t.sol │ │ │ ├── StdChains.t.sol │ │ │ ├── StdCheats.t.sol │ │ │ ├── StdError.t.sol │ │ │ ├── StdMath.t.sol │ │ │ ├── StdStorage.t.sol │ │ │ ├── StdStyle.t.sol │ │ │ ├── StdUtils.t.sol │ │ │ ├── Vm.t.sol │ │ │ ├── compilation │ │ │ ├── CompilationScript.sol │ │ │ ├── CompilationScriptBase.sol │ │ │ ├── CompilationTest.sol │ │ │ └── CompilationTestBase.sol │ │ │ └── fixtures │ │ │ └── broadcast.log.json │ │ ├── remappings.txt │ │ ├── script │ │ └── Deploy.s.sol │ │ └── src │ │ ├── 8Inch.sol │ │ ├── ERC20.sol │ │ └── SafeUint112.sol └── deploy.sh ├── enterprise-blockchain ├── Dockerfile ├── README.md ├── bridge_contracts │ ├── .gitignore │ ├── deploy.py │ ├── deploy.sh │ ├── foundry.toml │ ├── lib │ │ └── openzeppelin-contracts │ │ │ ├── .changeset │ │ │ └── config.json │ │ │ ├── .codecov.yml │ │ │ ├── .editorconfig │ │ │ ├── .eslintrc │ │ │ ├── .github │ │ │ ├── ISSUE_TEMPLATE │ │ │ │ ├── bug_report.md │ │ │ │ ├── config.yml │ │ │ │ └── feature_request.md │ │ │ ├── PULL_REQUEST_TEMPLATE.md │ │ │ ├── actions │ │ │ │ ├── gas-compare │ │ │ │ │ └── action.yml │ │ │ │ ├── setup │ │ │ │ │ └── action.yml │ │ │ │ └── storage-layout │ │ │ │ │ └── action.yml │ │ │ └── workflows │ │ │ │ ├── actionlint.yml │ │ │ │ ├── changeset.yml │ │ │ │ ├── checks.yml │ │ │ │ ├── docs.yml │ │ │ │ ├── formal-verification.yml │ │ │ │ ├── release-cycle.yml │ │ │ │ └── upgradeable.yml │ │ │ ├── .gitignore │ │ │ ├── .gitmodules │ │ │ ├── .mocharc.js │ │ │ ├── .prettierrc │ │ │ ├── .solcover.js │ │ │ ├── .solhint.json │ │ │ ├── CHANGELOG.md │ │ │ ├── CODE_OF_CONDUCT.md │ │ │ ├── CONTRIBUTING.md │ │ │ ├── GUIDELINES.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── RELEASING.md │ │ │ ├── SECURITY.md │ │ │ ├── audits │ │ │ ├── 2017-03.md │ │ │ ├── 2018-10.pdf │ │ │ ├── 2022-10-Checkpoints.pdf │ │ │ ├── 2022-10-ERC4626.pdf │ │ │ ├── 2023-05-v4.9.pdf │ │ │ └── README.md │ │ │ ├── certora │ │ │ ├── .gitignore │ │ │ ├── Makefile │ │ │ ├── README.md │ │ │ ├── diff │ │ │ │ └── token_ERC721_ERC721.sol.patch │ │ │ ├── harnesses │ │ │ │ ├── AccessControlDefaultAdminRulesHarness.sol │ │ │ │ ├── AccessControlHarness.sol │ │ │ │ ├── DoubleEndedQueueHarness.sol │ │ │ │ ├── ERC20FlashMintHarness.sol │ │ │ │ ├── ERC20PermitHarness.sol │ │ │ │ ├── ERC20WrapperHarness.sol │ │ │ │ ├── ERC3156FlashBorrowerHarness.sol │ │ │ │ ├── ERC721Harness.sol │ │ │ │ ├── ERC721ReceiverHarness.sol │ │ │ │ ├── EnumerableMapHarness.sol │ │ │ │ ├── EnumerableSetHarness.sol │ │ │ │ ├── InitializableHarness.sol │ │ │ │ ├── Ownable2StepHarness.sol │ │ │ │ ├── OwnableHarness.sol │ │ │ │ ├── PausableHarness.sol │ │ │ │ └── TimelockControllerHarness.sol │ │ │ ├── reports │ │ │ │ ├── 2021-10.pdf │ │ │ │ ├── 2022-03.pdf │ │ │ │ └── 2022-05.pdf │ │ │ ├── run.js │ │ │ ├── specs.json │ │ │ └── specs │ │ │ │ ├── AccessControl.spec │ │ │ │ ├── AccessControlDefaultAdminRules.spec │ │ │ │ ├── DoubleEndedQueue.spec │ │ │ │ ├── ERC20.spec │ │ │ │ ├── ERC20FlashMint.spec │ │ │ │ ├── ERC20Wrapper.spec │ │ │ │ ├── ERC721.spec │ │ │ │ ├── EnumerableMap.spec │ │ │ │ ├── EnumerableSet.spec │ │ │ │ ├── Initializable.spec │ │ │ │ ├── Ownable.spec │ │ │ │ ├── Ownable2Step.spec │ │ │ │ ├── Pausable.spec │ │ │ │ ├── TimelockController.spec │ │ │ │ ├── helpers │ │ │ │ └── helpers.spec │ │ │ │ └── methods │ │ │ │ ├── IAccessControl.spec │ │ │ │ ├── IAccessControlDefaultAdminRules.spec │ │ │ │ ├── IERC20.spec │ │ │ │ ├── IERC2612.spec │ │ │ │ ├── IERC3156.spec │ │ │ │ ├── IERC5313.spec │ │ │ │ ├── IERC721.spec │ │ │ │ ├── IOwnable.spec │ │ │ │ └── IOwnable2Step.spec │ │ │ ├── contracts │ │ │ ├── access │ │ │ │ ├── AccessControl.sol │ │ │ │ ├── AccessControlCrossChain.sol │ │ │ │ ├── AccessControlDefaultAdminRules.sol │ │ │ │ ├── AccessControlEnumerable.sol │ │ │ │ ├── IAccessControl.sol │ │ │ │ ├── IAccessControlDefaultAdminRules.sol │ │ │ │ ├── IAccessControlEnumerable.sol │ │ │ │ ├── Ownable.sol │ │ │ │ ├── Ownable2Step.sol │ │ │ │ └── README.adoc │ │ │ ├── crosschain │ │ │ │ ├── CrossChainEnabled.sol │ │ │ │ ├── README.adoc │ │ │ │ ├── amb │ │ │ │ │ ├── CrossChainEnabledAMB.sol │ │ │ │ │ └── LibAMB.sol │ │ │ │ ├── arbitrum │ │ │ │ │ ├── CrossChainEnabledArbitrumL1.sol │ │ │ │ │ ├── CrossChainEnabledArbitrumL2.sol │ │ │ │ │ ├── LibArbitrumL1.sol │ │ │ │ │ └── LibArbitrumL2.sol │ │ │ │ ├── errors.sol │ │ │ │ ├── optimism │ │ │ │ │ ├── CrossChainEnabledOptimism.sol │ │ │ │ │ └── LibOptimism.sol │ │ │ │ └── polygon │ │ │ │ │ └── CrossChainEnabledPolygonChild.sol │ │ │ ├── finance │ │ │ │ ├── PaymentSplitter.sol │ │ │ │ ├── README.adoc │ │ │ │ └── VestingWallet.sol │ │ │ ├── governance │ │ │ │ ├── Governor.sol │ │ │ │ ├── IGovernor.sol │ │ │ │ ├── README.adoc │ │ │ │ ├── TimelockController.sol │ │ │ │ ├── compatibility │ │ │ │ │ ├── GovernorCompatibilityBravo.sol │ │ │ │ │ └── IGovernorCompatibilityBravo.sol │ │ │ │ ├── extensions │ │ │ │ │ ├── GovernorCountingSimple.sol │ │ │ │ │ ├── GovernorPreventLateQuorum.sol │ │ │ │ │ ├── GovernorProposalThreshold.sol │ │ │ │ │ ├── GovernorSettings.sol │ │ │ │ │ ├── GovernorTimelockCompound.sol │ │ │ │ │ ├── GovernorTimelockControl.sol │ │ │ │ │ ├── GovernorVotes.sol │ │ │ │ │ ├── GovernorVotesComp.sol │ │ │ │ │ ├── GovernorVotesQuorumFraction.sol │ │ │ │ │ └── IGovernorTimelock.sol │ │ │ │ └── utils │ │ │ │ │ ├── IVotes.sol │ │ │ │ │ └── Votes.sol │ │ │ ├── interfaces │ │ │ │ ├── IERC1155.sol │ │ │ │ ├── IERC1155MetadataURI.sol │ │ │ │ ├── IERC1155Receiver.sol │ │ │ │ ├── IERC1271.sol │ │ │ │ ├── IERC1363.sol │ │ │ │ ├── IERC1363Receiver.sol │ │ │ │ ├── IERC1363Spender.sol │ │ │ │ ├── IERC165.sol │ │ │ │ ├── IERC1820Implementer.sol │ │ │ │ ├── IERC1820Registry.sol │ │ │ │ ├── IERC1967.sol │ │ │ │ ├── IERC20.sol │ │ │ │ ├── IERC20Metadata.sol │ │ │ │ ├── IERC2309.sol │ │ │ │ ├── IERC2612.sol │ │ │ │ ├── IERC2981.sol │ │ │ │ ├── IERC3156.sol │ │ │ │ ├── IERC3156FlashBorrower.sol │ │ │ │ ├── IERC3156FlashLender.sol │ │ │ │ ├── IERC4626.sol │ │ │ │ ├── IERC4906.sol │ │ │ │ ├── IERC5267.sol │ │ │ │ ├── IERC5313.sol │ │ │ │ ├── IERC5805.sol │ │ │ │ ├── IERC6372.sol │ │ │ │ ├── IERC721.sol │ │ │ │ ├── IERC721Enumerable.sol │ │ │ │ ├── IERC721Metadata.sol │ │ │ │ ├── IERC721Receiver.sol │ │ │ │ ├── IERC777.sol │ │ │ │ ├── IERC777Recipient.sol │ │ │ │ ├── IERC777Sender.sol │ │ │ │ ├── README.adoc │ │ │ │ ├── draft-IERC1822.sol │ │ │ │ └── draft-IERC2612.sol │ │ │ ├── metatx │ │ │ │ ├── ERC2771Context.sol │ │ │ │ ├── MinimalForwarder.sol │ │ │ │ └── README.adoc │ │ │ ├── mocks │ │ │ │ ├── AccessControlCrossChainMock.sol │ │ │ │ ├── ArraysMock.sol │ │ │ │ ├── CallReceiverMock.sol │ │ │ │ ├── ConditionalEscrowMock.sol │ │ │ │ ├── ContextMock.sol │ │ │ │ ├── DummyImplementation.sol │ │ │ │ ├── EIP712Verifier.sol │ │ │ │ ├── ERC1271WalletMock.sol │ │ │ │ ├── ERC165 │ │ │ │ │ ├── ERC165MaliciousData.sol │ │ │ │ │ ├── ERC165MissingData.sol │ │ │ │ │ ├── ERC165NotSupported.sol │ │ │ │ │ └── ERC165ReturnBomb.sol │ │ │ │ ├── ERC20Mock.sol │ │ │ │ ├── ERC20Reentrant.sol │ │ │ │ ├── ERC2771ContextMock.sol │ │ │ │ ├── ERC3156FlashBorrowerMock.sol │ │ │ │ ├── ERC4626Mock.sol │ │ │ │ ├── EtherReceiverMock.sol │ │ │ │ ├── InitializableMock.sol │ │ │ │ ├── MulticallTest.sol │ │ │ │ ├── MultipleInheritanceInitializableMocks.sol │ │ │ │ ├── PausableMock.sol │ │ │ │ ├── PullPaymentMock.sol │ │ │ │ ├── ReentrancyAttack.sol │ │ │ │ ├── ReentrancyMock.sol │ │ │ │ ├── RegressionImplementation.sol │ │ │ │ ├── SafeMathMemoryCheck.sol │ │ │ │ ├── SingleInheritanceInitializableMocks.sol │ │ │ │ ├── StorageSlotMock.sol │ │ │ │ ├── TimelockReentrant.sol │ │ │ │ ├── TimersBlockNumberImpl.sol │ │ │ │ ├── TimersTimestampImpl.sol │ │ │ │ ├── VotesMock.sol │ │ │ │ ├── compound │ │ │ │ │ └── CompTimelock.sol │ │ │ │ ├── crosschain │ │ │ │ │ ├── bridges.sol │ │ │ │ │ └── receivers.sol │ │ │ │ ├── governance │ │ │ │ │ ├── GovernorCompMock.sol │ │ │ │ │ ├── GovernorCompatibilityBravoMock.sol │ │ │ │ │ ├── GovernorMock.sol │ │ │ │ │ ├── GovernorPreventLateQuorumMock.sol │ │ │ │ │ ├── GovernorTimelockCompoundMock.sol │ │ │ │ │ ├── GovernorTimelockControlMock.sol │ │ │ │ │ ├── GovernorVoteMock.sol │ │ │ │ │ └── GovernorWithParamsMock.sol │ │ │ │ ├── proxy │ │ │ │ │ ├── BadBeacon.sol │ │ │ │ │ ├── ClashingImplementation.sol │ │ │ │ │ ├── UUPSLegacy.sol │ │ │ │ │ └── UUPSUpgradeableMock.sol │ │ │ │ ├── token │ │ │ │ │ ├── ERC1155ReceiverMock.sol │ │ │ │ │ ├── ERC20DecimalsMock.sol │ │ │ │ │ ├── ERC20ExcessDecimalsMock.sol │ │ │ │ │ ├── ERC20FlashMintMock.sol │ │ │ │ │ ├── ERC20ForceApproveMock.sol │ │ │ │ │ ├── ERC20MulticallMock.sol │ │ │ │ │ ├── ERC20NoReturnMock.sol │ │ │ │ │ ├── ERC20PermitNoRevertMock.sol │ │ │ │ │ ├── ERC20ReturnFalseMock.sol │ │ │ │ │ ├── ERC20VotesLegacyMock.sol │ │ │ │ │ ├── ERC4626OffsetMock.sol │ │ │ │ │ ├── ERC4646FeesMock.sol │ │ │ │ │ ├── ERC721ConsecutiveEnumerableMock.sol │ │ │ │ │ ├── ERC721ConsecutiveMock.sol │ │ │ │ │ ├── ERC721ReceiverMock.sol │ │ │ │ │ ├── ERC721URIStorageMock.sol │ │ │ │ │ ├── ERC777Mock.sol │ │ │ │ │ ├── ERC777SenderRecipientMock.sol │ │ │ │ │ └── VotesTimestamp.sol │ │ │ │ └── wizard │ │ │ │ │ ├── MyGovernor1.sol │ │ │ │ │ ├── MyGovernor2.sol │ │ │ │ │ └── MyGovernor3.sol │ │ │ ├── package.json │ │ │ ├── proxy │ │ │ │ ├── Clones.sol │ │ │ │ ├── ERC1967 │ │ │ │ │ ├── ERC1967Proxy.sol │ │ │ │ │ └── ERC1967Upgrade.sol │ │ │ │ ├── Proxy.sol │ │ │ │ ├── README.adoc │ │ │ │ ├── beacon │ │ │ │ │ ├── BeaconProxy.sol │ │ │ │ │ ├── IBeacon.sol │ │ │ │ │ └── UpgradeableBeacon.sol │ │ │ │ ├── transparent │ │ │ │ │ ├── ProxyAdmin.sol │ │ │ │ │ └── TransparentUpgradeableProxy.sol │ │ │ │ └── utils │ │ │ │ │ ├── Initializable.sol │ │ │ │ │ └── UUPSUpgradeable.sol │ │ │ ├── security │ │ │ │ ├── Pausable.sol │ │ │ │ ├── PullPayment.sol │ │ │ │ ├── README.adoc │ │ │ │ └── ReentrancyGuard.sol │ │ │ ├── token │ │ │ │ ├── ERC1155 │ │ │ │ │ ├── ERC1155.sol │ │ │ │ │ ├── IERC1155.sol │ │ │ │ │ ├── IERC1155Receiver.sol │ │ │ │ │ ├── README.adoc │ │ │ │ │ ├── extensions │ │ │ │ │ │ ├── ERC1155Burnable.sol │ │ │ │ │ │ ├── ERC1155Pausable.sol │ │ │ │ │ │ ├── ERC1155Supply.sol │ │ │ │ │ │ ├── ERC1155URIStorage.sol │ │ │ │ │ │ └── IERC1155MetadataURI.sol │ │ │ │ │ ├── presets │ │ │ │ │ │ ├── ERC1155PresetMinterPauser.sol │ │ │ │ │ │ └── README.md │ │ │ │ │ └── utils │ │ │ │ │ │ ├── ERC1155Holder.sol │ │ │ │ │ │ └── ERC1155Receiver.sol │ │ │ │ ├── ERC20 │ │ │ │ │ ├── ERC20.sol │ │ │ │ │ ├── IERC20.sol │ │ │ │ │ ├── README.adoc │ │ │ │ │ ├── extensions │ │ │ │ │ │ ├── ERC20Burnable.sol │ │ │ │ │ │ ├── ERC20Capped.sol │ │ │ │ │ │ ├── ERC20FlashMint.sol │ │ │ │ │ │ ├── ERC20Pausable.sol │ │ │ │ │ │ ├── ERC20Permit.sol │ │ │ │ │ │ ├── ERC20Snapshot.sol │ │ │ │ │ │ ├── ERC20Votes.sol │ │ │ │ │ │ ├── ERC20VotesComp.sol │ │ │ │ │ │ ├── ERC20Wrapper.sol │ │ │ │ │ │ ├── ERC4626.sol │ │ │ │ │ │ ├── IERC20Metadata.sol │ │ │ │ │ │ ├── IERC20Permit.sol │ │ │ │ │ │ ├── draft-ERC20Permit.sol │ │ │ │ │ │ └── draft-IERC20Permit.sol │ │ │ │ │ ├── presets │ │ │ │ │ │ ├── ERC20PresetFixedSupply.sol │ │ │ │ │ │ ├── ERC20PresetMinterPauser.sol │ │ │ │ │ │ └── README.md │ │ │ │ │ └── utils │ │ │ │ │ │ ├── SafeERC20.sol │ │ │ │ │ │ └── TokenTimelock.sol │ │ │ │ ├── ERC721 │ │ │ │ │ ├── ERC721.sol │ │ │ │ │ ├── IERC721.sol │ │ │ │ │ ├── IERC721Receiver.sol │ │ │ │ │ ├── README.adoc │ │ │ │ │ ├── extensions │ │ │ │ │ │ ├── ERC721Burnable.sol │ │ │ │ │ │ ├── ERC721Consecutive.sol │ │ │ │ │ │ ├── ERC721Enumerable.sol │ │ │ │ │ │ ├── ERC721Pausable.sol │ │ │ │ │ │ ├── ERC721Royalty.sol │ │ │ │ │ │ ├── ERC721URIStorage.sol │ │ │ │ │ │ ├── ERC721Votes.sol │ │ │ │ │ │ ├── ERC721Wrapper.sol │ │ │ │ │ │ ├── IERC721Enumerable.sol │ │ │ │ │ │ ├── IERC721Metadata.sol │ │ │ │ │ │ └── draft-ERC721Votes.sol │ │ │ │ │ ├── presets │ │ │ │ │ │ ├── ERC721PresetMinterPauserAutoId.sol │ │ │ │ │ │ └── README.md │ │ │ │ │ └── utils │ │ │ │ │ │ └── ERC721Holder.sol │ │ │ │ ├── ERC777 │ │ │ │ │ ├── ERC777.sol │ │ │ │ │ ├── IERC777.sol │ │ │ │ │ ├── IERC777Recipient.sol │ │ │ │ │ ├── IERC777Sender.sol │ │ │ │ │ ├── README.adoc │ │ │ │ │ └── presets │ │ │ │ │ │ └── ERC777PresetFixedSupply.sol │ │ │ │ └── common │ │ │ │ │ ├── ERC2981.sol │ │ │ │ │ └── README.adoc │ │ │ ├── utils │ │ │ │ ├── Address.sol │ │ │ │ ├── Arrays.sol │ │ │ │ ├── Base64.sol │ │ │ │ ├── Checkpoints.sol │ │ │ │ ├── Context.sol │ │ │ │ ├── Counters.sol │ │ │ │ ├── Create2.sol │ │ │ │ ├── Multicall.sol │ │ │ │ ├── README.adoc │ │ │ │ ├── ShortStrings.sol │ │ │ │ ├── StorageSlot.sol │ │ │ │ ├── Strings.sol │ │ │ │ ├── Timers.sol │ │ │ │ ├── cryptography │ │ │ │ │ ├── ECDSA.sol │ │ │ │ │ ├── EIP712.sol │ │ │ │ │ ├── MerkleProof.sol │ │ │ │ │ ├── SignatureChecker.sol │ │ │ │ │ └── draft-EIP712.sol │ │ │ │ ├── escrow │ │ │ │ │ ├── ConditionalEscrow.sol │ │ │ │ │ ├── Escrow.sol │ │ │ │ │ └── RefundEscrow.sol │ │ │ │ ├── introspection │ │ │ │ │ ├── ERC165.sol │ │ │ │ │ ├── ERC165Checker.sol │ │ │ │ │ ├── ERC165Storage.sol │ │ │ │ │ ├── ERC1820Implementer.sol │ │ │ │ │ ├── IERC165.sol │ │ │ │ │ ├── IERC1820Implementer.sol │ │ │ │ │ └── IERC1820Registry.sol │ │ │ │ ├── math │ │ │ │ │ ├── Math.sol │ │ │ │ │ ├── SafeCast.sol │ │ │ │ │ ├── SafeMath.sol │ │ │ │ │ ├── SignedMath.sol │ │ │ │ │ └── SignedSafeMath.sol │ │ │ │ └── structs │ │ │ │ │ ├── BitMaps.sol │ │ │ │ │ ├── DoubleEndedQueue.sol │ │ │ │ │ ├── EnumerableMap.sol │ │ │ │ │ └── EnumerableSet.sol │ │ │ └── vendor │ │ │ │ ├── amb │ │ │ │ └── IAMB.sol │ │ │ │ ├── arbitrum │ │ │ │ ├── IArbSys.sol │ │ │ │ ├── IBridge.sol │ │ │ │ ├── IDelayedMessageProvider.sol │ │ │ │ ├── IInbox.sol │ │ │ │ └── IOutbox.sol │ │ │ │ ├── compound │ │ │ │ ├── ICompoundTimelock.sol │ │ │ │ └── LICENSE │ │ │ │ ├── optimism │ │ │ │ ├── ICrossDomainMessenger.sol │ │ │ │ └── LICENSE │ │ │ │ └── polygon │ │ │ │ └── IFxMessageProcessor.sol │ │ │ ├── foundry.toml │ │ │ ├── hardhat.config.js │ │ │ ├── hardhat │ │ │ ├── env-artifacts.js │ │ │ ├── env-contract.js │ │ │ ├── ignore-unreachable-warnings.js │ │ │ ├── skip-foundry-tests.js │ │ │ └── task-test-get-files.js │ │ │ ├── lib │ │ │ ├── erc4626-tests │ │ │ │ ├── ERC4626.prop.sol │ │ │ │ ├── ERC4626.test.sol │ │ │ │ ├── LICENSE │ │ │ │ └── README.md │ │ │ └── forge-std │ │ │ │ ├── .github │ │ │ │ └── workflows │ │ │ │ │ └── ci.yml │ │ │ │ ├── .gitignore │ │ │ │ ├── .gitmodules │ │ │ │ ├── LICENSE-APACHE │ │ │ │ ├── LICENSE-MIT │ │ │ │ ├── README.md │ │ │ │ ├── foundry.toml │ │ │ │ ├── lib │ │ │ │ └── ds-test │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── Makefile │ │ │ │ │ ├── default.nix │ │ │ │ │ ├── demo │ │ │ │ │ └── demo.sol │ │ │ │ │ ├── package.json │ │ │ │ │ └── src │ │ │ │ │ └── test.sol │ │ │ │ ├── package.json │ │ │ │ ├── src │ │ │ │ ├── Base.sol │ │ │ │ ├── Script.sol │ │ │ │ ├── StdAssertions.sol │ │ │ │ ├── StdChains.sol │ │ │ │ ├── StdCheats.sol │ │ │ │ ├── StdError.sol │ │ │ │ ├── StdJson.sol │ │ │ │ ├── StdMath.sol │ │ │ │ ├── StdStorage.sol │ │ │ │ ├── StdUtils.sol │ │ │ │ ├── Test.sol │ │ │ │ ├── Vm.sol │ │ │ │ ├── console.sol │ │ │ │ ├── console2.sol │ │ │ │ └── interfaces │ │ │ │ │ ├── IERC1155.sol │ │ │ │ │ ├── IERC165.sol │ │ │ │ │ ├── IERC20.sol │ │ │ │ │ ├── IERC4626.sol │ │ │ │ │ └── IERC721.sol │ │ │ │ └── test │ │ │ │ ├── StdAssertions.t.sol │ │ │ │ ├── StdChains.t.sol │ │ │ │ ├── StdCheats.t.sol │ │ │ │ ├── StdError.t.sol │ │ │ │ ├── StdMath.t.sol │ │ │ │ ├── StdStorage.t.sol │ │ │ │ ├── StdUtils.t.sol │ │ │ │ ├── compilation │ │ │ │ ├── CompilationScript.sol │ │ │ │ ├── CompilationScriptBase.sol │ │ │ │ ├── CompilationTest.sol │ │ │ │ └── CompilationTestBase.sol │ │ │ │ └── fixtures │ │ │ │ └── broadcast.log.json │ │ │ ├── logo.svg │ │ │ ├── netlify.toml │ │ │ ├── package-lock.json │ │ │ ├── package.json │ │ │ ├── remappings.txt │ │ │ ├── renovate.json │ │ │ ├── requirements.txt │ │ │ ├── scripts │ │ │ ├── checks │ │ │ │ ├── compare-layout.js │ │ │ │ ├── compareGasReports.js │ │ │ │ ├── extract-layout.js │ │ │ │ ├── generation.sh │ │ │ │ └── inheritance-ordering.js │ │ │ ├── gen-nav.js │ │ │ ├── generate │ │ │ │ ├── format-lines.js │ │ │ │ ├── run.js │ │ │ │ └── templates │ │ │ │ │ ├── Checkpoints.js │ │ │ │ │ ├── Checkpoints.opts.js │ │ │ │ │ ├── Checkpoints.t.js │ │ │ │ │ ├── EnumerableMap.js │ │ │ │ │ ├── EnumerableSet.js │ │ │ │ │ ├── SafeCast.js │ │ │ │ │ ├── StorageSlot.js │ │ │ │ │ └── conversion.js │ │ │ ├── git-user-config.sh │ │ │ ├── helpers.js │ │ │ ├── migrate-imports.js │ │ │ ├── prepack.sh │ │ │ ├── prepare-contracts-package.sh │ │ │ ├── prepare-docs.sh │ │ │ ├── prepare.sh │ │ │ ├── release │ │ │ │ ├── format-changelog.js │ │ │ │ ├── synchronize-versions.js │ │ │ │ ├── update-comment.js │ │ │ │ ├── version.sh │ │ │ │ └── workflow │ │ │ │ │ ├── exit-prerelease.sh │ │ │ │ │ ├── github-release.js │ │ │ │ │ ├── integrity-check.sh │ │ │ │ │ ├── pack.sh │ │ │ │ │ ├── publish.sh │ │ │ │ │ ├── rerun.js │ │ │ │ │ ├── set-changesets-pr-title.js │ │ │ │ │ ├── start.sh │ │ │ │ │ └── state.js │ │ │ ├── remove-ignored-artifacts.js │ │ │ ├── update-docs-branch.js │ │ │ └── upgradeable │ │ │ │ ├── README.md │ │ │ │ ├── patch-apply.sh │ │ │ │ ├── patch-save.sh │ │ │ │ ├── transpile-onto.sh │ │ │ │ ├── transpile.sh │ │ │ │ └── upgradeable.patch │ │ │ ├── slither.config.json │ │ │ └── test │ │ │ ├── TESTING.md │ │ │ ├── access │ │ │ ├── AccessControl.behavior.js │ │ │ ├── AccessControl.test.js │ │ │ ├── AccessControlCrossChain.test.js │ │ │ ├── AccessControlDefaultAdminRules.test.js │ │ │ ├── AccessControlEnumerable.test.js │ │ │ ├── Ownable.test.js │ │ │ └── Ownable2Step.test.js │ │ │ ├── crosschain │ │ │ └── CrossChainEnabled.test.js │ │ │ ├── finance │ │ │ ├── PaymentSplitter.test.js │ │ │ ├── VestingWallet.behavior.js │ │ │ └── VestingWallet.test.js │ │ │ ├── governance │ │ │ ├── Governor.t.sol │ │ │ ├── Governor.test.js │ │ │ ├── TimelockController.test.js │ │ │ ├── compatibility │ │ │ │ └── GovernorCompatibilityBravo.test.js │ │ │ ├── extensions │ │ │ │ ├── GovernorComp.test.js │ │ │ │ ├── GovernorERC721.test.js │ │ │ │ ├── GovernorPreventLateQuorum.test.js │ │ │ │ ├── GovernorTimelockCompound.test.js │ │ │ │ ├── GovernorTimelockControl.test.js │ │ │ │ ├── GovernorVotesQuorumFraction.test.js │ │ │ │ └── GovernorWithParams.test.js │ │ │ └── utils │ │ │ │ ├── EIP6372.behavior.js │ │ │ │ ├── Votes.behavior.js │ │ │ │ └── Votes.test.js │ │ │ ├── helpers │ │ │ ├── chainid.js │ │ │ ├── create2.js │ │ │ ├── crosschain.js │ │ │ ├── customError.js │ │ │ ├── eip712.js │ │ │ ├── enums.js │ │ │ ├── erc1967.js │ │ │ ├── governance.js │ │ │ ├── map-values.js │ │ │ ├── sign.js │ │ │ ├── time.js │ │ │ └── txpool.js │ │ │ ├── metatx │ │ │ ├── ERC2771Context.test.js │ │ │ └── MinimalForwarder.test.js │ │ │ ├── migrate-imports.test.js │ │ │ ├── proxy │ │ │ ├── Clones.behaviour.js │ │ │ ├── Clones.test.js │ │ │ ├── ERC1967 │ │ │ │ └── ERC1967Proxy.test.js │ │ │ ├── Proxy.behaviour.js │ │ │ ├── beacon │ │ │ │ ├── BeaconProxy.test.js │ │ │ │ └── UpgradeableBeacon.test.js │ │ │ ├── transparent │ │ │ │ ├── ProxyAdmin.test.js │ │ │ │ ├── TransparentUpgradeableProxy.behaviour.js │ │ │ │ └── TransparentUpgradeableProxy.test.js │ │ │ └── utils │ │ │ │ ├── Initializable.test.js │ │ │ │ └── UUPSUpgradeable.test.js │ │ │ ├── security │ │ │ ├── Pausable.test.js │ │ │ ├── PullPayment.test.js │ │ │ └── ReentrancyGuard.test.js │ │ │ ├── token │ │ │ ├── ERC1155 │ │ │ │ ├── ERC1155.behavior.js │ │ │ │ ├── ERC1155.test.js │ │ │ │ ├── extensions │ │ │ │ │ ├── ERC1155Burnable.test.js │ │ │ │ │ ├── ERC1155Pausable.test.js │ │ │ │ │ ├── ERC1155Supply.test.js │ │ │ │ │ └── ERC1155URIStorage.test.js │ │ │ │ ├── presets │ │ │ │ │ └── ERC1155PresetMinterPauser.test.js │ │ │ │ └── utils │ │ │ │ │ └── ERC1155Holder.test.js │ │ │ ├── ERC20 │ │ │ │ ├── ERC20.behavior.js │ │ │ │ ├── ERC20.test.js │ │ │ │ ├── extensions │ │ │ │ │ ├── ERC20Burnable.behavior.js │ │ │ │ │ ├── ERC20Burnable.test.js │ │ │ │ │ ├── ERC20Capped.behavior.js │ │ │ │ │ ├── ERC20Capped.test.js │ │ │ │ │ ├── ERC20FlashMint.test.js │ │ │ │ │ ├── ERC20Pausable.test.js │ │ │ │ │ ├── ERC20Snapshot.test.js │ │ │ │ │ ├── ERC20Votes.test.js │ │ │ │ │ ├── ERC20VotesComp.test.js │ │ │ │ │ ├── ERC20Wrapper.test.js │ │ │ │ │ ├── ERC4626.t.sol │ │ │ │ │ ├── ERC4626.test.js │ │ │ │ │ └── draft-ERC20Permit.test.js │ │ │ │ ├── presets │ │ │ │ │ ├── ERC20PresetFixedSupply.test.js │ │ │ │ │ └── ERC20PresetMinterPauser.test.js │ │ │ │ └── utils │ │ │ │ │ ├── SafeERC20.test.js │ │ │ │ │ └── TokenTimelock.test.js │ │ │ ├── ERC721 │ │ │ │ ├── ERC721.behavior.js │ │ │ │ ├── ERC721.test.js │ │ │ │ ├── ERC721Enumerable.test.js │ │ │ │ ├── extensions │ │ │ │ │ ├── ERC721Burnable.test.js │ │ │ │ │ ├── ERC721Consecutive.t.sol │ │ │ │ │ ├── ERC721Consecutive.test.js │ │ │ │ │ ├── ERC721Pausable.test.js │ │ │ │ │ ├── ERC721Royalty.test.js │ │ │ │ │ ├── ERC721URIStorage.test.js │ │ │ │ │ ├── ERC721Votes.test.js │ │ │ │ │ └── ERC721Wrapper.test.js │ │ │ │ ├── presets │ │ │ │ │ └── ERC721PresetMinterPauserAutoId.test.js │ │ │ │ └── utils │ │ │ │ │ └── ERC721Holder.test.js │ │ │ ├── ERC777 │ │ │ │ ├── ERC777.behavior.js │ │ │ │ ├── ERC777.test.js │ │ │ │ └── presets │ │ │ │ │ └── ERC777PresetFixedSupply.test.js │ │ │ └── common │ │ │ │ └── ERC2981.behavior.js │ │ │ └── utils │ │ │ ├── Address.test.js │ │ │ ├── Arrays.test.js │ │ │ ├── Base64.test.js │ │ │ ├── Checkpoints.t.sol │ │ │ ├── Checkpoints.test.js │ │ │ ├── Context.behavior.js │ │ │ ├── Context.test.js │ │ │ ├── Counters.test.js │ │ │ ├── Create2.test.js │ │ │ ├── Multicall.test.js │ │ │ ├── ShortStrings.t.sol │ │ │ ├── ShortStrings.test.js │ │ │ ├── StorageSlot.test.js │ │ │ ├── Strings.test.js │ │ │ ├── TimersBlockNumberImpl.test.js │ │ │ ├── TimersTimestamp.test.js │ │ │ ├── cryptography │ │ │ ├── ECDSA.test.js │ │ │ ├── EIP712.test.js │ │ │ ├── MerkleProof.test.js │ │ │ └── SignatureChecker.test.js │ │ │ ├── escrow │ │ │ ├── ConditionalEscrow.test.js │ │ │ ├── Escrow.behavior.js │ │ │ ├── Escrow.test.js │ │ │ └── RefundEscrow.test.js │ │ │ ├── introspection │ │ │ ├── ERC165.test.js │ │ │ ├── ERC165Checker.test.js │ │ │ ├── ERC165Storage.test.js │ │ │ ├── ERC1820Implementer.test.js │ │ │ └── SupportsInterface.behavior.js │ │ │ ├── math │ │ │ ├── Math.t.sol │ │ │ ├── Math.test.js │ │ │ ├── SafeCast.test.js │ │ │ ├── SafeMath.test.js │ │ │ ├── SignedMath.test.js │ │ │ └── SignedSafeMath.test.js │ │ │ └── structs │ │ │ ├── BitMap.test.js │ │ │ ├── DoubleEndedQueue.test.js │ │ │ ├── EnumerableMap.behavior.js │ │ │ ├── EnumerableMap.test.js │ │ │ ├── EnumerableSet.behavior.js │ │ │ └── EnumerableSet.test.js │ ├── script │ │ └── Counter.s.sol │ └── src │ │ ├── Bridge.sol │ │ ├── BridgedERC20.sol │ │ └── IBridge.sol ├── build.sh ├── foundry │ ├── .cargo │ │ └── config.toml │ ├── .dockerignore │ ├── .git-blame-ignore-revs │ ├── .gitattributes │ ├── .github │ │ ├── ISSUE_TEMPLATE │ │ │ ├── BUG-FORM.yml │ │ │ ├── FEATURE-FORM.yml │ │ │ └── config.yml │ │ ├── PULL_REQUEST_TEMPLATE.md │ │ ├── RELEASE_FAILURE_ISSUE_TEMPLATE.md │ │ ├── changelog.json │ │ ├── compilation-benchmark.png │ │ ├── demo.gif │ │ ├── logo.png │ │ ├── scripts │ │ │ ├── create-tag.js │ │ │ ├── move-tag.js │ │ │ └── prune-prereleases.js │ │ └── workflows │ │ │ ├── cross-platform.yml │ │ │ ├── deny.yml │ │ │ ├── docker-publish.yml │ │ │ ├── project.yml │ │ │ ├── release.yml │ │ │ └── test.yml │ ├── .gitignore │ ├── CHANGELOG.md │ ├── CONTRIBUTING.md │ ├── Cargo.lock │ ├── Cargo.toml │ ├── Dockerfile │ ├── LICENSE-APACHE │ ├── LICENSE-MIT │ ├── README.md │ ├── abi │ │ ├── Cargo.toml │ │ ├── README.md │ │ ├── abi │ │ │ ├── Console.sol │ │ │ ├── HEVM.sol │ │ │ └── HardhatConsole.json │ │ ├── build.rs │ │ └── src │ │ │ ├── bindings │ │ │ ├── console.rs │ │ │ ├── hardhat_console.rs │ │ │ ├── hevm.rs │ │ │ └── mod.rs │ │ │ └── lib.rs │ ├── anvil │ │ ├── Cargo.toml │ │ ├── README.md │ │ ├── build.rs │ │ ├── core │ │ │ ├── Cargo.toml │ │ │ └── src │ │ │ │ ├── eth │ │ │ │ ├── block.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── proof.rs │ │ │ │ ├── receipt.rs │ │ │ │ ├── serde_helpers.rs │ │ │ │ ├── state.rs │ │ │ │ ├── subscription.rs │ │ │ │ ├── transaction │ │ │ │ │ ├── ethers_compat.rs │ │ │ │ │ └── mod.rs │ │ │ │ ├── trie.rs │ │ │ │ └── utils.rs │ │ │ │ ├── lib.rs │ │ │ │ └── types.rs │ │ ├── rpc │ │ │ ├── Cargo.toml │ │ │ └── src │ │ │ │ ├── error.rs │ │ │ │ ├── lib.rs │ │ │ │ ├── request.rs │ │ │ │ └── response.rs │ │ ├── server │ │ │ ├── Cargo.toml │ │ │ └── src │ │ │ │ ├── config.rs │ │ │ │ ├── error.rs │ │ │ │ ├── handler.rs │ │ │ │ ├── ipc.rs │ │ │ │ ├── lib.rs │ │ │ │ ├── pubsub.rs │ │ │ │ └── ws.rs │ │ ├── src │ │ │ ├── anvil.rs │ │ │ ├── cmd.rs │ │ │ ├── config.rs │ │ │ ├── eth │ │ │ │ ├── api.rs │ │ │ │ ├── backend │ │ │ │ │ ├── cheats.rs │ │ │ │ │ ├── db.rs │ │ │ │ │ ├── executor.rs │ │ │ │ │ ├── fork.rs │ │ │ │ │ ├── genesis.rs │ │ │ │ │ ├── info.rs │ │ │ │ │ ├── mem │ │ │ │ │ │ ├── cache.rs │ │ │ │ │ │ ├── fork_db.rs │ │ │ │ │ │ ├── in_memory_db.rs │ │ │ │ │ │ ├── inspector.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── state.rs │ │ │ │ │ │ └── storage.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── notifications.rs │ │ │ │ │ ├── time.rs │ │ │ │ │ └── validate.rs │ │ │ │ ├── error.rs │ │ │ │ ├── fees.rs │ │ │ │ ├── macros.rs │ │ │ │ ├── miner.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── pool │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── transactions.rs │ │ │ │ ├── sign.rs │ │ │ │ └── util.rs │ │ │ ├── filter.rs │ │ │ ├── genesis.rs │ │ │ ├── hardfork.rs │ │ │ ├── lib.rs │ │ │ ├── logging.rs │ │ │ ├── pubsub.rs │ │ │ ├── server │ │ │ │ ├── error.rs │ │ │ │ ├── handler.rs │ │ │ │ └── mod.rs │ │ │ ├── service.rs │ │ │ ├── shutdown.rs │ │ │ └── tasks │ │ │ │ ├── block_listener.rs │ │ │ │ └── mod.rs │ │ ├── test-data │ │ │ ├── SimpleStorage.json │ │ │ ├── SimpleStorage.sol │ │ │ ├── emit_logs.json │ │ │ ├── emit_logs.sol │ │ │ ├── greeter.json │ │ │ ├── multicall.json │ │ │ └── multicall.sol │ │ └── tests │ │ │ └── it │ │ │ ├── abi.rs │ │ │ ├── anvil.rs │ │ │ ├── anvil_api.rs │ │ │ ├── api.rs │ │ │ ├── fork.rs │ │ │ ├── ganache.rs │ │ │ ├── gas.rs │ │ │ ├── genesis.rs │ │ │ ├── geth.rs │ │ │ ├── ipc.rs │ │ │ ├── logs.rs │ │ │ ├── main.rs │ │ │ ├── proof │ │ │ ├── eip1186.rs │ │ │ └── mod.rs │ │ │ ├── pubsub.rs │ │ │ ├── revert.rs │ │ │ ├── sign.rs │ │ │ ├── traces.rs │ │ │ ├── transaction.rs │ │ │ ├── txpool.rs │ │ │ ├── utils.rs │ │ │ └── wsapi.rs │ ├── binder │ │ ├── Cargo.toml │ │ ├── README.md │ │ └── src │ │ │ ├── lib.rs │ │ │ └── utils.rs │ ├── cast │ │ ├── Cargo.toml │ │ ├── README.md │ │ └── src │ │ │ ├── base.rs │ │ │ ├── errors.rs │ │ │ ├── lib.rs │ │ │ ├── rlp_converter.rs │ │ │ └── tx.rs │ ├── chisel │ │ ├── Cargo.toml │ │ ├── README.md │ │ ├── assets │ │ │ ├── preview.gif │ │ │ └── preview.tape │ │ ├── benches │ │ │ └── session_source.rs │ │ ├── build.rs │ │ ├── src │ │ │ ├── bin │ │ │ │ └── chisel.rs │ │ │ ├── cmd.rs │ │ │ ├── dispatcher.rs │ │ │ ├── executor.rs │ │ │ ├── history.rs │ │ │ ├── lib.rs │ │ │ ├── runner.rs │ │ │ ├── session.rs │ │ │ ├── session_source.rs │ │ │ └── solidity_helper.rs │ │ └── tests │ │ │ └── cache.rs │ ├── cli │ │ ├── Cargo.toml │ │ ├── README.md │ │ ├── assets │ │ │ ├── .gitignoreTemplate │ │ │ ├── CounterTemplate.s.sol │ │ │ ├── CounterTemplate.sol │ │ │ ├── CounterTemplate.t.sol │ │ │ └── workflowTemplate.yml │ │ ├── benches │ │ │ ├── cast.rs │ │ │ └── forge_test.rs │ │ ├── build.rs │ │ ├── src │ │ │ ├── cast.rs │ │ │ ├── cmd │ │ │ │ ├── cast │ │ │ │ │ ├── access_list.rs │ │ │ │ │ ├── bind.rs │ │ │ │ │ ├── call.rs │ │ │ │ │ ├── create2.rs │ │ │ │ │ ├── estimate.rs │ │ │ │ │ ├── find_block.rs │ │ │ │ │ ├── interface.rs │ │ │ │ │ ├── logs.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── rpc.rs │ │ │ │ │ ├── run.rs │ │ │ │ │ ├── send.rs │ │ │ │ │ ├── storage.rs │ │ │ │ │ └── wallet │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ └── vanity.rs │ │ │ │ ├── forge │ │ │ │ │ ├── bind.rs │ │ │ │ │ ├── build │ │ │ │ │ │ ├── core.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ └── paths.rs │ │ │ │ │ ├── cache.rs │ │ │ │ │ ├── config.rs │ │ │ │ │ ├── coverage.rs │ │ │ │ │ ├── create.rs │ │ │ │ │ ├── debug.rs │ │ │ │ │ ├── doc.rs │ │ │ │ │ ├── flatten.rs │ │ │ │ │ ├── fmt.rs │ │ │ │ │ ├── fourbyte.rs │ │ │ │ │ ├── geiger │ │ │ │ │ │ ├── error.rs │ │ │ │ │ │ ├── find.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ └── visitor.rs │ │ │ │ │ ├── init.rs │ │ │ │ │ ├── inspect.rs │ │ │ │ │ ├── install.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── remappings.rs │ │ │ │ │ ├── remove.rs │ │ │ │ │ ├── script │ │ │ │ │ │ ├── artifacts.rs │ │ │ │ │ │ ├── broadcast.rs │ │ │ │ │ │ ├── build.rs │ │ │ │ │ │ ├── cmd.rs │ │ │ │ │ │ ├── executor.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── multi.rs │ │ │ │ │ │ ├── providers.rs │ │ │ │ │ │ ├── receipts.rs │ │ │ │ │ │ ├── runner.rs │ │ │ │ │ │ ├── sequence.rs │ │ │ │ │ │ ├── transaction.rs │ │ │ │ │ │ └── verify.rs │ │ │ │ │ ├── selectors.rs │ │ │ │ │ ├── snapshot.rs │ │ │ │ │ ├── test │ │ │ │ │ │ ├── filter.rs │ │ │ │ │ │ └── mod.rs │ │ │ │ │ ├── tree.rs │ │ │ │ │ ├── update.rs │ │ │ │ │ ├── verify │ │ │ │ │ │ ├── etherscan │ │ │ │ │ │ │ ├── flatten.rs │ │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ │ └── standard_json.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── provider.rs │ │ │ │ │ │ └── sourcify.rs │ │ │ │ │ └── watch.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── retry.rs │ │ │ │ └── utils.rs │ │ │ ├── forge.rs │ │ │ ├── handler.rs │ │ │ ├── lib.rs │ │ │ ├── opts │ │ │ │ ├── cast.rs │ │ │ │ ├── chain.rs │ │ │ │ ├── dependency.rs │ │ │ │ ├── ethereum.rs │ │ │ │ ├── forge.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── transaction.rs │ │ │ │ └── wallet │ │ │ │ │ ├── error.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── multi_wallet.rs │ │ │ ├── stdin.rs │ │ │ ├── suggestions.rs │ │ │ └── utils.rs │ │ ├── test-utils │ │ │ ├── Cargo.toml │ │ │ └── src │ │ │ │ ├── lib.rs │ │ │ │ ├── macros.rs │ │ │ │ ├── script.rs │ │ │ │ └── util.rs │ │ └── tests │ │ │ ├── fixtures │ │ │ ├── ERC20Artifact.json │ │ │ ├── ScriptVerify.sol │ │ │ ├── can_build_skip_contracts.stdout │ │ │ ├── can_build_skip_glob.stdout │ │ │ ├── can_check_snapshot.stdout │ │ │ ├── can_create_template_contract-2nd.stdout │ │ │ ├── can_create_template_contract.stdout │ │ │ ├── can_create_using_unlocked-2nd.stdout │ │ │ ├── can_create_using_unlocked.stdout │ │ │ ├── can_detect_dirty_git_status_on_init.stderr │ │ │ ├── can_execute_script_and_skip_contracts.stdout │ │ │ ├── can_execute_script_command.stdout │ │ │ ├── can_execute_script_command_fqn.stdout │ │ │ ├── can_execute_script_command_with_args.stdout │ │ │ ├── can_execute_script_command_with_returned.stdout │ │ │ ├── can_execute_script_command_with_sig.stdout │ │ │ ├── can_run_test_in_custom_test_folder.stdout │ │ │ ├── can_set_yul_optimizer.stderr │ │ │ ├── can_test_repeatedly.stdout │ │ │ ├── can_use_libs_in_multi_fork.stdout │ │ │ ├── cast_logs.stdout │ │ │ ├── keystore │ │ │ │ ├── UTC--2022-10-30T06-51-20.130356000Z--560d246fcddc9ea98a8b032c9a2f474efb493c28 │ │ │ │ ├── UTC--2022-12-20T10-30-43.591916000Z--ec554aeafe75601aaab43bd4621a22284db566c2 │ │ │ │ ├── password │ │ │ │ └── password-ec554 │ │ │ ├── runs_tests_exactly_once_with_changed_versions.0.8.10.stdout │ │ │ ├── runs_tests_exactly_once_with_changed_versions.0.8.13.stdout │ │ │ ├── sign_typed_data.json │ │ │ ├── suggest_when_no_tests_match.stdout │ │ │ ├── warn_no_tests.stdout │ │ │ └── warn_no_tests_match.stdout │ │ │ ├── it │ │ │ ├── cache.rs │ │ │ ├── cast.rs │ │ │ ├── cmd.rs │ │ │ ├── config.rs │ │ │ ├── constants.rs │ │ │ ├── create.rs │ │ │ ├── doc.rs │ │ │ ├── integration.rs │ │ │ ├── main.rs │ │ │ ├── multi_script.rs │ │ │ ├── script.rs │ │ │ ├── svm.rs │ │ │ ├── test_cmd.rs │ │ │ ├── utils.rs │ │ │ └── verify.rs │ │ │ └── rpc-cache-keyfile │ ├── common │ │ ├── Cargo.toml │ │ ├── README.md │ │ └── src │ │ │ ├── abi.rs │ │ │ ├── calc.rs │ │ │ ├── clap_helpers.rs │ │ │ ├── compile.rs │ │ │ ├── constants.rs │ │ │ ├── contracts.rs │ │ │ ├── errors │ │ │ ├── artifacts.rs │ │ │ ├── fs.rs │ │ │ └── mod.rs │ │ │ ├── evm.rs │ │ │ ├── fmt.rs │ │ │ ├── fs.rs │ │ │ ├── glob.rs │ │ │ ├── lib.rs │ │ │ ├── provider.rs │ │ │ ├── selectors.rs │ │ │ ├── shell.rs │ │ │ ├── term.rs │ │ │ ├── traits.rs │ │ │ └── transactions.rs │ ├── config │ │ ├── Cargo.toml │ │ ├── README.md │ │ └── src │ │ │ ├── cache.rs │ │ │ ├── chain.rs │ │ │ ├── doc.rs │ │ │ ├── endpoints.rs │ │ │ ├── error.rs │ │ │ ├── etherscan.rs │ │ │ ├── fix.rs │ │ │ ├── fmt.rs │ │ │ ├── fs_permissions.rs │ │ │ ├── fuzz.rs │ │ │ ├── inline │ │ │ ├── conf_parser.rs │ │ │ ├── mod.rs │ │ │ └── natspec.rs │ │ │ ├── invariant.rs │ │ │ ├── lib.rs │ │ │ ├── macros.rs │ │ │ ├── providers │ │ │ ├── mod.rs │ │ │ └── remappings.rs │ │ │ ├── resolve.rs │ │ │ ├── utils.rs │ │ │ └── warning.rs │ ├── deny.toml │ ├── doc │ │ ├── Cargo.toml │ │ ├── README.md │ │ ├── src │ │ │ ├── builder.rs │ │ │ ├── document.rs │ │ │ ├── helpers.rs │ │ │ ├── lib.rs │ │ │ ├── parser │ │ │ │ ├── comment.rs │ │ │ │ ├── error.rs │ │ │ │ ├── item.rs │ │ │ │ └── mod.rs │ │ │ ├── preprocessor │ │ │ │ ├── contract_inheritance.rs │ │ │ │ ├── deployments.rs │ │ │ │ ├── git_source.rs │ │ │ │ ├── inheritdoc.rs │ │ │ │ └── mod.rs │ │ │ ├── server.rs │ │ │ └── writer │ │ │ │ ├── as_doc.rs │ │ │ │ ├── buf_writer.rs │ │ │ │ ├── markdown.rs │ │ │ │ └── mod.rs │ │ └── static │ │ │ ├── book.css │ │ │ ├── book.toml │ │ │ └── solidity.min.js │ ├── evm │ │ ├── Cargo.toml │ │ ├── src │ │ │ ├── coverage │ │ │ │ ├── analysis.rs │ │ │ │ ├── anchors.rs │ │ │ │ └── mod.rs │ │ │ ├── debug.rs │ │ │ ├── decode.rs │ │ │ ├── executor │ │ │ │ ├── abi │ │ │ │ │ └── mod.rs │ │ │ │ ├── backend │ │ │ │ │ ├── diagnostic.rs │ │ │ │ │ ├── error.rs │ │ │ │ │ ├── fuzz.rs │ │ │ │ │ ├── in_memory_db.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── snapshot.rs │ │ │ │ ├── builder.rs │ │ │ │ ├── fork │ │ │ │ │ ├── backend.rs │ │ │ │ │ ├── cache.rs │ │ │ │ │ ├── database.rs │ │ │ │ │ ├── init.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── multi.rs │ │ │ │ ├── inspector │ │ │ │ │ ├── access_list.rs │ │ │ │ │ ├── cheatcodes │ │ │ │ │ │ ├── config.rs │ │ │ │ │ │ ├── env.rs │ │ │ │ │ │ ├── error.rs │ │ │ │ │ │ ├── expect.rs │ │ │ │ │ │ ├── ext.rs │ │ │ │ │ │ ├── fork.rs │ │ │ │ │ │ ├── fs.rs │ │ │ │ │ │ ├── fuzz.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── snapshot.rs │ │ │ │ │ │ └── util.rs │ │ │ │ │ ├── chisel_state.rs │ │ │ │ │ ├── coverage.rs │ │ │ │ │ ├── debugger.rs │ │ │ │ │ ├── fuzzer.rs │ │ │ │ │ ├── logs.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── printer.rs │ │ │ │ │ ├── stack.rs │ │ │ │ │ ├── tracer.rs │ │ │ │ │ └── utils.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── opts.rs │ │ │ │ └── snapshot.rs │ │ │ ├── fuzz │ │ │ │ ├── error.rs │ │ │ │ ├── invariant │ │ │ │ │ ├── call_override.rs │ │ │ │ │ ├── error.rs │ │ │ │ │ ├── executor.rs │ │ │ │ │ ├── filters.rs │ │ │ │ │ └── mod.rs │ │ │ │ ├── mod.rs │ │ │ │ └── strategies │ │ │ │ │ ├── calldata.rs │ │ │ │ │ ├── int.rs │ │ │ │ │ ├── invariants.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── param.rs │ │ │ │ │ ├── state.rs │ │ │ │ │ └── uint.rs │ │ │ ├── lib.rs │ │ │ ├── trace │ │ │ │ ├── decoder.rs │ │ │ │ ├── identifier │ │ │ │ │ ├── etherscan.rs │ │ │ │ │ ├── local.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── signatures.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── node.rs │ │ │ │ └── utils.rs │ │ │ └── utils.rs │ │ └── test-data │ │ │ ├── solc-obj.json │ │ │ └── storage.json │ ├── fmt │ │ ├── Cargo.toml │ │ ├── README.md │ │ ├── src │ │ │ ├── buffer.rs │ │ │ ├── chunk.rs │ │ │ ├── comments.rs │ │ │ ├── formatter.rs │ │ │ ├── helpers.rs │ │ │ ├── inline_config.rs │ │ │ ├── lib.rs │ │ │ ├── macros.rs │ │ │ ├── solang_ext │ │ │ │ ├── ast_eq.rs │ │ │ │ ├── loc.rs │ │ │ │ ├── mod.rs │ │ │ │ └── safe_unwrap.rs │ │ │ ├── string.rs │ │ │ └── visit.rs │ │ ├── testdata │ │ │ ├── Annotation │ │ │ │ ├── fmt.sol │ │ │ │ └── original.sol │ │ │ ├── ArrayExpressions │ │ │ │ ├── fmt.sol │ │ │ │ └── original.sol │ │ │ ├── ConditionalOperatorExpression │ │ │ │ ├── fmt.sol │ │ │ │ └── original.sol │ │ │ ├── ConstructorDefinition │ │ │ │ ├── fmt.sol │ │ │ │ └── original.sol │ │ │ ├── ContractDefinition │ │ │ │ ├── bracket-spacing.fmt.sol │ │ │ │ ├── contract-new-lines.fmt.sol │ │ │ │ ├── fmt.sol │ │ │ │ └── original.sol │ │ │ ├── DoWhileStatement │ │ │ │ ├── fmt.sol │ │ │ │ └── original.sol │ │ │ ├── DocComments │ │ │ │ ├── fmt.sol │ │ │ │ ├── original.sol │ │ │ │ └── wrap-comments.fmt.sol │ │ │ ├── EmitStatement │ │ │ │ ├── fmt.sol │ │ │ │ └── original.sol │ │ │ ├── EnumDefinition │ │ │ │ ├── bracket-spacing.fmt.sol │ │ │ │ ├── fmt.sol │ │ │ │ └── original.sol │ │ │ ├── ErrorDefinition │ │ │ │ ├── fmt.sol │ │ │ │ └── original.sol │ │ │ ├── EventDefinition │ │ │ │ ├── fmt.sol │ │ │ │ └── original.sol │ │ │ ├── ForStatement │ │ │ │ ├── fmt.sol │ │ │ │ └── original.sol │ │ │ ├── FunctionCall │ │ │ │ ├── bracket-spacing.fmt.sol │ │ │ │ ├── fmt.sol │ │ │ │ └── original.sol │ │ │ ├── FunctionCallArgsStatement │ │ │ │ ├── bracket-spacing.fmt.sol │ │ │ │ ├── fmt.sol │ │ │ │ └── original.sol │ │ │ ├── FunctionDefinition │ │ │ │ ├── all.fmt.sol │ │ │ │ ├── fmt.sol │ │ │ │ ├── original.sol │ │ │ │ ├── override-spacing.fmt.sol │ │ │ │ └── params-first.fmt.sol │ │ │ ├── FunctionType │ │ │ │ ├── fmt.sol │ │ │ │ └── original.sol │ │ │ ├── IfStatement │ │ │ │ ├── block-multi.fmt.sol │ │ │ │ ├── block-single.fmt.sol │ │ │ │ ├── fmt.sol │ │ │ │ └── original.sol │ │ │ ├── IfStatement2 │ │ │ │ ├── fmt.sol │ │ │ │ └── original.sol │ │ │ ├── ImportDirective │ │ │ │ ├── bracket-spacing.fmt.sol │ │ │ │ ├── fmt.sol │ │ │ │ ├── original.sol │ │ │ │ ├── preserve-quote.fmt.sol │ │ │ │ └── single-quote.fmt.sol │ │ │ ├── InlineDisable │ │ │ │ ├── fmt.sol │ │ │ │ └── original.sol │ │ │ ├── IntTypes │ │ │ │ ├── fmt.sol │ │ │ │ ├── original.sol │ │ │ │ ├── preserve.fmt.sol │ │ │ │ └── short.fmt.sol │ │ │ ├── LiteralExpression │ │ │ │ ├── fmt.sol │ │ │ │ ├── original.sol │ │ │ │ ├── preserve-quote.fmt.sol │ │ │ │ └── single-quote.fmt.sol │ │ │ ├── MappingType │ │ │ │ ├── fmt.sol │ │ │ │ └── original.sol │ │ │ ├── ModifierDefinition │ │ │ │ ├── fmt.sol │ │ │ │ ├── original.sol │ │ │ │ └── override-spacing.fmt.sol │ │ │ ├── NamedFunctionCallExpression │ │ │ │ ├── fmt.sol │ │ │ │ └── original.sol │ │ │ ├── NumberLiteralUnderscore │ │ │ │ ├── fmt.sol │ │ │ │ ├── original.sol │ │ │ │ ├── remove.fmt.sol │ │ │ │ └── thousands.fmt.sol │ │ │ ├── OperatorExpressions │ │ │ │ ├── fmt.sol │ │ │ │ └── original.sol │ │ │ ├── PragmaDirective │ │ │ │ ├── fmt.sol │ │ │ │ └── original.sol │ │ │ ├── Repros │ │ │ │ ├── fmt.sol │ │ │ │ └── original.sol │ │ │ ├── ReturnStatement │ │ │ │ ├── fmt.sol │ │ │ │ └── original.sol │ │ │ ├── RevertNamedArgsStatement │ │ │ │ ├── fmt.sol │ │ │ │ └── original.sol │ │ │ ├── RevertStatement │ │ │ │ ├── fmt.sol │ │ │ │ └── original.sol │ │ │ ├── SimpleComments │ │ │ │ ├── fmt.sol │ │ │ │ ├── original.sol │ │ │ │ └── wrap-comments.fmt.sol │ │ │ ├── StatementBlock │ │ │ │ ├── bracket-spacing.fmt.sol │ │ │ │ ├── fmt.sol │ │ │ │ └── original.sol │ │ │ ├── StructDefinition │ │ │ │ ├── bracket-spacing.fmt.sol │ │ │ │ ├── fmt.sol │ │ │ │ └── original.sol │ │ │ ├── ThisExpression │ │ │ │ ├── fmt.sol │ │ │ │ └── original.sol │ │ │ ├── TrailingComma │ │ │ │ ├── fmt.sol │ │ │ │ └── original.sol │ │ │ ├── TryStatement │ │ │ │ ├── fmt.sol │ │ │ │ └── original.sol │ │ │ ├── TypeDefinition │ │ │ │ ├── fmt.sol │ │ │ │ └── original.sol │ │ │ ├── UnitExpression │ │ │ │ ├── fmt.sol │ │ │ │ └── original.sol │ │ │ ├── UsingDirective │ │ │ │ ├── fmt.sol │ │ │ │ └── original.sol │ │ │ ├── VariableAssignment │ │ │ │ ├── bracket-spacing.fmt.sol │ │ │ │ ├── fmt.sol │ │ │ │ └── original.sol │ │ │ ├── VariableDefinition │ │ │ │ ├── fmt.sol │ │ │ │ ├── original.sol │ │ │ │ └── override-spacing.fmt.sol │ │ │ ├── WhileStatement │ │ │ │ ├── block-multi.fmt.sol │ │ │ │ ├── block-single.fmt.sol │ │ │ │ ├── fmt.sol │ │ │ │ └── original.sol │ │ │ ├── Yul │ │ │ │ ├── fmt.sol │ │ │ │ └── original.sol │ │ │ └── YulStrings │ │ │ │ ├── fmt.sol │ │ │ │ ├── original.sol │ │ │ │ ├── preserve-quote.fmt.sol │ │ │ │ └── single-quote.fmt.sol │ │ └── tests │ │ │ └── it │ │ │ ├── formatter.rs │ │ │ └── main.rs │ ├── forge │ │ ├── Cargo.toml │ │ ├── README.md │ │ ├── src │ │ │ ├── coverage.rs │ │ │ ├── gas_report.rs │ │ │ ├── lib.rs │ │ │ ├── multi_runner.rs │ │ │ ├── result.rs │ │ │ └── runner.rs │ │ └── tests │ │ │ └── it │ │ │ ├── cheats.rs │ │ │ ├── config.rs │ │ │ ├── core.rs │ │ │ ├── fork.rs │ │ │ ├── fs.rs │ │ │ ├── fuzz.rs │ │ │ ├── inline.rs │ │ │ ├── invariant.rs │ │ │ ├── main.rs │ │ │ ├── repros.rs │ │ │ ├── spec.rs │ │ │ └── test_helpers.rs │ ├── foundryup │ │ ├── README.md │ │ ├── foundryup │ │ └── install │ ├── macros │ │ ├── Cargo.toml │ │ ├── impl │ │ │ ├── Cargo.toml │ │ │ └── src │ │ │ │ ├── console_fmt.rs │ │ │ │ ├── lib.rs │ │ │ │ └── utils.rs │ │ └── src │ │ │ ├── fmt │ │ │ ├── console_fmt.rs │ │ │ ├── mod.rs │ │ │ ├── token.rs │ │ │ └── ui.rs │ │ │ └── lib.rs │ ├── rustfmt.toml │ ├── testdata │ │ ├── .gitignore │ │ ├── README.md │ │ ├── cheats │ │ │ ├── Addr.t.sol │ │ │ ├── Assume.t.sol │ │ │ ├── Bank.t.sol │ │ │ ├── Broadcast.t.sol │ │ │ ├── ChainId.t.sol │ │ │ ├── Deal.t.sol │ │ │ ├── Derive.t.sol │ │ │ ├── Env.t.sol │ │ │ ├── Etch.t.sol │ │ │ ├── ExpectCall.t.sol │ │ │ ├── ExpectEmit.t.sol │ │ │ ├── ExpectRevert.t.sol │ │ │ ├── Fee.t.sol │ │ │ ├── Ffi.t.sol │ │ │ ├── Fork.t.sol │ │ │ ├── Fork2.t.sol │ │ │ ├── Fs.t.sol │ │ │ ├── GasMetering.t.sol │ │ │ ├── GetCode.t.sol │ │ │ ├── GetDeployedCode.t.sol │ │ │ ├── GetLabel.t.sol │ │ │ ├── GetNonce.t.sol │ │ │ ├── Json.t.sol │ │ │ ├── Label.t.sol │ │ │ ├── Load.t.sol │ │ │ ├── MemSafety.t.sol │ │ │ ├── MockCall.t.sol │ │ │ ├── Parse.t.sol │ │ │ ├── Prank.t.sol │ │ │ ├── Prevrandao.t.sol │ │ │ ├── ProjectRoot.t.sol │ │ │ ├── ReadCallers.t.sol │ │ │ ├── Record.t.sol │ │ │ ├── RecordLogs.t.sol │ │ │ ├── Remember.t.sol │ │ │ ├── ResetNonce.t.sol │ │ │ ├── Roll.t.sol │ │ │ ├── RpcUrls.t.sol │ │ │ ├── SetNonce.t.sol │ │ │ ├── SetNonceUnsafe.t.sol │ │ │ ├── Setup.t.sol │ │ │ ├── Sign.t.sol │ │ │ ├── Skip.t.sol │ │ │ ├── Snapshots.t.sol │ │ │ ├── Store.t.sol │ │ │ ├── ToString.t.sol │ │ │ ├── Travel.t.sol │ │ │ ├── Vm.sol │ │ │ └── Warp.t.sol │ │ ├── core │ │ │ ├── Abstract.t.sol │ │ │ ├── ContractEnvironment.t.sol │ │ │ ├── DSStyle.t.sol │ │ │ ├── FailingSetup.t.sol │ │ │ ├── FailingTestAfterFailedSetup.t.sol │ │ │ ├── MultipleSetup.t.sol │ │ │ ├── PaymentFailure.t.sol │ │ │ ├── Reverting.t.sol │ │ │ └── SetupConsistency.t.sol │ │ ├── fixtures │ │ │ ├── Derive │ │ │ │ ├── mnemonic_chinese_simplified.txt │ │ │ │ ├── mnemonic_chinese_traditional.txt │ │ │ │ ├── mnemonic_czech.txt │ │ │ │ ├── mnemonic_english.txt │ │ │ │ ├── mnemonic_french.txt │ │ │ │ ├── mnemonic_italian.txt │ │ │ │ ├── mnemonic_japanese.txt │ │ │ │ ├── mnemonic_korean.txt │ │ │ │ ├── mnemonic_portuguese.txt │ │ │ │ └── mnemonic_spanish.txt │ │ │ ├── Dir │ │ │ │ ├── depth1 │ │ │ │ └── nested │ │ │ │ │ ├── depth2 │ │ │ │ │ └── nested2 │ │ │ │ │ └── depth3 │ │ │ ├── File │ │ │ │ ├── read.txt │ │ │ │ └── symlink │ │ │ ├── GetCode │ │ │ │ ├── HardhatWorkingContract.json │ │ │ │ ├── HuffWorkingContract.json │ │ │ │ ├── Override.json │ │ │ │ ├── Override.sol │ │ │ │ ├── UnlinkedContract.sol │ │ │ │ ├── WorkingContract.json │ │ │ │ └── WorkingContract.sol │ │ │ ├── Json │ │ │ │ ├── Issue4630.json │ │ │ │ ├── test.json │ │ │ │ ├── wholeJson.json │ │ │ │ ├── write_complex_test.json │ │ │ │ └── write_test.json │ │ │ ├── SolidityGeneration │ │ │ │ ├── Fastlane.json │ │ │ │ ├── GaugeController.json │ │ │ │ ├── GeneratedFastLane.sol │ │ │ │ ├── GeneratedGaugeController.sol │ │ │ │ ├── GeneratedLiquidityGaugeV4.sol │ │ │ │ ├── GeneratedNamedInterface.sol │ │ │ │ ├── GeneratedUnnamedInterface.sol │ │ │ │ ├── InterfaceABI.json │ │ │ │ ├── LiquidityGaugeV4.json │ │ │ │ ├── WithStructs.json │ │ │ │ └── WithStructs.sol │ │ │ ├── broadcast.log.json │ │ │ └── broadcast.sensitive.log.json │ │ ├── fork │ │ │ ├── DssExecLib.sol │ │ │ ├── ForkSame_1.t.sol │ │ │ ├── ForkSame_2.t.sol │ │ │ ├── LaunchFork.t.sol │ │ │ └── Transact.t.sol │ │ ├── foundry.toml │ │ ├── fs │ │ │ ├── Default.t.sol │ │ │ └── Disabled.t.sol │ │ ├── fuzz │ │ │ ├── Fuzz.t.sol │ │ │ ├── FuzzCollection.t.sol │ │ │ ├── FuzzInt.t.sol │ │ │ ├── FuzzUint.t.sol │ │ │ └── invariant │ │ │ │ ├── common │ │ │ │ ├── InvariantInnerContract.t.sol │ │ │ │ ├── InvariantReentrancy.t.sol │ │ │ │ └── InvariantTest1.t.sol │ │ │ │ ├── storage │ │ │ │ └── InvariantStorageTest.t.sol │ │ │ │ ├── target │ │ │ │ ├── ExcludeContracts.t.sol │ │ │ │ ├── ExcludeSenders.t.sol │ │ │ │ ├── TargetContracts.t.sol │ │ │ │ ├── TargetSelectors.t.sol │ │ │ │ └── TargetSenders.t.sol │ │ │ │ └── targetAbi │ │ │ │ ├── ExcludeArtifacts.t.sol │ │ │ │ ├── TargetArtifactSelectors.t.sol │ │ │ │ ├── TargetArtifactSelectors2.t.sol │ │ │ │ └── TargetArtifacts.t.sol │ │ ├── inline │ │ │ ├── FuzzInlineConf.t.sol │ │ │ └── InvariantInlineConf.t.sol │ │ ├── lib │ │ │ └── ds-test │ │ │ │ └── src │ │ │ │ └── test.sol │ │ ├── linking │ │ │ ├── duplicate │ │ │ │ └── Duplicate.t.sol │ │ │ ├── nested │ │ │ │ └── Nested.t.sol │ │ │ └── simple │ │ │ │ └── Simple.t.sol │ │ ├── logs │ │ │ ├── DebugLogs.t.sol │ │ │ ├── HardhatLogs.t.sol │ │ │ └── console.sol │ │ ├── repros │ │ │ ├── Issue2623.t.sol │ │ │ ├── Issue2629.t.sol │ │ │ ├── Issue2723.t.sol │ │ │ ├── Issue2898.t.sol │ │ │ ├── Issue2956.t.sol │ │ │ ├── Issue2984.t.sol │ │ │ ├── Issue3055.t.sol │ │ │ ├── Issue3077.t.sol │ │ │ ├── Issue3110.t.sol │ │ │ ├── Issue3119.t.sol │ │ │ ├── Issue3189.t.sol │ │ │ ├── Issue3190.t.sol │ │ │ ├── Issue3192.t.sol │ │ │ ├── Issue3220.t.sol │ │ │ ├── Issue3221.sol │ │ │ ├── Issue3223.sol │ │ │ ├── Issue3347.sol │ │ │ ├── Issue3437.t.sol │ │ │ ├── Issue3596.t.sol │ │ │ ├── Issue3653.t.sol │ │ │ ├── Issue3661.sol │ │ │ ├── Issue3674.t.sol │ │ │ ├── Issue3685.t.sol │ │ │ ├── Issue3703.t.sol │ │ │ ├── Issue3708.sol │ │ │ ├── Issue3723.t.sol │ │ │ ├── Issue3753.t.sol │ │ │ ├── Issue3792.t.sol │ │ │ ├── Issue4586.t.sol │ │ │ ├── Issue4630.t.sol │ │ │ ├── Issue4640.t.sol │ │ │ ├── Issue4832.t.sol │ │ │ └── Issue5038.t.sol │ │ ├── script │ │ │ ├── broadcast │ │ │ │ └── deploy.sol │ │ │ │ │ └── 31337 │ │ │ │ │ └── run-latest.json │ │ │ └── deploy.sol │ │ ├── spec │ │ │ └── ShanghaiCompat.t.sol │ │ └── trace │ │ │ ├── ConflictingSignatures.t.sol │ │ │ └── Trace.t.sol │ ├── ui │ │ ├── Cargo.toml │ │ └── src │ │ │ ├── lib.rs │ │ │ └── op_effects.rs │ └── utils │ │ ├── Cargo.toml │ │ ├── README.md │ │ └── src │ │ ├── abi.rs │ │ ├── error.rs │ │ ├── glob.rs │ │ ├── lib.rs │ │ └── rpc.rs ├── k8s.yaml ├── multisig-l2contracts │ ├── build-and-run.sh │ └── ct │ │ ├── .github │ │ └── workflows │ │ │ └── test.yml │ │ ├── .gitignore │ │ ├── deploy.sh │ │ ├── foundry.toml │ │ ├── lib │ │ └── forge-std │ │ │ ├── .github │ │ │ └── workflows │ │ │ │ ├── ci.yml │ │ │ │ └── sync.yml │ │ │ ├── .gitignore │ │ │ ├── .gitmodules │ │ │ ├── LICENSE-APACHE │ │ │ ├── LICENSE-MIT │ │ │ ├── README.md │ │ │ ├── foundry.toml │ │ │ ├── lib │ │ │ └── ds-test │ │ │ │ ├── .github │ │ │ │ └── workflows │ │ │ │ │ └── build.yml │ │ │ │ ├── .gitignore │ │ │ │ ├── LICENSE │ │ │ │ ├── Makefile │ │ │ │ ├── default.nix │ │ │ │ ├── demo │ │ │ │ └── demo.sol │ │ │ │ ├── package.json │ │ │ │ └── src │ │ │ │ ├── test.sol │ │ │ │ └── test.t.sol │ │ │ ├── package.json │ │ │ ├── src │ │ │ ├── Base.sol │ │ │ ├── Script.sol │ │ │ ├── StdAssertions.sol │ │ │ ├── StdChains.sol │ │ │ ├── StdCheats.sol │ │ │ ├── StdError.sol │ │ │ ├── StdInvariant.sol │ │ │ ├── StdJson.sol │ │ │ ├── StdMath.sol │ │ │ ├── StdStorage.sol │ │ │ ├── StdStyle.sol │ │ │ ├── StdUtils.sol │ │ │ ├── Test.sol │ │ │ ├── Vm.sol │ │ │ ├── console.sol │ │ │ ├── console2.sol │ │ │ ├── interfaces │ │ │ │ ├── IERC1155.sol │ │ │ │ ├── IERC165.sol │ │ │ │ ├── IERC20.sol │ │ │ │ ├── IERC4626.sol │ │ │ │ ├── IERC721.sol │ │ │ │ └── IMulticall3.sol │ │ │ └── safeconsole.sol │ │ │ └── test │ │ │ ├── StdAssertions.t.sol │ │ │ ├── StdChains.t.sol │ │ │ ├── StdCheats.t.sol │ │ │ ├── StdError.t.sol │ │ │ ├── StdMath.t.sol │ │ │ ├── StdStorage.t.sol │ │ │ ├── StdStyle.t.sol │ │ │ ├── StdUtils.t.sol │ │ │ ├── compilation │ │ │ ├── CompilationScript.sol │ │ │ ├── CompilationScriptBase.sol │ │ │ ├── CompilationTest.sol │ │ │ └── CompilationTestBase.sol │ │ │ └── fixtures │ │ │ └── broadcast.log.json │ │ ├── script │ │ └── Counter.s.sol │ │ ├── src │ │ ├── Counter.sol │ │ └── MultiSig.sol │ │ └── test │ │ └── MultiSig.t.sol ├── package │ ├── .gitignore │ ├── abi.json │ ├── anvil │ ├── anvil.py │ ├── challenge.py │ ├── config.py │ ├── config.yaml │ ├── l1-state.json │ ├── l2-state.json │ ├── main.py │ └── requirements.txt ├── public-files │ ├── Description.md │ ├── Dockerfile │ ├── bridge-src │ │ ├── Bridge.sol │ │ ├── BridgedERC20.sol │ │ └── IBridge.sol │ ├── multisig-src │ │ └── SimpleMultiSigGov.sol │ ├── node-patches │ │ ├── admin.rs │ │ ├── foundry.diff │ │ └── revm.diff │ └── package │ │ ├── .gitignore │ │ ├── abi.json │ │ ├── anvil │ │ ├── anvil.py │ │ ├── challenge.py │ │ ├── config.py │ │ ├── config.yaml │ │ ├── l1-state.json │ │ ├── l2-state.json │ │ ├── main.py │ │ └── requirements.txt ├── relayer │ ├── .gitignore │ ├── abi.json │ ├── main.py │ ├── requirements.txt │ ├── run-juno.sh │ └── run.sh └── revm │ ├── .github │ ├── dependabot.yml │ └── workflows │ │ ├── ci.yml │ │ └── ethereum-tests.yml │ ├── .gitignore │ ├── .rustfmt.toml │ ├── CHANGELOG.md │ ├── Cargo.lock │ ├── Cargo.toml │ ├── LICENSE │ ├── README.md │ ├── bins │ ├── revm-test │ │ ├── Cargo.toml │ │ └── src │ │ │ └── bin │ │ │ ├── analysis.rs │ │ │ └── snailtracer.rs │ └── revme │ │ ├── CHANGELOG.md │ │ ├── Cargo.toml │ │ ├── LICENSE │ │ ├── README.md │ │ └── src │ │ ├── cli_env.rs │ │ ├── cmd.rs │ │ ├── exec.rs │ │ ├── lib.rs │ │ ├── main.rs │ │ ├── parser.rs │ │ ├── runner │ │ └── mod.rs │ │ ├── state.rs │ │ └── statetest │ │ ├── cmd.rs │ │ ├── main.rs │ │ ├── merkle_trie.rs │ │ ├── mod.rs │ │ ├── models │ │ ├── deserializer.rs │ │ ├── mod.rs │ │ └── spec.rs │ │ └── runner.rs │ ├── crates │ ├── interpreter │ │ ├── CHANGELOG.md │ │ ├── Cargo.toml │ │ ├── LICENSE │ │ └── src │ │ │ ├── gas.rs │ │ │ ├── gas │ │ │ ├── calc.rs │ │ │ └── constants.rs │ │ │ ├── host.rs │ │ │ ├── host │ │ │ └── dummy_host.rs │ │ │ ├── inner_models.rs │ │ │ ├── instruction_result.rs │ │ │ ├── instructions.rs │ │ │ ├── instructions │ │ │ ├── arithmetic.rs │ │ │ ├── bitwise.rs │ │ │ ├── control.rs │ │ │ ├── host.rs │ │ │ ├── host_env.rs │ │ │ ├── i256.rs │ │ │ ├── macros.rs │ │ │ ├── memory.rs │ │ │ ├── opcode.rs │ │ │ ├── stack.rs │ │ │ └── system.rs │ │ │ ├── interpreter.rs │ │ │ ├── interpreter │ │ │ ├── analysis.rs │ │ │ ├── contract.rs │ │ │ ├── memory.rs │ │ │ └── stack.rs │ │ │ └── lib.rs │ ├── precompile │ │ ├── CHANGELOG.md │ │ ├── Cargo.toml │ │ ├── LICENSE │ │ ├── README.md │ │ └── src │ │ │ ├── admin.rs │ │ │ ├── blake2.rs │ │ │ ├── bn128.rs │ │ │ ├── hash.rs │ │ │ ├── identity.rs │ │ │ ├── lib.rs │ │ │ ├── modexp.rs │ │ │ └── secp256k1.rs │ ├── primitives │ │ ├── CHANGELOG.md │ │ ├── Cargo.toml │ │ ├── LICENSE │ │ └── src │ │ │ ├── bits.rs │ │ │ ├── bytecode.rs │ │ │ ├── db.rs │ │ │ ├── db │ │ │ ├── components.rs │ │ │ └── components │ │ │ │ ├── block_hash.rs │ │ │ │ └── state.rs │ │ │ ├── env.rs │ │ │ ├── lib.rs │ │ │ ├── log.rs │ │ │ ├── precompile.rs │ │ │ ├── result.rs │ │ │ ├── specification.rs │ │ │ ├── state.rs │ │ │ └── utilities.rs │ └── revm │ │ ├── CHANGELOG.md │ │ ├── Cargo.toml │ │ ├── LICENSE │ │ └── src │ │ ├── db.rs │ │ ├── db │ │ ├── ethersdb.rs │ │ └── in_memory_db.rs │ │ ├── evm.rs │ │ ├── evm_impl.rs │ │ ├── inspector.rs │ │ ├── inspector │ │ ├── customprinter.rs │ │ ├── gas.rs │ │ ├── noop.rs │ │ └── tracer_eip3155.rs │ │ ├── journaled_state.rs │ │ └── lib.rs │ └── examples │ └── fork_ref_transact.rs ├── i-love-revmc ├── .challengeignore ├── README.md ├── challenge.yaml ├── challenge │ ├── Dockerfile │ ├── Dockerfile.local │ ├── anvil-buildenv-image │ │ └── Dockerfile │ ├── anvil-image │ │ ├── Dockerfile │ │ ├── build.sh │ │ ├── foundry-fork-db.patch │ │ ├── foundry.patch │ │ ├── jit-compiler │ │ │ ├── Cargo.toml │ │ │ ├── build.rs │ │ │ ├── c │ │ │ │ └── linker.c │ │ │ └── src │ │ │ │ └── main.rs │ │ ├── revm-inspectors.patch │ │ ├── revm.patch │ │ └── revmc.patch │ ├── challenge.py │ └── docker-compose.yml └── exp-do-not-upload.py ├── infrastructure ├── .gitignore ├── README.md ├── forge-ctf │ └── src │ │ ├── CTFDeployer.sol │ │ └── CTFSolver.sol ├── kctf-challenge │ ├── Dockerfile │ ├── kctf_persist_env │ ├── kctf_restore_env │ └── nsjail.cfg ├── kubernetes │ ├── ctf-server.yaml │ └── easy-ticket.yaml └── paradigmctf.py │ ├── .dockerignore │ ├── .gitignore │ ├── Dockerfile │ ├── ctf_launchers │ ├── __init__.py │ ├── daemon.py │ ├── koth_launcher.py │ ├── launcher.py │ ├── pwn_launcher.py │ ├── score_submitter.py │ ├── team_provider.py │ └── utils.py │ ├── ctf_server │ ├── __init__.py │ ├── anvil_proxy.py │ ├── backends │ │ ├── __init__.py │ │ ├── backend.py │ │ ├── docker_backend.py │ │ └── kubernetes_backend.py │ ├── databases │ │ ├── __init__.py │ │ ├── database.py │ │ ├── redisdb.py │ │ └── sqlitedb.py │ ├── easy_ticket.py │ ├── http_proxy.py │ ├── orchestrator.py │ ├── types │ │ └── __init__.py │ └── utils.py │ ├── ctf_solvers │ ├── __init__.py │ ├── koth_solver.py │ ├── pwn_solver.py │ ├── solver.py │ └── utils.py │ ├── docker-compose.yml │ ├── foundry │ ├── __init__.py │ └── anvil.py │ ├── requirements.txt │ └── setup.py ├── oh-fuck-oym ├── .challengeignore ├── README.md ├── challenge.yaml ├── challenge │ ├── Dockerfile │ ├── Dockerfile.local │ ├── challenge.py │ ├── docker-compose.yml │ └── project │ │ ├── .gitignore │ │ ├── foundry.toml │ │ ├── lib │ │ ├── forge-ctf │ │ │ └── src │ │ │ │ ├── CTFDeployer.sol │ │ │ │ └── CTFSolver.sol │ │ └── forge-std │ │ │ ├── .github │ │ │ └── workflows │ │ │ │ ├── ci.yml │ │ │ │ └── sync.yml │ │ │ ├── .gitignore │ │ │ ├── .gitmodules │ │ │ ├── LICENSE-APACHE │ │ │ ├── LICENSE-MIT │ │ │ ├── README.md │ │ │ ├── foundry.toml │ │ │ ├── lib │ │ │ └── ds-test │ │ │ │ ├── .github │ │ │ │ └── workflows │ │ │ │ │ └── build.yml │ │ │ │ ├── .gitignore │ │ │ │ ├── LICENSE │ │ │ │ ├── Makefile │ │ │ │ ├── default.nix │ │ │ │ ├── demo │ │ │ │ └── demo.sol │ │ │ │ ├── package.json │ │ │ │ └── src │ │ │ │ ├── test.sol │ │ │ │ └── test.t.sol │ │ │ ├── package.json │ │ │ ├── src │ │ │ ├── Base.sol │ │ │ ├── Script.sol │ │ │ ├── StdAssertions.sol │ │ │ ├── StdChains.sol │ │ │ ├── StdCheats.sol │ │ │ ├── StdError.sol │ │ │ ├── StdInvariant.sol │ │ │ ├── StdJson.sol │ │ │ ├── StdMath.sol │ │ │ ├── StdStorage.sol │ │ │ ├── StdStyle.sol │ │ │ ├── StdUtils.sol │ │ │ ├── Test.sol │ │ │ ├── Vm.sol │ │ │ ├── console.sol │ │ │ ├── console2.sol │ │ │ ├── interfaces │ │ │ │ ├── IERC1155.sol │ │ │ │ ├── IERC165.sol │ │ │ │ ├── IERC20.sol │ │ │ │ ├── IERC4626.sol │ │ │ │ ├── IERC721.sol │ │ │ │ └── IMulticall3.sol │ │ │ └── safeconsole.sol │ │ │ └── test │ │ │ ├── StdAssertions.t.sol │ │ │ ├── StdChains.t.sol │ │ │ ├── StdCheats.t.sol │ │ │ ├── StdError.t.sol │ │ │ ├── StdMath.t.sol │ │ │ ├── StdStorage.t.sol │ │ │ ├── StdStyle.t.sol │ │ │ ├── StdUtils.t.sol │ │ │ ├── Vm.t.sol │ │ │ ├── compilation │ │ │ ├── CompilationScript.sol │ │ │ ├── CompilationScriptBase.sol │ │ │ ├── CompilationTest.sol │ │ │ └── CompilationTestBase.sol │ │ │ └── fixtures │ │ │ └── broadcast.log.json │ │ ├── remappings.txt │ │ ├── script │ │ └── Deploy.s.sol │ │ └── src │ │ ├── Challenge.sol │ │ └── ERC20.sol └── deploy.sh ├── oh-fuck-pendle ├── .challengeignore ├── README.md ├── challenge.yaml ├── challenge │ ├── Dockerfile │ ├── Dockerfile.local │ ├── challenge.py │ ├── docker-compose.yml │ └── project │ │ ├── .gitignore │ │ ├── foundry.toml │ │ ├── lib │ │ ├── forge-ctf │ │ │ └── src │ │ │ │ ├── CTFDeployer.sol │ │ │ │ └── CTFSolver.sol │ │ └── forge-std │ │ │ ├── .github │ │ │ └── workflows │ │ │ │ ├── ci.yml │ │ │ │ └── sync.yml │ │ │ ├── .gitignore │ │ │ ├── .gitmodules │ │ │ ├── LICENSE-APACHE │ │ │ ├── LICENSE-MIT │ │ │ ├── README.md │ │ │ ├── foundry.toml │ │ │ ├── lib │ │ │ └── ds-test │ │ │ │ ├── .github │ │ │ │ └── workflows │ │ │ │ │ └── build.yml │ │ │ │ ├── .gitignore │ │ │ │ ├── LICENSE │ │ │ │ ├── Makefile │ │ │ │ ├── default.nix │ │ │ │ ├── demo │ │ │ │ └── demo.sol │ │ │ │ ├── package.json │ │ │ │ └── src │ │ │ │ ├── test.sol │ │ │ │ └── test.t.sol │ │ │ ├── package.json │ │ │ ├── src │ │ │ ├── Base.sol │ │ │ ├── Script.sol │ │ │ ├── StdAssertions.sol │ │ │ ├── StdChains.sol │ │ │ ├── StdCheats.sol │ │ │ ├── StdError.sol │ │ │ ├── StdInvariant.sol │ │ │ ├── StdJson.sol │ │ │ ├── StdMath.sol │ │ │ ├── StdStorage.sol │ │ │ ├── StdStyle.sol │ │ │ ├── StdUtils.sol │ │ │ ├── Test.sol │ │ │ ├── Vm.sol │ │ │ ├── console.sol │ │ │ ├── console2.sol │ │ │ ├── interfaces │ │ │ │ ├── IERC1155.sol │ │ │ │ ├── IERC165.sol │ │ │ │ ├── IERC20.sol │ │ │ │ ├── IERC4626.sol │ │ │ │ ├── IERC721.sol │ │ │ │ └── IMulticall3.sol │ │ │ └── safeconsole.sol │ │ │ └── test │ │ │ ├── StdAssertions.t.sol │ │ │ ├── StdChains.t.sol │ │ │ ├── StdCheats.t.sol │ │ │ ├── StdError.t.sol │ │ │ ├── StdMath.t.sol │ │ │ ├── StdStorage.t.sol │ │ │ ├── StdStyle.t.sol │ │ │ ├── StdUtils.t.sol │ │ │ ├── Vm.t.sol │ │ │ ├── compilation │ │ │ ├── CompilationScript.sol │ │ │ ├── CompilationScriptBase.sol │ │ │ ├── CompilationTest.sol │ │ │ └── CompilationTestBase.sol │ │ │ └── fixtures │ │ │ └── broadcast.log.json │ │ ├── remappings.txt │ │ ├── script │ │ └── Deploy.s.sol │ │ └── src │ │ ├── Challenge.sol │ │ └── ERC20.sol └── deploy.sh ├── safusol ├── .challengeignore ├── README.md ├── challenge.yaml └── challenge │ ├── Dockerfile │ ├── server │ ├── .gitignore │ ├── Cargo.lock │ ├── Cargo.toml │ ├── program │ │ ├── makefile │ │ └── src │ │ │ └── safusol │ │ │ └── safusol.c │ └── src │ │ └── main.rs │ └── solve-template │ ├── makefile │ ├── solve.py │ └── src │ └── solve │ └── solve.c ├── solalloc ├── .challengeignore ├── README.md ├── challenge.yaml └── challenge │ ├── Dockerfile │ ├── server │ ├── .gitignore │ ├── Cargo.lock │ ├── Cargo.toml │ ├── program │ │ ├── makefile │ │ └── src │ │ │ └── solalloc │ │ │ └── solalloc.c │ └── src │ │ └── main.rs │ └── solve-template │ ├── makefile │ ├── solve.py │ └── src │ └── solve │ └── solve.c ├── start.sh ├── templates └── pwn │ ├── .challengeignore │ ├── README.md │ ├── challenge.yaml │ └── challenge │ ├── Dockerfile │ ├── Dockerfile.local │ ├── challenge.py │ ├── docker-compose.yml │ ├── project │ ├── .gitignore │ ├── foundry.toml │ ├── lib │ │ ├── forge-ctf │ │ │ └── src │ │ │ │ ├── CTFDeployer.sol │ │ │ │ └── CTFSolver.sol │ │ └── forge-std │ │ │ ├── .github │ │ │ └── workflows │ │ │ │ ├── ci.yml │ │ │ │ └── sync.yml │ │ │ ├── .gitignore │ │ │ ├── .gitmodules │ │ │ ├── LICENSE-APACHE │ │ │ ├── LICENSE-MIT │ │ │ ├── README.md │ │ │ ├── foundry.toml │ │ │ ├── lib │ │ │ └── ds-test │ │ │ │ ├── .github │ │ │ │ └── workflows │ │ │ │ │ └── build.yml │ │ │ │ ├── .gitignore │ │ │ │ ├── LICENSE │ │ │ │ ├── Makefile │ │ │ │ ├── default.nix │ │ │ │ ├── demo │ │ │ │ └── demo.sol │ │ │ │ ├── package.json │ │ │ │ └── src │ │ │ │ ├── test.sol │ │ │ │ └── test.t.sol │ │ │ ├── package.json │ │ │ ├── src │ │ │ ├── Base.sol │ │ │ ├── Script.sol │ │ │ ├── StdAssertions.sol │ │ │ ├── StdChains.sol │ │ │ ├── StdCheats.sol │ │ │ ├── StdError.sol │ │ │ ├── StdInvariant.sol │ │ │ ├── StdJson.sol │ │ │ ├── StdMath.sol │ │ │ ├── StdStorage.sol │ │ │ ├── StdStyle.sol │ │ │ ├── StdUtils.sol │ │ │ ├── Test.sol │ │ │ ├── Vm.sol │ │ │ ├── console.sol │ │ │ ├── console2.sol │ │ │ ├── interfaces │ │ │ │ ├── IERC1155.sol │ │ │ │ ├── IERC165.sol │ │ │ │ ├── IERC20.sol │ │ │ │ ├── IERC4626.sol │ │ │ │ ├── IERC721.sol │ │ │ │ └── IMulticall3.sol │ │ │ └── safeconsole.sol │ │ │ └── test │ │ │ ├── StdAssertions.t.sol │ │ │ ├── StdChains.t.sol │ │ │ ├── StdCheats.t.sol │ │ │ ├── StdError.t.sol │ │ │ ├── StdMath.t.sol │ │ │ ├── StdStorage.t.sol │ │ │ ├── StdStyle.t.sol │ │ │ ├── StdUtils.t.sol │ │ │ ├── Vm.t.sol │ │ │ ├── compilation │ │ │ ├── CompilationScript.sol │ │ │ ├── CompilationScriptBase.sol │ │ │ ├── CompilationTest.sol │ │ │ └── CompilationTestBase.sol │ │ │ └── fixtures │ │ │ └── broadcast.log.json │ ├── remappings.txt │ ├── script │ │ ├── Deploy.s.sol │ │ ├── Solve.s.sol │ │ └── exploit │ │ │ └── Exploit.sol │ └── src │ │ └── Challenge.sol │ └── solve.py ├── teragas └── README.md ├── tony-lend-2 ├── .challengeignore ├── README.md ├── challenge.yaml ├── challenge │ ├── Dockerfile │ ├── Dockerfile.local │ ├── challenge.py │ ├── docker-compose.yml │ └── project │ │ ├── .gitignore │ │ ├── build-info │ │ └── 1cbeafddc8f608c70214814c343d808d.json │ │ ├── foundry.toml │ │ ├── lib │ │ ├── forge-ctf │ │ │ └── src │ │ │ │ ├── CTFDeployer.sol │ │ │ │ └── CTFSolver.sol │ │ ├── forge-std │ │ │ ├── .github │ │ │ │ └── workflows │ │ │ │ │ ├── ci.yml │ │ │ │ │ └── sync.yml │ │ │ ├── .gitignore │ │ │ ├── .gitmodules │ │ │ ├── LICENSE-APACHE │ │ │ ├── LICENSE-MIT │ │ │ ├── README.md │ │ │ ├── foundry.toml │ │ │ ├── lib │ │ │ │ └── ds-test │ │ │ │ │ ├── .github │ │ │ │ │ └── workflows │ │ │ │ │ │ └── build.yml │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── Makefile │ │ │ │ │ ├── default.nix │ │ │ │ │ ├── demo │ │ │ │ │ └── demo.sol │ │ │ │ │ ├── package.json │ │ │ │ │ └── src │ │ │ │ │ ├── test.sol │ │ │ │ │ └── test.t.sol │ │ │ ├── package.json │ │ │ ├── src │ │ │ │ ├── Base.sol │ │ │ │ ├── Script.sol │ │ │ │ ├── StdAssertions.sol │ │ │ │ ├── StdChains.sol │ │ │ │ ├── StdCheats.sol │ │ │ │ ├── StdError.sol │ │ │ │ ├── StdInvariant.sol │ │ │ │ ├── StdJson.sol │ │ │ │ ├── StdMath.sol │ │ │ │ ├── StdStorage.sol │ │ │ │ ├── StdStyle.sol │ │ │ │ ├── StdUtils.sol │ │ │ │ ├── Test.sol │ │ │ │ ├── Vm.sol │ │ │ │ ├── console.sol │ │ │ │ ├── console2.sol │ │ │ │ ├── interfaces │ │ │ │ │ ├── IERC1155.sol │ │ │ │ │ ├── IERC165.sol │ │ │ │ │ ├── IERC20.sol │ │ │ │ │ ├── IERC4626.sol │ │ │ │ │ ├── IERC721.sol │ │ │ │ │ └── IMulticall3.sol │ │ │ │ └── safeconsole.sol │ │ │ └── test │ │ │ │ ├── StdAssertions.t.sol │ │ │ │ ├── StdChains.t.sol │ │ │ │ ├── StdCheats.t.sol │ │ │ │ ├── StdError.t.sol │ │ │ │ ├── StdMath.t.sol │ │ │ │ ├── StdStorage.t.sol │ │ │ │ ├── StdStyle.t.sol │ │ │ │ ├── StdUtils.t.sol │ │ │ │ ├── Vm.t.sol │ │ │ │ ├── compilation │ │ │ │ ├── CompilationScript.sol │ │ │ │ ├── CompilationScriptBase.sol │ │ │ │ ├── CompilationTest.sol │ │ │ │ └── CompilationTestBase.sol │ │ │ │ └── fixtures │ │ │ │ └── broadcast.log.json │ │ └── openzeppelin-contracts │ │ │ ├── .changeset │ │ │ ├── chilled-walls-develop.md │ │ │ ├── chilly-humans-warn.md │ │ │ ├── cold-cheetahs-check.md │ │ │ ├── config.json │ │ │ ├── cool-mangos-compare.md │ │ │ ├── curvy-crabs-repeat.md │ │ │ ├── dirty-cobras-smile.md │ │ │ ├── eight-eyes-burn.md │ │ │ ├── eleven-planets-relax.md │ │ │ ├── flat-turtles-repeat.md │ │ │ ├── fluffy-buses-jump.md │ │ │ ├── fluffy-steaks-exist.md │ │ │ ├── forty-dodos-visit.md │ │ │ ├── four-chairs-help.md │ │ │ ├── friendly-nails-push.md │ │ │ ├── gentle-bulldogs-turn.md │ │ │ ├── gorgeous-badgers-vanish.md │ │ │ ├── great-pianos-work.md │ │ │ ├── heavy-baboons-give.md │ │ │ ├── kind-planets-cough.md │ │ │ ├── light-news-listen.md │ │ │ ├── lucky-crews-eat.md │ │ │ ├── nervous-eyes-teach.md │ │ │ ├── nervous-pans-grow.md │ │ │ ├── nice-paws-pull.md │ │ │ ├── odd-files-protect.md │ │ │ ├── odd-lobsters-wash.md │ │ │ ├── poor-chefs-cheat.md │ │ │ ├── serious-carrots-provide.md │ │ │ ├── shiny-poets-whisper.md │ │ │ ├── silver-swans-promise.md │ │ │ ├── smart-bugs-switch.md │ │ │ ├── spotty-falcons-explain.md │ │ │ ├── spotty-queens-own.md │ │ │ ├── strong-singers-talk.md │ │ │ ├── thick-pumpkins-report.md │ │ │ ├── thin-walls-drop.md │ │ │ ├── tricky-bats-pretend.md │ │ │ ├── twenty-feet-grin.md │ │ │ ├── violet-moons-tell.md │ │ │ ├── warm-sheep-cover.md │ │ │ ├── wise-bobcats-speak.md │ │ │ ├── witty-chicken-smile.md │ │ │ ├── yellow-deers-walk.md │ │ │ └── yellow-moles-hammer.md │ │ │ ├── .codecov.yml │ │ │ ├── .editorconfig │ │ │ ├── .eslintrc │ │ │ ├── .githooks │ │ │ └── pre-push │ │ │ ├── .github │ │ │ ├── ISSUE_TEMPLATE │ │ │ │ ├── bug_report.md │ │ │ │ ├── config.yml │ │ │ │ └── feature_request.md │ │ │ ├── PULL_REQUEST_TEMPLATE.md │ │ │ ├── actions │ │ │ │ ├── gas-compare │ │ │ │ │ └── action.yml │ │ │ │ ├── setup │ │ │ │ │ └── action.yml │ │ │ │ └── storage-layout │ │ │ │ │ └── action.yml │ │ │ └── workflows │ │ │ │ ├── actionlint.yml │ │ │ │ ├── changeset.yml │ │ │ │ ├── checks.yml │ │ │ │ ├── docs.yml │ │ │ │ ├── formal-verification.yml │ │ │ │ ├── release-cycle.yml │ │ │ │ └── upgradeable.yml │ │ │ ├── .gitignore │ │ │ ├── .gitmodules │ │ │ ├── .mocharc.js │ │ │ ├── .prettierrc │ │ │ ├── .solcover.js │ │ │ ├── CHANGELOG.md │ │ │ ├── CODE_OF_CONDUCT.md │ │ │ ├── CONTRIBUTING.md │ │ │ ├── FUNDING.json │ │ │ ├── GUIDELINES.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── RELEASING.md │ │ │ ├── SECURITY.md │ │ │ ├── audits │ │ │ ├── 2017-03.md │ │ │ ├── 2018-10.pdf │ │ │ ├── 2022-10-Checkpoints.pdf │ │ │ ├── 2022-10-ERC4626.pdf │ │ │ ├── 2023-05-v4.9.pdf │ │ │ ├── 2023-10-v5.0.pdf │ │ │ └── README.md │ │ │ ├── certora │ │ │ ├── .gitignore │ │ │ ├── Makefile │ │ │ ├── README.md │ │ │ ├── diff │ │ │ │ └── access_manager_AccessManager.sol.patch │ │ │ ├── harnesses │ │ │ │ ├── AccessControlDefaultAdminRulesHarness.sol │ │ │ │ ├── AccessControlHarness.sol │ │ │ │ ├── AccessManagedHarness.sol │ │ │ │ ├── AccessManagerHarness.sol │ │ │ │ ├── DoubleEndedQueueHarness.sol │ │ │ │ ├── ERC20FlashMintHarness.sol │ │ │ │ ├── ERC20PermitHarness.sol │ │ │ │ ├── ERC20WrapperHarness.sol │ │ │ │ ├── ERC3156FlashBorrowerHarness.sol │ │ │ │ ├── ERC721Harness.sol │ │ │ │ ├── ERC721ReceiverHarness.sol │ │ │ │ ├── EnumerableMapHarness.sol │ │ │ │ ├── EnumerableSetHarness.sol │ │ │ │ ├── InitializableHarness.sol │ │ │ │ ├── NoncesHarness.sol │ │ │ │ ├── Ownable2StepHarness.sol │ │ │ │ ├── OwnableHarness.sol │ │ │ │ ├── PausableHarness.sol │ │ │ │ └── TimelockControllerHarness.sol │ │ │ ├── reports │ │ │ │ ├── 2021-10.pdf │ │ │ │ ├── 2022-03.pdf │ │ │ │ └── 2022-05.pdf │ │ │ ├── run.js │ │ │ ├── specs.json │ │ │ └── specs │ │ │ │ ├── AccessControl.spec │ │ │ │ ├── AccessControlDefaultAdminRules.spec │ │ │ │ ├── AccessManaged.spec │ │ │ │ ├── AccessManager.spec │ │ │ │ ├── DoubleEndedQueue.spec │ │ │ │ ├── ERC20.spec │ │ │ │ ├── ERC20FlashMint.spec │ │ │ │ ├── ERC20Wrapper.spec │ │ │ │ ├── ERC721.spec │ │ │ │ ├── EnumerableMap.spec │ │ │ │ ├── EnumerableSet.spec │ │ │ │ ├── Initializable.spec │ │ │ │ ├── Nonces.spec │ │ │ │ ├── Ownable.spec │ │ │ │ ├── Ownable2Step.spec │ │ │ │ ├── Pausable.spec │ │ │ │ ├── TimelockController.spec │ │ │ │ ├── helpers │ │ │ │ └── helpers.spec │ │ │ │ └── methods │ │ │ │ ├── IAccessControl.spec │ │ │ │ ├── IAccessControlDefaultAdminRules.spec │ │ │ │ ├── IAccessManaged.spec │ │ │ │ ├── IAccessManager.spec │ │ │ │ ├── IERC20.spec │ │ │ │ ├── IERC2612.spec │ │ │ │ ├── IERC3156FlashBorrower.spec │ │ │ │ ├── IERC3156FlashLender.spec │ │ │ │ ├── IERC5313.spec │ │ │ │ ├── IERC721.spec │ │ │ │ ├── IERC721Receiver.spec │ │ │ │ ├── IOwnable.spec │ │ │ │ └── IOwnable2Step.spec │ │ │ ├── contracts │ │ │ ├── access │ │ │ │ ├── AccessControl.sol │ │ │ │ ├── IAccessControl.sol │ │ │ │ ├── Ownable.sol │ │ │ │ ├── Ownable2Step.sol │ │ │ │ ├── README.adoc │ │ │ │ ├── extensions │ │ │ │ │ ├── AccessControlDefaultAdminRules.sol │ │ │ │ │ ├── AccessControlEnumerable.sol │ │ │ │ │ ├── IAccessControlDefaultAdminRules.sol │ │ │ │ │ └── IAccessControlEnumerable.sol │ │ │ │ └── manager │ │ │ │ │ ├── AccessManaged.sol │ │ │ │ │ ├── AccessManager.sol │ │ │ │ │ ├── AuthorityUtils.sol │ │ │ │ │ ├── IAccessManaged.sol │ │ │ │ │ ├── IAccessManager.sol │ │ │ │ │ └── IAuthority.sol │ │ │ ├── finance │ │ │ │ ├── README.adoc │ │ │ │ ├── VestingWallet.sol │ │ │ │ └── VestingWalletCliff.sol │ │ │ ├── governance │ │ │ │ ├── Governor.sol │ │ │ │ ├── IGovernor.sol │ │ │ │ ├── README.adoc │ │ │ │ ├── TimelockController.sol │ │ │ │ ├── extensions │ │ │ │ │ ├── GovernorCountingFractional.sol │ │ │ │ │ ├── GovernorCountingSimple.sol │ │ │ │ │ ├── GovernorPreventLateQuorum.sol │ │ │ │ │ ├── GovernorSettings.sol │ │ │ │ │ ├── GovernorStorage.sol │ │ │ │ │ ├── GovernorTimelockAccess.sol │ │ │ │ │ ├── GovernorTimelockCompound.sol │ │ │ │ │ ├── GovernorTimelockControl.sol │ │ │ │ │ ├── GovernorVotes.sol │ │ │ │ │ └── GovernorVotesQuorumFraction.sol │ │ │ │ └── utils │ │ │ │ │ ├── IVotes.sol │ │ │ │ │ └── Votes.sol │ │ │ ├── interfaces │ │ │ │ ├── IERC1155.sol │ │ │ │ ├── IERC1155MetadataURI.sol │ │ │ │ ├── IERC1155Receiver.sol │ │ │ │ ├── IERC1271.sol │ │ │ │ ├── IERC1363.sol │ │ │ │ ├── IERC1363Receiver.sol │ │ │ │ ├── IERC1363Spender.sol │ │ │ │ ├── IERC165.sol │ │ │ │ ├── IERC1820Implementer.sol │ │ │ │ ├── IERC1820Registry.sol │ │ │ │ ├── IERC1967.sol │ │ │ │ ├── IERC20.sol │ │ │ │ ├── IERC20Metadata.sol │ │ │ │ ├── IERC2309.sol │ │ │ │ ├── IERC2612.sol │ │ │ │ ├── IERC2981.sol │ │ │ │ ├── IERC3156.sol │ │ │ │ ├── IERC3156FlashBorrower.sol │ │ │ │ ├── IERC3156FlashLender.sol │ │ │ │ ├── IERC4626.sol │ │ │ │ ├── IERC4906.sol │ │ │ │ ├── IERC5267.sol │ │ │ │ ├── IERC5313.sol │ │ │ │ ├── IERC5805.sol │ │ │ │ ├── IERC6372.sol │ │ │ │ ├── IERC721.sol │ │ │ │ ├── IERC721Enumerable.sol │ │ │ │ ├── IERC721Metadata.sol │ │ │ │ ├── IERC721Receiver.sol │ │ │ │ ├── IERC777.sol │ │ │ │ ├── IERC777Recipient.sol │ │ │ │ ├── IERC777Sender.sol │ │ │ │ ├── README.adoc │ │ │ │ ├── draft-IERC1822.sol │ │ │ │ ├── draft-IERC6093.sol │ │ │ │ └── draft-IERC7674.sol │ │ │ ├── metatx │ │ │ │ ├── ERC2771Context.sol │ │ │ │ ├── ERC2771Forwarder.sol │ │ │ │ └── README.adoc │ │ │ ├── mocks │ │ │ │ ├── AccessManagedTarget.sol │ │ │ │ ├── AccessManagerMock.sol │ │ │ │ ├── ArraysMock.sol │ │ │ │ ├── AuthorityMock.sol │ │ │ │ ├── Base64Dirty.sol │ │ │ │ ├── BatchCaller.sol │ │ │ │ ├── CallReceiverMock.sol │ │ │ │ ├── ConstructorMock.sol │ │ │ │ ├── ContextMock.sol │ │ │ │ ├── DummyImplementation.sol │ │ │ │ ├── EIP712Verifier.sol │ │ │ │ ├── ERC1271WalletMock.sol │ │ │ │ ├── ERC165 │ │ │ │ │ ├── ERC165InterfacesSupported.sol │ │ │ │ │ ├── ERC165MaliciousData.sol │ │ │ │ │ ├── ERC165MissingData.sol │ │ │ │ │ ├── ERC165NotSupported.sol │ │ │ │ │ └── ERC165ReturnBomb.sol │ │ │ │ ├── ERC2771ContextMock.sol │ │ │ │ ├── ERC3156FlashBorrowerMock.sol │ │ │ │ ├── EtherReceiverMock.sol │ │ │ │ ├── InitializableMock.sol │ │ │ │ ├── MerkleProofCustomHashMock.sol │ │ │ │ ├── MerkleTreeMock.sol │ │ │ │ ├── MulticallHelper.sol │ │ │ │ ├── MultipleInheritanceInitializableMocks.sol │ │ │ │ ├── PausableMock.sol │ │ │ │ ├── ReentrancyAttack.sol │ │ │ │ ├── ReentrancyMock.sol │ │ │ │ ├── ReentrancyTransientMock.sol │ │ │ │ ├── RegressionImplementation.sol │ │ │ │ ├── SingleInheritanceInitializableMocks.sol │ │ │ │ ├── Stateless.sol │ │ │ │ ├── StorageSlotMock.sol │ │ │ │ ├── TimelockReentrant.sol │ │ │ │ ├── UpgradeableBeaconMock.sol │ │ │ │ ├── VotesMock.sol │ │ │ │ ├── compound │ │ │ │ │ └── CompTimelock.sol │ │ │ │ ├── governance │ │ │ │ │ ├── GovernorFractionalMock.sol │ │ │ │ │ ├── GovernorMock.sol │ │ │ │ │ ├── GovernorPreventLateQuorumMock.sol │ │ │ │ │ ├── GovernorStorageMock.sol │ │ │ │ │ ├── GovernorTimelockAccessMock.sol │ │ │ │ │ ├── GovernorTimelockCompoundMock.sol │ │ │ │ │ ├── GovernorTimelockControlMock.sol │ │ │ │ │ ├── GovernorVoteMock.sol │ │ │ │ │ └── GovernorWithParamsMock.sol │ │ │ │ ├── proxy │ │ │ │ │ ├── BadBeacon.sol │ │ │ │ │ ├── ClashingImplementation.sol │ │ │ │ │ └── UUPSUpgradeableMock.sol │ │ │ │ └── token │ │ │ │ │ ├── ERC1155ReceiverMock.sol │ │ │ │ │ ├── ERC1363ForceApproveMock.sol │ │ │ │ │ ├── ERC1363NoReturnMock.sol │ │ │ │ │ ├── ERC1363ReceiverMock.sol │ │ │ │ │ ├── ERC1363ReturnFalseMock.sol │ │ │ │ │ ├── ERC1363SpenderMock.sol │ │ │ │ │ ├── ERC20ApprovalMock.sol │ │ │ │ │ ├── ERC20DecimalsMock.sol │ │ │ │ │ ├── ERC20ExcessDecimalsMock.sol │ │ │ │ │ ├── ERC20FlashMintMock.sol │ │ │ │ │ ├── ERC20ForceApproveMock.sol │ │ │ │ │ ├── ERC20GetterHelper.sol │ │ │ │ │ ├── ERC20Mock.sol │ │ │ │ │ ├── ERC20MulticallMock.sol │ │ │ │ │ ├── ERC20NoReturnMock.sol │ │ │ │ │ ├── ERC20Reentrant.sol │ │ │ │ │ ├── ERC20ReturnFalseMock.sol │ │ │ │ │ ├── ERC20VotesLegacyMock.sol │ │ │ │ │ ├── ERC20VotesTimestampMock.sol │ │ │ │ │ ├── ERC4626LimitsMock.sol │ │ │ │ │ ├── ERC4626Mock.sol │ │ │ │ │ ├── ERC4626OffsetMock.sol │ │ │ │ │ ├── ERC4646FeesMock.sol │ │ │ │ │ ├── ERC721ConsecutiveEnumerableMock.sol │ │ │ │ │ ├── ERC721ConsecutiveMock.sol │ │ │ │ │ ├── ERC721ReceiverMock.sol │ │ │ │ │ └── ERC721URIStorageMock.sol │ │ │ ├── package.json │ │ │ ├── proxy │ │ │ │ ├── Clones.sol │ │ │ │ ├── ERC1967 │ │ │ │ │ ├── ERC1967Proxy.sol │ │ │ │ │ └── ERC1967Utils.sol │ │ │ │ ├── Proxy.sol │ │ │ │ ├── README.adoc │ │ │ │ ├── beacon │ │ │ │ │ ├── BeaconProxy.sol │ │ │ │ │ ├── IBeacon.sol │ │ │ │ │ └── UpgradeableBeacon.sol │ │ │ │ ├── transparent │ │ │ │ │ ├── ProxyAdmin.sol │ │ │ │ │ └── TransparentUpgradeableProxy.sol │ │ │ │ └── utils │ │ │ │ │ ├── Initializable.sol │ │ │ │ │ └── UUPSUpgradeable.sol │ │ │ ├── token │ │ │ │ ├── ERC1155 │ │ │ │ │ ├── ERC1155.sol │ │ │ │ │ ├── IERC1155.sol │ │ │ │ │ ├── IERC1155Receiver.sol │ │ │ │ │ ├── README.adoc │ │ │ │ │ ├── extensions │ │ │ │ │ │ ├── ERC1155Burnable.sol │ │ │ │ │ │ ├── ERC1155Pausable.sol │ │ │ │ │ │ ├── ERC1155Supply.sol │ │ │ │ │ │ ├── ERC1155URIStorage.sol │ │ │ │ │ │ └── IERC1155MetadataURI.sol │ │ │ │ │ └── utils │ │ │ │ │ │ ├── ERC1155Holder.sol │ │ │ │ │ │ └── ERC1155Utils.sol │ │ │ │ ├── ERC20 │ │ │ │ │ ├── ERC20.sol │ │ │ │ │ ├── IERC20.sol │ │ │ │ │ ├── README.adoc │ │ │ │ │ ├── extensions │ │ │ │ │ │ ├── ERC1363.sol │ │ │ │ │ │ ├── ERC20Burnable.sol │ │ │ │ │ │ ├── ERC20Capped.sol │ │ │ │ │ │ ├── ERC20FlashMint.sol │ │ │ │ │ │ ├── ERC20Pausable.sol │ │ │ │ │ │ ├── ERC20Permit.sol │ │ │ │ │ │ ├── ERC20Votes.sol │ │ │ │ │ │ ├── ERC20Wrapper.sol │ │ │ │ │ │ ├── ERC4626.sol │ │ │ │ │ │ ├── IERC20Metadata.sol │ │ │ │ │ │ ├── IERC20Permit.sol │ │ │ │ │ │ └── draft-ERC20TemporaryApproval.sol │ │ │ │ │ └── utils │ │ │ │ │ │ ├── ERC1363Utils.sol │ │ │ │ │ │ └── SafeERC20.sol │ │ │ │ ├── ERC721 │ │ │ │ │ ├── ERC721.sol │ │ │ │ │ ├── IERC721.sol │ │ │ │ │ ├── IERC721Receiver.sol │ │ │ │ │ ├── README.adoc │ │ │ │ │ ├── extensions │ │ │ │ │ │ ├── ERC721Burnable.sol │ │ │ │ │ │ ├── ERC721Consecutive.sol │ │ │ │ │ │ ├── ERC721Enumerable.sol │ │ │ │ │ │ ├── ERC721Pausable.sol │ │ │ │ │ │ ├── ERC721Royalty.sol │ │ │ │ │ │ ├── ERC721URIStorage.sol │ │ │ │ │ │ ├── ERC721Votes.sol │ │ │ │ │ │ ├── ERC721Wrapper.sol │ │ │ │ │ │ ├── IERC721Enumerable.sol │ │ │ │ │ │ └── IERC721Metadata.sol │ │ │ │ │ └── utils │ │ │ │ │ │ ├── ERC721Holder.sol │ │ │ │ │ │ └── ERC721Utils.sol │ │ │ │ └── common │ │ │ │ │ ├── ERC2981.sol │ │ │ │ │ └── README.adoc │ │ │ ├── utils │ │ │ │ ├── Address.sol │ │ │ │ ├── Arrays.sol │ │ │ │ ├── Base64.sol │ │ │ │ ├── Comparators.sol │ │ │ │ ├── Context.sol │ │ │ │ ├── Create2.sol │ │ │ │ ├── Errors.sol │ │ │ │ ├── Multicall.sol │ │ │ │ ├── Nonces.sol │ │ │ │ ├── Packing.sol │ │ │ │ ├── Panic.sol │ │ │ │ ├── Pausable.sol │ │ │ │ ├── README.adoc │ │ │ │ ├── ReentrancyGuard.sol │ │ │ │ ├── ReentrancyGuardTransient.sol │ │ │ │ ├── ShortStrings.sol │ │ │ │ ├── SlotDerivation.sol │ │ │ │ ├── StorageSlot.sol │ │ │ │ ├── Strings.sol │ │ │ │ ├── cryptography │ │ │ │ │ ├── ECDSA.sol │ │ │ │ │ ├── EIP712.sol │ │ │ │ │ ├── Hashes.sol │ │ │ │ │ ├── MerkleProof.sol │ │ │ │ │ ├── MessageHashUtils.sol │ │ │ │ │ ├── P256.sol │ │ │ │ │ ├── RSA.sol │ │ │ │ │ └── SignatureChecker.sol │ │ │ │ ├── introspection │ │ │ │ │ ├── ERC165.sol │ │ │ │ │ ├── ERC165Checker.sol │ │ │ │ │ └── IERC165.sol │ │ │ │ ├── math │ │ │ │ │ ├── Math.sol │ │ │ │ │ ├── SafeCast.sol │ │ │ │ │ └── SignedMath.sol │ │ │ │ ├── structs │ │ │ │ │ ├── BitMaps.sol │ │ │ │ │ ├── Checkpoints.sol │ │ │ │ │ ├── CircularBuffer.sol │ │ │ │ │ ├── DoubleEndedQueue.sol │ │ │ │ │ ├── EnumerableMap.sol │ │ │ │ │ ├── EnumerableSet.sol │ │ │ │ │ ├── Heap.sol │ │ │ │ │ └── MerkleTree.sol │ │ │ │ └── types │ │ │ │ │ └── Time.sol │ │ │ └── vendor │ │ │ │ └── compound │ │ │ │ ├── ICompoundTimelock.sol │ │ │ │ └── LICENSE │ │ │ ├── foundry.toml │ │ │ ├── fv-requirements.txt │ │ │ ├── hardhat.config.js │ │ │ ├── hardhat │ │ │ ├── async-test-sanity.js │ │ │ ├── env-artifacts.js │ │ │ ├── ignore-unreachable-warnings.js │ │ │ ├── remappings.js │ │ │ ├── skip-foundry-tests.js │ │ │ └── task-test-get-files.js │ │ │ ├── lib │ │ │ ├── erc4626-tests │ │ │ │ ├── ERC4626.prop.sol │ │ │ │ ├── ERC4626.test.sol │ │ │ │ ├── LICENSE │ │ │ │ └── README.md │ │ │ ├── forge-std │ │ │ │ ├── .gitattributes │ │ │ │ ├── .github │ │ │ │ │ └── workflows │ │ │ │ │ │ ├── ci.yml │ │ │ │ │ │ └── sync.yml │ │ │ │ ├── .gitignore │ │ │ │ ├── .gitmodules │ │ │ │ ├── LICENSE-APACHE │ │ │ │ ├── LICENSE-MIT │ │ │ │ ├── README.md │ │ │ │ ├── foundry.toml │ │ │ │ ├── lib │ │ │ │ │ └── ds-test │ │ │ │ │ │ ├── .github │ │ │ │ │ │ └── workflows │ │ │ │ │ │ │ └── build.yml │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── Makefile │ │ │ │ │ │ ├── default.nix │ │ │ │ │ │ ├── demo │ │ │ │ │ │ └── demo.sol │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ └── src │ │ │ │ │ │ ├── test.sol │ │ │ │ │ │ └── test.t.sol │ │ │ │ ├── package.json │ │ │ │ ├── scripts │ │ │ │ │ └── vm.py │ │ │ │ ├── src │ │ │ │ │ ├── Base.sol │ │ │ │ │ ├── Script.sol │ │ │ │ │ ├── StdAssertions.sol │ │ │ │ │ ├── StdChains.sol │ │ │ │ │ ├── StdCheats.sol │ │ │ │ │ ├── StdError.sol │ │ │ │ │ ├── StdInvariant.sol │ │ │ │ │ ├── StdJson.sol │ │ │ │ │ ├── StdMath.sol │ │ │ │ │ ├── StdStorage.sol │ │ │ │ │ ├── StdStyle.sol │ │ │ │ │ ├── StdUtils.sol │ │ │ │ │ ├── Test.sol │ │ │ │ │ ├── Vm.sol │ │ │ │ │ ├── console.sol │ │ │ │ │ ├── console2.sol │ │ │ │ │ ├── interfaces │ │ │ │ │ │ ├── IERC1155.sol │ │ │ │ │ │ ├── IERC165.sol │ │ │ │ │ │ ├── IERC20.sol │ │ │ │ │ │ ├── IERC4626.sol │ │ │ │ │ │ ├── IERC721.sol │ │ │ │ │ │ └── IMulticall3.sol │ │ │ │ │ ├── mocks │ │ │ │ │ │ ├── MockERC20.sol │ │ │ │ │ │ └── MockERC721.sol │ │ │ │ │ └── safeconsole.sol │ │ │ │ └── test │ │ │ │ │ ├── StdAssertions.t.sol │ │ │ │ │ ├── StdChains.t.sol │ │ │ │ │ ├── StdCheats.t.sol │ │ │ │ │ ├── StdError.t.sol │ │ │ │ │ ├── StdMath.t.sol │ │ │ │ │ ├── StdStorage.t.sol │ │ │ │ │ ├── StdStyle.t.sol │ │ │ │ │ ├── StdUtils.t.sol │ │ │ │ │ ├── Vm.t.sol │ │ │ │ │ ├── compilation │ │ │ │ │ ├── CompilationScript.sol │ │ │ │ │ ├── CompilationScriptBase.sol │ │ │ │ │ ├── CompilationTest.sol │ │ │ │ │ └── CompilationTestBase.sol │ │ │ │ │ ├── fixtures │ │ │ │ │ └── broadcast.log.json │ │ │ │ │ └── mocks │ │ │ │ │ ├── MockERC20.t.sol │ │ │ │ │ └── MockERC721.t.sol │ │ │ └── halmos-cheatcodes │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ └── src │ │ │ │ ├── SVM.sol │ │ │ │ └── SymTest.sol │ │ │ ├── logo.svg │ │ │ ├── netlify.toml │ │ │ ├── package-lock.json │ │ │ ├── package.json │ │ │ ├── remappings.txt │ │ │ ├── renovate.json │ │ │ ├── scripts │ │ │ ├── checks │ │ │ │ ├── compare-layout.js │ │ │ │ ├── compareGasReports.js │ │ │ │ ├── coverage.sh │ │ │ │ ├── extract-layout.js │ │ │ │ ├── generation.sh │ │ │ │ └── inheritance-ordering.js │ │ │ ├── gen-nav.js │ │ │ ├── generate │ │ │ │ ├── format-lines.js │ │ │ │ ├── helpers │ │ │ │ │ └── sanitize.js │ │ │ │ ├── run.js │ │ │ │ └── templates │ │ │ │ │ ├── Arrays.js │ │ │ │ │ ├── Arrays.opts.js │ │ │ │ │ ├── Checkpoints.js │ │ │ │ │ ├── Checkpoints.opts.js │ │ │ │ │ ├── Checkpoints.t.js │ │ │ │ │ ├── EnumerableMap.js │ │ │ │ │ ├── EnumerableMap.opts.js │ │ │ │ │ ├── EnumerableSet.js │ │ │ │ │ ├── EnumerableSet.opts.js │ │ │ │ │ ├── MerkleProof.js │ │ │ │ │ ├── MerkleProof.opts.js │ │ │ │ │ ├── Packing.js │ │ │ │ │ ├── Packing.opts.js │ │ │ │ │ ├── Packing.t.js │ │ │ │ │ ├── SafeCast.js │ │ │ │ │ ├── Slot.opts.js │ │ │ │ │ ├── SlotDerivation.js │ │ │ │ │ ├── SlotDerivation.t.js │ │ │ │ │ ├── StorageSlot.js │ │ │ │ │ ├── StorageSlotMock.js │ │ │ │ │ └── conversion.js │ │ │ ├── git-user-config.sh │ │ │ ├── helpers.js │ │ │ ├── prepack.sh │ │ │ ├── prepare-docs.sh │ │ │ ├── prepare.sh │ │ │ ├── release │ │ │ │ ├── format-changelog.js │ │ │ │ ├── synchronize-versions.js │ │ │ │ ├── update-comment.js │ │ │ │ ├── version.sh │ │ │ │ └── workflow │ │ │ │ │ ├── exit-prerelease.sh │ │ │ │ │ ├── github-release.js │ │ │ │ │ ├── integrity-check.sh │ │ │ │ │ ├── pack.sh │ │ │ │ │ ├── publish.sh │ │ │ │ │ ├── rerun.js │ │ │ │ │ ├── set-changesets-pr-title.js │ │ │ │ │ ├── start.sh │ │ │ │ │ └── state.js │ │ │ ├── remove-ignored-artifacts.js │ │ │ ├── solhint-custom │ │ │ │ ├── index.js │ │ │ │ └── package.json │ │ │ ├── update-docs-branch.js │ │ │ └── upgradeable │ │ │ │ ├── README.md │ │ │ │ ├── patch-apply.sh │ │ │ │ ├── patch-save.sh │ │ │ │ ├── transpile-onto.sh │ │ │ │ ├── transpile.sh │ │ │ │ └── upgradeable.patch │ │ │ ├── slither.config.json │ │ │ ├── solhint.config.js │ │ │ └── test │ │ │ ├── TESTING.md │ │ │ ├── access │ │ │ ├── AccessControl.behavior.js │ │ │ ├── AccessControl.test.js │ │ │ ├── Ownable.test.js │ │ │ ├── Ownable2Step.test.js │ │ │ ├── extensions │ │ │ │ ├── AccessControlDefaultAdminRules.test.js │ │ │ │ └── AccessControlEnumerable.test.js │ │ │ └── manager │ │ │ │ ├── AccessManaged.test.js │ │ │ │ ├── AccessManager.behavior.js │ │ │ │ ├── AccessManager.predicate.js │ │ │ │ ├── AccessManager.test.js │ │ │ │ └── AuthorityUtils.test.js │ │ │ ├── finance │ │ │ ├── VestingWallet.behavior.js │ │ │ ├── VestingWallet.test.js │ │ │ └── VestingWalletCliff.test.js │ │ │ ├── governance │ │ │ ├── Governor.t.sol │ │ │ ├── Governor.test.js │ │ │ ├── TimelockController.test.js │ │ │ ├── extensions │ │ │ │ ├── GovernorCountingFractional.test.js │ │ │ │ ├── GovernorERC721.test.js │ │ │ │ ├── GovernorPreventLateQuorum.test.js │ │ │ │ ├── GovernorStorage.test.js │ │ │ │ ├── GovernorTimelockAccess.test.js │ │ │ │ ├── GovernorTimelockCompound.test.js │ │ │ │ ├── GovernorTimelockControl.test.js │ │ │ │ ├── GovernorVotesQuorumFraction.test.js │ │ │ │ └── GovernorWithParams.test.js │ │ │ └── utils │ │ │ │ ├── ERC6372.behavior.js │ │ │ │ ├── Votes.behavior.js │ │ │ │ └── Votes.test.js │ │ │ ├── helpers │ │ │ ├── access-manager.js │ │ │ ├── account.js │ │ │ ├── constants.js │ │ │ ├── deploy.js │ │ │ ├── eip712-types.js │ │ │ ├── eip712.js │ │ │ ├── enums.js │ │ │ ├── governance.js │ │ │ ├── iterate.js │ │ │ ├── math.js │ │ │ ├── methods.js │ │ │ ├── random.js │ │ │ ├── storage.js │ │ │ ├── strings.js │ │ │ ├── time.js │ │ │ └── txpool.js │ │ │ ├── metatx │ │ │ ├── ERC2771Context.test.js │ │ │ ├── ERC2771Forwarder.t.sol │ │ │ └── ERC2771Forwarder.test.js │ │ │ ├── proxy │ │ │ ├── Clones.behaviour.js │ │ │ ├── Clones.t.sol │ │ │ ├── Clones.test.js │ │ │ ├── ERC1967 │ │ │ │ ├── ERC1967Proxy.test.js │ │ │ │ └── ERC1967Utils.test.js │ │ │ ├── Proxy.behaviour.js │ │ │ ├── beacon │ │ │ │ ├── BeaconProxy.test.js │ │ │ │ └── UpgradeableBeacon.test.js │ │ │ ├── transparent │ │ │ │ ├── ProxyAdmin.test.js │ │ │ │ ├── TransparentUpgradeableProxy.behaviour.js │ │ │ │ └── TransparentUpgradeableProxy.test.js │ │ │ └── utils │ │ │ │ ├── Initializable.test.js │ │ │ │ └── UUPSUpgradeable.test.js │ │ │ ├── sanity.test.js │ │ │ ├── token │ │ │ ├── ERC1155 │ │ │ │ ├── ERC1155.behavior.js │ │ │ │ ├── ERC1155.test.js │ │ │ │ ├── extensions │ │ │ │ │ ├── ERC1155Burnable.test.js │ │ │ │ │ ├── ERC1155Pausable.test.js │ │ │ │ │ ├── ERC1155Supply.test.js │ │ │ │ │ └── ERC1155URIStorage.test.js │ │ │ │ └── utils │ │ │ │ │ ├── ERC1155Holder.test.js │ │ │ │ │ └── ERC1155Utils.test.js │ │ │ ├── ERC20 │ │ │ │ ├── ERC20.behavior.js │ │ │ │ ├── ERC20.test.js │ │ │ │ ├── extensions │ │ │ │ │ ├── ERC1363.test.js │ │ │ │ │ ├── ERC20Burnable.test.js │ │ │ │ │ ├── ERC20Capped.test.js │ │ │ │ │ ├── ERC20FlashMint.test.js │ │ │ │ │ ├── ERC20Pausable.test.js │ │ │ │ │ ├── ERC20Permit.test.js │ │ │ │ │ ├── ERC20Votes.test.js │ │ │ │ │ ├── ERC20Wrapper.test.js │ │ │ │ │ ├── ERC4626.t.sol │ │ │ │ │ ├── ERC4626.test.js │ │ │ │ │ └── draft-ERC20TemporaryApproval.test.js │ │ │ │ └── utils │ │ │ │ │ └── SafeERC20.test.js │ │ │ ├── ERC721 │ │ │ │ ├── ERC721.behavior.js │ │ │ │ ├── ERC721.test.js │ │ │ │ ├── ERC721Enumerable.test.js │ │ │ │ ├── extensions │ │ │ │ │ ├── ERC721Burnable.test.js │ │ │ │ │ ├── ERC721Consecutive.t.sol │ │ │ │ │ ├── ERC721Consecutive.test.js │ │ │ │ │ ├── ERC721Pausable.test.js │ │ │ │ │ ├── ERC721Royalty.test.js │ │ │ │ │ ├── ERC721URIStorage.test.js │ │ │ │ │ ├── ERC721Votes.test.js │ │ │ │ │ └── ERC721Wrapper.test.js │ │ │ │ └── utils │ │ │ │ │ ├── ERC721Holder.test.js │ │ │ │ │ └── ERC721Utils.test.js │ │ │ └── common │ │ │ │ └── ERC2981.behavior.js │ │ │ └── utils │ │ │ ├── Address.test.js │ │ │ ├── Arrays.t.sol │ │ │ ├── Arrays.test.js │ │ │ ├── Base64.t.sol │ │ │ ├── Base64.test.js │ │ │ ├── Context.behavior.js │ │ │ ├── Context.test.js │ │ │ ├── Create2.t.sol │ │ │ ├── Create2.test.js │ │ │ ├── Multicall.test.js │ │ │ ├── Nonces.test.js │ │ │ ├── Packing.t.sol │ │ │ ├── Packing.test.js │ │ │ ├── Panic.test.js │ │ │ ├── Pausable.test.js │ │ │ ├── ReentrancyGuard.test.js │ │ │ ├── ShortStrings.t.sol │ │ │ ├── ShortStrings.test.js │ │ │ ├── SlotDerivation.t.sol │ │ │ ├── SlotDerivation.test.js │ │ │ ├── StorageSlot.test.js │ │ │ ├── Strings.test.js │ │ │ ├── cryptography │ │ │ ├── ECDSA.test.js │ │ │ ├── EIP712.test.js │ │ │ ├── MerkleProof.test.js │ │ │ ├── MessageHashUtils.test.js │ │ │ ├── P256.t.sol │ │ │ ├── P256.test.js │ │ │ ├── RSA.helper.js │ │ │ ├── RSA.test.js │ │ │ ├── SigVer15_186-3.rsp │ │ │ ├── SignatureChecker.test.js │ │ │ └── ecdsa_secp256r1_sha256_p1363_test.json │ │ │ ├── introspection │ │ │ ├── ERC165.test.js │ │ │ ├── ERC165Checker.test.js │ │ │ └── SupportsInterface.behavior.js │ │ │ ├── math │ │ │ ├── Math.t.sol │ │ │ ├── Math.test.js │ │ │ ├── SafeCast.test.js │ │ │ ├── SignedMath.t.sol │ │ │ └── SignedMath.test.js │ │ │ ├── structs │ │ │ ├── BitMap.test.js │ │ │ ├── Checkpoints.t.sol │ │ │ ├── Checkpoints.test.js │ │ │ ├── CircularBuffer.test.js │ │ │ ├── DoubleEndedQueue.test.js │ │ │ ├── EnumerableMap.behavior.js │ │ │ ├── EnumerableMap.test.js │ │ │ ├── EnumerableSet.behavior.js │ │ │ ├── EnumerableSet.test.js │ │ │ ├── Heap.t.sol │ │ │ ├── Heap.test.js │ │ │ └── MerkleTree.test.js │ │ │ └── types │ │ │ └── Time.test.js │ │ ├── remappings.txt │ │ ├── script │ │ └── Deploy.s.sol │ │ ├── src │ │ ├── Challenge.sol │ │ └── TonyLend.sol │ │ └── test │ │ └── TonyLend.t.sol └── deploy.sh ├── tony-lend ├── .challengeignore ├── README.md ├── challenge.yaml ├── challenge │ ├── Dockerfile │ ├── Dockerfile.local │ ├── challenge.py │ ├── docker-compose.yml │ └── project │ │ ├── .gitignore │ │ ├── foundry.toml │ │ ├── lib │ │ ├── forge-ctf │ │ │ └── src │ │ │ │ ├── CTFDeployer.sol │ │ │ │ └── CTFSolver.sol │ │ ├── forge-std │ │ │ ├── .github │ │ │ │ └── workflows │ │ │ │ │ ├── ci.yml │ │ │ │ │ └── sync.yml │ │ │ ├── .gitignore │ │ │ ├── .gitmodules │ │ │ ├── LICENSE-APACHE │ │ │ ├── LICENSE-MIT │ │ │ ├── README.md │ │ │ ├── foundry.toml │ │ │ ├── lib │ │ │ │ └── ds-test │ │ │ │ │ ├── .github │ │ │ │ │ └── workflows │ │ │ │ │ │ └── build.yml │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── Makefile │ │ │ │ │ ├── default.nix │ │ │ │ │ ├── demo │ │ │ │ │ └── demo.sol │ │ │ │ │ ├── package.json │ │ │ │ │ └── src │ │ │ │ │ ├── test.sol │ │ │ │ │ └── test.t.sol │ │ │ ├── package.json │ │ │ ├── src │ │ │ │ ├── Base.sol │ │ │ │ ├── Script.sol │ │ │ │ ├── StdAssertions.sol │ │ │ │ ├── StdChains.sol │ │ │ │ ├── StdCheats.sol │ │ │ │ ├── StdError.sol │ │ │ │ ├── StdInvariant.sol │ │ │ │ ├── StdJson.sol │ │ │ │ ├── StdMath.sol │ │ │ │ ├── StdStorage.sol │ │ │ │ ├── StdStyle.sol │ │ │ │ ├── StdUtils.sol │ │ │ │ ├── Test.sol │ │ │ │ ├── Vm.sol │ │ │ │ ├── console.sol │ │ │ │ ├── console2.sol │ │ │ │ ├── interfaces │ │ │ │ │ ├── IERC1155.sol │ │ │ │ │ ├── IERC165.sol │ │ │ │ │ ├── IERC20.sol │ │ │ │ │ ├── IERC4626.sol │ │ │ │ │ ├── IERC721.sol │ │ │ │ │ └── IMulticall3.sol │ │ │ │ └── safeconsole.sol │ │ │ └── test │ │ │ │ ├── StdAssertions.t.sol │ │ │ │ ├── StdChains.t.sol │ │ │ │ ├── StdCheats.t.sol │ │ │ │ ├── StdError.t.sol │ │ │ │ ├── StdMath.t.sol │ │ │ │ ├── StdStorage.t.sol │ │ │ │ ├── StdStyle.t.sol │ │ │ │ ├── StdUtils.t.sol │ │ │ │ ├── Vm.t.sol │ │ │ │ ├── compilation │ │ │ │ ├── CompilationScript.sol │ │ │ │ ├── CompilationScriptBase.sol │ │ │ │ ├── CompilationTest.sol │ │ │ │ └── CompilationTestBase.sol │ │ │ │ └── fixtures │ │ │ │ └── broadcast.log.json │ │ └── openzeppelin-contracts │ │ │ ├── .changeset │ │ │ ├── chilled-walls-develop.md │ │ │ ├── chilly-humans-warn.md │ │ │ ├── cold-cheetahs-check.md │ │ │ ├── config.json │ │ │ ├── cool-mangos-compare.md │ │ │ ├── curvy-crabs-repeat.md │ │ │ ├── dirty-cobras-smile.md │ │ │ ├── eight-eyes-burn.md │ │ │ ├── eleven-planets-relax.md │ │ │ ├── flat-turtles-repeat.md │ │ │ ├── fluffy-buses-jump.md │ │ │ ├── fluffy-steaks-exist.md │ │ │ ├── forty-dodos-visit.md │ │ │ ├── four-chairs-help.md │ │ │ ├── friendly-nails-push.md │ │ │ ├── gentle-bulldogs-turn.md │ │ │ ├── gorgeous-badgers-vanish.md │ │ │ ├── great-pianos-work.md │ │ │ ├── heavy-baboons-give.md │ │ │ ├── kind-planets-cough.md │ │ │ ├── light-news-listen.md │ │ │ ├── lucky-crews-eat.md │ │ │ ├── nervous-eyes-teach.md │ │ │ ├── nervous-pans-grow.md │ │ │ ├── nice-paws-pull.md │ │ │ ├── odd-files-protect.md │ │ │ ├── odd-lobsters-wash.md │ │ │ ├── poor-chefs-cheat.md │ │ │ ├── serious-carrots-provide.md │ │ │ ├── shiny-poets-whisper.md │ │ │ ├── silver-swans-promise.md │ │ │ ├── smart-bugs-switch.md │ │ │ ├── spotty-falcons-explain.md │ │ │ ├── spotty-queens-own.md │ │ │ ├── strong-singers-talk.md │ │ │ ├── thick-pumpkins-report.md │ │ │ ├── thin-walls-drop.md │ │ │ ├── tricky-bats-pretend.md │ │ │ ├── twenty-feet-grin.md │ │ │ ├── violet-moons-tell.md │ │ │ ├── warm-sheep-cover.md │ │ │ ├── wise-bobcats-speak.md │ │ │ ├── witty-chicken-smile.md │ │ │ ├── yellow-deers-walk.md │ │ │ └── yellow-moles-hammer.md │ │ │ ├── .codecov.yml │ │ │ ├── .editorconfig │ │ │ ├── .eslintrc │ │ │ ├── .githooks │ │ │ └── pre-push │ │ │ ├── .github │ │ │ ├── ISSUE_TEMPLATE │ │ │ │ ├── bug_report.md │ │ │ │ ├── config.yml │ │ │ │ └── feature_request.md │ │ │ ├── PULL_REQUEST_TEMPLATE.md │ │ │ ├── actions │ │ │ │ ├── gas-compare │ │ │ │ │ └── action.yml │ │ │ │ ├── setup │ │ │ │ │ └── action.yml │ │ │ │ └── storage-layout │ │ │ │ │ └── action.yml │ │ │ └── workflows │ │ │ │ ├── actionlint.yml │ │ │ │ ├── changeset.yml │ │ │ │ ├── checks.yml │ │ │ │ ├── docs.yml │ │ │ │ ├── formal-verification.yml │ │ │ │ ├── release-cycle.yml │ │ │ │ └── upgradeable.yml │ │ │ ├── .gitignore │ │ │ ├── .gitmodules │ │ │ ├── .mocharc.js │ │ │ ├── .prettierrc │ │ │ ├── .solcover.js │ │ │ ├── CHANGELOG.md │ │ │ ├── CODE_OF_CONDUCT.md │ │ │ ├── CONTRIBUTING.md │ │ │ ├── FUNDING.json │ │ │ ├── GUIDELINES.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── RELEASING.md │ │ │ ├── SECURITY.md │ │ │ ├── audits │ │ │ ├── 2017-03.md │ │ │ ├── 2018-10.pdf │ │ │ ├── 2022-10-Checkpoints.pdf │ │ │ ├── 2022-10-ERC4626.pdf │ │ │ ├── 2023-05-v4.9.pdf │ │ │ ├── 2023-10-v5.0.pdf │ │ │ └── README.md │ │ │ ├── certora │ │ │ ├── .gitignore │ │ │ ├── Makefile │ │ │ ├── README.md │ │ │ ├── diff │ │ │ │ └── access_manager_AccessManager.sol.patch │ │ │ ├── harnesses │ │ │ │ ├── AccessControlDefaultAdminRulesHarness.sol │ │ │ │ ├── AccessControlHarness.sol │ │ │ │ ├── AccessManagedHarness.sol │ │ │ │ ├── AccessManagerHarness.sol │ │ │ │ ├── DoubleEndedQueueHarness.sol │ │ │ │ ├── ERC20FlashMintHarness.sol │ │ │ │ ├── ERC20PermitHarness.sol │ │ │ │ ├── ERC20WrapperHarness.sol │ │ │ │ ├── ERC3156FlashBorrowerHarness.sol │ │ │ │ ├── ERC721Harness.sol │ │ │ │ ├── ERC721ReceiverHarness.sol │ │ │ │ ├── EnumerableMapHarness.sol │ │ │ │ ├── EnumerableSetHarness.sol │ │ │ │ ├── InitializableHarness.sol │ │ │ │ ├── NoncesHarness.sol │ │ │ │ ├── Ownable2StepHarness.sol │ │ │ │ ├── OwnableHarness.sol │ │ │ │ ├── PausableHarness.sol │ │ │ │ └── TimelockControllerHarness.sol │ │ │ ├── reports │ │ │ │ ├── 2021-10.pdf │ │ │ │ ├── 2022-03.pdf │ │ │ │ └── 2022-05.pdf │ │ │ ├── run.js │ │ │ ├── specs.json │ │ │ └── specs │ │ │ │ ├── AccessControl.spec │ │ │ │ ├── AccessControlDefaultAdminRules.spec │ │ │ │ ├── AccessManaged.spec │ │ │ │ ├── AccessManager.spec │ │ │ │ ├── DoubleEndedQueue.spec │ │ │ │ ├── ERC20.spec │ │ │ │ ├── ERC20FlashMint.spec │ │ │ │ ├── ERC20Wrapper.spec │ │ │ │ ├── ERC721.spec │ │ │ │ ├── EnumerableMap.spec │ │ │ │ ├── EnumerableSet.spec │ │ │ │ ├── Initializable.spec │ │ │ │ ├── Nonces.spec │ │ │ │ ├── Ownable.spec │ │ │ │ ├── Ownable2Step.spec │ │ │ │ ├── Pausable.spec │ │ │ │ ├── TimelockController.spec │ │ │ │ ├── helpers │ │ │ │ └── helpers.spec │ │ │ │ └── methods │ │ │ │ ├── IAccessControl.spec │ │ │ │ ├── IAccessControlDefaultAdminRules.spec │ │ │ │ ├── IAccessManaged.spec │ │ │ │ ├── IAccessManager.spec │ │ │ │ ├── IERC20.spec │ │ │ │ ├── IERC2612.spec │ │ │ │ ├── IERC3156FlashBorrower.spec │ │ │ │ ├── IERC3156FlashLender.spec │ │ │ │ ├── IERC5313.spec │ │ │ │ ├── IERC721.spec │ │ │ │ ├── IERC721Receiver.spec │ │ │ │ ├── IOwnable.spec │ │ │ │ └── IOwnable2Step.spec │ │ │ ├── contracts │ │ │ ├── access │ │ │ │ ├── AccessControl.sol │ │ │ │ ├── IAccessControl.sol │ │ │ │ ├── Ownable.sol │ │ │ │ ├── Ownable2Step.sol │ │ │ │ ├── README.adoc │ │ │ │ ├── extensions │ │ │ │ │ ├── AccessControlDefaultAdminRules.sol │ │ │ │ │ ├── AccessControlEnumerable.sol │ │ │ │ │ ├── IAccessControlDefaultAdminRules.sol │ │ │ │ │ └── IAccessControlEnumerable.sol │ │ │ │ └── manager │ │ │ │ │ ├── AccessManaged.sol │ │ │ │ │ ├── AccessManager.sol │ │ │ │ │ ├── AuthorityUtils.sol │ │ │ │ │ ├── IAccessManaged.sol │ │ │ │ │ ├── IAccessManager.sol │ │ │ │ │ └── IAuthority.sol │ │ │ ├── finance │ │ │ │ ├── README.adoc │ │ │ │ ├── VestingWallet.sol │ │ │ │ └── VestingWalletCliff.sol │ │ │ ├── governance │ │ │ │ ├── Governor.sol │ │ │ │ ├── IGovernor.sol │ │ │ │ ├── README.adoc │ │ │ │ ├── TimelockController.sol │ │ │ │ ├── extensions │ │ │ │ │ ├── GovernorCountingFractional.sol │ │ │ │ │ ├── GovernorCountingSimple.sol │ │ │ │ │ ├── GovernorPreventLateQuorum.sol │ │ │ │ │ ├── GovernorSettings.sol │ │ │ │ │ ├── GovernorStorage.sol │ │ │ │ │ ├── GovernorTimelockAccess.sol │ │ │ │ │ ├── GovernorTimelockCompound.sol │ │ │ │ │ ├── GovernorTimelockControl.sol │ │ │ │ │ ├── GovernorVotes.sol │ │ │ │ │ └── GovernorVotesQuorumFraction.sol │ │ │ │ └── utils │ │ │ │ │ ├── IVotes.sol │ │ │ │ │ └── Votes.sol │ │ │ ├── interfaces │ │ │ │ ├── IERC1155.sol │ │ │ │ ├── IERC1155MetadataURI.sol │ │ │ │ ├── IERC1155Receiver.sol │ │ │ │ ├── IERC1271.sol │ │ │ │ ├── IERC1363.sol │ │ │ │ ├── IERC1363Receiver.sol │ │ │ │ ├── IERC1363Spender.sol │ │ │ │ ├── IERC165.sol │ │ │ │ ├── IERC1820Implementer.sol │ │ │ │ ├── IERC1820Registry.sol │ │ │ │ ├── IERC1967.sol │ │ │ │ ├── IERC20.sol │ │ │ │ ├── IERC20Metadata.sol │ │ │ │ ├── IERC2309.sol │ │ │ │ ├── IERC2612.sol │ │ │ │ ├── IERC2981.sol │ │ │ │ ├── IERC3156.sol │ │ │ │ ├── IERC3156FlashBorrower.sol │ │ │ │ ├── IERC3156FlashLender.sol │ │ │ │ ├── IERC4626.sol │ │ │ │ ├── IERC4906.sol │ │ │ │ ├── IERC5267.sol │ │ │ │ ├── IERC5313.sol │ │ │ │ ├── IERC5805.sol │ │ │ │ ├── IERC6372.sol │ │ │ │ ├── IERC721.sol │ │ │ │ ├── IERC721Enumerable.sol │ │ │ │ ├── IERC721Metadata.sol │ │ │ │ ├── IERC721Receiver.sol │ │ │ │ ├── IERC777.sol │ │ │ │ ├── IERC777Recipient.sol │ │ │ │ ├── IERC777Sender.sol │ │ │ │ ├── README.adoc │ │ │ │ ├── draft-IERC1822.sol │ │ │ │ ├── draft-IERC6093.sol │ │ │ │ └── draft-IERC7674.sol │ │ │ ├── metatx │ │ │ │ ├── ERC2771Context.sol │ │ │ │ ├── ERC2771Forwarder.sol │ │ │ │ └── README.adoc │ │ │ ├── mocks │ │ │ │ ├── AccessManagedTarget.sol │ │ │ │ ├── AccessManagerMock.sol │ │ │ │ ├── ArraysMock.sol │ │ │ │ ├── AuthorityMock.sol │ │ │ │ ├── Base64Dirty.sol │ │ │ │ ├── BatchCaller.sol │ │ │ │ ├── CallReceiverMock.sol │ │ │ │ ├── ConstructorMock.sol │ │ │ │ ├── ContextMock.sol │ │ │ │ ├── DummyImplementation.sol │ │ │ │ ├── EIP712Verifier.sol │ │ │ │ ├── ERC1271WalletMock.sol │ │ │ │ ├── ERC165 │ │ │ │ │ ├── ERC165InterfacesSupported.sol │ │ │ │ │ ├── ERC165MaliciousData.sol │ │ │ │ │ ├── ERC165MissingData.sol │ │ │ │ │ ├── ERC165NotSupported.sol │ │ │ │ │ └── ERC165ReturnBomb.sol │ │ │ │ ├── ERC2771ContextMock.sol │ │ │ │ ├── ERC3156FlashBorrowerMock.sol │ │ │ │ ├── EtherReceiverMock.sol │ │ │ │ ├── InitializableMock.sol │ │ │ │ ├── MerkleProofCustomHashMock.sol │ │ │ │ ├── MerkleTreeMock.sol │ │ │ │ ├── MulticallHelper.sol │ │ │ │ ├── MultipleInheritanceInitializableMocks.sol │ │ │ │ ├── PausableMock.sol │ │ │ │ ├── ReentrancyAttack.sol │ │ │ │ ├── ReentrancyMock.sol │ │ │ │ ├── ReentrancyTransientMock.sol │ │ │ │ ├── RegressionImplementation.sol │ │ │ │ ├── SingleInheritanceInitializableMocks.sol │ │ │ │ ├── Stateless.sol │ │ │ │ ├── StorageSlotMock.sol │ │ │ │ ├── TimelockReentrant.sol │ │ │ │ ├── UpgradeableBeaconMock.sol │ │ │ │ ├── VotesMock.sol │ │ │ │ ├── compound │ │ │ │ │ └── CompTimelock.sol │ │ │ │ ├── governance │ │ │ │ │ ├── GovernorFractionalMock.sol │ │ │ │ │ ├── GovernorMock.sol │ │ │ │ │ ├── GovernorPreventLateQuorumMock.sol │ │ │ │ │ ├── GovernorStorageMock.sol │ │ │ │ │ ├── GovernorTimelockAccessMock.sol │ │ │ │ │ ├── GovernorTimelockCompoundMock.sol │ │ │ │ │ ├── GovernorTimelockControlMock.sol │ │ │ │ │ ├── GovernorVoteMock.sol │ │ │ │ │ └── GovernorWithParamsMock.sol │ │ │ │ ├── proxy │ │ │ │ │ ├── BadBeacon.sol │ │ │ │ │ ├── ClashingImplementation.sol │ │ │ │ │ └── UUPSUpgradeableMock.sol │ │ │ │ └── token │ │ │ │ │ ├── ERC1155ReceiverMock.sol │ │ │ │ │ ├── ERC1363ForceApproveMock.sol │ │ │ │ │ ├── ERC1363NoReturnMock.sol │ │ │ │ │ ├── ERC1363ReceiverMock.sol │ │ │ │ │ ├── ERC1363ReturnFalseMock.sol │ │ │ │ │ ├── ERC1363SpenderMock.sol │ │ │ │ │ ├── ERC20ApprovalMock.sol │ │ │ │ │ ├── ERC20DecimalsMock.sol │ │ │ │ │ ├── ERC20ExcessDecimalsMock.sol │ │ │ │ │ ├── ERC20FlashMintMock.sol │ │ │ │ │ ├── ERC20ForceApproveMock.sol │ │ │ │ │ ├── ERC20GetterHelper.sol │ │ │ │ │ ├── ERC20Mock.sol │ │ │ │ │ ├── ERC20MulticallMock.sol │ │ │ │ │ ├── ERC20NoReturnMock.sol │ │ │ │ │ ├── ERC20Reentrant.sol │ │ │ │ │ ├── ERC20ReturnFalseMock.sol │ │ │ │ │ ├── ERC20VotesLegacyMock.sol │ │ │ │ │ ├── ERC20VotesTimestampMock.sol │ │ │ │ │ ├── ERC4626LimitsMock.sol │ │ │ │ │ ├── ERC4626Mock.sol │ │ │ │ │ ├── ERC4626OffsetMock.sol │ │ │ │ │ ├── ERC4646FeesMock.sol │ │ │ │ │ ├── ERC721ConsecutiveEnumerableMock.sol │ │ │ │ │ ├── ERC721ConsecutiveMock.sol │ │ │ │ │ ├── ERC721ReceiverMock.sol │ │ │ │ │ └── ERC721URIStorageMock.sol │ │ │ ├── package.json │ │ │ ├── proxy │ │ │ │ ├── Clones.sol │ │ │ │ ├── ERC1967 │ │ │ │ │ ├── ERC1967Proxy.sol │ │ │ │ │ └── ERC1967Utils.sol │ │ │ │ ├── Proxy.sol │ │ │ │ ├── README.adoc │ │ │ │ ├── beacon │ │ │ │ │ ├── BeaconProxy.sol │ │ │ │ │ ├── IBeacon.sol │ │ │ │ │ └── UpgradeableBeacon.sol │ │ │ │ ├── transparent │ │ │ │ │ ├── ProxyAdmin.sol │ │ │ │ │ └── TransparentUpgradeableProxy.sol │ │ │ │ └── utils │ │ │ │ │ ├── Initializable.sol │ │ │ │ │ └── UUPSUpgradeable.sol │ │ │ ├── token │ │ │ │ ├── ERC1155 │ │ │ │ │ ├── ERC1155.sol │ │ │ │ │ ├── IERC1155.sol │ │ │ │ │ ├── IERC1155Receiver.sol │ │ │ │ │ ├── README.adoc │ │ │ │ │ ├── extensions │ │ │ │ │ │ ├── ERC1155Burnable.sol │ │ │ │ │ │ ├── ERC1155Pausable.sol │ │ │ │ │ │ ├── ERC1155Supply.sol │ │ │ │ │ │ ├── ERC1155URIStorage.sol │ │ │ │ │ │ └── IERC1155MetadataURI.sol │ │ │ │ │ └── utils │ │ │ │ │ │ ├── ERC1155Holder.sol │ │ │ │ │ │ └── ERC1155Utils.sol │ │ │ │ ├── ERC20 │ │ │ │ │ ├── ERC20.sol │ │ │ │ │ ├── IERC20.sol │ │ │ │ │ ├── README.adoc │ │ │ │ │ ├── extensions │ │ │ │ │ │ ├── ERC1363.sol │ │ │ │ │ │ ├── ERC20Burnable.sol │ │ │ │ │ │ ├── ERC20Capped.sol │ │ │ │ │ │ ├── ERC20FlashMint.sol │ │ │ │ │ │ ├── ERC20Pausable.sol │ │ │ │ │ │ ├── ERC20Permit.sol │ │ │ │ │ │ ├── ERC20Votes.sol │ │ │ │ │ │ ├── ERC20Wrapper.sol │ │ │ │ │ │ ├── ERC4626.sol │ │ │ │ │ │ ├── IERC20Metadata.sol │ │ │ │ │ │ ├── IERC20Permit.sol │ │ │ │ │ │ └── draft-ERC20TemporaryApproval.sol │ │ │ │ │ └── utils │ │ │ │ │ │ ├── ERC1363Utils.sol │ │ │ │ │ │ └── SafeERC20.sol │ │ │ │ ├── ERC721 │ │ │ │ │ ├── ERC721.sol │ │ │ │ │ ├── IERC721.sol │ │ │ │ │ ├── IERC721Receiver.sol │ │ │ │ │ ├── README.adoc │ │ │ │ │ ├── extensions │ │ │ │ │ │ ├── ERC721Burnable.sol │ │ │ │ │ │ ├── ERC721Consecutive.sol │ │ │ │ │ │ ├── ERC721Enumerable.sol │ │ │ │ │ │ ├── ERC721Pausable.sol │ │ │ │ │ │ ├── ERC721Royalty.sol │ │ │ │ │ │ ├── ERC721URIStorage.sol │ │ │ │ │ │ ├── ERC721Votes.sol │ │ │ │ │ │ ├── ERC721Wrapper.sol │ │ │ │ │ │ ├── IERC721Enumerable.sol │ │ │ │ │ │ └── IERC721Metadata.sol │ │ │ │ │ └── utils │ │ │ │ │ │ ├── ERC721Holder.sol │ │ │ │ │ │ └── ERC721Utils.sol │ │ │ │ └── common │ │ │ │ │ ├── ERC2981.sol │ │ │ │ │ └── README.adoc │ │ │ ├── utils │ │ │ │ ├── Address.sol │ │ │ │ ├── Arrays.sol │ │ │ │ ├── Base64.sol │ │ │ │ ├── Comparators.sol │ │ │ │ ├── Context.sol │ │ │ │ ├── Create2.sol │ │ │ │ ├── Errors.sol │ │ │ │ ├── Multicall.sol │ │ │ │ ├── Nonces.sol │ │ │ │ ├── Packing.sol │ │ │ │ ├── Panic.sol │ │ │ │ ├── Pausable.sol │ │ │ │ ├── README.adoc │ │ │ │ ├── ReentrancyGuard.sol │ │ │ │ ├── ReentrancyGuardTransient.sol │ │ │ │ ├── ShortStrings.sol │ │ │ │ ├── SlotDerivation.sol │ │ │ │ ├── StorageSlot.sol │ │ │ │ ├── Strings.sol │ │ │ │ ├── cryptography │ │ │ │ │ ├── ECDSA.sol │ │ │ │ │ ├── EIP712.sol │ │ │ │ │ ├── Hashes.sol │ │ │ │ │ ├── MerkleProof.sol │ │ │ │ │ ├── MessageHashUtils.sol │ │ │ │ │ ├── P256.sol │ │ │ │ │ ├── RSA.sol │ │ │ │ │ └── SignatureChecker.sol │ │ │ │ ├── introspection │ │ │ │ │ ├── ERC165.sol │ │ │ │ │ ├── ERC165Checker.sol │ │ │ │ │ └── IERC165.sol │ │ │ │ ├── math │ │ │ │ │ ├── Math.sol │ │ │ │ │ ├── SafeCast.sol │ │ │ │ │ └── SignedMath.sol │ │ │ │ ├── structs │ │ │ │ │ ├── BitMaps.sol │ │ │ │ │ ├── Checkpoints.sol │ │ │ │ │ ├── CircularBuffer.sol │ │ │ │ │ ├── DoubleEndedQueue.sol │ │ │ │ │ ├── EnumerableMap.sol │ │ │ │ │ ├── EnumerableSet.sol │ │ │ │ │ ├── Heap.sol │ │ │ │ │ └── MerkleTree.sol │ │ │ │ └── types │ │ │ │ │ └── Time.sol │ │ │ └── vendor │ │ │ │ └── compound │ │ │ │ ├── ICompoundTimelock.sol │ │ │ │ └── LICENSE │ │ │ ├── foundry.toml │ │ │ ├── fv-requirements.txt │ │ │ ├── hardhat.config.js │ │ │ ├── hardhat │ │ │ ├── async-test-sanity.js │ │ │ ├── env-artifacts.js │ │ │ ├── ignore-unreachable-warnings.js │ │ │ ├── remappings.js │ │ │ ├── skip-foundry-tests.js │ │ │ └── task-test-get-files.js │ │ │ ├── lib │ │ │ ├── erc4626-tests │ │ │ │ ├── ERC4626.prop.sol │ │ │ │ ├── ERC4626.test.sol │ │ │ │ ├── LICENSE │ │ │ │ └── README.md │ │ │ ├── forge-std │ │ │ │ ├── .gitattributes │ │ │ │ ├── .github │ │ │ │ │ └── workflows │ │ │ │ │ │ ├── ci.yml │ │ │ │ │ │ └── sync.yml │ │ │ │ ├── .gitignore │ │ │ │ ├── .gitmodules │ │ │ │ ├── LICENSE-APACHE │ │ │ │ ├── LICENSE-MIT │ │ │ │ ├── README.md │ │ │ │ ├── foundry.toml │ │ │ │ ├── lib │ │ │ │ │ └── ds-test │ │ │ │ │ │ ├── .github │ │ │ │ │ │ └── workflows │ │ │ │ │ │ │ └── build.yml │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── Makefile │ │ │ │ │ │ ├── default.nix │ │ │ │ │ │ ├── demo │ │ │ │ │ │ └── demo.sol │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ └── src │ │ │ │ │ │ ├── test.sol │ │ │ │ │ │ └── test.t.sol │ │ │ │ ├── package.json │ │ │ │ ├── scripts │ │ │ │ │ └── vm.py │ │ │ │ ├── src │ │ │ │ │ ├── Base.sol │ │ │ │ │ ├── Script.sol │ │ │ │ │ ├── StdAssertions.sol │ │ │ │ │ ├── StdChains.sol │ │ │ │ │ ├── StdCheats.sol │ │ │ │ │ ├── StdError.sol │ │ │ │ │ ├── StdInvariant.sol │ │ │ │ │ ├── StdJson.sol │ │ │ │ │ ├── StdMath.sol │ │ │ │ │ ├── StdStorage.sol │ │ │ │ │ ├── StdStyle.sol │ │ │ │ │ ├── StdUtils.sol │ │ │ │ │ ├── Test.sol │ │ │ │ │ ├── Vm.sol │ │ │ │ │ ├── console.sol │ │ │ │ │ ├── console2.sol │ │ │ │ │ ├── interfaces │ │ │ │ │ │ ├── IERC1155.sol │ │ │ │ │ │ ├── IERC165.sol │ │ │ │ │ │ ├── IERC20.sol │ │ │ │ │ │ ├── IERC4626.sol │ │ │ │ │ │ ├── IERC721.sol │ │ │ │ │ │ └── IMulticall3.sol │ │ │ │ │ ├── mocks │ │ │ │ │ │ ├── MockERC20.sol │ │ │ │ │ │ └── MockERC721.sol │ │ │ │ │ └── safeconsole.sol │ │ │ │ └── test │ │ │ │ │ ├── StdAssertions.t.sol │ │ │ │ │ ├── StdChains.t.sol │ │ │ │ │ ├── StdCheats.t.sol │ │ │ │ │ ├── StdError.t.sol │ │ │ │ │ ├── StdMath.t.sol │ │ │ │ │ ├── StdStorage.t.sol │ │ │ │ │ ├── StdStyle.t.sol │ │ │ │ │ ├── StdUtils.t.sol │ │ │ │ │ ├── Vm.t.sol │ │ │ │ │ ├── compilation │ │ │ │ │ ├── CompilationScript.sol │ │ │ │ │ ├── CompilationScriptBase.sol │ │ │ │ │ ├── CompilationTest.sol │ │ │ │ │ └── CompilationTestBase.sol │ │ │ │ │ ├── fixtures │ │ │ │ │ └── broadcast.log.json │ │ │ │ │ └── mocks │ │ │ │ │ ├── MockERC20.t.sol │ │ │ │ │ └── MockERC721.t.sol │ │ │ └── halmos-cheatcodes │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ └── src │ │ │ │ ├── SVM.sol │ │ │ │ └── SymTest.sol │ │ │ ├── logo.svg │ │ │ ├── netlify.toml │ │ │ ├── package-lock.json │ │ │ ├── package.json │ │ │ ├── remappings.txt │ │ │ ├── renovate.json │ │ │ ├── scripts │ │ │ ├── checks │ │ │ │ ├── compare-layout.js │ │ │ │ ├── compareGasReports.js │ │ │ │ ├── coverage.sh │ │ │ │ ├── extract-layout.js │ │ │ │ ├── generation.sh │ │ │ │ └── inheritance-ordering.js │ │ │ ├── gen-nav.js │ │ │ ├── generate │ │ │ │ ├── format-lines.js │ │ │ │ ├── helpers │ │ │ │ │ └── sanitize.js │ │ │ │ ├── run.js │ │ │ │ └── templates │ │ │ │ │ ├── Arrays.js │ │ │ │ │ ├── Arrays.opts.js │ │ │ │ │ ├── Checkpoints.js │ │ │ │ │ ├── Checkpoints.opts.js │ │ │ │ │ ├── Checkpoints.t.js │ │ │ │ │ ├── EnumerableMap.js │ │ │ │ │ ├── EnumerableMap.opts.js │ │ │ │ │ ├── EnumerableSet.js │ │ │ │ │ ├── EnumerableSet.opts.js │ │ │ │ │ ├── MerkleProof.js │ │ │ │ │ ├── MerkleProof.opts.js │ │ │ │ │ ├── Packing.js │ │ │ │ │ ├── Packing.opts.js │ │ │ │ │ ├── Packing.t.js │ │ │ │ │ ├── SafeCast.js │ │ │ │ │ ├── Slot.opts.js │ │ │ │ │ ├── SlotDerivation.js │ │ │ │ │ ├── SlotDerivation.t.js │ │ │ │ │ ├── StorageSlot.js │ │ │ │ │ ├── StorageSlotMock.js │ │ │ │ │ └── conversion.js │ │ │ ├── git-user-config.sh │ │ │ ├── helpers.js │ │ │ ├── prepack.sh │ │ │ ├── prepare-docs.sh │ │ │ ├── prepare.sh │ │ │ ├── release │ │ │ │ ├── format-changelog.js │ │ │ │ ├── synchronize-versions.js │ │ │ │ ├── update-comment.js │ │ │ │ ├── version.sh │ │ │ │ └── workflow │ │ │ │ │ ├── exit-prerelease.sh │ │ │ │ │ ├── github-release.js │ │ │ │ │ ├── integrity-check.sh │ │ │ │ │ ├── pack.sh │ │ │ │ │ ├── publish.sh │ │ │ │ │ ├── rerun.js │ │ │ │ │ ├── set-changesets-pr-title.js │ │ │ │ │ ├── start.sh │ │ │ │ │ └── state.js │ │ │ ├── remove-ignored-artifacts.js │ │ │ ├── solhint-custom │ │ │ │ ├── index.js │ │ │ │ └── package.json │ │ │ ├── update-docs-branch.js │ │ │ └── upgradeable │ │ │ │ ├── README.md │ │ │ │ ├── patch-apply.sh │ │ │ │ ├── patch-save.sh │ │ │ │ ├── transpile-onto.sh │ │ │ │ ├── transpile.sh │ │ │ │ └── upgradeable.patch │ │ │ ├── slither.config.json │ │ │ ├── solhint.config.js │ │ │ └── test │ │ │ ├── TESTING.md │ │ │ ├── access │ │ │ ├── AccessControl.behavior.js │ │ │ ├── AccessControl.test.js │ │ │ ├── Ownable.test.js │ │ │ ├── Ownable2Step.test.js │ │ │ ├── extensions │ │ │ │ ├── AccessControlDefaultAdminRules.test.js │ │ │ │ └── AccessControlEnumerable.test.js │ │ │ └── manager │ │ │ │ ├── AccessManaged.test.js │ │ │ │ ├── AccessManager.behavior.js │ │ │ │ ├── AccessManager.predicate.js │ │ │ │ ├── AccessManager.test.js │ │ │ │ └── AuthorityUtils.test.js │ │ │ ├── finance │ │ │ ├── VestingWallet.behavior.js │ │ │ ├── VestingWallet.test.js │ │ │ └── VestingWalletCliff.test.js │ │ │ ├── governance │ │ │ ├── Governor.t.sol │ │ │ ├── Governor.test.js │ │ │ ├── TimelockController.test.js │ │ │ ├── extensions │ │ │ │ ├── GovernorCountingFractional.test.js │ │ │ │ ├── GovernorERC721.test.js │ │ │ │ ├── GovernorPreventLateQuorum.test.js │ │ │ │ ├── GovernorStorage.test.js │ │ │ │ ├── GovernorTimelockAccess.test.js │ │ │ │ ├── GovernorTimelockCompound.test.js │ │ │ │ ├── GovernorTimelockControl.test.js │ │ │ │ ├── GovernorVotesQuorumFraction.test.js │ │ │ │ └── GovernorWithParams.test.js │ │ │ └── utils │ │ │ │ ├── ERC6372.behavior.js │ │ │ │ ├── Votes.behavior.js │ │ │ │ └── Votes.test.js │ │ │ ├── helpers │ │ │ ├── access-manager.js │ │ │ ├── account.js │ │ │ ├── constants.js │ │ │ ├── deploy.js │ │ │ ├── eip712-types.js │ │ │ ├── eip712.js │ │ │ ├── enums.js │ │ │ ├── governance.js │ │ │ ├── iterate.js │ │ │ ├── math.js │ │ │ ├── methods.js │ │ │ ├── random.js │ │ │ ├── storage.js │ │ │ ├── strings.js │ │ │ ├── time.js │ │ │ └── txpool.js │ │ │ ├── metatx │ │ │ ├── ERC2771Context.test.js │ │ │ ├── ERC2771Forwarder.t.sol │ │ │ └── ERC2771Forwarder.test.js │ │ │ ├── proxy │ │ │ ├── Clones.behaviour.js │ │ │ ├── Clones.t.sol │ │ │ ├── Clones.test.js │ │ │ ├── ERC1967 │ │ │ │ ├── ERC1967Proxy.test.js │ │ │ │ └── ERC1967Utils.test.js │ │ │ ├── Proxy.behaviour.js │ │ │ ├── beacon │ │ │ │ ├── BeaconProxy.test.js │ │ │ │ └── UpgradeableBeacon.test.js │ │ │ ├── transparent │ │ │ │ ├── ProxyAdmin.test.js │ │ │ │ ├── TransparentUpgradeableProxy.behaviour.js │ │ │ │ └── TransparentUpgradeableProxy.test.js │ │ │ └── utils │ │ │ │ ├── Initializable.test.js │ │ │ │ └── UUPSUpgradeable.test.js │ │ │ ├── sanity.test.js │ │ │ ├── token │ │ │ ├── ERC1155 │ │ │ │ ├── ERC1155.behavior.js │ │ │ │ ├── ERC1155.test.js │ │ │ │ ├── extensions │ │ │ │ │ ├── ERC1155Burnable.test.js │ │ │ │ │ ├── ERC1155Pausable.test.js │ │ │ │ │ ├── ERC1155Supply.test.js │ │ │ │ │ └── ERC1155URIStorage.test.js │ │ │ │ └── utils │ │ │ │ │ ├── ERC1155Holder.test.js │ │ │ │ │ └── ERC1155Utils.test.js │ │ │ ├── ERC20 │ │ │ │ ├── ERC20.behavior.js │ │ │ │ ├── ERC20.test.js │ │ │ │ ├── extensions │ │ │ │ │ ├── ERC1363.test.js │ │ │ │ │ ├── ERC20Burnable.test.js │ │ │ │ │ ├── ERC20Capped.test.js │ │ │ │ │ ├── ERC20FlashMint.test.js │ │ │ │ │ ├── ERC20Pausable.test.js │ │ │ │ │ ├── ERC20Permit.test.js │ │ │ │ │ ├── ERC20Votes.test.js │ │ │ │ │ ├── ERC20Wrapper.test.js │ │ │ │ │ ├── ERC4626.t.sol │ │ │ │ │ ├── ERC4626.test.js │ │ │ │ │ └── draft-ERC20TemporaryApproval.test.js │ │ │ │ └── utils │ │ │ │ │ └── SafeERC20.test.js │ │ │ ├── ERC721 │ │ │ │ ├── ERC721.behavior.js │ │ │ │ ├── ERC721.test.js │ │ │ │ ├── ERC721Enumerable.test.js │ │ │ │ ├── extensions │ │ │ │ │ ├── ERC721Burnable.test.js │ │ │ │ │ ├── ERC721Consecutive.t.sol │ │ │ │ │ ├── ERC721Consecutive.test.js │ │ │ │ │ ├── ERC721Pausable.test.js │ │ │ │ │ ├── ERC721Royalty.test.js │ │ │ │ │ ├── ERC721URIStorage.test.js │ │ │ │ │ ├── ERC721Votes.test.js │ │ │ │ │ └── ERC721Wrapper.test.js │ │ │ │ └── utils │ │ │ │ │ ├── ERC721Holder.test.js │ │ │ │ │ └── ERC721Utils.test.js │ │ │ └── common │ │ │ │ └── ERC2981.behavior.js │ │ │ └── utils │ │ │ ├── Address.test.js │ │ │ ├── Arrays.t.sol │ │ │ ├── Arrays.test.js │ │ │ ├── Base64.t.sol │ │ │ ├── Base64.test.js │ │ │ ├── Context.behavior.js │ │ │ ├── Context.test.js │ │ │ ├── Create2.t.sol │ │ │ ├── Create2.test.js │ │ │ ├── Multicall.test.js │ │ │ ├── Nonces.test.js │ │ │ ├── Packing.t.sol │ │ │ ├── Packing.test.js │ │ │ ├── Panic.test.js │ │ │ ├── Pausable.test.js │ │ │ ├── ReentrancyGuard.test.js │ │ │ ├── ShortStrings.t.sol │ │ │ ├── ShortStrings.test.js │ │ │ ├── SlotDerivation.t.sol │ │ │ ├── SlotDerivation.test.js │ │ │ ├── StorageSlot.test.js │ │ │ ├── Strings.test.js │ │ │ ├── cryptography │ │ │ ├── ECDSA.test.js │ │ │ ├── EIP712.test.js │ │ │ ├── MerkleProof.test.js │ │ │ ├── MessageHashUtils.test.js │ │ │ ├── P256.t.sol │ │ │ ├── P256.test.js │ │ │ ├── RSA.helper.js │ │ │ ├── RSA.test.js │ │ │ ├── SigVer15_186-3.rsp │ │ │ ├── SignatureChecker.test.js │ │ │ └── ecdsa_secp256r1_sha256_p1363_test.json │ │ │ ├── introspection │ │ │ ├── ERC165.test.js │ │ │ ├── ERC165Checker.test.js │ │ │ └── SupportsInterface.behavior.js │ │ │ ├── math │ │ │ ├── Math.t.sol │ │ │ ├── Math.test.js │ │ │ ├── SafeCast.test.js │ │ │ ├── SignedMath.t.sol │ │ │ └── SignedMath.test.js │ │ │ ├── structs │ │ │ ├── BitMap.test.js │ │ │ ├── Checkpoints.t.sol │ │ │ ├── Checkpoints.test.js │ │ │ ├── CircularBuffer.test.js │ │ │ ├── DoubleEndedQueue.test.js │ │ │ ├── EnumerableMap.behavior.js │ │ │ ├── EnumerableMap.test.js │ │ │ ├── EnumerableSet.behavior.js │ │ │ ├── EnumerableSet.test.js │ │ │ ├── Heap.t.sol │ │ │ ├── Heap.test.js │ │ │ └── MerkleTree.test.js │ │ │ └── types │ │ │ └── Time.test.js │ │ ├── remappings.txt │ │ ├── script │ │ └── Deploy.s.sol │ │ ├── src │ │ ├── Challenge.sol │ │ └── TonyLend.sol │ │ └── test │ │ └── TonyLend.t.sol └── deploy.sh ├── tonyallet ├── README.md ├── backend │ ├── main.js │ ├── package-lock.json │ ├── package.json │ └── tg.js ├── frontend │ ├── index.html │ └── post.html └── handout.py ├── tutori4l ├── .challengeignore ├── README.md ├── challenge.yaml ├── challenge │ ├── Dockerfile │ ├── Dockerfile.local │ ├── challenge.py │ ├── docker-compose.yml │ ├── project │ │ ├── .gitignore │ │ ├── LICENSE │ │ ├── README.md │ │ ├── foundry.toml │ │ ├── lib │ │ │ ├── forge-ctf │ │ │ │ └── src │ │ │ │ │ ├── CTFDeployer.sol │ │ │ │ │ └── CTFSolver.sol │ │ │ ├── forge-std │ │ │ │ ├── .gitattributes │ │ │ │ ├── .github │ │ │ │ │ └── workflows │ │ │ │ │ │ ├── ci.yml │ │ │ │ │ │ └── sync.yml │ │ │ │ ├── .gitignore │ │ │ │ ├── LICENSE-APACHE │ │ │ │ ├── LICENSE-MIT │ │ │ │ ├── README.md │ │ │ │ ├── foundry.toml │ │ │ │ ├── package.json │ │ │ │ ├── scripts │ │ │ │ │ └── vm.py │ │ │ │ ├── src │ │ │ │ │ ├── Base.sol │ │ │ │ │ ├── Script.sol │ │ │ │ │ ├── StdAssertions.sol │ │ │ │ │ ├── StdChains.sol │ │ │ │ │ ├── StdCheats.sol │ │ │ │ │ ├── StdError.sol │ │ │ │ │ ├── StdInvariant.sol │ │ │ │ │ ├── StdJson.sol │ │ │ │ │ ├── StdMath.sol │ │ │ │ │ ├── StdStorage.sol │ │ │ │ │ ├── StdStyle.sol │ │ │ │ │ ├── StdToml.sol │ │ │ │ │ ├── StdUtils.sol │ │ │ │ │ ├── Test.sol │ │ │ │ │ ├── Vm.sol │ │ │ │ │ ├── console.sol │ │ │ │ │ ├── console2.sol │ │ │ │ │ ├── interfaces │ │ │ │ │ │ ├── IERC1155.sol │ │ │ │ │ │ ├── IERC165.sol │ │ │ │ │ │ ├── IERC20.sol │ │ │ │ │ │ ├── IERC4626.sol │ │ │ │ │ │ ├── IERC721.sol │ │ │ │ │ │ └── IMulticall3.sol │ │ │ │ │ ├── mocks │ │ │ │ │ │ ├── MockERC20.sol │ │ │ │ │ │ └── MockERC721.sol │ │ │ │ │ └── safeconsole.sol │ │ │ │ └── test │ │ │ │ │ ├── StdAssertions.t.sol │ │ │ │ │ ├── StdChains.t.sol │ │ │ │ │ ├── StdCheats.t.sol │ │ │ │ │ ├── StdError.t.sol │ │ │ │ │ ├── StdJson.t.sol │ │ │ │ │ ├── StdMath.t.sol │ │ │ │ │ ├── StdStorage.t.sol │ │ │ │ │ ├── StdStyle.t.sol │ │ │ │ │ ├── StdToml.t.sol │ │ │ │ │ ├── StdUtils.t.sol │ │ │ │ │ ├── Vm.t.sol │ │ │ │ │ ├── compilation │ │ │ │ │ ├── CompilationScript.sol │ │ │ │ │ ├── CompilationScriptBase.sol │ │ │ │ │ ├── CompilationTest.sol │ │ │ │ │ └── CompilationTestBase.sol │ │ │ │ │ ├── fixtures │ │ │ │ │ ├── broadcast.log.json │ │ │ │ │ ├── test.json │ │ │ │ │ └── test.toml │ │ │ │ │ └── mocks │ │ │ │ │ ├── MockERC20.t.sol │ │ │ │ │ └── MockERC721.t.sol │ │ │ ├── v4-core │ │ │ │ ├── .forge-snapshots │ │ │ │ │ ├── BitMathLeastSignificantBitMaxUint128.snap │ │ │ │ │ ├── BitMathLeastSignificantBitMaxUint256.snap │ │ │ │ │ ├── BitMathLeastSignificantBitSmallNumber.snap │ │ │ │ │ ├── BitMathMostSignificantBitMaxUint128.snap │ │ │ │ │ ├── BitMathMostSignificantBitMaxUint256.snap │ │ │ │ │ ├── BitMathMostSignificantBitSmallNumber.snap │ │ │ │ │ ├── ERC6909Claims approve.snap │ │ │ │ │ ├── ERC6909Claims burn.snap │ │ │ │ │ ├── ERC6909Claims mint.snap │ │ │ │ │ ├── ERC6909Claims transfer.snap │ │ │ │ │ ├── ERC6909Claims transferFrom as operator.snap │ │ │ │ │ ├── ERC6909Claims transferFrom with approval.snap │ │ │ │ │ ├── ERC6909Claims transferFrom with infinite approval.snap │ │ │ │ │ ├── NoDelegateCall.snap │ │ │ │ │ ├── SwapMath_oneForZero_exactInCapped.snap │ │ │ │ │ ├── SwapMath_oneForZero_exactInPartial.snap │ │ │ │ │ ├── SwapMath_oneForZero_exactOutCapped.snap │ │ │ │ │ ├── SwapMath_oneForZero_exactOutPartial.snap │ │ │ │ │ ├── SwapMath_zeroForOne_exactInCapped.snap │ │ │ │ │ ├── SwapMath_zeroForOne_exactInPartial.snap │ │ │ │ │ ├── SwapMath_zeroForOne_exactOutCapped.snap │ │ │ │ │ ├── SwapMath_zeroForOne_exactOutPartial.snap │ │ │ │ │ ├── TickMathGetSqrtPriceAtTick.snap │ │ │ │ │ ├── TickMathGetTickAtSqrtPrice.snap │ │ │ │ │ ├── add liquidity to already existing position with salt.snap │ │ │ │ │ ├── addLiquidity CA fee.snap │ │ │ │ │ ├── addLiquidity with empty hook.snap │ │ │ │ │ ├── addLiquidity with native token.snap │ │ │ │ │ ├── clear.snap │ │ │ │ │ ├── create new liquidity to a position with salt.snap │ │ │ │ │ ├── donate gas with 1 token.snap │ │ │ │ │ ├── donate gas with 2 tokens.snap │ │ │ │ │ ├── erc20 collect protocol fees.snap │ │ │ │ │ ├── extsload getFeeGrowthGlobals.snap │ │ │ │ │ ├── extsload getFeeGrowthInside.snap │ │ │ │ │ ├── extsload getLiquidity.snap │ │ │ │ │ ├── extsload getPositionInfo.snap │ │ │ │ │ ├── extsload getPositionLiquidity.snap │ │ │ │ │ ├── extsload getSlot0.snap │ │ │ │ │ ├── extsload getTickBitmap.snap │ │ │ │ │ ├── extsload getTickFeeGrowthOutside.snap │ │ │ │ │ ├── extsload getTickInfo.snap │ │ │ │ │ ├── extsload getTickLiquidity.snap │ │ │ │ │ ├── flipTick_flippingATickThatResultsInDeletingAWord.snap │ │ │ │ │ ├── flipTick_flippingFirstTickInWordToInitialized.snap │ │ │ │ │ ├── flipTick_flippingSecondTickInWordToInitialized.snap │ │ │ │ │ ├── getAmount0Delta_gasCostForAmount0WhereRoundUpIsFalse.snap │ │ │ │ │ ├── getAmount0Delta_gasCostForAmount0WhereRoundUpIsTrue.snap │ │ │ │ │ ├── getAmount1Delta_gasCostForAmount1WhereRoundUpIsFalse.snap │ │ │ │ │ ├── getAmount1Delta_gasCostForAmount1WhereRoundUpIsTrue.snap │ │ │ │ │ ├── getNextSqrtPriceFromInput_zeroForOneEqualsFalseGas.snap │ │ │ │ │ ├── getNextSqrtPriceFromInput_zeroForOneEqualsTrueGas.snap │ │ │ │ │ ├── getNextSqrtPriceFromOutput_zeroForOneEqualsFalseGas.snap │ │ │ │ │ ├── getNextSqrtPriceFromOutput_zeroForOneEqualsTrueGas.snap │ │ │ │ │ ├── getReserves.snap │ │ │ │ │ ├── initialize.snap │ │ │ │ │ ├── native collect protocol fees.snap │ │ │ │ │ ├── nextInitializedTickWithinOneWord_lteFalse_forEntireWord.snap │ │ │ │ │ ├── nextInitializedTickWithinOneWord_lteFalse_justBelowBoundary.snap │ │ │ │ │ ├── nextInitializedTickWithinOneWord_lteFalse_onBoundary.snap │ │ │ │ │ ├── nextInitializedTickWithinOneWord_lteTrue_forEntireWord.snap │ │ │ │ │ ├── nextInitializedTickWithinOneWord_lteTrue_justBelowBoundary.snap │ │ │ │ │ ├── nextInitializedTickWithinOneWord_lteTrue_onBoundary_gas.snap │ │ │ │ │ ├── poolManager bytecode size.snap │ │ │ │ │ ├── removeLiquidity CA fee.snap │ │ │ │ │ ├── removeLiquidity with empty hook.snap │ │ │ │ │ ├── removeLiquidity with native token.snap │ │ │ │ │ ├── set protocol fee.snap │ │ │ │ │ ├── simple addLiquidity second addition same range.snap │ │ │ │ │ ├── simple addLiquidity.snap │ │ │ │ │ ├── simple removeLiquidity some liquidity remains.snap │ │ │ │ │ ├── simple removeLiquidity.snap │ │ │ │ │ ├── simple swap with native.snap │ │ │ │ │ ├── simple swap.snap │ │ │ │ │ ├── sparse external sload.snap │ │ │ │ │ ├── swap CA custom curve + swap noop.snap │ │ │ │ │ ├── swap CA fee on unspecified.snap │ │ │ │ │ ├── swap against liquidity with native token.snap │ │ │ │ │ ├── swap against liquidity.snap │ │ │ │ │ ├── swap burn 6909 for input.snap │ │ │ │ │ ├── swap burn native 6909 for input.snap │ │ │ │ │ ├── swap mint native output as 6909.snap │ │ │ │ │ ├── swap mint output as 6909.snap │ │ │ │ │ ├── swap skips hook call if hook is caller.snap │ │ │ │ │ ├── swap with dynamic fee.snap │ │ │ │ │ ├── swap with hooks.snap │ │ │ │ │ ├── swap with lp fee and protocol fee.snap │ │ │ │ │ ├── swap with return dynamic fee.snap │ │ │ │ │ ├── tickSpacingToMaxLiquidityPerTick_gasCost60TickSpacing.snap │ │ │ │ │ ├── tickSpacingToMaxLiquidityPerTick_gasCostMaxTickSpacing.snap │ │ │ │ │ ├── tickSpacingToMaxLiquidityPerTick_gasCostMinTickSpacing.snap │ │ │ │ │ └── update dynamic fee in before swap.snap │ │ │ │ ├── .gitattributes │ │ │ │ ├── .github │ │ │ │ │ ├── ISSUE_TEMPLATE │ │ │ │ │ │ ├── BUG_REPORT.yml │ │ │ │ │ │ └── FEATURE_IMPROVEMENT.yml │ │ │ │ │ ├── pull_request_template.md │ │ │ │ │ └── workflows │ │ │ │ │ │ ├── coverage.yml │ │ │ │ │ │ ├── lint.yml │ │ │ │ │ │ ├── mythx.yml │ │ │ │ │ │ ├── semgrep.yml │ │ │ │ │ │ ├── tests-merge.yml │ │ │ │ │ │ └── tests-pr.yml │ │ │ │ ├── .gitignore │ │ │ │ ├── .gitmodules │ │ │ │ ├── .prettierignore │ │ │ │ ├── .prettierrc │ │ │ │ ├── .solhint.json │ │ │ │ ├── CONTRIBUTING.md │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── SECURITY.md │ │ │ │ ├── echidna.config.yml │ │ │ │ ├── foundry.toml │ │ │ │ ├── justfile │ │ │ │ ├── lib │ │ │ │ │ ├── forge-gas-snapshot │ │ │ │ │ │ ├── .forge-snapshots │ │ │ │ │ │ │ ├── addFirst.snap │ │ │ │ │ │ │ ├── addSecond.snap │ │ │ │ │ │ │ ├── addThird.snap │ │ │ │ │ │ │ ├── checkManyAdd.snap │ │ │ │ │ │ │ ├── checkManySstore.snap │ │ │ │ │ │ │ ├── checkSize.snap │ │ │ │ │ │ │ ├── checkSizeFail.snap │ │ │ │ │ │ │ ├── internalClosure.snap │ │ │ │ │ │ │ ├── manyAdd.snap │ │ │ │ │ │ │ ├── manySstore.snap │ │ │ │ │ │ │ ├── singleSstore.snap │ │ │ │ │ │ │ ├── singleSstoreClosure.snap │ │ │ │ │ │ │ ├── singleSstoreLastCall.snap │ │ │ │ │ │ │ ├── sizeTarget.snap │ │ │ │ │ │ │ ├── sstoreClosure.snap │ │ │ │ │ │ │ └── value.snap │ │ │ │ │ │ ├── .github │ │ │ │ │ │ │ └── workflows │ │ │ │ │ │ │ │ └── test.yml │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ ├── .gitmodules │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── foundry.toml │ │ │ │ │ │ ├── src │ │ │ │ │ │ │ ├── GasSnapshot.sol │ │ │ │ │ │ │ ├── test │ │ │ │ │ │ │ │ └── SimpleOperations.sol │ │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ │ └── UintString.sol │ │ │ │ │ │ └── test │ │ │ │ │ │ │ └── GasSnapshot.t.sol │ │ │ │ │ ├── forge-std │ │ │ │ │ │ ├── .gitattributes │ │ │ │ │ │ ├── .github │ │ │ │ │ │ │ └── workflows │ │ │ │ │ │ │ │ ├── ci.yml │ │ │ │ │ │ │ │ └── sync.yml │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ ├── LICENSE-APACHE │ │ │ │ │ │ ├── LICENSE-MIT │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── foundry.toml │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ ├── scripts │ │ │ │ │ │ │ └── vm.py │ │ │ │ │ │ ├── src │ │ │ │ │ │ │ ├── Base.sol │ │ │ │ │ │ │ ├── Script.sol │ │ │ │ │ │ │ ├── StdAssertions.sol │ │ │ │ │ │ │ ├── StdChains.sol │ │ │ │ │ │ │ ├── StdCheats.sol │ │ │ │ │ │ │ ├── StdError.sol │ │ │ │ │ │ │ ├── StdInvariant.sol │ │ │ │ │ │ │ ├── StdJson.sol │ │ │ │ │ │ │ ├── StdMath.sol │ │ │ │ │ │ │ ├── StdStorage.sol │ │ │ │ │ │ │ ├── StdStyle.sol │ │ │ │ │ │ │ ├── StdToml.sol │ │ │ │ │ │ │ ├── StdUtils.sol │ │ │ │ │ │ │ ├── Test.sol │ │ │ │ │ │ │ ├── Vm.sol │ │ │ │ │ │ │ ├── console.sol │ │ │ │ │ │ │ ├── console2.sol │ │ │ │ │ │ │ ├── interfaces │ │ │ │ │ │ │ │ ├── IERC1155.sol │ │ │ │ │ │ │ │ ├── IERC165.sol │ │ │ │ │ │ │ │ ├── IERC20.sol │ │ │ │ │ │ │ │ ├── IERC4626.sol │ │ │ │ │ │ │ │ ├── IERC721.sol │ │ │ │ │ │ │ │ └── IMulticall3.sol │ │ │ │ │ │ │ ├── mocks │ │ │ │ │ │ │ │ ├── MockERC20.sol │ │ │ │ │ │ │ │ └── MockERC721.sol │ │ │ │ │ │ │ └── safeconsole.sol │ │ │ │ │ │ └── test │ │ │ │ │ │ │ ├── StdAssertions.t.sol │ │ │ │ │ │ │ ├── StdChains.t.sol │ │ │ │ │ │ │ ├── StdCheats.t.sol │ │ │ │ │ │ │ ├── StdError.t.sol │ │ │ │ │ │ │ ├── StdJson.t.sol │ │ │ │ │ │ │ ├── StdMath.t.sol │ │ │ │ │ │ │ ├── StdStorage.t.sol │ │ │ │ │ │ │ ├── StdStyle.t.sol │ │ │ │ │ │ │ ├── StdToml.t.sol │ │ │ │ │ │ │ ├── StdUtils.t.sol │ │ │ │ │ │ │ ├── Vm.t.sol │ │ │ │ │ │ │ ├── compilation │ │ │ │ │ │ │ ├── CompilationScript.sol │ │ │ │ │ │ │ ├── CompilationScriptBase.sol │ │ │ │ │ │ │ ├── CompilationTest.sol │ │ │ │ │ │ │ └── CompilationTestBase.sol │ │ │ │ │ │ │ ├── fixtures │ │ │ │ │ │ │ ├── broadcast.log.json │ │ │ │ │ │ │ ├── test.json │ │ │ │ │ │ │ └── test.toml │ │ │ │ │ │ │ └── mocks │ │ │ │ │ │ │ ├── MockERC20.t.sol │ │ │ │ │ │ │ └── MockERC721.t.sol │ │ │ │ │ ├── openzeppelin-contracts │ │ │ │ │ │ ├── .changeset │ │ │ │ │ │ │ └── config.json │ │ │ │ │ │ ├── .codecov.yml │ │ │ │ │ │ ├── .editorconfig │ │ │ │ │ │ ├── .eslintrc │ │ │ │ │ │ ├── .github │ │ │ │ │ │ │ ├── ISSUE_TEMPLATE │ │ │ │ │ │ │ │ ├── bug_report.md │ │ │ │ │ │ │ │ ├── config.yml │ │ │ │ │ │ │ │ └── feature_request.md │ │ │ │ │ │ │ ├── PULL_REQUEST_TEMPLATE.md │ │ │ │ │ │ │ ├── actions │ │ │ │ │ │ │ │ ├── gas-compare │ │ │ │ │ │ │ │ │ └── action.yml │ │ │ │ │ │ │ │ ├── setup │ │ │ │ │ │ │ │ │ └── action.yml │ │ │ │ │ │ │ │ └── storage-layout │ │ │ │ │ │ │ │ │ └── action.yml │ │ │ │ │ │ │ └── workflows │ │ │ │ │ │ │ │ ├── actionlint.yml │ │ │ │ │ │ │ │ ├── changeset.yml │ │ │ │ │ │ │ │ ├── checks.yml │ │ │ │ │ │ │ │ ├── docs.yml │ │ │ │ │ │ │ │ ├── formal-verification.yml │ │ │ │ │ │ │ │ ├── release-cycle.yml │ │ │ │ │ │ │ │ └── upgradeable.yml │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ ├── .gitmodules │ │ │ │ │ │ ├── .mocharc.js │ │ │ │ │ │ ├── .prettierrc │ │ │ │ │ │ ├── .solcover.js │ │ │ │ │ │ ├── CHANGELOG.md │ │ │ │ │ │ ├── CODE_OF_CONDUCT.md │ │ │ │ │ │ ├── CONTRIBUTING.md │ │ │ │ │ │ ├── GUIDELINES.md │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── RELEASING.md │ │ │ │ │ │ ├── SECURITY.md │ │ │ │ │ │ ├── audits │ │ │ │ │ │ │ ├── 2017-03.md │ │ │ │ │ │ │ ├── 2018-10.pdf │ │ │ │ │ │ │ ├── 2022-10-Checkpoints.pdf │ │ │ │ │ │ │ ├── 2022-10-ERC4626.pdf │ │ │ │ │ │ │ ├── 2023-05-v4.9.pdf │ │ │ │ │ │ │ ├── 2023-10-v5.0.pdf │ │ │ │ │ │ │ └── README.md │ │ │ │ │ │ ├── certora │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ ├── Makefile │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── diff │ │ │ │ │ │ │ │ └── access_manager_AccessManager.sol.patch │ │ │ │ │ │ │ ├── harnesses │ │ │ │ │ │ │ │ ├── AccessControlDefaultAdminRulesHarness.sol │ │ │ │ │ │ │ │ ├── AccessControlHarness.sol │ │ │ │ │ │ │ │ ├── DoubleEndedQueueHarness.sol │ │ │ │ │ │ │ │ ├── ERC20FlashMintHarness.sol │ │ │ │ │ │ │ │ ├── ERC20PermitHarness.sol │ │ │ │ │ │ │ │ ├── ERC20WrapperHarness.sol │ │ │ │ │ │ │ │ ├── ERC3156FlashBorrowerHarness.sol │ │ │ │ │ │ │ │ ├── ERC721Harness.sol │ │ │ │ │ │ │ │ ├── ERC721ReceiverHarness.sol │ │ │ │ │ │ │ │ ├── EnumerableMapHarness.sol │ │ │ │ │ │ │ │ ├── EnumerableSetHarness.sol │ │ │ │ │ │ │ │ ├── InitializableHarness.sol │ │ │ │ │ │ │ │ ├── Ownable2StepHarness.sol │ │ │ │ │ │ │ │ ├── OwnableHarness.sol │ │ │ │ │ │ │ │ ├── PausableHarness.sol │ │ │ │ │ │ │ │ └── TimelockControllerHarness.sol │ │ │ │ │ │ │ ├── reports │ │ │ │ │ │ │ │ ├── 2021-10.pdf │ │ │ │ │ │ │ │ ├── 2022-03.pdf │ │ │ │ │ │ │ │ └── 2022-05.pdf │ │ │ │ │ │ │ ├── run.js │ │ │ │ │ │ │ ├── specs.json │ │ │ │ │ │ │ └── specs │ │ │ │ │ │ │ │ ├── AccessControl.spec │ │ │ │ │ │ │ │ ├── AccessControlDefaultAdminRules.spec │ │ │ │ │ │ │ │ ├── DoubleEndedQueue.spec │ │ │ │ │ │ │ │ ├── ERC20.spec │ │ │ │ │ │ │ │ ├── ERC20FlashMint.spec │ │ │ │ │ │ │ │ ├── ERC20Wrapper.spec │ │ │ │ │ │ │ │ ├── ERC721.spec │ │ │ │ │ │ │ │ ├── EnumerableMap.spec │ │ │ │ │ │ │ │ ├── EnumerableSet.spec │ │ │ │ │ │ │ │ ├── Initializable.spec │ │ │ │ │ │ │ │ ├── Ownable.spec │ │ │ │ │ │ │ │ ├── Ownable2Step.spec │ │ │ │ │ │ │ │ ├── Pausable.spec │ │ │ │ │ │ │ │ ├── TimelockController.spec │ │ │ │ │ │ │ │ ├── helpers │ │ │ │ │ │ │ │ └── helpers.spec │ │ │ │ │ │ │ │ └── methods │ │ │ │ │ │ │ │ ├── IAccessControl.spec │ │ │ │ │ │ │ │ ├── IAccessControlDefaultAdminRules.spec │ │ │ │ │ │ │ │ ├── IERC20.spec │ │ │ │ │ │ │ │ ├── IERC2612.spec │ │ │ │ │ │ │ │ ├── IERC3156FlashBorrower.spec │ │ │ │ │ │ │ │ ├── IERC3156FlashLender.spec │ │ │ │ │ │ │ │ ├── IERC5313.spec │ │ │ │ │ │ │ │ ├── IERC721.spec │ │ │ │ │ │ │ │ ├── IERC721Receiver.spec │ │ │ │ │ │ │ │ ├── IOwnable.spec │ │ │ │ │ │ │ │ └── IOwnable2Step.spec │ │ │ │ │ │ ├── contracts │ │ │ │ │ │ │ ├── access │ │ │ │ │ │ │ │ ├── AccessControl.sol │ │ │ │ │ │ │ │ ├── IAccessControl.sol │ │ │ │ │ │ │ │ ├── Ownable.sol │ │ │ │ │ │ │ │ ├── Ownable2Step.sol │ │ │ │ │ │ │ │ ├── README.adoc │ │ │ │ │ │ │ │ ├── extensions │ │ │ │ │ │ │ │ │ ├── AccessControlDefaultAdminRules.sol │ │ │ │ │ │ │ │ │ ├── AccessControlEnumerable.sol │ │ │ │ │ │ │ │ │ ├── IAccessControlDefaultAdminRules.sol │ │ │ │ │ │ │ │ │ └── IAccessControlEnumerable.sol │ │ │ │ │ │ │ │ └── manager │ │ │ │ │ │ │ │ │ ├── AccessManaged.sol │ │ │ │ │ │ │ │ │ ├── AccessManager.sol │ │ │ │ │ │ │ │ │ ├── AuthorityUtils.sol │ │ │ │ │ │ │ │ │ ├── IAccessManaged.sol │ │ │ │ │ │ │ │ │ ├── IAccessManager.sol │ │ │ │ │ │ │ │ │ └── IAuthority.sol │ │ │ │ │ │ │ ├── finance │ │ │ │ │ │ │ │ ├── README.adoc │ │ │ │ │ │ │ │ └── VestingWallet.sol │ │ │ │ │ │ │ ├── governance │ │ │ │ │ │ │ │ ├── Governor.sol │ │ │ │ │ │ │ │ ├── IGovernor.sol │ │ │ │ │ │ │ │ ├── README.adoc │ │ │ │ │ │ │ │ ├── TimelockController.sol │ │ │ │ │ │ │ │ ├── extensions │ │ │ │ │ │ │ │ │ ├── GovernorCountingSimple.sol │ │ │ │ │ │ │ │ │ ├── GovernorPreventLateQuorum.sol │ │ │ │ │ │ │ │ │ ├── GovernorSettings.sol │ │ │ │ │ │ │ │ │ ├── GovernorStorage.sol │ │ │ │ │ │ │ │ │ ├── GovernorTimelockAccess.sol │ │ │ │ │ │ │ │ │ ├── GovernorTimelockCompound.sol │ │ │ │ │ │ │ │ │ ├── GovernorTimelockControl.sol │ │ │ │ │ │ │ │ │ ├── GovernorVotes.sol │ │ │ │ │ │ │ │ │ └── GovernorVotesQuorumFraction.sol │ │ │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ │ │ ├── IVotes.sol │ │ │ │ │ │ │ │ │ └── Votes.sol │ │ │ │ │ │ │ ├── interfaces │ │ │ │ │ │ │ │ ├── IERC1155.sol │ │ │ │ │ │ │ │ ├── IERC1155MetadataURI.sol │ │ │ │ │ │ │ │ ├── IERC1155Receiver.sol │ │ │ │ │ │ │ │ ├── IERC1271.sol │ │ │ │ │ │ │ │ ├── IERC1363.sol │ │ │ │ │ │ │ │ ├── IERC1363Receiver.sol │ │ │ │ │ │ │ │ ├── IERC1363Spender.sol │ │ │ │ │ │ │ │ ├── IERC165.sol │ │ │ │ │ │ │ │ ├── IERC1820Implementer.sol │ │ │ │ │ │ │ │ ├── IERC1820Registry.sol │ │ │ │ │ │ │ │ ├── IERC1967.sol │ │ │ │ │ │ │ │ ├── IERC20.sol │ │ │ │ │ │ │ │ ├── IERC20Metadata.sol │ │ │ │ │ │ │ │ ├── IERC2309.sol │ │ │ │ │ │ │ │ ├── IERC2612.sol │ │ │ │ │ │ │ │ ├── IERC2981.sol │ │ │ │ │ │ │ │ ├── IERC3156.sol │ │ │ │ │ │ │ │ ├── IERC3156FlashBorrower.sol │ │ │ │ │ │ │ │ ├── IERC3156FlashLender.sol │ │ │ │ │ │ │ │ ├── IERC4626.sol │ │ │ │ │ │ │ │ ├── IERC4906.sol │ │ │ │ │ │ │ │ ├── IERC5267.sol │ │ │ │ │ │ │ │ ├── IERC5313.sol │ │ │ │ │ │ │ │ ├── IERC5805.sol │ │ │ │ │ │ │ │ ├── IERC6372.sol │ │ │ │ │ │ │ │ ├── IERC721.sol │ │ │ │ │ │ │ │ ├── IERC721Enumerable.sol │ │ │ │ │ │ │ │ ├── IERC721Metadata.sol │ │ │ │ │ │ │ │ ├── IERC721Receiver.sol │ │ │ │ │ │ │ │ ├── IERC777.sol │ │ │ │ │ │ │ │ ├── IERC777Recipient.sol │ │ │ │ │ │ │ │ ├── IERC777Sender.sol │ │ │ │ │ │ │ │ ├── README.adoc │ │ │ │ │ │ │ │ ├── draft-IERC1822.sol │ │ │ │ │ │ │ │ └── draft-IERC6093.sol │ │ │ │ │ │ │ ├── metatx │ │ │ │ │ │ │ │ ├── ERC2771Context.sol │ │ │ │ │ │ │ │ ├── ERC2771Forwarder.sol │ │ │ │ │ │ │ │ └── README.adoc │ │ │ │ │ │ │ ├── mocks │ │ │ │ │ │ │ │ ├── AccessManagedTarget.sol │ │ │ │ │ │ │ │ ├── ArraysMock.sol │ │ │ │ │ │ │ │ ├── AuthorityMock.sol │ │ │ │ │ │ │ │ ├── Base64Dirty.sol │ │ │ │ │ │ │ │ ├── CallReceiverMock.sol │ │ │ │ │ │ │ │ ├── ContextMock.sol │ │ │ │ │ │ │ │ ├── DummyImplementation.sol │ │ │ │ │ │ │ │ ├── EIP712Verifier.sol │ │ │ │ │ │ │ │ ├── ERC1271WalletMock.sol │ │ │ │ │ │ │ │ ├── ERC165 │ │ │ │ │ │ │ │ │ ├── ERC165InterfacesSupported.sol │ │ │ │ │ │ │ │ │ ├── ERC165MaliciousData.sol │ │ │ │ │ │ │ │ │ ├── ERC165MissingData.sol │ │ │ │ │ │ │ │ │ ├── ERC165NotSupported.sol │ │ │ │ │ │ │ │ │ └── ERC165ReturnBomb.sol │ │ │ │ │ │ │ │ ├── ERC2771ContextMock.sol │ │ │ │ │ │ │ │ ├── ERC3156FlashBorrowerMock.sol │ │ │ │ │ │ │ │ ├── EtherReceiverMock.sol │ │ │ │ │ │ │ │ ├── InitializableMock.sol │ │ │ │ │ │ │ │ ├── MulticallTest.sol │ │ │ │ │ │ │ │ ├── MultipleInheritanceInitializableMocks.sol │ │ │ │ │ │ │ │ ├── PausableMock.sol │ │ │ │ │ │ │ │ ├── ReentrancyAttack.sol │ │ │ │ │ │ │ │ ├── ReentrancyMock.sol │ │ │ │ │ │ │ │ ├── RegressionImplementation.sol │ │ │ │ │ │ │ │ ├── SingleInheritanceInitializableMocks.sol │ │ │ │ │ │ │ │ ├── Stateless.sol │ │ │ │ │ │ │ │ ├── StorageSlotMock.sol │ │ │ │ │ │ │ │ ├── TimelockReentrant.sol │ │ │ │ │ │ │ │ ├── UpgradeableBeaconMock.sol │ │ │ │ │ │ │ │ ├── VotesMock.sol │ │ │ │ │ │ │ │ ├── compound │ │ │ │ │ │ │ │ │ └── CompTimelock.sol │ │ │ │ │ │ │ │ ├── governance │ │ │ │ │ │ │ │ │ ├── GovernorMock.sol │ │ │ │ │ │ │ │ │ ├── GovernorPreventLateQuorumMock.sol │ │ │ │ │ │ │ │ │ ├── GovernorStorageMock.sol │ │ │ │ │ │ │ │ │ ├── GovernorTimelockAccessMock.sol │ │ │ │ │ │ │ │ │ ├── GovernorTimelockCompoundMock.sol │ │ │ │ │ │ │ │ │ ├── GovernorTimelockControlMock.sol │ │ │ │ │ │ │ │ │ ├── GovernorVoteMock.sol │ │ │ │ │ │ │ │ │ └── GovernorWithParamsMock.sol │ │ │ │ │ │ │ │ ├── proxy │ │ │ │ │ │ │ │ │ ├── BadBeacon.sol │ │ │ │ │ │ │ │ │ ├── ClashingImplementation.sol │ │ │ │ │ │ │ │ │ └── UUPSUpgradeableMock.sol │ │ │ │ │ │ │ │ └── token │ │ │ │ │ │ │ │ │ ├── ERC1155ReceiverMock.sol │ │ │ │ │ │ │ │ │ ├── ERC20ApprovalMock.sol │ │ │ │ │ │ │ │ │ ├── ERC20DecimalsMock.sol │ │ │ │ │ │ │ │ │ ├── ERC20ExcessDecimalsMock.sol │ │ │ │ │ │ │ │ │ ├── ERC20FlashMintMock.sol │ │ │ │ │ │ │ │ │ ├── ERC20ForceApproveMock.sol │ │ │ │ │ │ │ │ │ ├── ERC20Mock.sol │ │ │ │ │ │ │ │ │ ├── ERC20MulticallMock.sol │ │ │ │ │ │ │ │ │ ├── ERC20NoReturnMock.sol │ │ │ │ │ │ │ │ │ ├── ERC20Reentrant.sol │ │ │ │ │ │ │ │ │ ├── ERC20ReturnFalseMock.sol │ │ │ │ │ │ │ │ │ ├── ERC20VotesLegacyMock.sol │ │ │ │ │ │ │ │ │ ├── ERC4626LimitsMock.sol │ │ │ │ │ │ │ │ │ ├── ERC4626Mock.sol │ │ │ │ │ │ │ │ │ ├── ERC4626OffsetMock.sol │ │ │ │ │ │ │ │ │ ├── ERC4646FeesMock.sol │ │ │ │ │ │ │ │ │ ├── ERC721ConsecutiveEnumerableMock.sol │ │ │ │ │ │ │ │ │ ├── ERC721ConsecutiveMock.sol │ │ │ │ │ │ │ │ │ ├── ERC721ReceiverMock.sol │ │ │ │ │ │ │ │ │ ├── ERC721URIStorageMock.sol │ │ │ │ │ │ │ │ │ └── VotesTimestamp.sol │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ ├── proxy │ │ │ │ │ │ │ │ ├── Clones.sol │ │ │ │ │ │ │ │ ├── ERC1967 │ │ │ │ │ │ │ │ │ ├── ERC1967Proxy.sol │ │ │ │ │ │ │ │ │ └── ERC1967Utils.sol │ │ │ │ │ │ │ │ ├── Proxy.sol │ │ │ │ │ │ │ │ ├── README.adoc │ │ │ │ │ │ │ │ ├── beacon │ │ │ │ │ │ │ │ │ ├── BeaconProxy.sol │ │ │ │ │ │ │ │ │ ├── IBeacon.sol │ │ │ │ │ │ │ │ │ └── UpgradeableBeacon.sol │ │ │ │ │ │ │ │ ├── transparent │ │ │ │ │ │ │ │ │ ├── ProxyAdmin.sol │ │ │ │ │ │ │ │ │ └── TransparentUpgradeableProxy.sol │ │ │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ │ │ ├── Initializable.sol │ │ │ │ │ │ │ │ │ └── UUPSUpgradeable.sol │ │ │ │ │ │ │ ├── token │ │ │ │ │ │ │ │ ├── ERC1155 │ │ │ │ │ │ │ │ │ ├── ERC1155.sol │ │ │ │ │ │ │ │ │ ├── IERC1155.sol │ │ │ │ │ │ │ │ │ ├── IERC1155Receiver.sol │ │ │ │ │ │ │ │ │ ├── README.adoc │ │ │ │ │ │ │ │ │ ├── extensions │ │ │ │ │ │ │ │ │ │ ├── ERC1155Burnable.sol │ │ │ │ │ │ │ │ │ │ ├── ERC1155Pausable.sol │ │ │ │ │ │ │ │ │ │ ├── ERC1155Supply.sol │ │ │ │ │ │ │ │ │ │ ├── ERC1155URIStorage.sol │ │ │ │ │ │ │ │ │ │ └── IERC1155MetadataURI.sol │ │ │ │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ │ │ │ └── ERC1155Holder.sol │ │ │ │ │ │ │ │ ├── ERC20 │ │ │ │ │ │ │ │ │ ├── ERC20.sol │ │ │ │ │ │ │ │ │ ├── IERC20.sol │ │ │ │ │ │ │ │ │ ├── README.adoc │ │ │ │ │ │ │ │ │ ├── extensions │ │ │ │ │ │ │ │ │ │ ├── ERC20Burnable.sol │ │ │ │ │ │ │ │ │ │ ├── ERC20Capped.sol │ │ │ │ │ │ │ │ │ │ ├── ERC20FlashMint.sol │ │ │ │ │ │ │ │ │ │ ├── ERC20Pausable.sol │ │ │ │ │ │ │ │ │ │ ├── ERC20Permit.sol │ │ │ │ │ │ │ │ │ │ ├── ERC20Votes.sol │ │ │ │ │ │ │ │ │ │ ├── ERC20Wrapper.sol │ │ │ │ │ │ │ │ │ │ ├── ERC4626.sol │ │ │ │ │ │ │ │ │ │ ├── IERC20Metadata.sol │ │ │ │ │ │ │ │ │ │ └── IERC20Permit.sol │ │ │ │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ │ │ │ └── SafeERC20.sol │ │ │ │ │ │ │ │ ├── ERC721 │ │ │ │ │ │ │ │ │ ├── ERC721.sol │ │ │ │ │ │ │ │ │ ├── IERC721.sol │ │ │ │ │ │ │ │ │ ├── IERC721Receiver.sol │ │ │ │ │ │ │ │ │ ├── README.adoc │ │ │ │ │ │ │ │ │ ├── extensions │ │ │ │ │ │ │ │ │ │ ├── ERC721Burnable.sol │ │ │ │ │ │ │ │ │ │ ├── ERC721Consecutive.sol │ │ │ │ │ │ │ │ │ │ ├── ERC721Enumerable.sol │ │ │ │ │ │ │ │ │ │ ├── ERC721Pausable.sol │ │ │ │ │ │ │ │ │ │ ├── ERC721Royalty.sol │ │ │ │ │ │ │ │ │ │ ├── ERC721URIStorage.sol │ │ │ │ │ │ │ │ │ │ ├── ERC721Votes.sol │ │ │ │ │ │ │ │ │ │ ├── ERC721Wrapper.sol │ │ │ │ │ │ │ │ │ │ ├── IERC721Enumerable.sol │ │ │ │ │ │ │ │ │ │ └── IERC721Metadata.sol │ │ │ │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ │ │ │ └── ERC721Holder.sol │ │ │ │ │ │ │ │ └── common │ │ │ │ │ │ │ │ │ ├── ERC2981.sol │ │ │ │ │ │ │ │ │ └── README.adoc │ │ │ │ │ │ │ ├── utils │ │ │ │ │ │ │ │ ├── Address.sol │ │ │ │ │ │ │ │ ├── Arrays.sol │ │ │ │ │ │ │ │ ├── Base64.sol │ │ │ │ │ │ │ │ ├── Context.sol │ │ │ │ │ │ │ │ ├── Create2.sol │ │ │ │ │ │ │ │ ├── Multicall.sol │ │ │ │ │ │ │ │ ├── Nonces.sol │ │ │ │ │ │ │ │ ├── Pausable.sol │ │ │ │ │ │ │ │ ├── README.adoc │ │ │ │ │ │ │ │ ├── ReentrancyGuard.sol │ │ │ │ │ │ │ │ ├── ShortStrings.sol │ │ │ │ │ │ │ │ ├── StorageSlot.sol │ │ │ │ │ │ │ │ ├── Strings.sol │ │ │ │ │ │ │ │ ├── cryptography │ │ │ │ │ │ │ │ │ ├── ECDSA.sol │ │ │ │ │ │ │ │ │ ├── EIP712.sol │ │ │ │ │ │ │ │ │ ├── MerkleProof.sol │ │ │ │ │ │ │ │ │ ├── MessageHashUtils.sol │ │ │ │ │ │ │ │ │ └── SignatureChecker.sol │ │ │ │ │ │ │ │ ├── introspection │ │ │ │ │ │ │ │ │ ├── ERC165.sol │ │ │ │ │ │ │ │ │ ├── ERC165Checker.sol │ │ │ │ │ │ │ │ │ └── IERC165.sol │ │ │ │ │ │ │ │ ├── math │ │ │ │ │ │ │ │ │ ├── Math.sol │ │ │ │ │ │ │ │ │ ├── SafeCast.sol │ │ │ │ │ │ │ │ │ └── SignedMath.sol │ │ │ │ │ │ │ │ ├── structs │ │ │ │ │ │ │ │ │ ├── BitMaps.sol │ │ │ │ │ │ │ │ │ ├── Checkpoints.sol │ │ │ │ │ │ │ │ │ ├── DoubleEndedQueue.sol │ │ │ │ │ │ │ │ │ ├── EnumerableMap.sol │ │ │ │ │ │ │ │ │ └── EnumerableSet.sol │ │ │ │ │ │ │ │ └── types │ │ │ │ │ │ │ │ │ └── Time.sol │ │ │ │ │ │ │ └── vendor │ │ │ │ │ │ │ │ └── compound │ │ │ │ │ │ │ │ ├── ICompoundTimelock.sol │ │ │ │ │ │ │ │ └── LICENSE │ │ │ │ │ │ ├── foundry.toml │ │ │ │ │ │ ├── hardhat.config.js │ │ │ │ │ │ ├── hardhat │ │ │ │ │ │ │ ├── env-artifacts.js │ │ │ │ │ │ │ ├── env-contract.js │ │ │ │ │ │ │ ├── ignore-unreachable-warnings.js │ │ │ │ │ │ │ ├── skip-foundry-tests.js │ │ │ │ │ │ │ └── task-test-get-files.js │ │ │ │ │ │ ├── lib │ │ │ │ │ │ │ ├── erc4626-tests │ │ │ │ │ │ │ │ ├── ERC4626.prop.sol │ │ │ │ │ │ │ │ ├── ERC4626.test.sol │ │ │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ │ │ └── README.md │ │ │ │ │ │ │ └── forge-std │ │ │ │ │ │ │ │ ├── .github │ │ │ │ │ │ │ │ └── workflows │ │ │ │ │ │ │ │ │ └── ci.yml │ │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ │ ├── .gitmodules │ │ │ │ │ │ │ │ ├── LICENSE-APACHE │ │ │ │ │ │ │ │ ├── LICENSE-MIT │ │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ │ ├── foundry.toml │ │ │ │ │ │ │ │ ├── lib │ │ │ │ │ │ │ │ └── ds-test │ │ │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ │ │ │ ├── Makefile │ │ │ │ │ │ │ │ │ ├── default.nix │ │ │ │ │ │ │ │ │ ├── demo │ │ │ │ │ │ │ │ │ └── demo.sol │ │ │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ │ │ └── src │ │ │ │ │ │ │ │ │ └── test.sol │ │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ │ ├── src │ │ │ │ │ │ │ │ ├── Base.sol │ │ │ │ │ │ │ │ ├── Script.sol │ │ │ │ │ │ │ │ ├── StdAssertions.sol │ │ │ │ │ │ │ │ ├── StdChains.sol │ │ │ │ │ │ │ │ ├── StdCheats.sol │ │ │ │ │ │ │ │ ├── StdError.sol │ │ │ │ │ │ │ │ ├── StdJson.sol │ │ │ │ │ │ │ │ ├── StdMath.sol │ │ │ │ │ │ │ │ ├── StdStorage.sol │ │ │ │ │ │ │ │ ├── StdUtils.sol │ │ │ │ │ │ │ │ ├── Test.sol │ │ │ │ │ │ │ │ ├── Vm.sol │ │ │ │ │ │ │ │ ├── console.sol │ │ │ │ │ │ │ │ ├── console2.sol │ │ │ │ │ │ │ │ └── interfaces │ │ │ │ │ │ │ │ │ ├── IERC1155.sol │ │ │ │ │ │ │ │ │ ├── IERC165.sol │ │ │ │ │ │ │ │ │ ├── IERC20.sol │ │ │ │ │ │ │ │ │ ├── IERC4626.sol │ │ │ │ │ │ │ │ │ └── IERC721.sol │ │ │ │ │ │ │ │ └── test │ │ │ │ │ │ │ │ ├── StdAssertions.t.sol │ │ │ │ │ │ │ │ ├── StdChains.t.sol │ │ │ │ │ │ │ │ ├── StdCheats.t.sol │ │ │ │ │ │ │ │ ├── StdError.t.sol │ │ │ │ │ │ │ │ ├── StdMath.t.sol │ │ │ │ │ │ │ │ ├── StdStorage.t.sol │ │ │ │ │ │ │ │ ├── StdUtils.t.sol │ │ │ │ │ │ │ │ ├── compilation │ │ │ │ │ │ │ │ ├── CompilationScript.sol │ │ │ │ │ │ │ │ ├── CompilationScriptBase.sol │ │ │ │ │ │ │ │ ├── CompilationTest.sol │ │ │ │ │ │ │ │ └── CompilationTestBase.sol │ │ │ │ │ │ │ │ └── fixtures │ │ │ │ │ │ │ │ └── broadcast.log.json │ │ │ │ │ │ ├── logo.svg │ │ │ │ │ │ ├── netlify.toml │ │ │ │ │ │ ├── package-lock.json │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ ├── remappings.txt │ │ │ │ │ │ ├── renovate.json │ │ │ │ │ │ ├── requirements.txt │ │ │ │ │ │ ├── scripts │ │ │ │ │ │ │ ├── checks │ │ │ │ │ │ │ │ ├── compare-layout.js │ │ │ │ │ │ │ │ ├── compareGasReports.js │ │ │ │ │ │ │ │ ├── extract-layout.js │ │ │ │ │ │ │ │ ├── generation.sh │ │ │ │ │ │ │ │ └── inheritance-ordering.js │ │ │ │ │ │ │ ├── gen-nav.js │ │ │ │ │ │ │ ├── generate │ │ │ │ │ │ │ │ ├── format-lines.js │ │ │ │ │ │ │ │ ├── run.js │ │ │ │ │ │ │ │ └── templates │ │ │ │ │ │ │ │ │ ├── Checkpoints.js │ │ │ │ │ │ │ │ │ ├── Checkpoints.opts.js │ │ │ │ │ │ │ │ │ ├── Checkpoints.t.js │ │ │ │ │ │ │ │ │ ├── EnumerableMap.js │ │ │ │ │ │ │ │ │ ├── EnumerableSet.js │ │ │ │ │ │ │ │ │ ├── SafeCast.js │ │ │ │ │ │ │ │ │ ├── StorageSlot.js │ │ │ │ │ │ │ │ │ └── conversion.js │ │ │ │ │ │ │ ├── git-user-config.sh │ │ │ │ │ │ │ ├── helpers.js │ │ │ │ │ │ │ ├── prepack.sh │ │ │ │ │ │ │ ├── prepare-docs.sh │ │ │ │ │ │ │ ├── release │ │ │ │ │ │ │ │ ├── format-changelog.js │ │ │ │ │ │ │ │ ├── synchronize-versions.js │ │ │ │ │ │ │ │ ├── update-comment.js │ │ │ │ │ │ │ │ ├── version.sh │ │ │ │ │ │ │ │ └── workflow │ │ │ │ │ │ │ │ │ ├── exit-prerelease.sh │ │ │ │ │ │ │ │ │ ├── github-release.js │ │ │ │ │ │ │ │ │ ├── integrity-check.sh │ │ │ │ │ │ │ │ │ ├── pack.sh │ │ │ │ │ │ │ │ │ ├── publish.sh │ │ │ │ │ │ │ │ │ ├── rerun.js │ │ │ │ │ │ │ │ │ ├── set-changesets-pr-title.js │ │ │ │ │ │ │ │ │ ├── start.sh │ │ │ │ │ │ │ │ │ └── state.js │ │ │ │ │ │ │ ├── remove-ignored-artifacts.js │ │ │ │ │ │ │ ├── solhint-custom │ │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ │ └── package.json │ │ │ │ │ │ │ ├── update-docs-branch.js │ │ │ │ │ │ │ └── upgradeable │ │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ │ ├── patch-apply.sh │ │ │ │ │ │ │ │ ├── patch-save.sh │ │ │ │ │ │ │ │ ├── transpile-onto.sh │ │ │ │ │ │ │ │ ├── transpile.sh │ │ │ │ │ │ │ │ └── upgradeable.patch │ │ │ │ │ │ ├── slither.config.json │ │ │ │ │ │ ├── solhint.config.js │ │ │ │ │ │ └── test │ │ │ │ │ │ │ ├── TESTING.md │ │ │ │ │ │ │ ├── access │ │ │ │ │ │ │ ├── AccessControl.behavior.js │ │ │ │ │ │ │ ├── AccessControl.test.js │ │ │ │ │ │ │ ├── Ownable.test.js │ │ │ │ │ │ │ ├── Ownable2Step.test.js │ │ │ │ │ │ │ ├── extensions │ │ │ │ │ │ │ │ ├── AccessControlDefaultAdminRules.test.js │ │ │ │ │ │ │ │ └── AccessControlEnumerable.test.js │ │ │ │ │ │ │ └── manager │ │ │ │ │ │ │ │ ├── AccessManaged.test.js │ │ │ │ │ │ │ │ ├── AccessManager.behavior.js │ │ │ │ │ │ │ │ ├── AccessManager.test.js │ │ │ │ │ │ │ │ └── AuthorityUtils.test.js │ │ │ │ │ │ │ ├── finance │ │ │ │ │ │ │ ├── VestingWallet.behavior.js │ │ │ │ │ │ │ └── VestingWallet.test.js │ │ │ │ │ │ │ ├── governance │ │ │ │ │ │ │ ├── Governor.t.sol │ │ │ │ │ │ │ ├── Governor.test.js │ │ │ │ │ │ │ ├── TimelockController.test.js │ │ │ │ │ │ │ ├── extensions │ │ │ │ │ │ │ │ ├── GovernorERC721.test.js │ │ │ │ │ │ │ │ ├── GovernorPreventLateQuorum.test.js │ │ │ │ │ │ │ │ ├── GovernorStorage.test.js │ │ │ │ │ │ │ │ ├── GovernorTimelockAccess.test.js │ │ │ │ │ │ │ │ ├── GovernorTimelockCompound.test.js │ │ │ │ │ │ │ │ ├── GovernorTimelockControl.test.js │ │ │ │ │ │ │ │ ├── GovernorVotesQuorumFraction.test.js │ │ │ │ │ │ │ │ └── GovernorWithParams.test.js │ │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ │ ├── EIP6372.behavior.js │ │ │ │ │ │ │ │ ├── Votes.behavior.js │ │ │ │ │ │ │ │ └── Votes.test.js │ │ │ │ │ │ │ ├── helpers │ │ │ │ │ │ │ ├── access-manager.js │ │ │ │ │ │ │ ├── account.js │ │ │ │ │ │ │ ├── chainid.js │ │ │ │ │ │ │ ├── constants.js │ │ │ │ │ │ │ ├── create.js │ │ │ │ │ │ │ ├── customError.js │ │ │ │ │ │ │ ├── eip712.js │ │ │ │ │ │ │ ├── enums.js │ │ │ │ │ │ │ ├── erc1967.js │ │ │ │ │ │ │ ├── governance.js │ │ │ │ │ │ │ ├── iterate.js │ │ │ │ │ │ │ ├── math.js │ │ │ │ │ │ │ ├── methods.js │ │ │ │ │ │ │ ├── sign.js │ │ │ │ │ │ │ ├── time.js │ │ │ │ │ │ │ └── txpool.js │ │ │ │ │ │ │ ├── metatx │ │ │ │ │ │ │ ├── ERC2771Context.test.js │ │ │ │ │ │ │ ├── ERC2771Forwarder.t.sol │ │ │ │ │ │ │ └── ERC2771Forwarder.test.js │ │ │ │ │ │ │ ├── proxy │ │ │ │ │ │ │ ├── Clones.behaviour.js │ │ │ │ │ │ │ ├── Clones.test.js │ │ │ │ │ │ │ ├── ERC1967 │ │ │ │ │ │ │ │ ├── ERC1967Proxy.test.js │ │ │ │ │ │ │ │ └── ERC1967Utils.test.js │ │ │ │ │ │ │ ├── Proxy.behaviour.js │ │ │ │ │ │ │ ├── beacon │ │ │ │ │ │ │ │ ├── BeaconProxy.test.js │ │ │ │ │ │ │ │ └── UpgradeableBeacon.test.js │ │ │ │ │ │ │ ├── transparent │ │ │ │ │ │ │ │ ├── ProxyAdmin.test.js │ │ │ │ │ │ │ │ ├── TransparentUpgradeableProxy.behaviour.js │ │ │ │ │ │ │ │ └── TransparentUpgradeableProxy.test.js │ │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ │ ├── Initializable.test.js │ │ │ │ │ │ │ │ └── UUPSUpgradeable.test.js │ │ │ │ │ │ │ ├── token │ │ │ │ │ │ │ ├── ERC1155 │ │ │ │ │ │ │ │ ├── ERC1155.behavior.js │ │ │ │ │ │ │ │ ├── ERC1155.test.js │ │ │ │ │ │ │ │ ├── extensions │ │ │ │ │ │ │ │ │ ├── ERC1155Burnable.test.js │ │ │ │ │ │ │ │ │ ├── ERC1155Pausable.test.js │ │ │ │ │ │ │ │ │ ├── ERC1155Supply.test.js │ │ │ │ │ │ │ │ │ └── ERC1155URIStorage.test.js │ │ │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ │ │ └── ERC1155Holder.test.js │ │ │ │ │ │ │ ├── ERC20 │ │ │ │ │ │ │ │ ├── ERC20.behavior.js │ │ │ │ │ │ │ │ ├── ERC20.test.js │ │ │ │ │ │ │ │ ├── extensions │ │ │ │ │ │ │ │ │ ├── ERC20Burnable.behavior.js │ │ │ │ │ │ │ │ │ ├── ERC20Burnable.test.js │ │ │ │ │ │ │ │ │ ├── ERC20Capped.behavior.js │ │ │ │ │ │ │ │ │ ├── ERC20Capped.test.js │ │ │ │ │ │ │ │ │ ├── ERC20FlashMint.test.js │ │ │ │ │ │ │ │ │ ├── ERC20Pausable.test.js │ │ │ │ │ │ │ │ │ ├── ERC20Permit.test.js │ │ │ │ │ │ │ │ │ ├── ERC20Votes.test.js │ │ │ │ │ │ │ │ │ ├── ERC20Wrapper.test.js │ │ │ │ │ │ │ │ │ ├── ERC4626.t.sol │ │ │ │ │ │ │ │ │ └── ERC4626.test.js │ │ │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ │ │ └── SafeERC20.test.js │ │ │ │ │ │ │ ├── ERC721 │ │ │ │ │ │ │ │ ├── ERC721.behavior.js │ │ │ │ │ │ │ │ ├── ERC721.test.js │ │ │ │ │ │ │ │ ├── ERC721Enumerable.test.js │ │ │ │ │ │ │ │ ├── extensions │ │ │ │ │ │ │ │ │ ├── ERC721Burnable.test.js │ │ │ │ │ │ │ │ │ ├── ERC721Consecutive.t.sol │ │ │ │ │ │ │ │ │ ├── ERC721Consecutive.test.js │ │ │ │ │ │ │ │ │ ├── ERC721Pausable.test.js │ │ │ │ │ │ │ │ │ ├── ERC721Royalty.test.js │ │ │ │ │ │ │ │ │ ├── ERC721URIStorage.test.js │ │ │ │ │ │ │ │ │ ├── ERC721Votes.test.js │ │ │ │ │ │ │ │ │ └── ERC721Wrapper.test.js │ │ │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ │ │ └── ERC721Holder.test.js │ │ │ │ │ │ │ └── common │ │ │ │ │ │ │ │ └── ERC2981.behavior.js │ │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ ├── Address.test.js │ │ │ │ │ │ │ ├── Arrays.test.js │ │ │ │ │ │ │ ├── Base64.test.js │ │ │ │ │ │ │ ├── Context.behavior.js │ │ │ │ │ │ │ ├── Context.test.js │ │ │ │ │ │ │ ├── Create2.test.js │ │ │ │ │ │ │ ├── Multicall.test.js │ │ │ │ │ │ │ ├── Nonces.test.js │ │ │ │ │ │ │ ├── Pausable.test.js │ │ │ │ │ │ │ ├── ReentrancyGuard.test.js │ │ │ │ │ │ │ ├── ShortStrings.t.sol │ │ │ │ │ │ │ ├── ShortStrings.test.js │ │ │ │ │ │ │ ├── StorageSlot.test.js │ │ │ │ │ │ │ ├── Strings.test.js │ │ │ │ │ │ │ ├── cryptography │ │ │ │ │ │ │ ├── ECDSA.test.js │ │ │ │ │ │ │ ├── EIP712.test.js │ │ │ │ │ │ │ ├── MerkleProof.test.js │ │ │ │ │ │ │ ├── MessageHashUtils.test.js │ │ │ │ │ │ │ └── SignatureChecker.test.js │ │ │ │ │ │ │ ├── introspection │ │ │ │ │ │ │ ├── ERC165.test.js │ │ │ │ │ │ │ ├── ERC165Checker.test.js │ │ │ │ │ │ │ └── SupportsInterface.behavior.js │ │ │ │ │ │ │ ├── math │ │ │ │ │ │ │ ├── Math.t.sol │ │ │ │ │ │ │ ├── Math.test.js │ │ │ │ │ │ │ ├── SafeCast.test.js │ │ │ │ │ │ │ └── SignedMath.test.js │ │ │ │ │ │ │ ├── structs │ │ │ │ │ │ │ ├── BitMap.test.js │ │ │ │ │ │ │ ├── Checkpoints.t.sol │ │ │ │ │ │ │ ├── Checkpoints.test.js │ │ │ │ │ │ │ ├── DoubleEndedQueue.test.js │ │ │ │ │ │ │ ├── EnumerableMap.behavior.js │ │ │ │ │ │ │ ├── EnumerableMap.test.js │ │ │ │ │ │ │ ├── EnumerableSet.behavior.js │ │ │ │ │ │ │ └── EnumerableSet.test.js │ │ │ │ │ │ │ └── types │ │ │ │ │ │ │ └── Time.test.js │ │ │ │ │ └── solmate │ │ │ │ │ │ ├── .gas-snapshot │ │ │ │ │ │ ├── .gitattributes │ │ │ │ │ │ ├── .github │ │ │ │ │ │ ├── pull_request_template.md │ │ │ │ │ │ └── workflows │ │ │ │ │ │ │ └── tests.yml │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ ├── .gitmodules │ │ │ │ │ │ ├── .prettierignore │ │ │ │ │ │ ├── .prettierrc │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── audits │ │ │ │ │ │ └── v6-Fixed-Point-Solutions.pdf │ │ │ │ │ │ ├── foundry.toml │ │ │ │ │ │ ├── lib │ │ │ │ │ │ └── ds-test │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ │ ├── Makefile │ │ │ │ │ │ │ ├── default.nix │ │ │ │ │ │ │ ├── demo │ │ │ │ │ │ │ └── demo.sol │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ └── src │ │ │ │ │ │ │ └── test.sol │ │ │ │ │ │ ├── package-lock.json │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ └── src │ │ │ │ │ │ ├── auth │ │ │ │ │ │ ├── Auth.sol │ │ │ │ │ │ ├── Owned.sol │ │ │ │ │ │ └── authorities │ │ │ │ │ │ │ ├── MultiRolesAuthority.sol │ │ │ │ │ │ │ └── RolesAuthority.sol │ │ │ │ │ │ ├── mixins │ │ │ │ │ │ └── ERC4626.sol │ │ │ │ │ │ ├── test │ │ │ │ │ │ ├── Auth.t.sol │ │ │ │ │ │ ├── Bytes32AddressLib.t.sol │ │ │ │ │ │ ├── CREATE3.t.sol │ │ │ │ │ │ ├── DSTestPlus.t.sol │ │ │ │ │ │ ├── ERC1155.t.sol │ │ │ │ │ │ ├── ERC20.t.sol │ │ │ │ │ │ ├── ERC4626.t.sol │ │ │ │ │ │ ├── ERC6909.t.sol │ │ │ │ │ │ ├── ERC721.t.sol │ │ │ │ │ │ ├── FixedPointMathLib.t.sol │ │ │ │ │ │ ├── LibString.t.sol │ │ │ │ │ │ ├── MerkleProofLib.t.sol │ │ │ │ │ │ ├── MultiRolesAuthority.t.sol │ │ │ │ │ │ ├── Owned.t.sol │ │ │ │ │ │ ├── ReentrancyGuard.t.sol │ │ │ │ │ │ ├── RolesAuthority.t.sol │ │ │ │ │ │ ├── SSTORE2.t.sol │ │ │ │ │ │ ├── SafeCastLib.t.sol │ │ │ │ │ │ ├── SafeTransferLib.t.sol │ │ │ │ │ │ ├── SignedWadMath.t.sol │ │ │ │ │ │ ├── WETH.t.sol │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ ├── DSInvariantTest.sol │ │ │ │ │ │ │ ├── DSTestPlus.sol │ │ │ │ │ │ │ ├── Hevm.sol │ │ │ │ │ │ │ ├── mocks │ │ │ │ │ │ │ ├── MockAuthChild.sol │ │ │ │ │ │ │ ├── MockAuthority.sol │ │ │ │ │ │ │ ├── MockERC1155.sol │ │ │ │ │ │ │ ├── MockERC20.sol │ │ │ │ │ │ │ ├── MockERC4626.sol │ │ │ │ │ │ │ ├── MockERC6909.sol │ │ │ │ │ │ │ ├── MockERC721.sol │ │ │ │ │ │ │ └── MockOwned.sol │ │ │ │ │ │ │ └── weird-tokens │ │ │ │ │ │ │ ├── MissingReturnToken.sol │ │ │ │ │ │ │ ├── ReturnsFalseToken.sol │ │ │ │ │ │ │ ├── ReturnsGarbageToken.sol │ │ │ │ │ │ │ ├── ReturnsTooLittleToken.sol │ │ │ │ │ │ │ ├── ReturnsTooMuchToken.sol │ │ │ │ │ │ │ ├── ReturnsTwoToken.sol │ │ │ │ │ │ │ └── RevertingToken.sol │ │ │ │ │ │ ├── tokens │ │ │ │ │ │ ├── ERC1155.sol │ │ │ │ │ │ ├── ERC20.sol │ │ │ │ │ │ ├── ERC6909.sol │ │ │ │ │ │ ├── ERC721.sol │ │ │ │ │ │ └── WETH.sol │ │ │ │ │ │ └── utils │ │ │ │ │ │ ├── Bytes32AddressLib.sol │ │ │ │ │ │ ├── CREATE3.sol │ │ │ │ │ │ ├── FixedPointMathLib.sol │ │ │ │ │ │ ├── LibString.sol │ │ │ │ │ │ ├── MerkleProofLib.sol │ │ │ │ │ │ ├── ReentrancyGuard.sol │ │ │ │ │ │ ├── SSTORE2.sol │ │ │ │ │ │ ├── SafeCastLib.sol │ │ │ │ │ │ ├── SafeTransferLib.sol │ │ │ │ │ │ └── SignedWadMath.sol │ │ │ │ ├── remappings.txt │ │ │ │ ├── src │ │ │ │ │ ├── ERC6909.sol │ │ │ │ │ ├── ERC6909Claims.sol │ │ │ │ │ ├── Extsload.sol │ │ │ │ │ ├── Exttload.sol │ │ │ │ │ ├── NoDelegateCall.sol │ │ │ │ │ ├── PoolManager.sol │ │ │ │ │ ├── ProtocolFees.sol │ │ │ │ │ ├── interfaces │ │ │ │ │ │ ├── IExtsload.sol │ │ │ │ │ │ ├── IExttload.sol │ │ │ │ │ │ ├── IHooks.sol │ │ │ │ │ │ ├── IPoolManager.sol │ │ │ │ │ │ ├── IProtocolFeeController.sol │ │ │ │ │ │ ├── IProtocolFees.sol │ │ │ │ │ │ ├── callback │ │ │ │ │ │ │ └── IUnlockCallback.sol │ │ │ │ │ │ └── external │ │ │ │ │ │ │ ├── IERC20Minimal.sol │ │ │ │ │ │ │ └── IERC6909Claims.sol │ │ │ │ │ ├── libraries │ │ │ │ │ │ ├── BipsLibrary.sol │ │ │ │ │ │ ├── BitMath.sol │ │ │ │ │ │ ├── CurrencyDelta.sol │ │ │ │ │ │ ├── CurrencyReserves.sol │ │ │ │ │ │ ├── CustomRevert.sol │ │ │ │ │ │ ├── FixedPoint128.sol │ │ │ │ │ │ ├── FixedPoint96.sol │ │ │ │ │ │ ├── FullMath.sol │ │ │ │ │ │ ├── Hooks.sol │ │ │ │ │ │ ├── LPFeeLibrary.sol │ │ │ │ │ │ ├── LiquidityMath.sol │ │ │ │ │ │ ├── Lock.sol │ │ │ │ │ │ ├── NonzeroDeltaCount.sol │ │ │ │ │ │ ├── ParseBytes.sol │ │ │ │ │ │ ├── Pool.sol │ │ │ │ │ │ ├── Position.sol │ │ │ │ │ │ ├── ProtocolFeeLibrary.sol │ │ │ │ │ │ ├── SafeCast.sol │ │ │ │ │ │ ├── SqrtPriceMath.sol │ │ │ │ │ │ ├── StateLibrary.sol │ │ │ │ │ │ ├── SwapMath.sol │ │ │ │ │ │ ├── TickBitmap.sol │ │ │ │ │ │ ├── TickMath.sol │ │ │ │ │ │ ├── TransientStateLibrary.sol │ │ │ │ │ │ └── UnsafeMath.sol │ │ │ │ │ ├── test │ │ │ │ │ │ ├── ActionsRouter.sol │ │ │ │ │ │ ├── BaseTestHooks.sol │ │ │ │ │ │ ├── CurrencyTest.sol │ │ │ │ │ │ ├── CustomCurveHook.sol │ │ │ │ │ │ ├── DeltaReturningHook.sol │ │ │ │ │ │ ├── DynamicFeesTestHook.sol │ │ │ │ │ │ ├── DynamicReturnFeeTestHook.sol │ │ │ │ │ │ ├── EmptyRevertContract.sol │ │ │ │ │ │ ├── EmptyTestHooks.sol │ │ │ │ │ │ ├── FeeTakingHook.sol │ │ │ │ │ │ ├── Fuzzers.sol │ │ │ │ │ │ ├── HooksTest.sol │ │ │ │ │ │ ├── LPFeeTakingHook.sol │ │ │ │ │ │ ├── LiquidityMathTest.sol │ │ │ │ │ │ ├── MockContract.sol │ │ │ │ │ │ ├── MockERC6909Claims.sol │ │ │ │ │ │ ├── MockHooks.sol │ │ │ │ │ │ ├── NativeERC20.sol │ │ │ │ │ │ ├── NoDelegateCallTest.sol │ │ │ │ │ │ ├── PoolClaimsTest.sol │ │ │ │ │ │ ├── PoolDonateTest.sol │ │ │ │ │ │ ├── PoolEmptyUnlockTest.sol │ │ │ │ │ │ ├── PoolModifyLiquidityTest.sol │ │ │ │ │ │ ├── PoolModifyLiquidityTestNoChecks.sol │ │ │ │ │ │ ├── PoolNestedActionsTest.sol │ │ │ │ │ │ ├── PoolSwapTest.sol │ │ │ │ │ │ ├── PoolTakeTest.sol │ │ │ │ │ │ ├── PoolTestBase.sol │ │ │ │ │ │ ├── ProtocolFeeControllerTest.sol │ │ │ │ │ │ ├── ProtocolFeesImplementation.sol │ │ │ │ │ │ ├── ProxyPoolManager.sol │ │ │ │ │ │ ├── SkipCallsTestHook.sol │ │ │ │ │ │ ├── SqrtPriceMathEchidnaTest.sol │ │ │ │ │ │ ├── SwapRouterNoChecks.sol │ │ │ │ │ │ ├── TestERC20.sol │ │ │ │ │ │ ├── TestInvalidERC20.sol │ │ │ │ │ │ ├── TickMathEchidnaTest.sol │ │ │ │ │ │ ├── TickMathTest.sol │ │ │ │ │ │ └── TickOverflowSafetyEchidnaTest.sol │ │ │ │ │ └── types │ │ │ │ │ │ ├── BalanceDelta.sol │ │ │ │ │ │ ├── BeforeSwapDelta.sol │ │ │ │ │ │ ├── Currency.sol │ │ │ │ │ │ ├── PoolId.sol │ │ │ │ │ │ ├── PoolKey.sol │ │ │ │ │ │ └── Slot0.sol │ │ │ │ └── test │ │ │ │ │ ├── CurrencyReserves.t.sol │ │ │ │ │ ├── CustomAccounting.t.sol │ │ │ │ │ ├── DynamicFees.t.sol │ │ │ │ │ ├── DynamicReturnFees.t.sol │ │ │ │ │ ├── ERC6909Claims.t.sol │ │ │ │ │ ├── Extsload.t.sol │ │ │ │ │ ├── ModifyLiquidity.t.sol │ │ │ │ │ ├── NoDelegateCall.t.sol │ │ │ │ │ ├── PoolManager.clear.t.sol │ │ │ │ │ ├── PoolManager.gas.spec.ts │ │ │ │ │ ├── PoolManager.swap.t.sol │ │ │ │ │ ├── PoolManager.t.sol │ │ │ │ │ ├── PoolManagerInitialize.t.sol │ │ │ │ │ ├── ProtocolFeesImplementation.t.sol │ │ │ │ │ ├── SkipCallsTestHook.t.sol │ │ │ │ │ ├── Sync.t.sol │ │ │ │ │ ├── Tick.t.sol │ │ │ │ │ ├── bin │ │ │ │ │ └── v3Factory.bytecode │ │ │ │ │ ├── js-scripts │ │ │ │ │ ├── build.js │ │ │ │ │ ├── dist │ │ │ │ │ │ ├── getModifyLiquidityResult.js │ │ │ │ │ │ ├── getSqrtPriceAtTick.js │ │ │ │ │ │ └── getTickAtSqrtPrice.js │ │ │ │ │ ├── package-lock.json │ │ │ │ │ ├── package.json │ │ │ │ │ ├── src │ │ │ │ │ │ ├── getModifyLiquidityResult.ts │ │ │ │ │ │ ├── getSqrtPriceAtTick.ts │ │ │ │ │ │ ├── getTickAtSqrtPrice.ts │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ └── shared.ts │ │ │ │ │ └── tsconfig.json │ │ │ │ │ ├── libraries │ │ │ │ │ ├── BipsLibrary.t.sol │ │ │ │ │ ├── BitMath.t.sol │ │ │ │ │ ├── FullMath.t.sol │ │ │ │ │ ├── Hooks.t.sol │ │ │ │ │ ├── LPFeeLibrary.t.sol │ │ │ │ │ ├── LiquidityMath.t.sol │ │ │ │ │ ├── Lock.t.sol │ │ │ │ │ ├── NonzeroDeltaCount.t.sol │ │ │ │ │ ├── Pool.t.sol │ │ │ │ │ ├── PoolId.t.sol │ │ │ │ │ ├── Position.t.sol │ │ │ │ │ ├── ProtocolFeeLibrary.t.sol │ │ │ │ │ ├── SafeCast.t.sol │ │ │ │ │ ├── SqrtPriceMath.t.sol │ │ │ │ │ ├── StateLibrary.t.sol │ │ │ │ │ ├── SwapMath.t.sol │ │ │ │ │ ├── TickBitmap.t.sol │ │ │ │ │ ├── TickMath.t.sol │ │ │ │ │ └── UnsafeMath.t.sol │ │ │ │ │ ├── types │ │ │ │ │ ├── BalanceDelta.t.sol │ │ │ │ │ ├── Currency.t.sol │ │ │ │ │ └── Slot0.t.sol │ │ │ │ │ └── utils │ │ │ │ │ ├── AmountHelpers.sol │ │ │ │ │ ├── Constants.sol │ │ │ │ │ ├── CurrencySettler.sol │ │ │ │ │ ├── Deployers.sol │ │ │ │ │ ├── JavascriptFfi.sol │ │ │ │ │ ├── LiquidityAmounts.sol │ │ │ │ │ ├── Logger.sol │ │ │ │ │ ├── NestedActions.t.sol │ │ │ │ │ ├── SortTokens.sol │ │ │ │ │ ├── SwapHelper.t.sol │ │ │ │ │ └── V3Helper.sol │ │ │ └── v4-periphery │ │ │ │ ├── .forge-snapshots │ │ │ │ ├── BaseActionsRouter_mock10commands.snap │ │ │ │ ├── Payments_swap_settleFromCaller_takeAllToMsgSender.snap │ │ │ │ ├── Payments_swap_settleFromCaller_takeAllToSpecifiedAddress.snap │ │ │ │ ├── Payments_swap_settleWithBalance_takeAllToMsgSender.snap │ │ │ │ ├── Payments_swap_settleWithBalance_takeAllToSpecifiedAddress.snap │ │ │ │ ├── PositionManager_burn_empty.snap │ │ │ │ ├── PositionManager_burn_empty_native.snap │ │ │ │ ├── PositionManager_burn_nonEmpty_native_withClose.snap │ │ │ │ ├── PositionManager_burn_nonEmpty_native_withTakePair.snap │ │ │ │ ├── PositionManager_burn_nonEmpty_withClose.snap │ │ │ │ ├── PositionManager_burn_nonEmpty_withTakePair.snap │ │ │ │ ├── PositionManager_collect_native.snap │ │ │ │ ├── PositionManager_collect_sameRange.snap │ │ │ │ ├── PositionManager_collect_withClose.snap │ │ │ │ ├── PositionManager_collect_withTakePair.snap │ │ │ │ ├── PositionManager_decreaseLiquidity_native.snap │ │ │ │ ├── PositionManager_decreaseLiquidity_withClose.snap │ │ │ │ ├── PositionManager_decreaseLiquidity_withTakePair.snap │ │ │ │ ├── PositionManager_decrease_burnEmpty.snap │ │ │ │ ├── PositionManager_decrease_burnEmpty_native.snap │ │ │ │ ├── PositionManager_decrease_sameRange_allLiquidity.snap │ │ │ │ ├── PositionManager_decrease_take_take.snap │ │ │ │ ├── PositionManager_increaseLiquidity_erc20_withClose.snap │ │ │ │ ├── PositionManager_increaseLiquidity_erc20_withSettlePair.snap │ │ │ │ ├── PositionManager_increaseLiquidity_native.snap │ │ │ │ ├── PositionManager_increase_autocompoundExactUnclaimedFees.snap │ │ │ │ ├── PositionManager_increase_autocompoundExcessFeesCredit.snap │ │ │ │ ├── PositionManager_increase_autocompound_clearExcess.snap │ │ │ │ ├── PositionManager_mint_native.snap │ │ │ │ ├── PositionManager_mint_nativeWithSweep_withClose.snap │ │ │ │ ├── PositionManager_mint_nativeWithSweep_withSettlePair.snap │ │ │ │ ├── PositionManager_mint_onSameTickLower.snap │ │ │ │ ├── PositionManager_mint_onSameTickUpper.snap │ │ │ │ ├── PositionManager_mint_sameRange.snap │ │ │ │ ├── PositionManager_mint_settleWithBalance_sweep.snap │ │ │ │ ├── PositionManager_mint_warmedPool_differentRange.snap │ │ │ │ ├── PositionManager_mint_withClose.snap │ │ │ │ ├── PositionManager_mint_withSettlePair.snap │ │ │ │ ├── PositionManager_multicall_initialize_mint.snap │ │ │ │ ├── PositionManager_permit.snap │ │ │ │ ├── PositionManager_permit_secondPosition.snap │ │ │ │ ├── PositionManager_permit_twice.snap │ │ │ │ ├── PositionManager_subscribe.snap │ │ │ │ ├── PositionManager_unsubscribe.snap │ │ │ │ ├── StateView_extsload_getFeeGrowthGlobals.snap │ │ │ │ ├── StateView_extsload_getFeeGrowthInside.snap │ │ │ │ ├── StateView_extsload_getLiquidity.snap │ │ │ │ ├── StateView_extsload_getPositionInfo.snap │ │ │ │ ├── StateView_extsload_getPositionLiquidity.snap │ │ │ │ ├── StateView_extsload_getSlot0.snap │ │ │ │ ├── StateView_extsload_getTickBitmap.snap │ │ │ │ ├── StateView_extsload_getTickFeeGrowthOutside.snap │ │ │ │ ├── StateView_extsload_getTickInfo.snap │ │ │ │ ├── StateView_extsload_getTickLiquidity.snap │ │ │ │ ├── V4Router_Bytecode.snap │ │ │ │ ├── V4Router_ExactIn1Hop_nativeIn.snap │ │ │ │ ├── V4Router_ExactIn1Hop_nativeOut.snap │ │ │ │ ├── V4Router_ExactIn1Hop_oneForZero.snap │ │ │ │ ├── V4Router_ExactIn1Hop_zeroForOne.snap │ │ │ │ ├── V4Router_ExactIn2Hops.snap │ │ │ │ ├── V4Router_ExactIn2Hops_nativeIn.snap │ │ │ │ ├── V4Router_ExactIn3Hops.snap │ │ │ │ ├── V4Router_ExactIn3Hops_nativeIn.snap │ │ │ │ ├── V4Router_ExactInputSingle.snap │ │ │ │ ├── V4Router_ExactInputSingle_nativeIn.snap │ │ │ │ ├── V4Router_ExactInputSingle_nativeOut.snap │ │ │ │ ├── V4Router_ExactOut1Hop_nativeIn_sweepETH.snap │ │ │ │ ├── V4Router_ExactOut1Hop_nativeOut.snap │ │ │ │ ├── V4Router_ExactOut1Hop_oneForZero.snap │ │ │ │ ├── V4Router_ExactOut1Hop_zeroForOne.snap │ │ │ │ ├── V4Router_ExactOut2Hops.snap │ │ │ │ ├── V4Router_ExactOut2Hops_nativeIn.snap │ │ │ │ ├── V4Router_ExactOut3Hops.snap │ │ │ │ ├── V4Router_ExactOut3Hops_nativeIn.snap │ │ │ │ ├── V4Router_ExactOut3Hops_nativeOut.snap │ │ │ │ ├── V4Router_ExactOutputSingle.snap │ │ │ │ ├── V4Router_ExactOutputSingle_nativeIn_sweepETH.snap │ │ │ │ └── V4Router_ExactOutputSingle_nativeOut.snap │ │ │ │ ├── .github │ │ │ │ ├── ISSUE_TEMPLATE │ │ │ │ │ ├── BUG_REPORT.yml │ │ │ │ │ └── FEATURE_IMPROVEMENT.yml │ │ │ │ ├── pull_request_template.md │ │ │ │ └── workflows │ │ │ │ │ ├── lint.yml │ │ │ │ │ ├── semgrep.yml │ │ │ │ │ └── test.yml │ │ │ │ ├── .gitignore │ │ │ │ ├── .gitmodules │ │ │ │ ├── .nvmrc │ │ │ │ ├── CONTRIBUTING.md │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── audits │ │ │ │ ├── DRAFT_ABDK_audit_periphery_universal_router.pdf │ │ │ │ ├── DRAFT_Spearbit_audit_periphery.pdf │ │ │ │ └── OpenZeppelin_audit_periphery_universal_router.pdf │ │ │ │ ├── broadcast │ │ │ │ ├── 01_PoolManager.s.sol │ │ │ │ │ ├── 84532 │ │ │ │ │ │ └── run-latest.json │ │ │ │ │ └── 11155111 │ │ │ │ │ │ └── run-latest.json │ │ │ │ ├── 02_PoolModifyLiquidityTest.s.sol │ │ │ │ │ ├── 84532 │ │ │ │ │ │ └── run-latest.json │ │ │ │ │ └── 11155111 │ │ │ │ │ │ └── run-latest.json │ │ │ │ ├── 03_PoolSwapTest.s.sol │ │ │ │ │ ├── 84532 │ │ │ │ │ │ └── run-latest.json │ │ │ │ │ └── 11155111 │ │ │ │ │ │ └── run-latest.json │ │ │ │ ├── DeployPosm.s.sol │ │ │ │ │ └── 84532 │ │ │ │ │ │ └── run-latest.json │ │ │ │ ├── DeployQuoter.s.sol │ │ │ │ │ └── 84532 │ │ │ │ │ │ └── run-latest.json │ │ │ │ └── DeployStateView.s.sol │ │ │ │ │ ├── 84532 │ │ │ │ │ └── run-latest.json │ │ │ │ │ └── 11155111 │ │ │ │ │ └── run-latest.json │ │ │ │ ├── foundry.toml │ │ │ │ ├── lib │ │ │ │ ├── permit2 │ │ │ │ │ ├── .env.example │ │ │ │ │ ├── .forge-snapshots │ │ │ │ │ │ ├── batchTransferFrom.snap │ │ │ │ │ │ ├── batchTransferFromMultiToken.snap │ │ │ │ │ │ ├── lockdown.snap │ │ │ │ │ │ ├── permit2 + transferFrom2 with WETH9's mainnet address.snap │ │ │ │ │ │ ├── permit2 + transferFrom2 with a non EIP-2612 native token with fallback.snap │ │ │ │ │ │ ├── permit2 + transferFrom2 with a non EIP-2612 native token.snap │ │ │ │ │ │ ├── permit2 + transferFrom2 with an EIP-2612 native token.snap │ │ │ │ │ │ ├── permitBatchCleanWrite.snap │ │ │ │ │ │ ├── permitBatchDirtyWrite.snap │ │ │ │ │ │ ├── permitBatchTransferFromMultipleTokens.snap │ │ │ │ │ │ ├── permitBatchTransferFromSingleToken.snap │ │ │ │ │ │ ├── permitCleanWrite.snap │ │ │ │ │ │ ├── permitCompactSig.snap │ │ │ │ │ │ ├── permitDirtyNonce.snap │ │ │ │ │ │ ├── permitDirtyWrite.snap │ │ │ │ │ │ ├── permitInvalidSigner.snap │ │ │ │ │ │ ├── permitSetMaxAllowanceCleanWrite.snap │ │ │ │ │ │ ├── permitSetMaxAllowanceDirtyWrite.snap │ │ │ │ │ │ ├── permitSignatureExpired.snap │ │ │ │ │ │ ├── permitTransferFromBatchTypedWitness.snap │ │ │ │ │ │ ├── permitTransferFromCompactSig.snap │ │ │ │ │ │ ├── permitTransferFromSingleToken.snap │ │ │ │ │ │ ├── permitTransferFromTypedWitness.snap │ │ │ │ │ │ ├── safePermit + safeTransferFrom with an EIP-2612 native token.snap │ │ │ │ │ │ ├── simplePermit2 + transferFrom2 with a non EIP-2612 native token.snap │ │ │ │ │ │ ├── single recipient 2 tokens.snap │ │ │ │ │ │ ├── single recipient many tokens.snap │ │ │ │ │ │ ├── transferFrom with different owners.snap │ │ │ │ │ │ └── transferFrom.snap │ │ │ │ │ ├── .gas-snapshot │ │ │ │ │ ├── .gitattributes │ │ │ │ │ ├── .github │ │ │ │ │ │ └── workflows │ │ │ │ │ │ │ ├── gas.yml │ │ │ │ │ │ │ ├── integration-tests.yml │ │ │ │ │ │ │ ├── lint.yml │ │ │ │ │ │ │ └── unit-tests.yml │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── .gitmodules │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── README.md │ │ │ │ │ ├── audits │ │ │ │ │ │ ├── ABDKAudit.pdf │ │ │ │ │ │ └── Chainsecurity Audit.pdf │ │ │ │ │ ├── foundry.toml │ │ │ │ │ ├── lib │ │ │ │ │ │ ├── forge-gas-snapshot │ │ │ │ │ │ │ ├── .forge-snapshots │ │ │ │ │ │ │ │ ├── add.snap │ │ │ │ │ │ │ │ ├── addFirst.snap │ │ │ │ │ │ │ │ ├── addSecond.snap │ │ │ │ │ │ │ │ ├── manyAdd.snap │ │ │ │ │ │ │ │ ├── manySstore.snap │ │ │ │ │ │ │ │ ├── snapmanyAdd.snap │ │ │ │ │ │ │ │ └── snapmanySstore.snap │ │ │ │ │ │ │ ├── .github │ │ │ │ │ │ │ │ └── workflows │ │ │ │ │ │ │ │ │ └── test.yml │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ ├── .gitmodules │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── foundry.toml │ │ │ │ │ │ │ ├── src │ │ │ │ │ │ │ │ ├── GasSnapshot.sol │ │ │ │ │ │ │ │ ├── test │ │ │ │ │ │ │ │ │ ├── SimpleOperations.sol │ │ │ │ │ │ │ │ │ └── SimpleOperationsGas.sol │ │ │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ │ │ └── UintString.sol │ │ │ │ │ │ │ └── test │ │ │ │ │ │ │ │ └── GasSnapshot.t.sol │ │ │ │ │ │ ├── forge-std │ │ │ │ │ │ │ ├── .github │ │ │ │ │ │ │ │ └── workflows │ │ │ │ │ │ │ │ │ ├── ci.yml │ │ │ │ │ │ │ │ │ └── sync.yml │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ ├── .gitmodules │ │ │ │ │ │ │ ├── LICENSE-APACHE │ │ │ │ │ │ │ ├── LICENSE-MIT │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── foundry.toml │ │ │ │ │ │ │ ├── lib │ │ │ │ │ │ │ │ └── ds-test │ │ │ │ │ │ │ │ │ ├── .github │ │ │ │ │ │ │ │ │ └── workflows │ │ │ │ │ │ │ │ │ │ └── build.yml │ │ │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ │ │ │ ├── Makefile │ │ │ │ │ │ │ │ │ ├── default.nix │ │ │ │ │ │ │ │ │ ├── demo │ │ │ │ │ │ │ │ │ └── demo.sol │ │ │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ │ │ └── src │ │ │ │ │ │ │ │ │ ├── test.sol │ │ │ │ │ │ │ │ │ └── test.t.sol │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ ├── src │ │ │ │ │ │ │ │ ├── Base.sol │ │ │ │ │ │ │ │ ├── Script.sol │ │ │ │ │ │ │ │ ├── StdAssertions.sol │ │ │ │ │ │ │ │ ├── StdChains.sol │ │ │ │ │ │ │ │ ├── StdCheats.sol │ │ │ │ │ │ │ │ ├── StdError.sol │ │ │ │ │ │ │ │ ├── StdInvariant.sol │ │ │ │ │ │ │ │ ├── StdJson.sol │ │ │ │ │ │ │ │ ├── StdMath.sol │ │ │ │ │ │ │ │ ├── StdStorage.sol │ │ │ │ │ │ │ │ ├── StdStyle.sol │ │ │ │ │ │ │ │ ├── StdUtils.sol │ │ │ │ │ │ │ │ ├── Test.sol │ │ │ │ │ │ │ │ ├── Vm.sol │ │ │ │ │ │ │ │ ├── console.sol │ │ │ │ │ │ │ │ ├── console2.sol │ │ │ │ │ │ │ │ ├── interfaces │ │ │ │ │ │ │ │ │ ├── IERC1155.sol │ │ │ │ │ │ │ │ │ ├── IERC165.sol │ │ │ │ │ │ │ │ │ ├── IERC20.sol │ │ │ │ │ │ │ │ │ ├── IERC4626.sol │ │ │ │ │ │ │ │ │ ├── IERC721.sol │ │ │ │ │ │ │ │ │ └── IMulticall3.sol │ │ │ │ │ │ │ │ └── safeconsole.sol │ │ │ │ │ │ │ └── test │ │ │ │ │ │ │ │ ├── StdAssertions.t.sol │ │ │ │ │ │ │ │ ├── StdChains.t.sol │ │ │ │ │ │ │ │ ├── StdCheats.t.sol │ │ │ │ │ │ │ │ ├── StdError.t.sol │ │ │ │ │ │ │ │ ├── StdMath.t.sol │ │ │ │ │ │ │ │ ├── StdStorage.t.sol │ │ │ │ │ │ │ │ ├── StdStyle.t.sol │ │ │ │ │ │ │ │ ├── StdUtils.t.sol │ │ │ │ │ │ │ │ ├── compilation │ │ │ │ │ │ │ │ ├── CompilationScript.sol │ │ │ │ │ │ │ │ ├── CompilationScriptBase.sol │ │ │ │ │ │ │ │ ├── CompilationTest.sol │ │ │ │ │ │ │ │ └── CompilationTestBase.sol │ │ │ │ │ │ │ │ └── fixtures │ │ │ │ │ │ │ │ └── broadcast.log.json │ │ │ │ │ │ ├── openzeppelin-contracts │ │ │ │ │ │ │ ├── .codecov.yml │ │ │ │ │ │ │ ├── .editorconfig │ │ │ │ │ │ │ ├── .eslintrc │ │ │ │ │ │ │ ├── .gitattributes │ │ │ │ │ │ │ ├── .github │ │ │ │ │ │ │ │ ├── ISSUE_TEMPLATE │ │ │ │ │ │ │ │ │ ├── bug_report.md │ │ │ │ │ │ │ │ │ ├── config.yml │ │ │ │ │ │ │ │ │ └── feature_request.md │ │ │ │ │ │ │ │ ├── PULL_REQUEST_TEMPLATE.md │ │ │ │ │ │ │ │ ├── actions │ │ │ │ │ │ │ │ │ ├── gas-compare │ │ │ │ │ │ │ │ │ │ └── action.yml │ │ │ │ │ │ │ │ │ └── setup │ │ │ │ │ │ │ │ │ │ └── action.yml │ │ │ │ │ │ │ │ └── workflows │ │ │ │ │ │ │ │ │ ├── checks.yml │ │ │ │ │ │ │ │ │ ├── docs.yml │ │ │ │ │ │ │ │ │ └── upgradeable.yml │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ ├── .mocharc.js │ │ │ │ │ │ │ ├── .prettierrc │ │ │ │ │ │ │ ├── .solcover.js │ │ │ │ │ │ │ ├── .solhint.json │ │ │ │ │ │ │ ├── CHANGELOG.md │ │ │ │ │ │ │ ├── CODE_OF_CONDUCT.md │ │ │ │ │ │ │ ├── CONTRIBUTING.md │ │ │ │ │ │ │ ├── DOCUMENTATION.md │ │ │ │ │ │ │ ├── GUIDELINES.md │ │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── RELEASING.md │ │ │ │ │ │ │ ├── SECURITY.md │ │ │ │ │ │ │ ├── audit │ │ │ │ │ │ │ │ ├── 2017-03.md │ │ │ │ │ │ │ │ └── 2018-10.pdf │ │ │ │ │ │ │ ├── certora │ │ │ │ │ │ │ │ ├── Makefile │ │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ │ ├── applyHarness.patch │ │ │ │ │ │ │ │ ├── harnesses │ │ │ │ │ │ │ │ │ ├── ERC20VotesHarness.sol │ │ │ │ │ │ │ │ │ ├── WizardControlFirstPriority.sol │ │ │ │ │ │ │ │ │ └── WizardFirstTry.sol │ │ │ │ │ │ │ │ ├── munged │ │ │ │ │ │ │ │ │ └── .gitignore │ │ │ │ │ │ │ │ ├── scripts │ │ │ │ │ │ │ │ │ ├── Governor.sh │ │ │ │ │ │ │ │ │ ├── GovernorCountingSimple-counting.sh │ │ │ │ │ │ │ │ │ ├── WizardControlFirstPriority.sh │ │ │ │ │ │ │ │ │ ├── WizardFirstTry.sh │ │ │ │ │ │ │ │ │ ├── sanity.sh │ │ │ │ │ │ │ │ │ └── verifyAll.sh │ │ │ │ │ │ │ │ └── specs │ │ │ │ │ │ │ │ │ ├── GovernorBase.spec │ │ │ │ │ │ │ │ │ ├── GovernorCountingSimple.spec │ │ │ │ │ │ │ │ │ ├── RulesInProgress.spec │ │ │ │ │ │ │ │ │ └── sanity.spec │ │ │ │ │ │ │ ├── contracts │ │ │ │ │ │ │ │ ├── access │ │ │ │ │ │ │ │ │ ├── AccessControl.sol │ │ │ │ │ │ │ │ │ ├── AccessControlCrossChain.sol │ │ │ │ │ │ │ │ │ ├── AccessControlEnumerable.sol │ │ │ │ │ │ │ │ │ ├── IAccessControl.sol │ │ │ │ │ │ │ │ │ ├── IAccessControlEnumerable.sol │ │ │ │ │ │ │ │ │ ├── Ownable.sol │ │ │ │ │ │ │ │ │ └── README.adoc │ │ │ │ │ │ │ │ ├── crosschain │ │ │ │ │ │ │ │ │ ├── CrossChainEnabled.sol │ │ │ │ │ │ │ │ │ ├── README.adoc │ │ │ │ │ │ │ │ │ ├── amb │ │ │ │ │ │ │ │ │ │ ├── CrossChainEnabledAMB.sol │ │ │ │ │ │ │ │ │ │ └── LibAMB.sol │ │ │ │ │ │ │ │ │ ├── arbitrum │ │ │ │ │ │ │ │ │ │ ├── CrossChainEnabledArbitrumL1.sol │ │ │ │ │ │ │ │ │ │ ├── CrossChainEnabledArbitrumL2.sol │ │ │ │ │ │ │ │ │ │ ├── LibArbitrumL1.sol │ │ │ │ │ │ │ │ │ │ └── LibArbitrumL2.sol │ │ │ │ │ │ │ │ │ ├── errors.sol │ │ │ │ │ │ │ │ │ ├── optimism │ │ │ │ │ │ │ │ │ │ ├── CrossChainEnabledOptimism.sol │ │ │ │ │ │ │ │ │ │ └── LibOptimism.sol │ │ │ │ │ │ │ │ │ └── polygon │ │ │ │ │ │ │ │ │ │ └── CrossChainEnabledPolygonChild.sol │ │ │ │ │ │ │ │ ├── finance │ │ │ │ │ │ │ │ │ ├── PaymentSplitter.sol │ │ │ │ │ │ │ │ │ ├── README.adoc │ │ │ │ │ │ │ │ │ └── VestingWallet.sol │ │ │ │ │ │ │ │ ├── governance │ │ │ │ │ │ │ │ │ ├── Governor.sol │ │ │ │ │ │ │ │ │ ├── IGovernor.sol │ │ │ │ │ │ │ │ │ ├── README.adoc │ │ │ │ │ │ │ │ │ ├── TimelockController.sol │ │ │ │ │ │ │ │ │ ├── compatibility │ │ │ │ │ │ │ │ │ │ ├── GovernorCompatibilityBravo.sol │ │ │ │ │ │ │ │ │ │ └── IGovernorCompatibilityBravo.sol │ │ │ │ │ │ │ │ │ ├── extensions │ │ │ │ │ │ │ │ │ │ ├── GovernorCountingSimple.sol │ │ │ │ │ │ │ │ │ │ ├── GovernorPreventLateQuorum.sol │ │ │ │ │ │ │ │ │ │ ├── GovernorProposalThreshold.sol │ │ │ │ │ │ │ │ │ │ ├── GovernorSettings.sol │ │ │ │ │ │ │ │ │ │ ├── GovernorTimelockCompound.sol │ │ │ │ │ │ │ │ │ │ ├── GovernorTimelockControl.sol │ │ │ │ │ │ │ │ │ │ ├── GovernorVotes.sol │ │ │ │ │ │ │ │ │ │ ├── GovernorVotesComp.sol │ │ │ │ │ │ │ │ │ │ ├── GovernorVotesQuorumFraction.sol │ │ │ │ │ │ │ │ │ │ └── IGovernorTimelock.sol │ │ │ │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ │ │ │ ├── IVotes.sol │ │ │ │ │ │ │ │ │ │ └── Votes.sol │ │ │ │ │ │ │ │ ├── interfaces │ │ │ │ │ │ │ │ │ ├── IERC1155.sol │ │ │ │ │ │ │ │ │ ├── IERC1155MetadataURI.sol │ │ │ │ │ │ │ │ │ ├── IERC1155Receiver.sol │ │ │ │ │ │ │ │ │ ├── IERC1271.sol │ │ │ │ │ │ │ │ │ ├── IERC1363.sol │ │ │ │ │ │ │ │ │ ├── IERC1363Receiver.sol │ │ │ │ │ │ │ │ │ ├── IERC1363Spender.sol │ │ │ │ │ │ │ │ │ ├── IERC165.sol │ │ │ │ │ │ │ │ │ ├── IERC1820Implementer.sol │ │ │ │ │ │ │ │ │ ├── IERC1820Registry.sol │ │ │ │ │ │ │ │ │ ├── IERC20.sol │ │ │ │ │ │ │ │ │ ├── IERC20Metadata.sol │ │ │ │ │ │ │ │ │ ├── IERC2981.sol │ │ │ │ │ │ │ │ │ ├── IERC3156.sol │ │ │ │ │ │ │ │ │ ├── IERC3156FlashBorrower.sol │ │ │ │ │ │ │ │ │ ├── IERC3156FlashLender.sol │ │ │ │ │ │ │ │ │ ├── IERC4626.sol │ │ │ │ │ │ │ │ │ ├── IERC721.sol │ │ │ │ │ │ │ │ │ ├── IERC721Enumerable.sol │ │ │ │ │ │ │ │ │ ├── IERC721Metadata.sol │ │ │ │ │ │ │ │ │ ├── IERC721Receiver.sol │ │ │ │ │ │ │ │ │ ├── IERC777.sol │ │ │ │ │ │ │ │ │ ├── IERC777Recipient.sol │ │ │ │ │ │ │ │ │ ├── IERC777Sender.sol │ │ │ │ │ │ │ │ │ ├── README.adoc │ │ │ │ │ │ │ │ │ ├── draft-IERC1822.sol │ │ │ │ │ │ │ │ │ └── draft-IERC2612.sol │ │ │ │ │ │ │ │ ├── metatx │ │ │ │ │ │ │ │ │ ├── ERC2771Context.sol │ │ │ │ │ │ │ │ │ ├── MinimalForwarder.sol │ │ │ │ │ │ │ │ │ └── README.adoc │ │ │ │ │ │ │ │ ├── mocks │ │ │ │ │ │ │ │ │ ├── AccessControlCrossChainMock.sol │ │ │ │ │ │ │ │ │ ├── AccessControlEnumerableMock.sol │ │ │ │ │ │ │ │ │ ├── AccessControlMock.sol │ │ │ │ │ │ │ │ │ ├── AddressImpl.sol │ │ │ │ │ │ │ │ │ ├── ArraysImpl.sol │ │ │ │ │ │ │ │ │ ├── BadBeacon.sol │ │ │ │ │ │ │ │ │ ├── Base64Mock.sol │ │ │ │ │ │ │ │ │ ├── BitmapMock.sol │ │ │ │ │ │ │ │ │ ├── CallReceiverMock.sol │ │ │ │ │ │ │ │ │ ├── CheckpointsImpl.sol │ │ │ │ │ │ │ │ │ ├── ClashingImplementation.sol │ │ │ │ │ │ │ │ │ ├── ClonesMock.sol │ │ │ │ │ │ │ │ │ ├── ConditionalEscrowMock.sol │ │ │ │ │ │ │ │ │ ├── ContextMock.sol │ │ │ │ │ │ │ │ │ ├── CountersImpl.sol │ │ │ │ │ │ │ │ │ ├── Create2Impl.sol │ │ │ │ │ │ │ │ │ ├── DoubleEndedQueueMock.sol │ │ │ │ │ │ │ │ │ ├── DummyImplementation.sol │ │ │ │ │ │ │ │ │ ├── ECDSAMock.sol │ │ │ │ │ │ │ │ │ ├── EIP712External.sol │ │ │ │ │ │ │ │ │ ├── ERC1155BurnableMock.sol │ │ │ │ │ │ │ │ │ ├── ERC1155Mock.sol │ │ │ │ │ │ │ │ │ ├── ERC1155PausableMock.sol │ │ │ │ │ │ │ │ │ ├── ERC1155ReceiverMock.sol │ │ │ │ │ │ │ │ │ ├── ERC1155SupplyMock.sol │ │ │ │ │ │ │ │ │ ├── ERC1155URIStorageMock.sol │ │ │ │ │ │ │ │ │ ├── ERC1271WalletMock.sol │ │ │ │ │ │ │ │ │ ├── ERC165 │ │ │ │ │ │ │ │ │ │ ├── ERC165InterfacesSupported.sol │ │ │ │ │ │ │ │ │ │ ├── ERC165MaliciousData.sol │ │ │ │ │ │ │ │ │ │ ├── ERC165MissingData.sol │ │ │ │ │ │ │ │ │ │ └── ERC165NotSupported.sol │ │ │ │ │ │ │ │ │ ├── ERC165CheckerMock.sol │ │ │ │ │ │ │ │ │ ├── ERC165Mock.sol │ │ │ │ │ │ │ │ │ ├── ERC165StorageMock.sol │ │ │ │ │ │ │ │ │ ├── ERC1820ImplementerMock.sol │ │ │ │ │ │ │ │ │ ├── ERC20BurnableMock.sol │ │ │ │ │ │ │ │ │ ├── ERC20CappedMock.sol │ │ │ │ │ │ │ │ │ ├── ERC20DecimalsMock.sol │ │ │ │ │ │ │ │ │ ├── ERC20FlashMintMock.sol │ │ │ │ │ │ │ │ │ ├── ERC20Mock.sol │ │ │ │ │ │ │ │ │ ├── ERC20PausableMock.sol │ │ │ │ │ │ │ │ │ ├── ERC20PermitMock.sol │ │ │ │ │ │ │ │ │ ├── ERC20SnapshotMock.sol │ │ │ │ │ │ │ │ │ ├── ERC20VotesCompMock.sol │ │ │ │ │ │ │ │ │ ├── ERC20VotesMock.sol │ │ │ │ │ │ │ │ │ ├── ERC20WrapperMock.sol │ │ │ │ │ │ │ │ │ ├── ERC2771ContextMock.sol │ │ │ │ │ │ │ │ │ ├── ERC3156FlashBorrowerMock.sol │ │ │ │ │ │ │ │ │ ├── ERC4626Mock.sol │ │ │ │ │ │ │ │ │ ├── ERC721BurnableMock.sol │ │ │ │ │ │ │ │ │ ├── ERC721EnumerableMock.sol │ │ │ │ │ │ │ │ │ ├── ERC721Mock.sol │ │ │ │ │ │ │ │ │ ├── ERC721PausableMock.sol │ │ │ │ │ │ │ │ │ ├── ERC721ReceiverMock.sol │ │ │ │ │ │ │ │ │ ├── ERC721RoyaltyMock.sol │ │ │ │ │ │ │ │ │ ├── ERC721URIStorageMock.sol │ │ │ │ │ │ │ │ │ ├── ERC721VotesMock.sol │ │ │ │ │ │ │ │ │ ├── ERC777Mock.sol │ │ │ │ │ │ │ │ │ ├── ERC777SenderRecipientMock.sol │ │ │ │ │ │ │ │ │ ├── EnumerableMapMock.sol │ │ │ │ │ │ │ │ │ ├── EnumerableSetMock.sol │ │ │ │ │ │ │ │ │ ├── EtherReceiverMock.sol │ │ │ │ │ │ │ │ │ ├── GovernorCompMock.sol │ │ │ │ │ │ │ │ │ ├── GovernorCompatibilityBravoMock.sol │ │ │ │ │ │ │ │ │ ├── GovernorMock.sol │ │ │ │ │ │ │ │ │ ├── GovernorPreventLateQuorumMock.sol │ │ │ │ │ │ │ │ │ ├── GovernorTimelockCompoundMock.sol │ │ │ │ │ │ │ │ │ ├── GovernorTimelockControlMock.sol │ │ │ │ │ │ │ │ │ ├── GovernorVoteMock.sol │ │ │ │ │ │ │ │ │ ├── GovernorWithParamsMock.sol │ │ │ │ │ │ │ │ │ ├── InitializableMock.sol │ │ │ │ │ │ │ │ │ ├── MathMock.sol │ │ │ │ │ │ │ │ │ ├── MerkleProofWrapper.sol │ │ │ │ │ │ │ │ │ ├── MulticallTest.sol │ │ │ │ │ │ │ │ │ ├── MulticallTokenMock.sol │ │ │ │ │ │ │ │ │ ├── MultipleInheritanceInitializableMocks.sol │ │ │ │ │ │ │ │ │ ├── OwnableMock.sol │ │ │ │ │ │ │ │ │ ├── PausableMock.sol │ │ │ │ │ │ │ │ │ ├── PullPaymentMock.sol │ │ │ │ │ │ │ │ │ ├── ReentrancyAttack.sol │ │ │ │ │ │ │ │ │ ├── ReentrancyMock.sol │ │ │ │ │ │ │ │ │ ├── RegressionImplementation.sol │ │ │ │ │ │ │ │ │ ├── SafeCastMock.sol │ │ │ │ │ │ │ │ │ ├── SafeERC20Helper.sol │ │ │ │ │ │ │ │ │ ├── SafeMathMock.sol │ │ │ │ │ │ │ │ │ ├── SignatureCheckerMock.sol │ │ │ │ │ │ │ │ │ ├── SignedMathMock.sol │ │ │ │ │ │ │ │ │ ├── SignedSafeMathMock.sol │ │ │ │ │ │ │ │ │ ├── SingleInheritanceInitializableMocks.sol │ │ │ │ │ │ │ │ │ ├── StorageSlotMock.sol │ │ │ │ │ │ │ │ │ ├── StringsMock.sol │ │ │ │ │ │ │ │ │ ├── TimersBlockNumberImpl.sol │ │ │ │ │ │ │ │ │ ├── TimersTimestampImpl.sol │ │ │ │ │ │ │ │ │ ├── UUPS │ │ │ │ │ │ │ │ │ │ ├── UUPSLegacy.sol │ │ │ │ │ │ │ │ │ │ └── UUPSUpgradeableMock.sol │ │ │ │ │ │ │ │ │ ├── VotesMock.sol │ │ │ │ │ │ │ │ │ ├── compound │ │ │ │ │ │ │ │ │ │ └── CompTimelock.sol │ │ │ │ │ │ │ │ │ ├── crosschain │ │ │ │ │ │ │ │ │ │ ├── bridges.sol │ │ │ │ │ │ │ │ │ │ └── receivers.sol │ │ │ │ │ │ │ │ │ └── wizard │ │ │ │ │ │ │ │ │ │ ├── MyGovernor1.sol │ │ │ │ │ │ │ │ │ │ ├── MyGovernor2.sol │ │ │ │ │ │ │ │ │ │ └── MyGovernor3.sol │ │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ │ ├── proxy │ │ │ │ │ │ │ │ │ ├── Clones.sol │ │ │ │ │ │ │ │ │ ├── ERC1967 │ │ │ │ │ │ │ │ │ │ ├── ERC1967Proxy.sol │ │ │ │ │ │ │ │ │ │ └── ERC1967Upgrade.sol │ │ │ │ │ │ │ │ │ ├── Proxy.sol │ │ │ │ │ │ │ │ │ ├── README.adoc │ │ │ │ │ │ │ │ │ ├── beacon │ │ │ │ │ │ │ │ │ │ ├── BeaconProxy.sol │ │ │ │ │ │ │ │ │ │ ├── IBeacon.sol │ │ │ │ │ │ │ │ │ │ └── UpgradeableBeacon.sol │ │ │ │ │ │ │ │ │ ├── transparent │ │ │ │ │ │ │ │ │ │ ├── ProxyAdmin.sol │ │ │ │ │ │ │ │ │ │ └── TransparentUpgradeableProxy.sol │ │ │ │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ │ │ │ ├── Initializable.sol │ │ │ │ │ │ │ │ │ │ └── UUPSUpgradeable.sol │ │ │ │ │ │ │ │ ├── security │ │ │ │ │ │ │ │ │ ├── Pausable.sol │ │ │ │ │ │ │ │ │ ├── PullPayment.sol │ │ │ │ │ │ │ │ │ ├── README.adoc │ │ │ │ │ │ │ │ │ └── ReentrancyGuard.sol │ │ │ │ │ │ │ │ ├── token │ │ │ │ │ │ │ │ │ ├── ERC1155 │ │ │ │ │ │ │ │ │ │ ├── ERC1155.sol │ │ │ │ │ │ │ │ │ │ ├── IERC1155.sol │ │ │ │ │ │ │ │ │ │ ├── IERC1155Receiver.sol │ │ │ │ │ │ │ │ │ │ ├── README.adoc │ │ │ │ │ │ │ │ │ │ ├── extensions │ │ │ │ │ │ │ │ │ │ │ ├── ERC1155Burnable.sol │ │ │ │ │ │ │ │ │ │ │ ├── ERC1155Pausable.sol │ │ │ │ │ │ │ │ │ │ │ ├── ERC1155Supply.sol │ │ │ │ │ │ │ │ │ │ │ ├── ERC1155URIStorage.sol │ │ │ │ │ │ │ │ │ │ │ └── IERC1155MetadataURI.sol │ │ │ │ │ │ │ │ │ │ ├── presets │ │ │ │ │ │ │ │ │ │ │ ├── ERC1155PresetMinterPauser.sol │ │ │ │ │ │ │ │ │ │ │ └── README.md │ │ │ │ │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ │ │ │ │ ├── ERC1155Holder.sol │ │ │ │ │ │ │ │ │ │ │ └── ERC1155Receiver.sol │ │ │ │ │ │ │ │ │ ├── ERC20 │ │ │ │ │ │ │ │ │ │ ├── ERC20.sol │ │ │ │ │ │ │ │ │ │ ├── IERC20.sol │ │ │ │ │ │ │ │ │ │ ├── README.adoc │ │ │ │ │ │ │ │ │ │ ├── extensions │ │ │ │ │ │ │ │ │ │ │ ├── ERC20Burnable.sol │ │ │ │ │ │ │ │ │ │ │ ├── ERC20Capped.sol │ │ │ │ │ │ │ │ │ │ │ ├── ERC20FlashMint.sol │ │ │ │ │ │ │ │ │ │ │ ├── ERC20Pausable.sol │ │ │ │ │ │ │ │ │ │ │ ├── ERC20Snapshot.sol │ │ │ │ │ │ │ │ │ │ │ ├── ERC20Votes.sol │ │ │ │ │ │ │ │ │ │ │ ├── ERC20VotesComp.sol │ │ │ │ │ │ │ │ │ │ │ ├── ERC20Wrapper.sol │ │ │ │ │ │ │ │ │ │ │ ├── ERC4626.sol │ │ │ │ │ │ │ │ │ │ │ ├── IERC20Metadata.sol │ │ │ │ │ │ │ │ │ │ │ ├── draft-ERC20Permit.sol │ │ │ │ │ │ │ │ │ │ │ └── draft-IERC20Permit.sol │ │ │ │ │ │ │ │ │ │ ├── presets │ │ │ │ │ │ │ │ │ │ │ ├── ERC20PresetFixedSupply.sol │ │ │ │ │ │ │ │ │ │ │ ├── ERC20PresetMinterPauser.sol │ │ │ │ │ │ │ │ │ │ │ └── README.md │ │ │ │ │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ │ │ │ │ ├── SafeERC20.sol │ │ │ │ │ │ │ │ │ │ │ └── TokenTimelock.sol │ │ │ │ │ │ │ │ │ ├── ERC721 │ │ │ │ │ │ │ │ │ │ ├── ERC721.sol │ │ │ │ │ │ │ │ │ │ ├── IERC721.sol │ │ │ │ │ │ │ │ │ │ ├── IERC721Receiver.sol │ │ │ │ │ │ │ │ │ │ ├── README.adoc │ │ │ │ │ │ │ │ │ │ ├── extensions │ │ │ │ │ │ │ │ │ │ │ ├── ERC721Burnable.sol │ │ │ │ │ │ │ │ │ │ │ ├── ERC721Enumerable.sol │ │ │ │ │ │ │ │ │ │ │ ├── ERC721Pausable.sol │ │ │ │ │ │ │ │ │ │ │ ├── ERC721Royalty.sol │ │ │ │ │ │ │ │ │ │ │ ├── ERC721URIStorage.sol │ │ │ │ │ │ │ │ │ │ │ ├── IERC721Enumerable.sol │ │ │ │ │ │ │ │ │ │ │ ├── IERC721Metadata.sol │ │ │ │ │ │ │ │ │ │ │ └── draft-ERC721Votes.sol │ │ │ │ │ │ │ │ │ │ ├── presets │ │ │ │ │ │ │ │ │ │ │ ├── ERC721PresetMinterPauserAutoId.sol │ │ │ │ │ │ │ │ │ │ │ └── README.md │ │ │ │ │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ │ │ │ │ └── ERC721Holder.sol │ │ │ │ │ │ │ │ │ ├── ERC777 │ │ │ │ │ │ │ │ │ │ ├── ERC777.sol │ │ │ │ │ │ │ │ │ │ ├── IERC777.sol │ │ │ │ │ │ │ │ │ │ ├── IERC777Recipient.sol │ │ │ │ │ │ │ │ │ │ ├── IERC777Sender.sol │ │ │ │ │ │ │ │ │ │ ├── README.adoc │ │ │ │ │ │ │ │ │ │ └── presets │ │ │ │ │ │ │ │ │ │ │ └── ERC777PresetFixedSupply.sol │ │ │ │ │ │ │ │ │ └── common │ │ │ │ │ │ │ │ │ │ ├── ERC2981.sol │ │ │ │ │ │ │ │ │ │ └── README.adoc │ │ │ │ │ │ │ │ ├── utils │ │ │ │ │ │ │ │ │ ├── Address.sol │ │ │ │ │ │ │ │ │ ├── Arrays.sol │ │ │ │ │ │ │ │ │ ├── Base64.sol │ │ │ │ │ │ │ │ │ ├── Checkpoints.sol │ │ │ │ │ │ │ │ │ ├── Context.sol │ │ │ │ │ │ │ │ │ ├── Counters.sol │ │ │ │ │ │ │ │ │ ├── Create2.sol │ │ │ │ │ │ │ │ │ ├── Multicall.sol │ │ │ │ │ │ │ │ │ ├── README.adoc │ │ │ │ │ │ │ │ │ ├── StorageSlot.sol │ │ │ │ │ │ │ │ │ ├── Strings.sol │ │ │ │ │ │ │ │ │ ├── Timers.sol │ │ │ │ │ │ │ │ │ ├── cryptography │ │ │ │ │ │ │ │ │ │ ├── ECDSA.sol │ │ │ │ │ │ │ │ │ │ ├── MerkleProof.sol │ │ │ │ │ │ │ │ │ │ ├── SignatureChecker.sol │ │ │ │ │ │ │ │ │ │ └── draft-EIP712.sol │ │ │ │ │ │ │ │ │ ├── escrow │ │ │ │ │ │ │ │ │ │ ├── ConditionalEscrow.sol │ │ │ │ │ │ │ │ │ │ ├── Escrow.sol │ │ │ │ │ │ │ │ │ │ └── RefundEscrow.sol │ │ │ │ │ │ │ │ │ ├── introspection │ │ │ │ │ │ │ │ │ │ ├── ERC165.sol │ │ │ │ │ │ │ │ │ │ ├── ERC165Checker.sol │ │ │ │ │ │ │ │ │ │ ├── ERC165Storage.sol │ │ │ │ │ │ │ │ │ │ ├── ERC1820Implementer.sol │ │ │ │ │ │ │ │ │ │ ├── IERC165.sol │ │ │ │ │ │ │ │ │ │ ├── IERC1820Implementer.sol │ │ │ │ │ │ │ │ │ │ └── IERC1820Registry.sol │ │ │ │ │ │ │ │ │ ├── math │ │ │ │ │ │ │ │ │ │ ├── Math.sol │ │ │ │ │ │ │ │ │ │ ├── SafeCast.sol │ │ │ │ │ │ │ │ │ │ ├── SafeMath.sol │ │ │ │ │ │ │ │ │ │ ├── SignedMath.sol │ │ │ │ │ │ │ │ │ │ └── SignedSafeMath.sol │ │ │ │ │ │ │ │ │ └── structs │ │ │ │ │ │ │ │ │ │ ├── BitMaps.sol │ │ │ │ │ │ │ │ │ │ ├── DoubleEndedQueue.sol │ │ │ │ │ │ │ │ │ │ ├── EnumerableMap.sol │ │ │ │ │ │ │ │ │ │ └── EnumerableSet.sol │ │ │ │ │ │ │ │ └── vendor │ │ │ │ │ │ │ │ │ ├── amb │ │ │ │ │ │ │ │ │ └── IAMB.sol │ │ │ │ │ │ │ │ │ ├── arbitrum │ │ │ │ │ │ │ │ │ ├── IArbSys.sol │ │ │ │ │ │ │ │ │ ├── IBridge.sol │ │ │ │ │ │ │ │ │ ├── IInbox.sol │ │ │ │ │ │ │ │ │ ├── IMessageProvider.sol │ │ │ │ │ │ │ │ │ └── IOutbox.sol │ │ │ │ │ │ │ │ │ ├── compound │ │ │ │ │ │ │ │ │ ├── ICompoundTimelock.sol │ │ │ │ │ │ │ │ │ └── LICENSE │ │ │ │ │ │ │ │ │ ├── optimism │ │ │ │ │ │ │ │ │ ├── ICrossDomainMessenger.sol │ │ │ │ │ │ │ │ │ └── LICENSE │ │ │ │ │ │ │ │ │ └── polygon │ │ │ │ │ │ │ │ │ └── IFxMessageProcessor.sol │ │ │ │ │ │ │ ├── hardhat.config.js │ │ │ │ │ │ │ ├── hardhat │ │ │ │ │ │ │ │ └── env-contract.js │ │ │ │ │ │ │ ├── logo.svg │ │ │ │ │ │ │ ├── migrations │ │ │ │ │ │ │ │ └── .gitkeep │ │ │ │ │ │ │ ├── netlify.toml │ │ │ │ │ │ │ ├── package-lock.json │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ ├── renovate.json │ │ │ │ │ │ │ ├── scripts │ │ │ │ │ │ │ │ ├── checks │ │ │ │ │ │ │ │ │ ├── compareGasReports.js │ │ │ │ │ │ │ │ │ ├── generation.sh │ │ │ │ │ │ │ │ │ └── inheritance-ordering.js │ │ │ │ │ │ │ │ ├── gen-nav.js │ │ │ │ │ │ │ │ ├── generate │ │ │ │ │ │ │ │ │ ├── format-lines.js │ │ │ │ │ │ │ │ │ ├── run.js │ │ │ │ │ │ │ │ │ └── templates │ │ │ │ │ │ │ │ │ │ ├── SafeCast.js │ │ │ │ │ │ │ │ │ │ └── SafeCastMock.js │ │ │ │ │ │ │ │ ├── git-user-config.sh │ │ │ │ │ │ │ │ ├── helpers.js │ │ │ │ │ │ │ │ ├── migrate-imports.js │ │ │ │ │ │ │ │ ├── prepack.sh │ │ │ │ │ │ │ │ ├── prepare-contracts-package.sh │ │ │ │ │ │ │ │ ├── prepare-docs-solc.js │ │ │ │ │ │ │ │ ├── prepare-docs.sh │ │ │ │ │ │ │ │ ├── prepare.sh │ │ │ │ │ │ │ │ ├── release │ │ │ │ │ │ │ │ │ ├── release.sh │ │ │ │ │ │ │ │ │ ├── synchronize-versions.js │ │ │ │ │ │ │ │ │ ├── update-changelog-release-date.js │ │ │ │ │ │ │ │ │ ├── update-comment.js │ │ │ │ │ │ │ │ │ └── version.sh │ │ │ │ │ │ │ │ ├── remove-ignored-artifacts.js │ │ │ │ │ │ │ │ └── update-docs-branch.js │ │ │ │ │ │ │ ├── slither.config.json │ │ │ │ │ │ │ └── test │ │ │ │ │ │ │ │ ├── TESTING.md │ │ │ │ │ │ │ │ ├── access │ │ │ │ │ │ │ │ ├── AccessControl.behavior.js │ │ │ │ │ │ │ │ ├── AccessControl.test.js │ │ │ │ │ │ │ │ ├── AccessControlCrossChain.test.js │ │ │ │ │ │ │ │ ├── AccessControlEnumerable.test.js │ │ │ │ │ │ │ │ └── Ownable.test.js │ │ │ │ │ │ │ │ ├── crosschain │ │ │ │ │ │ │ │ └── CrossChainEnabled.test.js │ │ │ │ │ │ │ │ ├── finance │ │ │ │ │ │ │ │ ├── PaymentSplitter.test.js │ │ │ │ │ │ │ │ ├── VestingWallet.behavior.js │ │ │ │ │ │ │ │ └── VestingWallet.test.js │ │ │ │ │ │ │ │ ├── governance │ │ │ │ │ │ │ │ ├── Governor.test.js │ │ │ │ │ │ │ │ ├── TimelockController.test.js │ │ │ │ │ │ │ │ ├── compatibility │ │ │ │ │ │ │ │ │ └── GovernorCompatibilityBravo.test.js │ │ │ │ │ │ │ │ ├── extensions │ │ │ │ │ │ │ │ │ ├── GovernorComp.test.js │ │ │ │ │ │ │ │ │ ├── GovernorERC721.test.js │ │ │ │ │ │ │ │ │ ├── GovernorPreventLateQuorum.test.js │ │ │ │ │ │ │ │ │ ├── GovernorTimelockCompound.test.js │ │ │ │ │ │ │ │ │ ├── GovernorTimelockControl.test.js │ │ │ │ │ │ │ │ │ ├── GovernorWeightQuorumFraction.test.js │ │ │ │ │ │ │ │ │ └── GovernorWithParams.test.js │ │ │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ │ │ ├── Votes.behavior.js │ │ │ │ │ │ │ │ │ └── Votes.test.js │ │ │ │ │ │ │ │ ├── helpers │ │ │ │ │ │ │ │ ├── create2.js │ │ │ │ │ │ │ │ ├── crosschain.js │ │ │ │ │ │ │ │ ├── customError.js │ │ │ │ │ │ │ │ ├── eip712.js │ │ │ │ │ │ │ │ ├── enums.js │ │ │ │ │ │ │ │ ├── erc1967.js │ │ │ │ │ │ │ │ ├── governance.js │ │ │ │ │ │ │ │ ├── sign.js │ │ │ │ │ │ │ │ └── txpool.js │ │ │ │ │ │ │ │ ├── metatx │ │ │ │ │ │ │ │ ├── ERC2771Context.test.js │ │ │ │ │ │ │ │ └── MinimalForwarder.test.js │ │ │ │ │ │ │ │ ├── migrate-imports.test.js │ │ │ │ │ │ │ │ ├── proxy │ │ │ │ │ │ │ │ ├── Clones.behaviour.js │ │ │ │ │ │ │ │ ├── Clones.test.js │ │ │ │ │ │ │ │ ├── ERC1967 │ │ │ │ │ │ │ │ │ └── ERC1967Proxy.test.js │ │ │ │ │ │ │ │ ├── Proxy.behaviour.js │ │ │ │ │ │ │ │ ├── beacon │ │ │ │ │ │ │ │ │ ├── BeaconProxy.test.js │ │ │ │ │ │ │ │ │ └── UpgradeableBeacon.test.js │ │ │ │ │ │ │ │ ├── transparent │ │ │ │ │ │ │ │ │ ├── ProxyAdmin.test.js │ │ │ │ │ │ │ │ │ ├── TransparentUpgradeableProxy.behaviour.js │ │ │ │ │ │ │ │ │ └── TransparentUpgradeableProxy.test.js │ │ │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ │ │ ├── Initializable.test.js │ │ │ │ │ │ │ │ │ └── UUPSUpgradeable.test.js │ │ │ │ │ │ │ │ ├── security │ │ │ │ │ │ │ │ ├── Pausable.test.js │ │ │ │ │ │ │ │ ├── PullPayment.test.js │ │ │ │ │ │ │ │ └── ReentrancyGuard.test.js │ │ │ │ │ │ │ │ ├── token │ │ │ │ │ │ │ │ ├── ERC1155 │ │ │ │ │ │ │ │ │ ├── ERC1155.behavior.js │ │ │ │ │ │ │ │ │ ├── ERC1155.test.js │ │ │ │ │ │ │ │ │ ├── extensions │ │ │ │ │ │ │ │ │ │ ├── ERC1155Burnable.test.js │ │ │ │ │ │ │ │ │ │ ├── ERC1155Pausable.test.js │ │ │ │ │ │ │ │ │ │ ├── ERC1155Supply.test.js │ │ │ │ │ │ │ │ │ │ └── ERC1155URIStorage.test.js │ │ │ │ │ │ │ │ │ ├── presets │ │ │ │ │ │ │ │ │ │ └── ERC1155PresetMinterPauser.test.js │ │ │ │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ │ │ │ └── ERC1155Holder.test.js │ │ │ │ │ │ │ │ ├── ERC20 │ │ │ │ │ │ │ │ │ ├── ERC20.behavior.js │ │ │ │ │ │ │ │ │ ├── ERC20.test.js │ │ │ │ │ │ │ │ │ ├── extensions │ │ │ │ │ │ │ │ │ │ ├── ERC20Burnable.behavior.js │ │ │ │ │ │ │ │ │ │ ├── ERC20Burnable.test.js │ │ │ │ │ │ │ │ │ │ ├── ERC20Capped.behavior.js │ │ │ │ │ │ │ │ │ │ ├── ERC20Capped.test.js │ │ │ │ │ │ │ │ │ │ ├── ERC20FlashMint.test.js │ │ │ │ │ │ │ │ │ │ ├── ERC20Pausable.test.js │ │ │ │ │ │ │ │ │ │ ├── ERC20Snapshot.test.js │ │ │ │ │ │ │ │ │ │ ├── ERC20Votes.test.js │ │ │ │ │ │ │ │ │ │ ├── ERC20VotesComp.test.js │ │ │ │ │ │ │ │ │ │ ├── ERC20Wrapper.test.js │ │ │ │ │ │ │ │ │ │ ├── ERC4626.test.js │ │ │ │ │ │ │ │ │ │ └── draft-ERC20Permit.test.js │ │ │ │ │ │ │ │ │ ├── presets │ │ │ │ │ │ │ │ │ │ ├── ERC20PresetFixedSupply.test.js │ │ │ │ │ │ │ │ │ │ └── ERC20PresetMinterPauser.test.js │ │ │ │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ │ │ │ ├── SafeERC20.test.js │ │ │ │ │ │ │ │ │ │ └── TokenTimelock.test.js │ │ │ │ │ │ │ │ ├── ERC721 │ │ │ │ │ │ │ │ │ ├── ERC721.behavior.js │ │ │ │ │ │ │ │ │ ├── ERC721.test.js │ │ │ │ │ │ │ │ │ ├── ERC721Enumerable.test.js │ │ │ │ │ │ │ │ │ ├── extensions │ │ │ │ │ │ │ │ │ │ ├── ERC721Burnable.test.js │ │ │ │ │ │ │ │ │ │ ├── ERC721Pausable.test.js │ │ │ │ │ │ │ │ │ │ ├── ERC721Royalty.test.js │ │ │ │ │ │ │ │ │ │ ├── ERC721URIStorage.test.js │ │ │ │ │ │ │ │ │ │ └── ERC721Votes.test.js │ │ │ │ │ │ │ │ │ ├── presets │ │ │ │ │ │ │ │ │ │ └── ERC721PresetMinterPauserAutoId.test.js │ │ │ │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ │ │ │ └── ERC721Holder.test.js │ │ │ │ │ │ │ │ ├── ERC777 │ │ │ │ │ │ │ │ │ ├── ERC777.behavior.js │ │ │ │ │ │ │ │ │ ├── ERC777.test.js │ │ │ │ │ │ │ │ │ └── presets │ │ │ │ │ │ │ │ │ │ └── ERC777PresetFixedSupply.test.js │ │ │ │ │ │ │ │ └── common │ │ │ │ │ │ │ │ │ └── ERC2981.behavior.js │ │ │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ │ ├── Address.test.js │ │ │ │ │ │ │ │ ├── Arrays.test.js │ │ │ │ │ │ │ │ ├── Base64.test.js │ │ │ │ │ │ │ │ ├── Checkpoints.test.js │ │ │ │ │ │ │ │ ├── Context.behavior.js │ │ │ │ │ │ │ │ ├── Context.test.js │ │ │ │ │ │ │ │ ├── Counters.test.js │ │ │ │ │ │ │ │ ├── Create2.test.js │ │ │ │ │ │ │ │ ├── Multicall.test.js │ │ │ │ │ │ │ │ ├── StorageSlot.test.js │ │ │ │ │ │ │ │ ├── Strings.test.js │ │ │ │ │ │ │ │ ├── TimersBlockNumberImpl.test.js │ │ │ │ │ │ │ │ ├── TimersTimestamp.test.js │ │ │ │ │ │ │ │ ├── cryptography │ │ │ │ │ │ │ │ ├── ECDSA.test.js │ │ │ │ │ │ │ │ ├── MerkleProof.test.js │ │ │ │ │ │ │ │ ├── SignatureChecker.test.js │ │ │ │ │ │ │ │ └── draft-EIP712.test.js │ │ │ │ │ │ │ │ ├── escrow │ │ │ │ │ │ │ │ ├── ConditionalEscrow.test.js │ │ │ │ │ │ │ │ ├── Escrow.behavior.js │ │ │ │ │ │ │ │ ├── Escrow.test.js │ │ │ │ │ │ │ │ └── RefundEscrow.test.js │ │ │ │ │ │ │ │ ├── introspection │ │ │ │ │ │ │ │ ├── ERC165.test.js │ │ │ │ │ │ │ │ ├── ERC165Checker.test.js │ │ │ │ │ │ │ │ ├── ERC165Storage.test.js │ │ │ │ │ │ │ │ ├── ERC1820Implementer.test.js │ │ │ │ │ │ │ │ └── SupportsInterface.behavior.js │ │ │ │ │ │ │ │ ├── math │ │ │ │ │ │ │ │ ├── Math.test.js │ │ │ │ │ │ │ │ ├── SafeCast.test.js │ │ │ │ │ │ │ │ ├── SafeMath.test.js │ │ │ │ │ │ │ │ ├── SignedMath.test.js │ │ │ │ │ │ │ │ └── SignedSafeMath.test.js │ │ │ │ │ │ │ │ └── structs │ │ │ │ │ │ │ │ ├── BitMap.test.js │ │ │ │ │ │ │ │ ├── DoubleEndedQueue.test.js │ │ │ │ │ │ │ │ ├── EnumerableMap.behavior.js │ │ │ │ │ │ │ │ ├── EnumerableMap.test.js │ │ │ │ │ │ │ │ ├── EnumerableSet.behavior.js │ │ │ │ │ │ │ │ └── EnumerableSet.test.js │ │ │ │ │ │ └── solmate │ │ │ │ │ │ │ ├── .gas-snapshot │ │ │ │ │ │ │ ├── .gitattributes │ │ │ │ │ │ │ ├── .github │ │ │ │ │ │ │ ├── pull_request_template.md │ │ │ │ │ │ │ └── workflows │ │ │ │ │ │ │ │ └── tests.yml │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ ├── .gitmodules │ │ │ │ │ │ │ ├── .prettierignore │ │ │ │ │ │ │ ├── .prettierrc │ │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── audits │ │ │ │ │ │ │ └── v6-Fixed-Point-Solutions.pdf │ │ │ │ │ │ │ ├── foundry.toml │ │ │ │ │ │ │ ├── lib │ │ │ │ │ │ │ └── ds-test │ │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ │ │ ├── Makefile │ │ │ │ │ │ │ │ ├── default.nix │ │ │ │ │ │ │ │ ├── demo │ │ │ │ │ │ │ │ └── demo.sol │ │ │ │ │ │ │ │ └── src │ │ │ │ │ │ │ │ └── test.sol │ │ │ │ │ │ │ ├── package-lock.json │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ └── src │ │ │ │ │ │ │ ├── auth │ │ │ │ │ │ │ ├── Auth.sol │ │ │ │ │ │ │ ├── Owned.sol │ │ │ │ │ │ │ └── authorities │ │ │ │ │ │ │ │ ├── MultiRolesAuthority.sol │ │ │ │ │ │ │ │ └── RolesAuthority.sol │ │ │ │ │ │ │ ├── mixins │ │ │ │ │ │ │ └── ERC4626.sol │ │ │ │ │ │ │ ├── test │ │ │ │ │ │ │ ├── Auth.t.sol │ │ │ │ │ │ │ ├── Bytes32AddressLib.t.sol │ │ │ │ │ │ │ ├── CREATE3.t.sol │ │ │ │ │ │ │ ├── DSTestPlus.t.sol │ │ │ │ │ │ │ ├── ERC1155.t.sol │ │ │ │ │ │ │ ├── ERC20.t.sol │ │ │ │ │ │ │ ├── ERC4626.t.sol │ │ │ │ │ │ │ ├── ERC721.t.sol │ │ │ │ │ │ │ ├── FixedPointMathLib.t.sol │ │ │ │ │ │ │ ├── LibString.t.sol │ │ │ │ │ │ │ ├── MerkleProofLib.t.sol │ │ │ │ │ │ │ ├── MultiRolesAuthority.t.sol │ │ │ │ │ │ │ ├── Owned.t.sol │ │ │ │ │ │ │ ├── ReentrancyGuard.t.sol │ │ │ │ │ │ │ ├── RolesAuthority.t.sol │ │ │ │ │ │ │ ├── SSTORE2.t.sol │ │ │ │ │ │ │ ├── SafeCastLib.t.sol │ │ │ │ │ │ │ ├── SafeTransferLib.t.sol │ │ │ │ │ │ │ ├── SignedWadMath.t.sol │ │ │ │ │ │ │ ├── WETH.t.sol │ │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ │ ├── DSInvariantTest.sol │ │ │ │ │ │ │ │ ├── DSTestPlus.sol │ │ │ │ │ │ │ │ ├── Hevm.sol │ │ │ │ │ │ │ │ ├── mocks │ │ │ │ │ │ │ │ ├── MockAuthChild.sol │ │ │ │ │ │ │ │ ├── MockAuthority.sol │ │ │ │ │ │ │ │ ├── MockERC1155.sol │ │ │ │ │ │ │ │ ├── MockERC20.sol │ │ │ │ │ │ │ │ ├── MockERC4626.sol │ │ │ │ │ │ │ │ ├── MockERC721.sol │ │ │ │ │ │ │ │ └── MockOwned.sol │ │ │ │ │ │ │ │ └── weird-tokens │ │ │ │ │ │ │ │ ├── MissingReturnToken.sol │ │ │ │ │ │ │ │ ├── ReturnsFalseToken.sol │ │ │ │ │ │ │ │ ├── ReturnsGarbageToken.sol │ │ │ │ │ │ │ │ ├── ReturnsTooLittleToken.sol │ │ │ │ │ │ │ │ ├── ReturnsTooMuchToken.sol │ │ │ │ │ │ │ │ ├── ReturnsTwoToken.sol │ │ │ │ │ │ │ │ └── RevertingToken.sol │ │ │ │ │ │ │ ├── tokens │ │ │ │ │ │ │ ├── ERC1155.sol │ │ │ │ │ │ │ ├── ERC20.sol │ │ │ │ │ │ │ ├── ERC721.sol │ │ │ │ │ │ │ └── WETH.sol │ │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ ├── Bytes32AddressLib.sol │ │ │ │ │ │ │ ├── CREATE3.sol │ │ │ │ │ │ │ ├── FixedPointMathLib.sol │ │ │ │ │ │ │ ├── LibString.sol │ │ │ │ │ │ │ ├── MerkleProofLib.sol │ │ │ │ │ │ │ ├── ReentrancyGuard.sol │ │ │ │ │ │ │ ├── SSTORE2.sol │ │ │ │ │ │ │ ├── SafeCastLib.sol │ │ │ │ │ │ │ ├── SafeTransferLib.sol │ │ │ │ │ │ │ └── SignedWadMath.sol │ │ │ │ │ ├── package.json │ │ │ │ │ ├── remappings.txt │ │ │ │ │ ├── script │ │ │ │ │ │ └── DeployPermit2.s.sol │ │ │ │ │ ├── src │ │ │ │ │ │ ├── AllowanceTransfer.sol │ │ │ │ │ │ ├── EIP712.sol │ │ │ │ │ │ ├── Permit2.sol │ │ │ │ │ │ ├── PermitErrors.sol │ │ │ │ │ │ ├── SignatureTransfer.sol │ │ │ │ │ │ ├── interfaces │ │ │ │ │ │ │ ├── IAllowanceTransfer.sol │ │ │ │ │ │ │ ├── IDAIPermit.sol │ │ │ │ │ │ │ ├── IEIP712.sol │ │ │ │ │ │ │ ├── IERC1271.sol │ │ │ │ │ │ │ ├── IPermit2.sol │ │ │ │ │ │ │ └── ISignatureTransfer.sol │ │ │ │ │ │ └── libraries │ │ │ │ │ │ │ ├── Allowance.sol │ │ │ │ │ │ │ ├── Permit2Lib.sol │ │ │ │ │ │ │ ├── PermitHash.sol │ │ │ │ │ │ │ ├── SafeCast160.sol │ │ │ │ │ │ │ └── SignatureVerification.sol │ │ │ │ │ └── test │ │ │ │ │ │ ├── AllowanceTransferInvariants.t.sol │ │ │ │ │ │ ├── AllowanceTransferTest.t.sol │ │ │ │ │ │ ├── AllowanceUnitTest.sol │ │ │ │ │ │ ├── CompactSignature.t.sol │ │ │ │ │ │ ├── EIP712.t.sol │ │ │ │ │ │ ├── NonceBitmap.t.sol │ │ │ │ │ │ ├── Permit2Lib.t.sol │ │ │ │ │ │ ├── SignatureTransfer.t.sol │ │ │ │ │ │ ├── TypehashGeneration.t.sol │ │ │ │ │ │ ├── actors │ │ │ │ │ │ ├── Permitter.sol │ │ │ │ │ │ └── Spender.sol │ │ │ │ │ │ ├── integration │ │ │ │ │ │ ├── Argent.t.sol │ │ │ │ │ │ ├── GnosisSafe.t.sol │ │ │ │ │ │ ├── MainnetToken.t.sol │ │ │ │ │ │ └── tokens │ │ │ │ │ │ │ ├── DAI.t.sol │ │ │ │ │ │ │ ├── FeeOnTransferToken.t.sol │ │ │ │ │ │ │ ├── RebasingToken.t.sol │ │ │ │ │ │ │ ├── TooManyReturnBytesToken.t.sol │ │ │ │ │ │ │ ├── UNI.t.sol │ │ │ │ │ │ │ ├── USDC.t.sol │ │ │ │ │ │ │ ├── USDT.t.sol │ │ │ │ │ │ │ ├── WBTC.t.sol │ │ │ │ │ │ │ └── ZRX.t.sol │ │ │ │ │ │ ├── mocks │ │ │ │ │ │ ├── MockERC1155.sol │ │ │ │ │ │ ├── MockERC20.sol │ │ │ │ │ │ ├── MockERC721.sol │ │ │ │ │ │ ├── MockFallbackERC20.sol │ │ │ │ │ │ ├── MockHash.sol │ │ │ │ │ │ ├── MockNonPermitERC20.sol │ │ │ │ │ │ ├── MockNonPermitNonERC20WithDS.sol │ │ │ │ │ │ ├── MockPermit2.sol │ │ │ │ │ │ ├── MockPermit2Lib.sol │ │ │ │ │ │ ├── MockPermitWithDS.sol │ │ │ │ │ │ └── MockSignatureVerification.sol │ │ │ │ │ │ └── utils │ │ │ │ │ │ ├── AddressBuilder.sol │ │ │ │ │ │ ├── AmountBuilder.sol │ │ │ │ │ │ ├── DeployPermit2.sol │ │ │ │ │ │ ├── DeployPermit2.t.sol │ │ │ │ │ │ ├── PermitSignature.sol │ │ │ │ │ │ ├── StructBuilder.sol │ │ │ │ │ │ └── TokenProvider.sol │ │ │ │ └── v4-core │ │ │ │ │ ├── .forge-snapshots │ │ │ │ │ ├── BitMathLeastSignificantBitMaxUint128.snap │ │ │ │ │ ├── BitMathLeastSignificantBitMaxUint256.snap │ │ │ │ │ ├── BitMathLeastSignificantBitSmallNumber.snap │ │ │ │ │ ├── BitMathMostSignificantBitMaxUint128.snap │ │ │ │ │ ├── BitMathMostSignificantBitMaxUint256.snap │ │ │ │ │ ├── BitMathMostSignificantBitSmallNumber.snap │ │ │ │ │ ├── ERC6909Claims approve.snap │ │ │ │ │ ├── ERC6909Claims burn.snap │ │ │ │ │ ├── ERC6909Claims mint.snap │ │ │ │ │ ├── ERC6909Claims transfer.snap │ │ │ │ │ ├── ERC6909Claims transferFrom as operator.snap │ │ │ │ │ ├── ERC6909Claims transferFrom with approval.snap │ │ │ │ │ ├── ERC6909Claims transferFrom with infinite approval.snap │ │ │ │ │ ├── NoDelegateCall.snap │ │ │ │ │ ├── SwapMath_oneForZero_exactInCapped.snap │ │ │ │ │ ├── SwapMath_oneForZero_exactInPartial.snap │ │ │ │ │ ├── SwapMath_oneForZero_exactOutCapped.snap │ │ │ │ │ ├── SwapMath_oneForZero_exactOutPartial.snap │ │ │ │ │ ├── SwapMath_zeroForOne_exactInCapped.snap │ │ │ │ │ ├── SwapMath_zeroForOne_exactInPartial.snap │ │ │ │ │ ├── SwapMath_zeroForOne_exactOutCapped.snap │ │ │ │ │ ├── SwapMath_zeroForOne_exactOutPartial.snap │ │ │ │ │ ├── TickMathGetSqrtPriceAtTick.snap │ │ │ │ │ ├── TickMathGetTickAtSqrtPrice.snap │ │ │ │ │ ├── add liquidity to already existing position with salt.snap │ │ │ │ │ ├── addLiquidity CA fee.snap │ │ │ │ │ ├── addLiquidity with empty hook.snap │ │ │ │ │ ├── addLiquidity with native token.snap │ │ │ │ │ ├── clear.snap │ │ │ │ │ ├── create new liquidity to a position with salt.snap │ │ │ │ │ ├── donate gas with 1 token.snap │ │ │ │ │ ├── donate gas with 2 tokens.snap │ │ │ │ │ ├── erc20 collect protocol fees.snap │ │ │ │ │ ├── extsload getFeeGrowthGlobals.snap │ │ │ │ │ ├── extsload getFeeGrowthInside.snap │ │ │ │ │ ├── extsload getLiquidity.snap │ │ │ │ │ ├── extsload getPositionInfo.snap │ │ │ │ │ ├── extsload getPositionLiquidity.snap │ │ │ │ │ ├── extsload getSlot0.snap │ │ │ │ │ ├── extsload getTickBitmap.snap │ │ │ │ │ ├── extsload getTickFeeGrowthOutside.snap │ │ │ │ │ ├── extsload getTickInfo.snap │ │ │ │ │ ├── extsload getTickLiquidity.snap │ │ │ │ │ ├── flipTick_flippingATickThatResultsInDeletingAWord.snap │ │ │ │ │ ├── flipTick_flippingFirstTickInWordToInitialized.snap │ │ │ │ │ ├── flipTick_flippingSecondTickInWordToInitialized.snap │ │ │ │ │ ├── getAmount0Delta_gasCostForAmount0WhereRoundUpIsFalse.snap │ │ │ │ │ ├── getAmount0Delta_gasCostForAmount0WhereRoundUpIsTrue.snap │ │ │ │ │ ├── getAmount1Delta_gasCostForAmount1WhereRoundUpIsFalse.snap │ │ │ │ │ ├── getAmount1Delta_gasCostForAmount1WhereRoundUpIsTrue.snap │ │ │ │ │ ├── getNextSqrtPriceFromInput_zeroForOneEqualsFalseGas.snap │ │ │ │ │ ├── getNextSqrtPriceFromInput_zeroForOneEqualsTrueGas.snap │ │ │ │ │ ├── getNextSqrtPriceFromOutput_zeroForOneEqualsFalseGas.snap │ │ │ │ │ ├── getNextSqrtPriceFromOutput_zeroForOneEqualsTrueGas.snap │ │ │ │ │ ├── getReserves.snap │ │ │ │ │ ├── initialize.snap │ │ │ │ │ ├── native collect protocol fees.snap │ │ │ │ │ ├── nextInitializedTickWithinOneWord_lteFalse_forEntireWord.snap │ │ │ │ │ ├── nextInitializedTickWithinOneWord_lteFalse_justBelowBoundary.snap │ │ │ │ │ ├── nextInitializedTickWithinOneWord_lteFalse_onBoundary.snap │ │ │ │ │ ├── nextInitializedTickWithinOneWord_lteTrue_forEntireWord.snap │ │ │ │ │ ├── nextInitializedTickWithinOneWord_lteTrue_justBelowBoundary.snap │ │ │ │ │ ├── nextInitializedTickWithinOneWord_lteTrue_onBoundary_gas.snap │ │ │ │ │ ├── poolManager bytecode size.snap │ │ │ │ │ ├── removeLiquidity CA fee.snap │ │ │ │ │ ├── removeLiquidity with empty hook.snap │ │ │ │ │ ├── removeLiquidity with native token.snap │ │ │ │ │ ├── set protocol fee.snap │ │ │ │ │ ├── simple addLiquidity second addition same range.snap │ │ │ │ │ ├── simple addLiquidity.snap │ │ │ │ │ ├── simple removeLiquidity some liquidity remains.snap │ │ │ │ │ ├── simple removeLiquidity.snap │ │ │ │ │ ├── simple swap with native.snap │ │ │ │ │ ├── simple swap.snap │ │ │ │ │ ├── sparse external sload.snap │ │ │ │ │ ├── swap CA custom curve + swap noop.snap │ │ │ │ │ ├── swap CA fee on unspecified.snap │ │ │ │ │ ├── swap against liquidity with native token.snap │ │ │ │ │ ├── swap against liquidity.snap │ │ │ │ │ ├── swap burn 6909 for input.snap │ │ │ │ │ ├── swap burn native 6909 for input.snap │ │ │ │ │ ├── swap mint native output as 6909.snap │ │ │ │ │ ├── swap mint output as 6909.snap │ │ │ │ │ ├── swap skips hook call if hook is caller.snap │ │ │ │ │ ├── swap with dynamic fee.snap │ │ │ │ │ ├── swap with hooks.snap │ │ │ │ │ ├── swap with lp fee and protocol fee.snap │ │ │ │ │ ├── swap with return dynamic fee.snap │ │ │ │ │ ├── tickSpacingToMaxLiquidityPerTick_gasCost60TickSpacing.snap │ │ │ │ │ ├── tickSpacingToMaxLiquidityPerTick_gasCostMaxTickSpacing.snap │ │ │ │ │ ├── tickSpacingToMaxLiquidityPerTick_gasCostMinTickSpacing.snap │ │ │ │ │ └── update dynamic fee in before swap.snap │ │ │ │ │ ├── .gitattributes │ │ │ │ │ ├── .github │ │ │ │ │ ├── ISSUE_TEMPLATE │ │ │ │ │ │ ├── BUG_REPORT.yml │ │ │ │ │ │ └── FEATURE_IMPROVEMENT.yml │ │ │ │ │ ├── pull_request_template.md │ │ │ │ │ └── workflows │ │ │ │ │ │ ├── coverage.yml │ │ │ │ │ │ ├── lint.yml │ │ │ │ │ │ ├── mythx.yml │ │ │ │ │ │ ├── semgrep.yml │ │ │ │ │ │ ├── tests-merge.yml │ │ │ │ │ │ └── tests-pr.yml │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── .gitmodules │ │ │ │ │ ├── .prettierignore │ │ │ │ │ ├── .prettierrc │ │ │ │ │ ├── .solhint.json │ │ │ │ │ ├── CONTRIBUTING.md │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── README.md │ │ │ │ │ ├── SECURITY.md │ │ │ │ │ ├── echidna.config.yml │ │ │ │ │ ├── foundry.toml │ │ │ │ │ ├── justfile │ │ │ │ │ ├── lib │ │ │ │ │ ├── forge-gas-snapshot │ │ │ │ │ │ ├── .forge-snapshots │ │ │ │ │ │ │ ├── addFirst.snap │ │ │ │ │ │ │ ├── addSecond.snap │ │ │ │ │ │ │ ├── addThird.snap │ │ │ │ │ │ │ ├── checkManyAdd.snap │ │ │ │ │ │ │ ├── checkManySstore.snap │ │ │ │ │ │ │ ├── checkSize.snap │ │ │ │ │ │ │ ├── checkSizeFail.snap │ │ │ │ │ │ │ ├── internalClosure.snap │ │ │ │ │ │ │ ├── manyAdd.snap │ │ │ │ │ │ │ ├── manySstore.snap │ │ │ │ │ │ │ ├── singleSstore.snap │ │ │ │ │ │ │ ├── singleSstoreClosure.snap │ │ │ │ │ │ │ ├── singleSstoreLastCall.snap │ │ │ │ │ │ │ ├── sizeTarget.snap │ │ │ │ │ │ │ ├── sstoreClosure.snap │ │ │ │ │ │ │ └── value.snap │ │ │ │ │ │ ├── .github │ │ │ │ │ │ │ └── workflows │ │ │ │ │ │ │ │ └── test.yml │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ ├── .gitmodules │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── foundry.toml │ │ │ │ │ │ ├── src │ │ │ │ │ │ │ ├── GasSnapshot.sol │ │ │ │ │ │ │ ├── test │ │ │ │ │ │ │ │ └── SimpleOperations.sol │ │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ │ └── UintString.sol │ │ │ │ │ │ └── test │ │ │ │ │ │ │ └── GasSnapshot.t.sol │ │ │ │ │ ├── forge-std │ │ │ │ │ │ ├── .gitattributes │ │ │ │ │ │ ├── .github │ │ │ │ │ │ │ └── workflows │ │ │ │ │ │ │ │ ├── ci.yml │ │ │ │ │ │ │ │ └── sync.yml │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ ├── LICENSE-APACHE │ │ │ │ │ │ ├── LICENSE-MIT │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── foundry.toml │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ ├── scripts │ │ │ │ │ │ │ └── vm.py │ │ │ │ │ │ ├── src │ │ │ │ │ │ │ ├── Base.sol │ │ │ │ │ │ │ ├── Script.sol │ │ │ │ │ │ │ ├── StdAssertions.sol │ │ │ │ │ │ │ ├── StdChains.sol │ │ │ │ │ │ │ ├── StdCheats.sol │ │ │ │ │ │ │ ├── StdError.sol │ │ │ │ │ │ │ ├── StdInvariant.sol │ │ │ │ │ │ │ ├── StdJson.sol │ │ │ │ │ │ │ ├── StdMath.sol │ │ │ │ │ │ │ ├── StdStorage.sol │ │ │ │ │ │ │ ├── StdStyle.sol │ │ │ │ │ │ │ ├── StdToml.sol │ │ │ │ │ │ │ ├── StdUtils.sol │ │ │ │ │ │ │ ├── Test.sol │ │ │ │ │ │ │ ├── Vm.sol │ │ │ │ │ │ │ ├── console.sol │ │ │ │ │ │ │ ├── console2.sol │ │ │ │ │ │ │ ├── interfaces │ │ │ │ │ │ │ │ ├── IERC1155.sol │ │ │ │ │ │ │ │ ├── IERC165.sol │ │ │ │ │ │ │ │ ├── IERC20.sol │ │ │ │ │ │ │ │ ├── IERC4626.sol │ │ │ │ │ │ │ │ ├── IERC721.sol │ │ │ │ │ │ │ │ └── IMulticall3.sol │ │ │ │ │ │ │ ├── mocks │ │ │ │ │ │ │ │ ├── MockERC20.sol │ │ │ │ │ │ │ │ └── MockERC721.sol │ │ │ │ │ │ │ └── safeconsole.sol │ │ │ │ │ │ └── test │ │ │ │ │ │ │ ├── StdAssertions.t.sol │ │ │ │ │ │ │ ├── StdChains.t.sol │ │ │ │ │ │ │ ├── StdCheats.t.sol │ │ │ │ │ │ │ ├── StdError.t.sol │ │ │ │ │ │ │ ├── StdJson.t.sol │ │ │ │ │ │ │ ├── StdMath.t.sol │ │ │ │ │ │ │ ├── StdStorage.t.sol │ │ │ │ │ │ │ ├── StdStyle.t.sol │ │ │ │ │ │ │ ├── StdToml.t.sol │ │ │ │ │ │ │ ├── StdUtils.t.sol │ │ │ │ │ │ │ ├── Vm.t.sol │ │ │ │ │ │ │ ├── compilation │ │ │ │ │ │ │ ├── CompilationScript.sol │ │ │ │ │ │ │ ├── CompilationScriptBase.sol │ │ │ │ │ │ │ ├── CompilationTest.sol │ │ │ │ │ │ │ └── CompilationTestBase.sol │ │ │ │ │ │ │ ├── fixtures │ │ │ │ │ │ │ ├── broadcast.log.json │ │ │ │ │ │ │ ├── test.json │ │ │ │ │ │ │ └── test.toml │ │ │ │ │ │ │ └── mocks │ │ │ │ │ │ │ ├── MockERC20.t.sol │ │ │ │ │ │ │ └── MockERC721.t.sol │ │ │ │ │ ├── openzeppelin-contracts │ │ │ │ │ │ ├── .changeset │ │ │ │ │ │ │ └── config.json │ │ │ │ │ │ ├── .codecov.yml │ │ │ │ │ │ ├── .editorconfig │ │ │ │ │ │ ├── .eslintrc │ │ │ │ │ │ ├── .github │ │ │ │ │ │ │ ├── ISSUE_TEMPLATE │ │ │ │ │ │ │ │ ├── bug_report.md │ │ │ │ │ │ │ │ ├── config.yml │ │ │ │ │ │ │ │ └── feature_request.md │ │ │ │ │ │ │ ├── PULL_REQUEST_TEMPLATE.md │ │ │ │ │ │ │ ├── actions │ │ │ │ │ │ │ │ ├── gas-compare │ │ │ │ │ │ │ │ │ └── action.yml │ │ │ │ │ │ │ │ ├── setup │ │ │ │ │ │ │ │ │ └── action.yml │ │ │ │ │ │ │ │ └── storage-layout │ │ │ │ │ │ │ │ │ └── action.yml │ │ │ │ │ │ │ └── workflows │ │ │ │ │ │ │ │ ├── actionlint.yml │ │ │ │ │ │ │ │ ├── changeset.yml │ │ │ │ │ │ │ │ ├── checks.yml │ │ │ │ │ │ │ │ ├── docs.yml │ │ │ │ │ │ │ │ ├── formal-verification.yml │ │ │ │ │ │ │ │ ├── release-cycle.yml │ │ │ │ │ │ │ │ └── upgradeable.yml │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ ├── .gitmodules │ │ │ │ │ │ ├── .mocharc.js │ │ │ │ │ │ ├── .prettierrc │ │ │ │ │ │ ├── .solcover.js │ │ │ │ │ │ ├── CHANGELOG.md │ │ │ │ │ │ ├── CODE_OF_CONDUCT.md │ │ │ │ │ │ ├── CONTRIBUTING.md │ │ │ │ │ │ ├── GUIDELINES.md │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── RELEASING.md │ │ │ │ │ │ ├── SECURITY.md │ │ │ │ │ │ ├── audits │ │ │ │ │ │ │ ├── 2017-03.md │ │ │ │ │ │ │ ├── 2018-10.pdf │ │ │ │ │ │ │ ├── 2022-10-Checkpoints.pdf │ │ │ │ │ │ │ ├── 2022-10-ERC4626.pdf │ │ │ │ │ │ │ ├── 2023-05-v4.9.pdf │ │ │ │ │ │ │ ├── 2023-10-v5.0.pdf │ │ │ │ │ │ │ └── README.md │ │ │ │ │ │ ├── certora │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ ├── Makefile │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── diff │ │ │ │ │ │ │ │ └── access_manager_AccessManager.sol.patch │ │ │ │ │ │ │ ├── harnesses │ │ │ │ │ │ │ │ ├── AccessControlDefaultAdminRulesHarness.sol │ │ │ │ │ │ │ │ ├── AccessControlHarness.sol │ │ │ │ │ │ │ │ ├── DoubleEndedQueueHarness.sol │ │ │ │ │ │ │ │ ├── ERC20FlashMintHarness.sol │ │ │ │ │ │ │ │ ├── ERC20PermitHarness.sol │ │ │ │ │ │ │ │ ├── ERC20WrapperHarness.sol │ │ │ │ │ │ │ │ ├── ERC3156FlashBorrowerHarness.sol │ │ │ │ │ │ │ │ ├── ERC721Harness.sol │ │ │ │ │ │ │ │ ├── ERC721ReceiverHarness.sol │ │ │ │ │ │ │ │ ├── EnumerableMapHarness.sol │ │ │ │ │ │ │ │ ├── EnumerableSetHarness.sol │ │ │ │ │ │ │ │ ├── InitializableHarness.sol │ │ │ │ │ │ │ │ ├── Ownable2StepHarness.sol │ │ │ │ │ │ │ │ ├── OwnableHarness.sol │ │ │ │ │ │ │ │ ├── PausableHarness.sol │ │ │ │ │ │ │ │ └── TimelockControllerHarness.sol │ │ │ │ │ │ │ ├── reports │ │ │ │ │ │ │ │ ├── 2021-10.pdf │ │ │ │ │ │ │ │ ├── 2022-03.pdf │ │ │ │ │ │ │ │ └── 2022-05.pdf │ │ │ │ │ │ │ ├── run.js │ │ │ │ │ │ │ ├── specs.json │ │ │ │ │ │ │ └── specs │ │ │ │ │ │ │ │ ├── AccessControl.spec │ │ │ │ │ │ │ │ ├── AccessControlDefaultAdminRules.spec │ │ │ │ │ │ │ │ ├── DoubleEndedQueue.spec │ │ │ │ │ │ │ │ ├── ERC20.spec │ │ │ │ │ │ │ │ ├── ERC20FlashMint.spec │ │ │ │ │ │ │ │ ├── ERC20Wrapper.spec │ │ │ │ │ │ │ │ ├── ERC721.spec │ │ │ │ │ │ │ │ ├── EnumerableMap.spec │ │ │ │ │ │ │ │ ├── EnumerableSet.spec │ │ │ │ │ │ │ │ ├── Initializable.spec │ │ │ │ │ │ │ │ ├── Ownable.spec │ │ │ │ │ │ │ │ ├── Ownable2Step.spec │ │ │ │ │ │ │ │ ├── Pausable.spec │ │ │ │ │ │ │ │ ├── TimelockController.spec │ │ │ │ │ │ │ │ ├── helpers │ │ │ │ │ │ │ │ └── helpers.spec │ │ │ │ │ │ │ │ └── methods │ │ │ │ │ │ │ │ ├── IAccessControl.spec │ │ │ │ │ │ │ │ ├── IAccessControlDefaultAdminRules.spec │ │ │ │ │ │ │ │ ├── IERC20.spec │ │ │ │ │ │ │ │ ├── IERC2612.spec │ │ │ │ │ │ │ │ ├── IERC3156FlashBorrower.spec │ │ │ │ │ │ │ │ ├── IERC3156FlashLender.spec │ │ │ │ │ │ │ │ ├── IERC5313.spec │ │ │ │ │ │ │ │ ├── IERC721.spec │ │ │ │ │ │ │ │ ├── IERC721Receiver.spec │ │ │ │ │ │ │ │ ├── IOwnable.spec │ │ │ │ │ │ │ │ └── IOwnable2Step.spec │ │ │ │ │ │ ├── contracts │ │ │ │ │ │ │ ├── access │ │ │ │ │ │ │ │ ├── AccessControl.sol │ │ │ │ │ │ │ │ ├── IAccessControl.sol │ │ │ │ │ │ │ │ ├── Ownable.sol │ │ │ │ │ │ │ │ ├── Ownable2Step.sol │ │ │ │ │ │ │ │ ├── README.adoc │ │ │ │ │ │ │ │ ├── extensions │ │ │ │ │ │ │ │ │ ├── AccessControlDefaultAdminRules.sol │ │ │ │ │ │ │ │ │ ├── AccessControlEnumerable.sol │ │ │ │ │ │ │ │ │ ├── IAccessControlDefaultAdminRules.sol │ │ │ │ │ │ │ │ │ └── IAccessControlEnumerable.sol │ │ │ │ │ │ │ │ └── manager │ │ │ │ │ │ │ │ │ ├── AccessManaged.sol │ │ │ │ │ │ │ │ │ ├── AccessManager.sol │ │ │ │ │ │ │ │ │ ├── AuthorityUtils.sol │ │ │ │ │ │ │ │ │ ├── IAccessManaged.sol │ │ │ │ │ │ │ │ │ ├── IAccessManager.sol │ │ │ │ │ │ │ │ │ └── IAuthority.sol │ │ │ │ │ │ │ ├── finance │ │ │ │ │ │ │ │ ├── README.adoc │ │ │ │ │ │ │ │ └── VestingWallet.sol │ │ │ │ │ │ │ ├── governance │ │ │ │ │ │ │ │ ├── Governor.sol │ │ │ │ │ │ │ │ ├── IGovernor.sol │ │ │ │ │ │ │ │ ├── README.adoc │ │ │ │ │ │ │ │ ├── TimelockController.sol │ │ │ │ │ │ │ │ ├── extensions │ │ │ │ │ │ │ │ │ ├── GovernorCountingSimple.sol │ │ │ │ │ │ │ │ │ ├── GovernorPreventLateQuorum.sol │ │ │ │ │ │ │ │ │ ├── GovernorSettings.sol │ │ │ │ │ │ │ │ │ ├── GovernorStorage.sol │ │ │ │ │ │ │ │ │ ├── GovernorTimelockAccess.sol │ │ │ │ │ │ │ │ │ ├── GovernorTimelockCompound.sol │ │ │ │ │ │ │ │ │ ├── GovernorTimelockControl.sol │ │ │ │ │ │ │ │ │ ├── GovernorVotes.sol │ │ │ │ │ │ │ │ │ └── GovernorVotesQuorumFraction.sol │ │ │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ │ │ ├── IVotes.sol │ │ │ │ │ │ │ │ │ └── Votes.sol │ │ │ │ │ │ │ ├── interfaces │ │ │ │ │ │ │ │ ├── IERC1155.sol │ │ │ │ │ │ │ │ ├── IERC1155MetadataURI.sol │ │ │ │ │ │ │ │ ├── IERC1155Receiver.sol │ │ │ │ │ │ │ │ ├── IERC1271.sol │ │ │ │ │ │ │ │ ├── IERC1363.sol │ │ │ │ │ │ │ │ ├── IERC1363Receiver.sol │ │ │ │ │ │ │ │ ├── IERC1363Spender.sol │ │ │ │ │ │ │ │ ├── IERC165.sol │ │ │ │ │ │ │ │ ├── IERC1820Implementer.sol │ │ │ │ │ │ │ │ ├── IERC1820Registry.sol │ │ │ │ │ │ │ │ ├── IERC1967.sol │ │ │ │ │ │ │ │ ├── IERC20.sol │ │ │ │ │ │ │ │ ├── IERC20Metadata.sol │ │ │ │ │ │ │ │ ├── IERC2309.sol │ │ │ │ │ │ │ │ ├── IERC2612.sol │ │ │ │ │ │ │ │ ├── IERC2981.sol │ │ │ │ │ │ │ │ ├── IERC3156.sol │ │ │ │ │ │ │ │ ├── IERC3156FlashBorrower.sol │ │ │ │ │ │ │ │ ├── IERC3156FlashLender.sol │ │ │ │ │ │ │ │ ├── IERC4626.sol │ │ │ │ │ │ │ │ ├── IERC4906.sol │ │ │ │ │ │ │ │ ├── IERC5267.sol │ │ │ │ │ │ │ │ ├── IERC5313.sol │ │ │ │ │ │ │ │ ├── IERC5805.sol │ │ │ │ │ │ │ │ ├── IERC6372.sol │ │ │ │ │ │ │ │ ├── IERC721.sol │ │ │ │ │ │ │ │ ├── IERC721Enumerable.sol │ │ │ │ │ │ │ │ ├── IERC721Metadata.sol │ │ │ │ │ │ │ │ ├── IERC721Receiver.sol │ │ │ │ │ │ │ │ ├── IERC777.sol │ │ │ │ │ │ │ │ ├── IERC777Recipient.sol │ │ │ │ │ │ │ │ ├── IERC777Sender.sol │ │ │ │ │ │ │ │ ├── README.adoc │ │ │ │ │ │ │ │ ├── draft-IERC1822.sol │ │ │ │ │ │ │ │ └── draft-IERC6093.sol │ │ │ │ │ │ │ ├── metatx │ │ │ │ │ │ │ │ ├── ERC2771Context.sol │ │ │ │ │ │ │ │ ├── ERC2771Forwarder.sol │ │ │ │ │ │ │ │ └── README.adoc │ │ │ │ │ │ │ ├── mocks │ │ │ │ │ │ │ │ ├── AccessManagedTarget.sol │ │ │ │ │ │ │ │ ├── ArraysMock.sol │ │ │ │ │ │ │ │ ├── AuthorityMock.sol │ │ │ │ │ │ │ │ ├── Base64Dirty.sol │ │ │ │ │ │ │ │ ├── CallReceiverMock.sol │ │ │ │ │ │ │ │ ├── ContextMock.sol │ │ │ │ │ │ │ │ ├── DummyImplementation.sol │ │ │ │ │ │ │ │ ├── EIP712Verifier.sol │ │ │ │ │ │ │ │ ├── ERC1271WalletMock.sol │ │ │ │ │ │ │ │ ├── ERC165 │ │ │ │ │ │ │ │ │ ├── ERC165InterfacesSupported.sol │ │ │ │ │ │ │ │ │ ├── ERC165MaliciousData.sol │ │ │ │ │ │ │ │ │ ├── ERC165MissingData.sol │ │ │ │ │ │ │ │ │ ├── ERC165NotSupported.sol │ │ │ │ │ │ │ │ │ └── ERC165ReturnBomb.sol │ │ │ │ │ │ │ │ ├── ERC2771ContextMock.sol │ │ │ │ │ │ │ │ ├── ERC3156FlashBorrowerMock.sol │ │ │ │ │ │ │ │ ├── EtherReceiverMock.sol │ │ │ │ │ │ │ │ ├── InitializableMock.sol │ │ │ │ │ │ │ │ ├── MulticallTest.sol │ │ │ │ │ │ │ │ ├── MultipleInheritanceInitializableMocks.sol │ │ │ │ │ │ │ │ ├── PausableMock.sol │ │ │ │ │ │ │ │ ├── ReentrancyAttack.sol │ │ │ │ │ │ │ │ ├── ReentrancyMock.sol │ │ │ │ │ │ │ │ ├── RegressionImplementation.sol │ │ │ │ │ │ │ │ ├── SingleInheritanceInitializableMocks.sol │ │ │ │ │ │ │ │ ├── Stateless.sol │ │ │ │ │ │ │ │ ├── StorageSlotMock.sol │ │ │ │ │ │ │ │ ├── TimelockReentrant.sol │ │ │ │ │ │ │ │ ├── UpgradeableBeaconMock.sol │ │ │ │ │ │ │ │ ├── VotesMock.sol │ │ │ │ │ │ │ │ ├── compound │ │ │ │ │ │ │ │ │ └── CompTimelock.sol │ │ │ │ │ │ │ │ ├── governance │ │ │ │ │ │ │ │ │ ├── GovernorMock.sol │ │ │ │ │ │ │ │ │ ├── GovernorPreventLateQuorumMock.sol │ │ │ │ │ │ │ │ │ ├── GovernorStorageMock.sol │ │ │ │ │ │ │ │ │ ├── GovernorTimelockAccessMock.sol │ │ │ │ │ │ │ │ │ ├── GovernorTimelockCompoundMock.sol │ │ │ │ │ │ │ │ │ ├── GovernorTimelockControlMock.sol │ │ │ │ │ │ │ │ │ ├── GovernorVoteMock.sol │ │ │ │ │ │ │ │ │ └── GovernorWithParamsMock.sol │ │ │ │ │ │ │ │ ├── proxy │ │ │ │ │ │ │ │ │ ├── BadBeacon.sol │ │ │ │ │ │ │ │ │ ├── ClashingImplementation.sol │ │ │ │ │ │ │ │ │ └── UUPSUpgradeableMock.sol │ │ │ │ │ │ │ │ └── token │ │ │ │ │ │ │ │ │ ├── ERC1155ReceiverMock.sol │ │ │ │ │ │ │ │ │ ├── ERC20ApprovalMock.sol │ │ │ │ │ │ │ │ │ ├── ERC20DecimalsMock.sol │ │ │ │ │ │ │ │ │ ├── ERC20ExcessDecimalsMock.sol │ │ │ │ │ │ │ │ │ ├── ERC20FlashMintMock.sol │ │ │ │ │ │ │ │ │ ├── ERC20ForceApproveMock.sol │ │ │ │ │ │ │ │ │ ├── ERC20Mock.sol │ │ │ │ │ │ │ │ │ ├── ERC20MulticallMock.sol │ │ │ │ │ │ │ │ │ ├── ERC20NoReturnMock.sol │ │ │ │ │ │ │ │ │ ├── ERC20Reentrant.sol │ │ │ │ │ │ │ │ │ ├── ERC20ReturnFalseMock.sol │ │ │ │ │ │ │ │ │ ├── ERC20VotesLegacyMock.sol │ │ │ │ │ │ │ │ │ ├── ERC4626LimitsMock.sol │ │ │ │ │ │ │ │ │ ├── ERC4626Mock.sol │ │ │ │ │ │ │ │ │ ├── ERC4626OffsetMock.sol │ │ │ │ │ │ │ │ │ ├── ERC4646FeesMock.sol │ │ │ │ │ │ │ │ │ ├── ERC721ConsecutiveEnumerableMock.sol │ │ │ │ │ │ │ │ │ ├── ERC721ConsecutiveMock.sol │ │ │ │ │ │ │ │ │ ├── ERC721ReceiverMock.sol │ │ │ │ │ │ │ │ │ ├── ERC721URIStorageMock.sol │ │ │ │ │ │ │ │ │ └── VotesTimestamp.sol │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ ├── proxy │ │ │ │ │ │ │ │ ├── Clones.sol │ │ │ │ │ │ │ │ ├── ERC1967 │ │ │ │ │ │ │ │ │ ├── ERC1967Proxy.sol │ │ │ │ │ │ │ │ │ └── ERC1967Utils.sol │ │ │ │ │ │ │ │ ├── Proxy.sol │ │ │ │ │ │ │ │ ├── README.adoc │ │ │ │ │ │ │ │ ├── beacon │ │ │ │ │ │ │ │ │ ├── BeaconProxy.sol │ │ │ │ │ │ │ │ │ ├── IBeacon.sol │ │ │ │ │ │ │ │ │ └── UpgradeableBeacon.sol │ │ │ │ │ │ │ │ ├── transparent │ │ │ │ │ │ │ │ │ ├── ProxyAdmin.sol │ │ │ │ │ │ │ │ │ └── TransparentUpgradeableProxy.sol │ │ │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ │ │ ├── Initializable.sol │ │ │ │ │ │ │ │ │ └── UUPSUpgradeable.sol │ │ │ │ │ │ │ ├── token │ │ │ │ │ │ │ │ ├── ERC1155 │ │ │ │ │ │ │ │ │ ├── ERC1155.sol │ │ │ │ │ │ │ │ │ ├── IERC1155.sol │ │ │ │ │ │ │ │ │ ├── IERC1155Receiver.sol │ │ │ │ │ │ │ │ │ ├── README.adoc │ │ │ │ │ │ │ │ │ ├── extensions │ │ │ │ │ │ │ │ │ │ ├── ERC1155Burnable.sol │ │ │ │ │ │ │ │ │ │ ├── ERC1155Pausable.sol │ │ │ │ │ │ │ │ │ │ ├── ERC1155Supply.sol │ │ │ │ │ │ │ │ │ │ ├── ERC1155URIStorage.sol │ │ │ │ │ │ │ │ │ │ └── IERC1155MetadataURI.sol │ │ │ │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ │ │ │ └── ERC1155Holder.sol │ │ │ │ │ │ │ │ ├── ERC20 │ │ │ │ │ │ │ │ │ ├── ERC20.sol │ │ │ │ │ │ │ │ │ ├── IERC20.sol │ │ │ │ │ │ │ │ │ ├── README.adoc │ │ │ │ │ │ │ │ │ ├── extensions │ │ │ │ │ │ │ │ │ │ ├── ERC20Burnable.sol │ │ │ │ │ │ │ │ │ │ ├── ERC20Capped.sol │ │ │ │ │ │ │ │ │ │ ├── ERC20FlashMint.sol │ │ │ │ │ │ │ │ │ │ ├── ERC20Pausable.sol │ │ │ │ │ │ │ │ │ │ ├── ERC20Permit.sol │ │ │ │ │ │ │ │ │ │ ├── ERC20Votes.sol │ │ │ │ │ │ │ │ │ │ ├── ERC20Wrapper.sol │ │ │ │ │ │ │ │ │ │ ├── ERC4626.sol │ │ │ │ │ │ │ │ │ │ ├── IERC20Metadata.sol │ │ │ │ │ │ │ │ │ │ └── IERC20Permit.sol │ │ │ │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ │ │ │ └── SafeERC20.sol │ │ │ │ │ │ │ │ ├── ERC721 │ │ │ │ │ │ │ │ │ ├── ERC721.sol │ │ │ │ │ │ │ │ │ ├── IERC721.sol │ │ │ │ │ │ │ │ │ ├── IERC721Receiver.sol │ │ │ │ │ │ │ │ │ ├── README.adoc │ │ │ │ │ │ │ │ │ ├── extensions │ │ │ │ │ │ │ │ │ │ ├── ERC721Burnable.sol │ │ │ │ │ │ │ │ │ │ ├── ERC721Consecutive.sol │ │ │ │ │ │ │ │ │ │ ├── ERC721Enumerable.sol │ │ │ │ │ │ │ │ │ │ ├── ERC721Pausable.sol │ │ │ │ │ │ │ │ │ │ ├── ERC721Royalty.sol │ │ │ │ │ │ │ │ │ │ ├── ERC721URIStorage.sol │ │ │ │ │ │ │ │ │ │ ├── ERC721Votes.sol │ │ │ │ │ │ │ │ │ │ ├── ERC721Wrapper.sol │ │ │ │ │ │ │ │ │ │ ├── IERC721Enumerable.sol │ │ │ │ │ │ │ │ │ │ └── IERC721Metadata.sol │ │ │ │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ │ │ │ └── ERC721Holder.sol │ │ │ │ │ │ │ │ └── common │ │ │ │ │ │ │ │ │ ├── ERC2981.sol │ │ │ │ │ │ │ │ │ └── README.adoc │ │ │ │ │ │ │ ├── utils │ │ │ │ │ │ │ │ ├── Address.sol │ │ │ │ │ │ │ │ ├── Arrays.sol │ │ │ │ │ │ │ │ ├── Base64.sol │ │ │ │ │ │ │ │ ├── Context.sol │ │ │ │ │ │ │ │ ├── Create2.sol │ │ │ │ │ │ │ │ ├── Multicall.sol │ │ │ │ │ │ │ │ ├── Nonces.sol │ │ │ │ │ │ │ │ ├── Pausable.sol │ │ │ │ │ │ │ │ ├── README.adoc │ │ │ │ │ │ │ │ ├── ReentrancyGuard.sol │ │ │ │ │ │ │ │ ├── ShortStrings.sol │ │ │ │ │ │ │ │ ├── StorageSlot.sol │ │ │ │ │ │ │ │ ├── Strings.sol │ │ │ │ │ │ │ │ ├── cryptography │ │ │ │ │ │ │ │ │ ├── ECDSA.sol │ │ │ │ │ │ │ │ │ ├── EIP712.sol │ │ │ │ │ │ │ │ │ ├── MerkleProof.sol │ │ │ │ │ │ │ │ │ ├── MessageHashUtils.sol │ │ │ │ │ │ │ │ │ └── SignatureChecker.sol │ │ │ │ │ │ │ │ ├── introspection │ │ │ │ │ │ │ │ │ ├── ERC165.sol │ │ │ │ │ │ │ │ │ ├── ERC165Checker.sol │ │ │ │ │ │ │ │ │ └── IERC165.sol │ │ │ │ │ │ │ │ ├── math │ │ │ │ │ │ │ │ │ ├── Math.sol │ │ │ │ │ │ │ │ │ ├── SafeCast.sol │ │ │ │ │ │ │ │ │ └── SignedMath.sol │ │ │ │ │ │ │ │ ├── structs │ │ │ │ │ │ │ │ │ ├── BitMaps.sol │ │ │ │ │ │ │ │ │ ├── Checkpoints.sol │ │ │ │ │ │ │ │ │ ├── DoubleEndedQueue.sol │ │ │ │ │ │ │ │ │ ├── EnumerableMap.sol │ │ │ │ │ │ │ │ │ └── EnumerableSet.sol │ │ │ │ │ │ │ │ └── types │ │ │ │ │ │ │ │ │ └── Time.sol │ │ │ │ │ │ │ └── vendor │ │ │ │ │ │ │ │ └── compound │ │ │ │ │ │ │ │ ├── ICompoundTimelock.sol │ │ │ │ │ │ │ │ └── LICENSE │ │ │ │ │ │ ├── foundry.toml │ │ │ │ │ │ ├── hardhat.config.js │ │ │ │ │ │ ├── hardhat │ │ │ │ │ │ │ ├── env-artifacts.js │ │ │ │ │ │ │ ├── env-contract.js │ │ │ │ │ │ │ ├── ignore-unreachable-warnings.js │ │ │ │ │ │ │ ├── skip-foundry-tests.js │ │ │ │ │ │ │ └── task-test-get-files.js │ │ │ │ │ │ ├── lib │ │ │ │ │ │ │ ├── erc4626-tests │ │ │ │ │ │ │ │ ├── ERC4626.prop.sol │ │ │ │ │ │ │ │ ├── ERC4626.test.sol │ │ │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ │ │ └── README.md │ │ │ │ │ │ │ └── forge-std │ │ │ │ │ │ │ │ ├── .github │ │ │ │ │ │ │ │ └── workflows │ │ │ │ │ │ │ │ │ └── ci.yml │ │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ │ ├── .gitmodules │ │ │ │ │ │ │ │ ├── LICENSE-APACHE │ │ │ │ │ │ │ │ ├── LICENSE-MIT │ │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ │ ├── foundry.toml │ │ │ │ │ │ │ │ ├── lib │ │ │ │ │ │ │ │ └── ds-test │ │ │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ │ │ │ ├── Makefile │ │ │ │ │ │ │ │ │ ├── default.nix │ │ │ │ │ │ │ │ │ ├── demo │ │ │ │ │ │ │ │ │ └── demo.sol │ │ │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ │ │ └── src │ │ │ │ │ │ │ │ │ └── test.sol │ │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ │ ├── src │ │ │ │ │ │ │ │ ├── Base.sol │ │ │ │ │ │ │ │ ├── Script.sol │ │ │ │ │ │ │ │ ├── StdAssertions.sol │ │ │ │ │ │ │ │ ├── StdChains.sol │ │ │ │ │ │ │ │ ├── StdCheats.sol │ │ │ │ │ │ │ │ ├── StdError.sol │ │ │ │ │ │ │ │ ├── StdJson.sol │ │ │ │ │ │ │ │ ├── StdMath.sol │ │ │ │ │ │ │ │ ├── StdStorage.sol │ │ │ │ │ │ │ │ ├── StdUtils.sol │ │ │ │ │ │ │ │ ├── Test.sol │ │ │ │ │ │ │ │ ├── Vm.sol │ │ │ │ │ │ │ │ ├── console.sol │ │ │ │ │ │ │ │ ├── console2.sol │ │ │ │ │ │ │ │ └── interfaces │ │ │ │ │ │ │ │ │ ├── IERC1155.sol │ │ │ │ │ │ │ │ │ ├── IERC165.sol │ │ │ │ │ │ │ │ │ ├── IERC20.sol │ │ │ │ │ │ │ │ │ ├── IERC4626.sol │ │ │ │ │ │ │ │ │ └── IERC721.sol │ │ │ │ │ │ │ │ └── test │ │ │ │ │ │ │ │ ├── StdAssertions.t.sol │ │ │ │ │ │ │ │ ├── StdChains.t.sol │ │ │ │ │ │ │ │ ├── StdCheats.t.sol │ │ │ │ │ │ │ │ ├── StdError.t.sol │ │ │ │ │ │ │ │ ├── StdMath.t.sol │ │ │ │ │ │ │ │ ├── StdStorage.t.sol │ │ │ │ │ │ │ │ ├── StdUtils.t.sol │ │ │ │ │ │ │ │ ├── compilation │ │ │ │ │ │ │ │ ├── CompilationScript.sol │ │ │ │ │ │ │ │ ├── CompilationScriptBase.sol │ │ │ │ │ │ │ │ ├── CompilationTest.sol │ │ │ │ │ │ │ │ └── CompilationTestBase.sol │ │ │ │ │ │ │ │ └── fixtures │ │ │ │ │ │ │ │ └── broadcast.log.json │ │ │ │ │ │ ├── logo.svg │ │ │ │ │ │ ├── netlify.toml │ │ │ │ │ │ ├── package-lock.json │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ ├── remappings.txt │ │ │ │ │ │ ├── renovate.json │ │ │ │ │ │ ├── requirements.txt │ │ │ │ │ │ ├── scripts │ │ │ │ │ │ │ ├── checks │ │ │ │ │ │ │ │ ├── compare-layout.js │ │ │ │ │ │ │ │ ├── compareGasReports.js │ │ │ │ │ │ │ │ ├── extract-layout.js │ │ │ │ │ │ │ │ ├── generation.sh │ │ │ │ │ │ │ │ └── inheritance-ordering.js │ │ │ │ │ │ │ ├── gen-nav.js │ │ │ │ │ │ │ ├── generate │ │ │ │ │ │ │ │ ├── format-lines.js │ │ │ │ │ │ │ │ ├── run.js │ │ │ │ │ │ │ │ └── templates │ │ │ │ │ │ │ │ │ ├── Checkpoints.js │ │ │ │ │ │ │ │ │ ├── Checkpoints.opts.js │ │ │ │ │ │ │ │ │ ├── Checkpoints.t.js │ │ │ │ │ │ │ │ │ ├── EnumerableMap.js │ │ │ │ │ │ │ │ │ ├── EnumerableSet.js │ │ │ │ │ │ │ │ │ ├── SafeCast.js │ │ │ │ │ │ │ │ │ ├── StorageSlot.js │ │ │ │ │ │ │ │ │ └── conversion.js │ │ │ │ │ │ │ ├── git-user-config.sh │ │ │ │ │ │ │ ├── helpers.js │ │ │ │ │ │ │ ├── prepack.sh │ │ │ │ │ │ │ ├── prepare-docs.sh │ │ │ │ │ │ │ ├── release │ │ │ │ │ │ │ │ ├── format-changelog.js │ │ │ │ │ │ │ │ ├── synchronize-versions.js │ │ │ │ │ │ │ │ ├── update-comment.js │ │ │ │ │ │ │ │ ├── version.sh │ │ │ │ │ │ │ │ └── workflow │ │ │ │ │ │ │ │ │ ├── exit-prerelease.sh │ │ │ │ │ │ │ │ │ ├── github-release.js │ │ │ │ │ │ │ │ │ ├── integrity-check.sh │ │ │ │ │ │ │ │ │ ├── pack.sh │ │ │ │ │ │ │ │ │ ├── publish.sh │ │ │ │ │ │ │ │ │ ├── rerun.js │ │ │ │ │ │ │ │ │ ├── set-changesets-pr-title.js │ │ │ │ │ │ │ │ │ ├── start.sh │ │ │ │ │ │ │ │ │ └── state.js │ │ │ │ │ │ │ ├── remove-ignored-artifacts.js │ │ │ │ │ │ │ ├── solhint-custom │ │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ │ └── package.json │ │ │ │ │ │ │ ├── update-docs-branch.js │ │ │ │ │ │ │ └── upgradeable │ │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ │ ├── patch-apply.sh │ │ │ │ │ │ │ │ ├── patch-save.sh │ │ │ │ │ │ │ │ ├── transpile-onto.sh │ │ │ │ │ │ │ │ ├── transpile.sh │ │ │ │ │ │ │ │ └── upgradeable.patch │ │ │ │ │ │ ├── slither.config.json │ │ │ │ │ │ ├── solhint.config.js │ │ │ │ │ │ └── test │ │ │ │ │ │ │ ├── TESTING.md │ │ │ │ │ │ │ ├── access │ │ │ │ │ │ │ ├── AccessControl.behavior.js │ │ │ │ │ │ │ ├── AccessControl.test.js │ │ │ │ │ │ │ ├── Ownable.test.js │ │ │ │ │ │ │ ├── Ownable2Step.test.js │ │ │ │ │ │ │ ├── extensions │ │ │ │ │ │ │ │ ├── AccessControlDefaultAdminRules.test.js │ │ │ │ │ │ │ │ └── AccessControlEnumerable.test.js │ │ │ │ │ │ │ └── manager │ │ │ │ │ │ │ │ ├── AccessManaged.test.js │ │ │ │ │ │ │ │ ├── AccessManager.behavior.js │ │ │ │ │ │ │ │ ├── AccessManager.test.js │ │ │ │ │ │ │ │ └── AuthorityUtils.test.js │ │ │ │ │ │ │ ├── finance │ │ │ │ │ │ │ ├── VestingWallet.behavior.js │ │ │ │ │ │ │ └── VestingWallet.test.js │ │ │ │ │ │ │ ├── governance │ │ │ │ │ │ │ ├── Governor.t.sol │ │ │ │ │ │ │ ├── Governor.test.js │ │ │ │ │ │ │ ├── TimelockController.test.js │ │ │ │ │ │ │ ├── extensions │ │ │ │ │ │ │ │ ├── GovernorERC721.test.js │ │ │ │ │ │ │ │ ├── GovernorPreventLateQuorum.test.js │ │ │ │ │ │ │ │ ├── GovernorStorage.test.js │ │ │ │ │ │ │ │ ├── GovernorTimelockAccess.test.js │ │ │ │ │ │ │ │ ├── GovernorTimelockCompound.test.js │ │ │ │ │ │ │ │ ├── GovernorTimelockControl.test.js │ │ │ │ │ │ │ │ ├── GovernorVotesQuorumFraction.test.js │ │ │ │ │ │ │ │ └── GovernorWithParams.test.js │ │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ │ ├── EIP6372.behavior.js │ │ │ │ │ │ │ │ ├── Votes.behavior.js │ │ │ │ │ │ │ │ └── Votes.test.js │ │ │ │ │ │ │ ├── helpers │ │ │ │ │ │ │ ├── access-manager.js │ │ │ │ │ │ │ ├── account.js │ │ │ │ │ │ │ ├── chainid.js │ │ │ │ │ │ │ ├── constants.js │ │ │ │ │ │ │ ├── create.js │ │ │ │ │ │ │ ├── customError.js │ │ │ │ │ │ │ ├── eip712.js │ │ │ │ │ │ │ ├── enums.js │ │ │ │ │ │ │ ├── erc1967.js │ │ │ │ │ │ │ ├── governance.js │ │ │ │ │ │ │ ├── iterate.js │ │ │ │ │ │ │ ├── math.js │ │ │ │ │ │ │ ├── methods.js │ │ │ │ │ │ │ ├── sign.js │ │ │ │ │ │ │ ├── time.js │ │ │ │ │ │ │ └── txpool.js │ │ │ │ │ │ │ ├── metatx │ │ │ │ │ │ │ ├── ERC2771Context.test.js │ │ │ │ │ │ │ ├── ERC2771Forwarder.t.sol │ │ │ │ │ │ │ └── ERC2771Forwarder.test.js │ │ │ │ │ │ │ ├── proxy │ │ │ │ │ │ │ ├── Clones.behaviour.js │ │ │ │ │ │ │ ├── Clones.test.js │ │ │ │ │ │ │ ├── ERC1967 │ │ │ │ │ │ │ │ ├── ERC1967Proxy.test.js │ │ │ │ │ │ │ │ └── ERC1967Utils.test.js │ │ │ │ │ │ │ ├── Proxy.behaviour.js │ │ │ │ │ │ │ ├── beacon │ │ │ │ │ │ │ │ ├── BeaconProxy.test.js │ │ │ │ │ │ │ │ └── UpgradeableBeacon.test.js │ │ │ │ │ │ │ ├── transparent │ │ │ │ │ │ │ │ ├── ProxyAdmin.test.js │ │ │ │ │ │ │ │ ├── TransparentUpgradeableProxy.behaviour.js │ │ │ │ │ │ │ │ └── TransparentUpgradeableProxy.test.js │ │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ │ ├── Initializable.test.js │ │ │ │ │ │ │ │ └── UUPSUpgradeable.test.js │ │ │ │ │ │ │ ├── token │ │ │ │ │ │ │ ├── ERC1155 │ │ │ │ │ │ │ │ ├── ERC1155.behavior.js │ │ │ │ │ │ │ │ ├── ERC1155.test.js │ │ │ │ │ │ │ │ ├── extensions │ │ │ │ │ │ │ │ │ ├── ERC1155Burnable.test.js │ │ │ │ │ │ │ │ │ ├── ERC1155Pausable.test.js │ │ │ │ │ │ │ │ │ ├── ERC1155Supply.test.js │ │ │ │ │ │ │ │ │ └── ERC1155URIStorage.test.js │ │ │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ │ │ └── ERC1155Holder.test.js │ │ │ │ │ │ │ ├── ERC20 │ │ │ │ │ │ │ │ ├── ERC20.behavior.js │ │ │ │ │ │ │ │ ├── ERC20.test.js │ │ │ │ │ │ │ │ ├── extensions │ │ │ │ │ │ │ │ │ ├── ERC20Burnable.behavior.js │ │ │ │ │ │ │ │ │ ├── ERC20Burnable.test.js │ │ │ │ │ │ │ │ │ ├── ERC20Capped.behavior.js │ │ │ │ │ │ │ │ │ ├── ERC20Capped.test.js │ │ │ │ │ │ │ │ │ ├── ERC20FlashMint.test.js │ │ │ │ │ │ │ │ │ ├── ERC20Pausable.test.js │ │ │ │ │ │ │ │ │ ├── ERC20Permit.test.js │ │ │ │ │ │ │ │ │ ├── ERC20Votes.test.js │ │ │ │ │ │ │ │ │ ├── ERC20Wrapper.test.js │ │ │ │ │ │ │ │ │ ├── ERC4626.t.sol │ │ │ │ │ │ │ │ │ └── ERC4626.test.js │ │ │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ │ │ └── SafeERC20.test.js │ │ │ │ │ │ │ ├── ERC721 │ │ │ │ │ │ │ │ ├── ERC721.behavior.js │ │ │ │ │ │ │ │ ├── ERC721.test.js │ │ │ │ │ │ │ │ ├── ERC721Enumerable.test.js │ │ │ │ │ │ │ │ ├── extensions │ │ │ │ │ │ │ │ │ ├── ERC721Burnable.test.js │ │ │ │ │ │ │ │ │ ├── ERC721Consecutive.t.sol │ │ │ │ │ │ │ │ │ ├── ERC721Consecutive.test.js │ │ │ │ │ │ │ │ │ ├── ERC721Pausable.test.js │ │ │ │ │ │ │ │ │ ├── ERC721Royalty.test.js │ │ │ │ │ │ │ │ │ ├── ERC721URIStorage.test.js │ │ │ │ │ │ │ │ │ ├── ERC721Votes.test.js │ │ │ │ │ │ │ │ │ └── ERC721Wrapper.test.js │ │ │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ │ │ └── ERC721Holder.test.js │ │ │ │ │ │ │ └── common │ │ │ │ │ │ │ │ └── ERC2981.behavior.js │ │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ ├── Address.test.js │ │ │ │ │ │ │ ├── Arrays.test.js │ │ │ │ │ │ │ ├── Base64.test.js │ │ │ │ │ │ │ ├── Context.behavior.js │ │ │ │ │ │ │ ├── Context.test.js │ │ │ │ │ │ │ ├── Create2.test.js │ │ │ │ │ │ │ ├── Multicall.test.js │ │ │ │ │ │ │ ├── Nonces.test.js │ │ │ │ │ │ │ ├── Pausable.test.js │ │ │ │ │ │ │ ├── ReentrancyGuard.test.js │ │ │ │ │ │ │ ├── ShortStrings.t.sol │ │ │ │ │ │ │ ├── ShortStrings.test.js │ │ │ │ │ │ │ ├── StorageSlot.test.js │ │ │ │ │ │ │ ├── Strings.test.js │ │ │ │ │ │ │ ├── cryptography │ │ │ │ │ │ │ ├── ECDSA.test.js │ │ │ │ │ │ │ ├── EIP712.test.js │ │ │ │ │ │ │ ├── MerkleProof.test.js │ │ │ │ │ │ │ ├── MessageHashUtils.test.js │ │ │ │ │ │ │ └── SignatureChecker.test.js │ │ │ │ │ │ │ ├── introspection │ │ │ │ │ │ │ ├── ERC165.test.js │ │ │ │ │ │ │ ├── ERC165Checker.test.js │ │ │ │ │ │ │ └── SupportsInterface.behavior.js │ │ │ │ │ │ │ ├── math │ │ │ │ │ │ │ ├── Math.t.sol │ │ │ │ │ │ │ ├── Math.test.js │ │ │ │ │ │ │ ├── SafeCast.test.js │ │ │ │ │ │ │ └── SignedMath.test.js │ │ │ │ │ │ │ ├── structs │ │ │ │ │ │ │ ├── BitMap.test.js │ │ │ │ │ │ │ ├── Checkpoints.t.sol │ │ │ │ │ │ │ ├── Checkpoints.test.js │ │ │ │ │ │ │ ├── DoubleEndedQueue.test.js │ │ │ │ │ │ │ ├── EnumerableMap.behavior.js │ │ │ │ │ │ │ ├── EnumerableMap.test.js │ │ │ │ │ │ │ ├── EnumerableSet.behavior.js │ │ │ │ │ │ │ └── EnumerableSet.test.js │ │ │ │ │ │ │ └── types │ │ │ │ │ │ │ └── Time.test.js │ │ │ │ │ └── solmate │ │ │ │ │ │ ├── .gas-snapshot │ │ │ │ │ │ ├── .gitattributes │ │ │ │ │ │ ├── .github │ │ │ │ │ │ ├── pull_request_template.md │ │ │ │ │ │ └── workflows │ │ │ │ │ │ │ └── tests.yml │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ ├── .gitmodules │ │ │ │ │ │ ├── .prettierignore │ │ │ │ │ │ ├── .prettierrc │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── audits │ │ │ │ │ │ └── v6-Fixed-Point-Solutions.pdf │ │ │ │ │ │ ├── foundry.toml │ │ │ │ │ │ ├── lib │ │ │ │ │ │ └── ds-test │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ │ ├── Makefile │ │ │ │ │ │ │ ├── default.nix │ │ │ │ │ │ │ ├── demo │ │ │ │ │ │ │ └── demo.sol │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ └── src │ │ │ │ │ │ │ └── test.sol │ │ │ │ │ │ ├── package-lock.json │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ └── src │ │ │ │ │ │ ├── auth │ │ │ │ │ │ ├── Auth.sol │ │ │ │ │ │ ├── Owned.sol │ │ │ │ │ │ └── authorities │ │ │ │ │ │ │ ├── MultiRolesAuthority.sol │ │ │ │ │ │ │ └── RolesAuthority.sol │ │ │ │ │ │ ├── mixins │ │ │ │ │ │ └── ERC4626.sol │ │ │ │ │ │ ├── test │ │ │ │ │ │ ├── Auth.t.sol │ │ │ │ │ │ ├── Bytes32AddressLib.t.sol │ │ │ │ │ │ ├── CREATE3.t.sol │ │ │ │ │ │ ├── DSTestPlus.t.sol │ │ │ │ │ │ ├── ERC1155.t.sol │ │ │ │ │ │ ├── ERC20.t.sol │ │ │ │ │ │ ├── ERC4626.t.sol │ │ │ │ │ │ ├── ERC6909.t.sol │ │ │ │ │ │ ├── ERC721.t.sol │ │ │ │ │ │ ├── FixedPointMathLib.t.sol │ │ │ │ │ │ ├── LibString.t.sol │ │ │ │ │ │ ├── MerkleProofLib.t.sol │ │ │ │ │ │ ├── MultiRolesAuthority.t.sol │ │ │ │ │ │ ├── Owned.t.sol │ │ │ │ │ │ ├── ReentrancyGuard.t.sol │ │ │ │ │ │ ├── RolesAuthority.t.sol │ │ │ │ │ │ ├── SSTORE2.t.sol │ │ │ │ │ │ ├── SafeCastLib.t.sol │ │ │ │ │ │ ├── SafeTransferLib.t.sol │ │ │ │ │ │ ├── SignedWadMath.t.sol │ │ │ │ │ │ ├── WETH.t.sol │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ ├── DSInvariantTest.sol │ │ │ │ │ │ │ ├── DSTestPlus.sol │ │ │ │ │ │ │ ├── Hevm.sol │ │ │ │ │ │ │ ├── mocks │ │ │ │ │ │ │ ├── MockAuthChild.sol │ │ │ │ │ │ │ ├── MockAuthority.sol │ │ │ │ │ │ │ ├── MockERC1155.sol │ │ │ │ │ │ │ ├── MockERC20.sol │ │ │ │ │ │ │ ├── MockERC4626.sol │ │ │ │ │ │ │ ├── MockERC6909.sol │ │ │ │ │ │ │ ├── MockERC721.sol │ │ │ │ │ │ │ └── MockOwned.sol │ │ │ │ │ │ │ └── weird-tokens │ │ │ │ │ │ │ ├── MissingReturnToken.sol │ │ │ │ │ │ │ ├── ReturnsFalseToken.sol │ │ │ │ │ │ │ ├── ReturnsGarbageToken.sol │ │ │ │ │ │ │ ├── ReturnsTooLittleToken.sol │ │ │ │ │ │ │ ├── ReturnsTooMuchToken.sol │ │ │ │ │ │ │ ├── ReturnsTwoToken.sol │ │ │ │ │ │ │ └── RevertingToken.sol │ │ │ │ │ │ ├── tokens │ │ │ │ │ │ ├── ERC1155.sol │ │ │ │ │ │ ├── ERC20.sol │ │ │ │ │ │ ├── ERC6909.sol │ │ │ │ │ │ ├── ERC721.sol │ │ │ │ │ │ └── WETH.sol │ │ │ │ │ │ └── utils │ │ │ │ │ │ ├── Bytes32AddressLib.sol │ │ │ │ │ │ ├── CREATE3.sol │ │ │ │ │ │ ├── FixedPointMathLib.sol │ │ │ │ │ │ ├── LibString.sol │ │ │ │ │ │ ├── MerkleProofLib.sol │ │ │ │ │ │ ├── ReentrancyGuard.sol │ │ │ │ │ │ ├── SSTORE2.sol │ │ │ │ │ │ ├── SafeCastLib.sol │ │ │ │ │ │ ├── SafeTransferLib.sol │ │ │ │ │ │ └── SignedWadMath.sol │ │ │ │ │ ├── remappings.txt │ │ │ │ │ ├── src │ │ │ │ │ ├── ERC6909.sol │ │ │ │ │ ├── ERC6909Claims.sol │ │ │ │ │ ├── Extsload.sol │ │ │ │ │ ├── Exttload.sol │ │ │ │ │ ├── NoDelegateCall.sol │ │ │ │ │ ├── PoolManager.sol │ │ │ │ │ ├── ProtocolFees.sol │ │ │ │ │ ├── interfaces │ │ │ │ │ │ ├── IExtsload.sol │ │ │ │ │ │ ├── IExttload.sol │ │ │ │ │ │ ├── IHooks.sol │ │ │ │ │ │ ├── IPoolManager.sol │ │ │ │ │ │ ├── IProtocolFeeController.sol │ │ │ │ │ │ ├── IProtocolFees.sol │ │ │ │ │ │ ├── callback │ │ │ │ │ │ │ └── IUnlockCallback.sol │ │ │ │ │ │ └── external │ │ │ │ │ │ │ ├── IERC20Minimal.sol │ │ │ │ │ │ │ └── IERC6909Claims.sol │ │ │ │ │ ├── libraries │ │ │ │ │ │ ├── BipsLibrary.sol │ │ │ │ │ │ ├── BitMath.sol │ │ │ │ │ │ ├── CurrencyDelta.sol │ │ │ │ │ │ ├── CurrencyReserves.sol │ │ │ │ │ │ ├── CustomRevert.sol │ │ │ │ │ │ ├── FixedPoint128.sol │ │ │ │ │ │ ├── FixedPoint96.sol │ │ │ │ │ │ ├── FullMath.sol │ │ │ │ │ │ ├── Hooks.sol │ │ │ │ │ │ ├── LPFeeLibrary.sol │ │ │ │ │ │ ├── LiquidityMath.sol │ │ │ │ │ │ ├── Lock.sol │ │ │ │ │ │ ├── NonzeroDeltaCount.sol │ │ │ │ │ │ ├── ParseBytes.sol │ │ │ │ │ │ ├── Pool.sol │ │ │ │ │ │ ├── Position.sol │ │ │ │ │ │ ├── ProtocolFeeLibrary.sol │ │ │ │ │ │ ├── SafeCast.sol │ │ │ │ │ │ ├── SqrtPriceMath.sol │ │ │ │ │ │ ├── StateLibrary.sol │ │ │ │ │ │ ├── SwapMath.sol │ │ │ │ │ │ ├── TickBitmap.sol │ │ │ │ │ │ ├── TickMath.sol │ │ │ │ │ │ ├── TransientStateLibrary.sol │ │ │ │ │ │ └── UnsafeMath.sol │ │ │ │ │ ├── test │ │ │ │ │ │ ├── ActionsRouter.sol │ │ │ │ │ │ ├── BaseTestHooks.sol │ │ │ │ │ │ ├── CurrencyTest.sol │ │ │ │ │ │ ├── CustomCurveHook.sol │ │ │ │ │ │ ├── DeltaReturningHook.sol │ │ │ │ │ │ ├── DynamicFeesTestHook.sol │ │ │ │ │ │ ├── DynamicReturnFeeTestHook.sol │ │ │ │ │ │ ├── EmptyRevertContract.sol │ │ │ │ │ │ ├── EmptyTestHooks.sol │ │ │ │ │ │ ├── FeeTakingHook.sol │ │ │ │ │ │ ├── Fuzzers.sol │ │ │ │ │ │ ├── HooksTest.sol │ │ │ │ │ │ ├── LPFeeTakingHook.sol │ │ │ │ │ │ ├── LiquidityMathTest.sol │ │ │ │ │ │ ├── MockContract.sol │ │ │ │ │ │ ├── MockERC6909Claims.sol │ │ │ │ │ │ ├── MockHooks.sol │ │ │ │ │ │ ├── NativeERC20.sol │ │ │ │ │ │ ├── NoDelegateCallTest.sol │ │ │ │ │ │ ├── PoolClaimsTest.sol │ │ │ │ │ │ ├── PoolDonateTest.sol │ │ │ │ │ │ ├── PoolEmptyUnlockTest.sol │ │ │ │ │ │ ├── PoolModifyLiquidityTest.sol │ │ │ │ │ │ ├── PoolModifyLiquidityTestNoChecks.sol │ │ │ │ │ │ ├── PoolNestedActionsTest.sol │ │ │ │ │ │ ├── PoolSwapTest.sol │ │ │ │ │ │ ├── PoolTakeTest.sol │ │ │ │ │ │ ├── PoolTestBase.sol │ │ │ │ │ │ ├── ProtocolFeeControllerTest.sol │ │ │ │ │ │ ├── ProtocolFeesImplementation.sol │ │ │ │ │ │ ├── ProxyPoolManager.sol │ │ │ │ │ │ ├── SkipCallsTestHook.sol │ │ │ │ │ │ ├── SqrtPriceMathEchidnaTest.sol │ │ │ │ │ │ ├── SwapRouterNoChecks.sol │ │ │ │ │ │ ├── TestERC20.sol │ │ │ │ │ │ ├── TestInvalidERC20.sol │ │ │ │ │ │ ├── TickMathEchidnaTest.sol │ │ │ │ │ │ ├── TickMathTest.sol │ │ │ │ │ │ └── TickOverflowSafetyEchidnaTest.sol │ │ │ │ │ └── types │ │ │ │ │ │ ├── BalanceDelta.sol │ │ │ │ │ │ ├── BeforeSwapDelta.sol │ │ │ │ │ │ ├── Currency.sol │ │ │ │ │ │ ├── PoolId.sol │ │ │ │ │ │ ├── PoolKey.sol │ │ │ │ │ │ └── Slot0.sol │ │ │ │ │ └── test │ │ │ │ │ ├── CurrencyReserves.t.sol │ │ │ │ │ ├── CustomAccounting.t.sol │ │ │ │ │ ├── DynamicFees.t.sol │ │ │ │ │ ├── DynamicReturnFees.t.sol │ │ │ │ │ ├── ERC6909Claims.t.sol │ │ │ │ │ ├── Extsload.t.sol │ │ │ │ │ ├── ModifyLiquidity.t.sol │ │ │ │ │ ├── NoDelegateCall.t.sol │ │ │ │ │ ├── PoolManager.clear.t.sol │ │ │ │ │ ├── PoolManager.gas.spec.ts │ │ │ │ │ ├── PoolManager.swap.t.sol │ │ │ │ │ ├── PoolManager.t.sol │ │ │ │ │ ├── PoolManagerInitialize.t.sol │ │ │ │ │ ├── ProtocolFeesImplementation.t.sol │ │ │ │ │ ├── SkipCallsTestHook.t.sol │ │ │ │ │ ├── Sync.t.sol │ │ │ │ │ ├── Tick.t.sol │ │ │ │ │ ├── bin │ │ │ │ │ └── v3Factory.bytecode │ │ │ │ │ ├── js-scripts │ │ │ │ │ ├── build.js │ │ │ │ │ ├── dist │ │ │ │ │ │ ├── getModifyLiquidityResult.js │ │ │ │ │ │ ├── getSqrtPriceAtTick.js │ │ │ │ │ │ └── getTickAtSqrtPrice.js │ │ │ │ │ ├── package-lock.json │ │ │ │ │ ├── package.json │ │ │ │ │ ├── src │ │ │ │ │ │ ├── getModifyLiquidityResult.ts │ │ │ │ │ │ ├── getSqrtPriceAtTick.ts │ │ │ │ │ │ ├── getTickAtSqrtPrice.ts │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ └── shared.ts │ │ │ │ │ └── tsconfig.json │ │ │ │ │ ├── libraries │ │ │ │ │ ├── BipsLibrary.t.sol │ │ │ │ │ ├── BitMath.t.sol │ │ │ │ │ ├── FullMath.t.sol │ │ │ │ │ ├── Hooks.t.sol │ │ │ │ │ ├── LPFeeLibrary.t.sol │ │ │ │ │ ├── LiquidityMath.t.sol │ │ │ │ │ ├── Lock.t.sol │ │ │ │ │ ├── NonzeroDeltaCount.t.sol │ │ │ │ │ ├── Pool.t.sol │ │ │ │ │ ├── PoolId.t.sol │ │ │ │ │ ├── Position.t.sol │ │ │ │ │ ├── ProtocolFeeLibrary.t.sol │ │ │ │ │ ├── SafeCast.t.sol │ │ │ │ │ ├── SqrtPriceMath.t.sol │ │ │ │ │ ├── StateLibrary.t.sol │ │ │ │ │ ├── SwapMath.t.sol │ │ │ │ │ ├── TickBitmap.t.sol │ │ │ │ │ ├── TickMath.t.sol │ │ │ │ │ └── UnsafeMath.t.sol │ │ │ │ │ ├── types │ │ │ │ │ ├── BalanceDelta.t.sol │ │ │ │ │ ├── Currency.t.sol │ │ │ │ │ └── Slot0.t.sol │ │ │ │ │ └── utils │ │ │ │ │ ├── AmountHelpers.sol │ │ │ │ │ ├── Constants.sol │ │ │ │ │ ├── CurrencySettler.sol │ │ │ │ │ ├── Deployers.sol │ │ │ │ │ ├── JavascriptFfi.sol │ │ │ │ │ ├── LiquidityAmounts.sol │ │ │ │ │ ├── Logger.sol │ │ │ │ │ ├── NestedActions.t.sol │ │ │ │ │ ├── SortTokens.sol │ │ │ │ │ ├── SwapHelper.t.sol │ │ │ │ │ └── V3Helper.sol │ │ │ │ ├── remappings.txt │ │ │ │ ├── script │ │ │ │ ├── 01_PoolManager.s.sol │ │ │ │ ├── 02_PoolModifyLiquidityTest.s.sol │ │ │ │ ├── 03_PoolSwapTest.s.sol │ │ │ │ ├── DeployPosm.s.sol │ │ │ │ ├── DeployQuoter.s.sol │ │ │ │ └── DeployStateView.s.sol │ │ │ │ ├── src │ │ │ │ ├── PositionManager.sol │ │ │ │ ├── V4Router.sol │ │ │ │ ├── base │ │ │ │ │ ├── BaseActionsRouter.sol │ │ │ │ │ ├── DeltaResolver.sol │ │ │ │ │ ├── EIP712_v4.sol │ │ │ │ │ ├── ERC721Permit_v4.sol │ │ │ │ │ ├── ImmutableState.sol │ │ │ │ │ ├── Multicall_v4.sol │ │ │ │ │ ├── Notifier.sol │ │ │ │ │ ├── Permit2Forwarder.sol │ │ │ │ │ ├── PoolInitializer.sol │ │ │ │ │ ├── ReentrancyLock.sol │ │ │ │ │ ├── SafeCallback.sol │ │ │ │ │ ├── UnorderedNonce.sol │ │ │ │ │ └── hooks │ │ │ │ │ │ └── BaseHook.sol │ │ │ │ ├── interfaces │ │ │ │ │ ├── IEIP712_v4.sol │ │ │ │ │ ├── IERC721Permit_v4.sol │ │ │ │ │ ├── IMulticall_v4.sol │ │ │ │ │ ├── INotifier.sol │ │ │ │ │ ├── IPositionManager.sol │ │ │ │ │ ├── IQuoter.sol │ │ │ │ │ ├── ISubscriber.sol │ │ │ │ │ └── IV4Router.sol │ │ │ │ ├── lens │ │ │ │ │ ├── Quoter.sol │ │ │ │ │ └── StateView.sol │ │ │ │ └── libraries │ │ │ │ │ ├── ActionConstants.sol │ │ │ │ │ ├── Actions.sol │ │ │ │ │ ├── CalldataDecoder.sol │ │ │ │ │ ├── ERC721PermitHash.sol │ │ │ │ │ ├── Locker.sol │ │ │ │ │ ├── PathKey.sol │ │ │ │ │ ├── PoolTicksCounter.sol │ │ │ │ │ ├── PositionConfig.sol │ │ │ │ │ ├── PositionConfigId.sol │ │ │ │ │ ├── PositionInfoLibrary.sol │ │ │ │ │ └── SlippageCheck.sol │ │ │ │ └── test │ │ │ │ ├── BaseActionsRouter.t.sol │ │ │ │ ├── DeltaResolver.t.sol │ │ │ │ ├── EIP712.t.sol │ │ │ │ ├── Multicall.t.sol │ │ │ │ ├── Quoter.t.sol │ │ │ │ ├── SafeCallback.t.sol │ │ │ │ ├── StateViewTest.t.sol │ │ │ │ ├── UnorderedNonce.t.sol │ │ │ │ ├── erc721Permit │ │ │ │ ├── ERC721Permit.permit.t.sol │ │ │ │ └── ERC721Permit.permitForAll.t.sol │ │ │ │ ├── libraries │ │ │ │ ├── CalldataDecoder.t.sol │ │ │ │ └── PositionInfoLibrary.t.sol │ │ │ │ ├── mocks │ │ │ │ ├── MockBadSubscribers.sol │ │ │ │ ├── MockBaseActionsRouter.sol │ │ │ │ ├── MockCalldataDecoder.sol │ │ │ │ ├── MockDeltaResolver.sol │ │ │ │ ├── MockERC721Permit.sol │ │ │ │ ├── MockMulticall.sol │ │ │ │ ├── MockSafeCallback.sol │ │ │ │ ├── MockSubscriber.sol │ │ │ │ ├── MockUnorderedNonce.sol │ │ │ │ ├── MockV4Router.sol │ │ │ │ └── ReentrantToken.sol │ │ │ │ ├── position-managers │ │ │ │ ├── Execute.t.sol │ │ │ │ ├── FeeCollection.t.sol │ │ │ │ ├── IncreaseLiquidity.t.sol │ │ │ │ ├── NativeToken.t.sol │ │ │ │ ├── Permit.t.sol │ │ │ │ ├── Permit2Forwarder.t.sol │ │ │ │ ├── PositionManager.gas.t.sol │ │ │ │ ├── PositionManager.modifyLiquidities.t.sol │ │ │ │ ├── PositionManager.multicall.t.sol │ │ │ │ ├── PositionManager.notifier.t.sol │ │ │ │ └── PositionManager.t.sol │ │ │ │ ├── router │ │ │ │ ├── Payments.gas.t.sol │ │ │ │ ├── Payments.t.sol │ │ │ │ ├── V4Router.gas.t.sol │ │ │ │ └── V4Router.t.sol │ │ │ │ ├── script │ │ │ │ ├── DeployPoolManager.t.sol │ │ │ │ ├── DeployPoolMofifyLiquidityTest.t.sol │ │ │ │ └── DeployPoolSwapTest.t.sol │ │ │ │ └── shared │ │ │ │ ├── FeeMath.sol │ │ │ │ ├── HookModifyLiquidities.sol │ │ │ │ ├── HookSavesDelta.sol │ │ │ │ ├── LiquidityOperations.sol │ │ │ │ ├── Permit2SignatureHelpers.sol │ │ │ │ ├── Planner.sol │ │ │ │ ├── PositionConfig.sol │ │ │ │ ├── PosmTestSetup.sol │ │ │ │ ├── RoutingTestHelpers.sol │ │ │ │ └── fuzz │ │ │ │ └── LiquidityFuzzers.sol │ │ ├── remappings.txt │ │ ├── script │ │ │ ├── Deploy.s.sol │ │ │ └── Solve.s.sol │ │ └── src │ │ │ ├── ERC20.sol │ │ │ ├── Hook.sol │ │ │ ├── HookMiner.sol │ │ │ └── challenge.sol │ └── solve.py └── deploy.sh ├── upload.sh └── venn-gated-ronin-bridge ├── .challengeignore ├── README.md ├── build-server.sh ├── challenge.yaml └── challenge ├── Dockerfile ├── Dockerfile.local ├── challenge.py ├── docker-compose.yml ├── project ├── .gitignore ├── foundry.toml ├── lib │ ├── forge-ctf │ │ └── src │ │ │ ├── CTFDeployer.sol │ │ │ └── CTFSolver.sol │ ├── forge-std │ │ ├── .github │ │ │ └── workflows │ │ │ │ ├── ci.yml │ │ │ │ └── sync.yml │ │ ├── .gitignore │ │ ├── .gitmodules │ │ ├── LICENSE-APACHE │ │ ├── LICENSE-MIT │ │ ├── README.md │ │ ├── foundry.toml │ │ ├── lib │ │ │ └── ds-test │ │ │ │ ├── .github │ │ │ │ └── workflows │ │ │ │ │ └── build.yml │ │ │ │ ├── .gitignore │ │ │ │ ├── LICENSE │ │ │ │ ├── Makefile │ │ │ │ ├── default.nix │ │ │ │ ├── demo │ │ │ │ └── demo.sol │ │ │ │ ├── package.json │ │ │ │ └── src │ │ │ │ ├── test.sol │ │ │ │ └── test.t.sol │ │ ├── package.json │ │ ├── src │ │ │ ├── Base.sol │ │ │ ├── Script.sol │ │ │ ├── StdAssertions.sol │ │ │ ├── StdChains.sol │ │ │ ├── StdCheats.sol │ │ │ ├── StdError.sol │ │ │ ├── StdInvariant.sol │ │ │ ├── StdJson.sol │ │ │ ├── StdMath.sol │ │ │ ├── StdStorage.sol │ │ │ ├── StdStyle.sol │ │ │ ├── StdUtils.sol │ │ │ ├── Test.sol │ │ │ ├── Vm.sol │ │ │ ├── console.sol │ │ │ ├── console2.sol │ │ │ ├── interfaces │ │ │ │ ├── IERC1155.sol │ │ │ │ ├── IERC165.sol │ │ │ │ ├── IERC20.sol │ │ │ │ ├── IERC4626.sol │ │ │ │ ├── IERC721.sol │ │ │ │ └── IMulticall3.sol │ │ │ └── safeconsole.sol │ │ └── test │ │ │ ├── StdAssertions.t.sol │ │ │ ├── StdChains.t.sol │ │ │ ├── StdCheats.t.sol │ │ │ ├── StdError.t.sol │ │ │ ├── StdMath.t.sol │ │ │ ├── StdStorage.t.sol │ │ │ ├── StdStyle.t.sol │ │ │ ├── StdUtils.t.sol │ │ │ ├── Vm.t.sol │ │ │ ├── compilation │ │ │ ├── CompilationScript.sol │ │ │ ├── CompilationScriptBase.sol │ │ │ ├── CompilationTest.sol │ │ │ └── CompilationTestBase.sol │ │ │ └── fixtures │ │ │ └── broadcast.log.json │ ├── openzeppelin-contracts-upgradeable │ │ ├── .changeset │ │ │ ├── chilled-walls-develop.md │ │ │ ├── chilly-humans-warn.md │ │ │ ├── cold-cheetahs-check.md │ │ │ ├── config.json │ │ │ ├── cool-mangos-compare.md │ │ │ ├── curvy-crabs-repeat.md │ │ │ ├── dirty-cobras-smile.md │ │ │ ├── eight-eyes-burn.md │ │ │ ├── eleven-planets-relax.md │ │ │ ├── flat-turtles-repeat.md │ │ │ ├── fluffy-buses-jump.md │ │ │ ├── fluffy-steaks-exist.md │ │ │ ├── forty-dodos-visit.md │ │ │ ├── four-chairs-help.md │ │ │ ├── friendly-nails-push.md │ │ │ ├── gentle-bulldogs-turn.md │ │ │ ├── gorgeous-badgers-vanish.md │ │ │ ├── great-pianos-work.md │ │ │ ├── heavy-baboons-give.md │ │ │ ├── kind-planets-cough.md │ │ │ ├── light-news-listen.md │ │ │ ├── lucky-crews-eat.md │ │ │ ├── nervous-eyes-teach.md │ │ │ ├── nervous-pans-grow.md │ │ │ ├── nice-paws-pull.md │ │ │ ├── odd-files-protect.md │ │ │ ├── odd-lobsters-wash.md │ │ │ ├── poor-chefs-cheat.md │ │ │ ├── serious-carrots-provide.md │ │ │ ├── shiny-poets-whisper.md │ │ │ ├── silver-swans-promise.md │ │ │ ├── smart-bugs-switch.md │ │ │ ├── spotty-falcons-explain.md │ │ │ ├── spotty-queens-own.md │ │ │ ├── strong-singers-talk.md │ │ │ ├── thick-pumpkins-report.md │ │ │ ├── thin-walls-drop.md │ │ │ ├── tricky-bats-pretend.md │ │ │ ├── twenty-feet-grin.md │ │ │ ├── violet-moons-tell.md │ │ │ ├── warm-sheep-cover.md │ │ │ ├── wise-bobcats-speak.md │ │ │ ├── witty-chicken-smile.md │ │ │ ├── yellow-deers-walk.md │ │ │ └── yellow-moles-hammer.md │ │ ├── .codecov.yml │ │ ├── .editorconfig │ │ ├── .eslintrc │ │ ├── .githooks │ │ │ └── pre-push │ │ ├── .github │ │ │ ├── ISSUE_TEMPLATE │ │ │ │ └── config.yml │ │ │ ├── PULL_REQUEST_TEMPLATE.md │ │ │ ├── actions │ │ │ │ ├── gas-compare │ │ │ │ │ └── action.yml │ │ │ │ ├── setup │ │ │ │ │ └── action.yml │ │ │ │ └── storage-layout │ │ │ │ │ └── action.yml │ │ │ └── workflows │ │ │ │ ├── actionlint.yml │ │ │ │ ├── changeset.yml │ │ │ │ ├── checks.yml │ │ │ │ ├── docs.yml │ │ │ │ ├── formal-verification.yml │ │ │ │ ├── release-cycle.yml │ │ │ │ └── upgradeable.yml │ │ ├── .gitignore │ │ ├── .gitmodules │ │ ├── .mocharc.js │ │ ├── .prettierrc │ │ ├── .solcover.js │ │ ├── CHANGELOG.md │ │ ├── CODE_OF_CONDUCT.md │ │ ├── CONTRIBUTING.md │ │ ├── FUNDING.json │ │ ├── GUIDELINES.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── RELEASING.md │ │ ├── SECURITY.md │ │ ├── audits │ │ │ ├── 2017-03.md │ │ │ ├── 2018-10.pdf │ │ │ ├── 2022-10-Checkpoints.pdf │ │ │ ├── 2022-10-ERC4626.pdf │ │ │ ├── 2023-05-v4.9.pdf │ │ │ ├── 2023-10-v5.0.pdf │ │ │ └── README.md │ │ ├── certora │ │ │ ├── .gitignore │ │ │ ├── Makefile │ │ │ ├── README.md │ │ │ ├── diff │ │ │ │ └── access_manager_AccessManager.sol.patch │ │ │ ├── harnesses │ │ │ │ ├── AccessControlDefaultAdminRulesHarness.sol │ │ │ │ ├── AccessControlHarness.sol │ │ │ │ ├── AccessManagedHarness.sol │ │ │ │ ├── AccessManagerHarness.sol │ │ │ │ ├── DoubleEndedQueueHarness.sol │ │ │ │ ├── ERC20FlashMintHarness.sol │ │ │ │ ├── ERC20PermitHarness.sol │ │ │ │ ├── ERC20WrapperHarness.sol │ │ │ │ ├── ERC3156FlashBorrowerHarness.sol │ │ │ │ ├── ERC721Harness.sol │ │ │ │ ├── ERC721ReceiverHarness.sol │ │ │ │ ├── EnumerableMapHarness.sol │ │ │ │ ├── EnumerableSetHarness.sol │ │ │ │ ├── InitializableHarness.sol │ │ │ │ ├── NoncesHarness.sol │ │ │ │ ├── Ownable2StepHarness.sol │ │ │ │ ├── OwnableHarness.sol │ │ │ │ ├── PausableHarness.sol │ │ │ │ └── TimelockControllerHarness.sol │ │ │ ├── reports │ │ │ │ ├── 2021-10.pdf │ │ │ │ ├── 2022-03.pdf │ │ │ │ └── 2022-05.pdf │ │ │ ├── run.js │ │ │ ├── specs.json │ │ │ └── specs │ │ │ │ ├── AccessControl.spec │ │ │ │ ├── AccessControlDefaultAdminRules.spec │ │ │ │ ├── AccessManaged.spec │ │ │ │ ├── AccessManager.spec │ │ │ │ ├── DoubleEndedQueue.spec │ │ │ │ ├── ERC20.spec │ │ │ │ ├── ERC20FlashMint.spec │ │ │ │ ├── ERC20Wrapper.spec │ │ │ │ ├── ERC721.spec │ │ │ │ ├── EnumerableMap.spec │ │ │ │ ├── EnumerableSet.spec │ │ │ │ ├── Initializable.spec │ │ │ │ ├── Nonces.spec │ │ │ │ ├── Ownable.spec │ │ │ │ ├── Ownable2Step.spec │ │ │ │ ├── Pausable.spec │ │ │ │ ├── TimelockController.spec │ │ │ │ ├── helpers │ │ │ │ └── helpers.spec │ │ │ │ └── methods │ │ │ │ ├── IAccessControl.spec │ │ │ │ ├── IAccessControlDefaultAdminRules.spec │ │ │ │ ├── IAccessManaged.spec │ │ │ │ ├── IAccessManager.spec │ │ │ │ ├── IERC20.spec │ │ │ │ ├── IERC2612.spec │ │ │ │ ├── IERC3156FlashBorrower.spec │ │ │ │ ├── IERC3156FlashLender.spec │ │ │ │ ├── IERC5313.spec │ │ │ │ ├── IERC721.spec │ │ │ │ ├── IERC721Receiver.spec │ │ │ │ ├── IOwnable.spec │ │ │ │ └── IOwnable2Step.spec │ │ ├── contracts │ │ │ ├── access │ │ │ │ ├── AccessControlUpgradeable.sol │ │ │ │ ├── Ownable2StepUpgradeable.sol │ │ │ │ ├── OwnableUpgradeable.sol │ │ │ │ ├── README.adoc │ │ │ │ ├── extensions │ │ │ │ │ ├── AccessControlDefaultAdminRulesUpgradeable.sol │ │ │ │ │ └── AccessControlEnumerableUpgradeable.sol │ │ │ │ └── manager │ │ │ │ │ ├── AccessManagedUpgradeable.sol │ │ │ │ │ └── AccessManagerUpgradeable.sol │ │ │ ├── finance │ │ │ │ ├── README.adoc │ │ │ │ ├── VestingWalletCliffUpgradeable.sol │ │ │ │ └── VestingWalletUpgradeable.sol │ │ │ ├── governance │ │ │ │ ├── GovernorUpgradeable.sol │ │ │ │ ├── README.adoc │ │ │ │ ├── TimelockControllerUpgradeable.sol │ │ │ │ ├── extensions │ │ │ │ │ ├── GovernorCountingFractionalUpgradeable.sol │ │ │ │ │ ├── GovernorCountingSimpleUpgradeable.sol │ │ │ │ │ ├── GovernorPreventLateQuorumUpgradeable.sol │ │ │ │ │ ├── GovernorSettingsUpgradeable.sol │ │ │ │ │ ├── GovernorStorageUpgradeable.sol │ │ │ │ │ ├── GovernorTimelockAccessUpgradeable.sol │ │ │ │ │ ├── GovernorTimelockCompoundUpgradeable.sol │ │ │ │ │ ├── GovernorTimelockControlUpgradeable.sol │ │ │ │ │ ├── GovernorVotesQuorumFractionUpgradeable.sol │ │ │ │ │ └── GovernorVotesUpgradeable.sol │ │ │ │ └── utils │ │ │ │ │ └── VotesUpgradeable.sol │ │ │ ├── interfaces │ │ │ │ └── README.adoc │ │ │ ├── metatx │ │ │ │ ├── ERC2771ContextUpgradeable.sol │ │ │ │ ├── ERC2771ForwarderUpgradeable.sol │ │ │ │ └── README.adoc │ │ │ ├── mocks │ │ │ │ ├── AccessManagedTargetUpgradeable.sol │ │ │ │ ├── AccessManagerMockUpgradeable.sol │ │ │ │ ├── ArraysMockUpgradeable.sol │ │ │ │ ├── AuthorityMockUpgradeable.sol │ │ │ │ ├── Base64DirtyUpgradeable.sol │ │ │ │ ├── BatchCallerUpgradeable.sol │ │ │ │ ├── CallReceiverMockUpgradeable.sol │ │ │ │ ├── ConstructorMockUpgradeable.sol │ │ │ │ ├── ContextMockUpgradeable.sol │ │ │ │ ├── DummyImplementationUpgradeable.sol │ │ │ │ ├── EIP712VerifierUpgradeable.sol │ │ │ │ ├── ERC1271WalletMockUpgradeable.sol │ │ │ │ ├── ERC165 │ │ │ │ │ ├── ERC165InterfacesSupportedUpgradeable.sol │ │ │ │ │ ├── ERC165MaliciousDataUpgradeable.sol │ │ │ │ │ ├── ERC165MissingDataUpgradeable.sol │ │ │ │ │ ├── ERC165NotSupportedUpgradeable.sol │ │ │ │ │ └── ERC165ReturnBombUpgradeable.sol │ │ │ │ ├── ERC2771ContextMockUpgradeable.sol │ │ │ │ ├── ERC3156FlashBorrowerMockUpgradeable.sol │ │ │ │ ├── EtherReceiverMockUpgradeable.sol │ │ │ │ ├── InitializableMock.sol │ │ │ │ ├── MerkleProofCustomHashMockUpgradeable.sol │ │ │ │ ├── MerkleTreeMockUpgradeable.sol │ │ │ │ ├── MulticallHelperUpgradeable.sol │ │ │ │ ├── MultipleInheritanceInitializableMocks.sol │ │ │ │ ├── PausableMockUpgradeable.sol │ │ │ │ ├── ReentrancyAttackUpgradeable.sol │ │ │ │ ├── ReentrancyMockUpgradeable.sol │ │ │ │ ├── ReentrancyTransientMockUpgradeable.sol │ │ │ │ ├── RegressionImplementation.sol │ │ │ │ ├── SingleInheritanceInitializableMocks.sol │ │ │ │ ├── StatelessUpgradeable.sol │ │ │ │ ├── StorageSlotMockUpgradeable.sol │ │ │ │ ├── TimelockReentrantUpgradeable.sol │ │ │ │ ├── UpgradeableBeaconMockUpgradeable.sol │ │ │ │ ├── VotesMockUpgradeable.sol │ │ │ │ ├── WithInit.sol │ │ │ │ ├── compound │ │ │ │ │ └── CompTimelockUpgradeable.sol │ │ │ │ ├── governance │ │ │ │ │ ├── GovernorFractionalMockUpgradeable.sol │ │ │ │ │ ├── GovernorMockUpgradeable.sol │ │ │ │ │ ├── GovernorPreventLateQuorumMockUpgradeable.sol │ │ │ │ │ ├── GovernorStorageMockUpgradeable.sol │ │ │ │ │ ├── GovernorTimelockAccessMockUpgradeable.sol │ │ │ │ │ ├── GovernorTimelockCompoundMockUpgradeable.sol │ │ │ │ │ ├── GovernorTimelockControlMockUpgradeable.sol │ │ │ │ │ ├── GovernorVoteMockUpgradeable.sol │ │ │ │ │ └── GovernorWithParamsMockUpgradeable.sol │ │ │ │ ├── proxy │ │ │ │ │ ├── BadBeaconUpgradeable.sol │ │ │ │ │ ├── ClashingImplementationUpgradeable.sol │ │ │ │ │ └── UUPSUpgradeableMockUpgradeable.sol │ │ │ │ └── token │ │ │ │ │ ├── ERC1155ReceiverMockUpgradeable.sol │ │ │ │ │ ├── ERC1363ForceApproveMockUpgradeable.sol │ │ │ │ │ ├── ERC1363NoReturnMockUpgradeable.sol │ │ │ │ │ ├── ERC1363ReceiverMockUpgradeable.sol │ │ │ │ │ ├── ERC1363ReturnFalseMockUpgradeable.sol │ │ │ │ │ ├── ERC1363SpenderMockUpgradeable.sol │ │ │ │ │ ├── ERC20ApprovalMockUpgradeable.sol │ │ │ │ │ ├── ERC20DecimalsMockUpgradeable.sol │ │ │ │ │ ├── ERC20ExcessDecimalsMockUpgradeable.sol │ │ │ │ │ ├── ERC20FlashMintMockUpgradeable.sol │ │ │ │ │ ├── ERC20ForceApproveMockUpgradeable.sol │ │ │ │ │ ├── ERC20GetterHelperUpgradeable.sol │ │ │ │ │ ├── ERC20MockUpgradeable.sol │ │ │ │ │ ├── ERC20MulticallMockUpgradeable.sol │ │ │ │ │ ├── ERC20NoReturnMockUpgradeable.sol │ │ │ │ │ ├── ERC20ReentrantUpgradeable.sol │ │ │ │ │ ├── ERC20ReturnFalseMockUpgradeable.sol │ │ │ │ │ ├── ERC20VotesLegacyMockUpgradeable.sol │ │ │ │ │ ├── ERC20VotesTimestampMockUpgradeable.sol │ │ │ │ │ ├── ERC4626LimitsMockUpgradeable.sol │ │ │ │ │ ├── ERC4626MockUpgradeable.sol │ │ │ │ │ ├── ERC4626OffsetMockUpgradeable.sol │ │ │ │ │ ├── ERC4646FeesMockUpgradeable.sol │ │ │ │ │ ├── ERC721ConsecutiveEnumerableMockUpgradeable.sol │ │ │ │ │ ├── ERC721ConsecutiveMockUpgradeable.sol │ │ │ │ │ ├── ERC721ReceiverMockUpgradeable.sol │ │ │ │ │ └── ERC721URIStorageMockUpgradeable.sol │ │ │ ├── package.json │ │ │ ├── proxy │ │ │ │ ├── README.adoc │ │ │ │ └── utils │ │ │ │ │ ├── Initializable.sol │ │ │ │ │ └── UUPSUpgradeable.sol │ │ │ ├── token │ │ │ │ ├── ERC1155 │ │ │ │ │ ├── ERC1155Upgradeable.sol │ │ │ │ │ ├── README.adoc │ │ │ │ │ ├── extensions │ │ │ │ │ │ ├── ERC1155BurnableUpgradeable.sol │ │ │ │ │ │ ├── ERC1155PausableUpgradeable.sol │ │ │ │ │ │ ├── ERC1155SupplyUpgradeable.sol │ │ │ │ │ │ └── ERC1155URIStorageUpgradeable.sol │ │ │ │ │ └── utils │ │ │ │ │ │ └── ERC1155HolderUpgradeable.sol │ │ │ │ ├── ERC20 │ │ │ │ │ ├── ERC20Upgradeable.sol │ │ │ │ │ ├── README.adoc │ │ │ │ │ └── extensions │ │ │ │ │ │ ├── ERC1363Upgradeable.sol │ │ │ │ │ │ ├── ERC20BurnableUpgradeable.sol │ │ │ │ │ │ ├── ERC20CappedUpgradeable.sol │ │ │ │ │ │ ├── ERC20FlashMintUpgradeable.sol │ │ │ │ │ │ ├── ERC20PausableUpgradeable.sol │ │ │ │ │ │ ├── ERC20PermitUpgradeable.sol │ │ │ │ │ │ ├── ERC20VotesUpgradeable.sol │ │ │ │ │ │ ├── ERC20WrapperUpgradeable.sol │ │ │ │ │ │ ├── ERC4626Upgradeable.sol │ │ │ │ │ │ └── draft-ERC20TemporaryApprovalUpgradeable.sol │ │ │ │ ├── ERC721 │ │ │ │ │ ├── ERC721Upgradeable.sol │ │ │ │ │ ├── README.adoc │ │ │ │ │ ├── extensions │ │ │ │ │ │ ├── ERC721BurnableUpgradeable.sol │ │ │ │ │ │ ├── ERC721ConsecutiveUpgradeable.sol │ │ │ │ │ │ ├── ERC721EnumerableUpgradeable.sol │ │ │ │ │ │ ├── ERC721PausableUpgradeable.sol │ │ │ │ │ │ ├── ERC721RoyaltyUpgradeable.sol │ │ │ │ │ │ ├── ERC721URIStorageUpgradeable.sol │ │ │ │ │ │ ├── ERC721VotesUpgradeable.sol │ │ │ │ │ │ └── ERC721WrapperUpgradeable.sol │ │ │ │ │ └── utils │ │ │ │ │ │ └── ERC721HolderUpgradeable.sol │ │ │ │ └── common │ │ │ │ │ ├── ERC2981Upgradeable.sol │ │ │ │ │ └── README.adoc │ │ │ ├── utils │ │ │ │ ├── ContextUpgradeable.sol │ │ │ │ ├── MulticallUpgradeable.sol │ │ │ │ ├── NoncesUpgradeable.sol │ │ │ │ ├── PausableUpgradeable.sol │ │ │ │ ├── README.adoc │ │ │ │ ├── ReentrancyGuardTransientUpgradeable.sol │ │ │ │ ├── ReentrancyGuardUpgradeable.sol │ │ │ │ ├── cryptography │ │ │ │ │ └── EIP712Upgradeable.sol │ │ │ │ └── introspection │ │ │ │ │ └── ERC165Upgradeable.sol │ │ │ └── vendor │ │ │ │ └── compound │ │ │ │ └── LICENSE │ │ ├── foundry.toml │ │ ├── fv-requirements.txt │ │ ├── hardhat.config.js │ │ ├── hardhat │ │ │ ├── async-test-sanity.js │ │ │ ├── env-artifacts.js │ │ │ ├── ignore-unreachable-warnings.js │ │ │ ├── remappings.js │ │ │ ├── skip-foundry-tests.js │ │ │ └── task-test-get-files.js │ │ ├── lib │ │ │ ├── erc4626-tests │ │ │ │ ├── ERC4626.prop.sol │ │ │ │ ├── ERC4626.test.sol │ │ │ │ ├── LICENSE │ │ │ │ └── README.md │ │ │ ├── forge-std │ │ │ │ ├── .gitattributes │ │ │ │ ├── .github │ │ │ │ │ └── workflows │ │ │ │ │ │ ├── ci.yml │ │ │ │ │ │ └── sync.yml │ │ │ │ ├── .gitignore │ │ │ │ ├── .gitmodules │ │ │ │ ├── LICENSE-APACHE │ │ │ │ ├── LICENSE-MIT │ │ │ │ ├── README.md │ │ │ │ ├── foundry.toml │ │ │ │ ├── lib │ │ │ │ │ └── ds-test │ │ │ │ │ │ ├── .github │ │ │ │ │ │ └── workflows │ │ │ │ │ │ │ └── build.yml │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── Makefile │ │ │ │ │ │ ├── default.nix │ │ │ │ │ │ ├── demo │ │ │ │ │ │ └── demo.sol │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ └── src │ │ │ │ │ │ ├── test.sol │ │ │ │ │ │ └── test.t.sol │ │ │ │ ├── package.json │ │ │ │ ├── scripts │ │ │ │ │ └── vm.py │ │ │ │ ├── src │ │ │ │ │ ├── Base.sol │ │ │ │ │ ├── Script.sol │ │ │ │ │ ├── StdAssertions.sol │ │ │ │ │ ├── StdChains.sol │ │ │ │ │ ├── StdCheats.sol │ │ │ │ │ ├── StdError.sol │ │ │ │ │ ├── StdInvariant.sol │ │ │ │ │ ├── StdJson.sol │ │ │ │ │ ├── StdMath.sol │ │ │ │ │ ├── StdStorage.sol │ │ │ │ │ ├── StdStyle.sol │ │ │ │ │ ├── StdUtils.sol │ │ │ │ │ ├── Test.sol │ │ │ │ │ ├── Vm.sol │ │ │ │ │ ├── console.sol │ │ │ │ │ ├── console2.sol │ │ │ │ │ ├── interfaces │ │ │ │ │ │ ├── IERC1155.sol │ │ │ │ │ │ ├── IERC165.sol │ │ │ │ │ │ ├── IERC20.sol │ │ │ │ │ │ ├── IERC4626.sol │ │ │ │ │ │ ├── IERC721.sol │ │ │ │ │ │ └── IMulticall3.sol │ │ │ │ │ ├── mocks │ │ │ │ │ │ ├── MockERC20.sol │ │ │ │ │ │ └── MockERC721.sol │ │ │ │ │ └── safeconsole.sol │ │ │ │ └── test │ │ │ │ │ ├── StdAssertions.t.sol │ │ │ │ │ ├── StdChains.t.sol │ │ │ │ │ ├── StdCheats.t.sol │ │ │ │ │ ├── StdError.t.sol │ │ │ │ │ ├── StdMath.t.sol │ │ │ │ │ ├── StdStorage.t.sol │ │ │ │ │ ├── StdStyle.t.sol │ │ │ │ │ ├── StdUtils.t.sol │ │ │ │ │ ├── Vm.t.sol │ │ │ │ │ ├── compilation │ │ │ │ │ ├── CompilationScript.sol │ │ │ │ │ ├── CompilationScriptBase.sol │ │ │ │ │ ├── CompilationTest.sol │ │ │ │ │ └── CompilationTestBase.sol │ │ │ │ │ ├── fixtures │ │ │ │ │ └── broadcast.log.json │ │ │ │ │ └── mocks │ │ │ │ │ ├── MockERC20.t.sol │ │ │ │ │ └── MockERC721.t.sol │ │ │ ├── halmos-cheatcodes │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ └── src │ │ │ │ │ ├── SVM.sol │ │ │ │ │ └── SymTest.sol │ │ │ └── openzeppelin-contracts │ │ │ │ ├── .changeset │ │ │ │ ├── chilled-walls-develop.md │ │ │ │ ├── chilly-humans-warn.md │ │ │ │ ├── cold-cheetahs-check.md │ │ │ │ ├── config.json │ │ │ │ ├── cool-mangos-compare.md │ │ │ │ ├── curvy-crabs-repeat.md │ │ │ │ ├── dirty-cobras-smile.md │ │ │ │ ├── eight-eyes-burn.md │ │ │ │ ├── eleven-planets-relax.md │ │ │ │ ├── flat-turtles-repeat.md │ │ │ │ ├── fluffy-buses-jump.md │ │ │ │ ├── fluffy-steaks-exist.md │ │ │ │ ├── forty-dodos-visit.md │ │ │ │ ├── four-chairs-help.md │ │ │ │ ├── friendly-nails-push.md │ │ │ │ ├── gentle-bulldogs-turn.md │ │ │ │ ├── gorgeous-badgers-vanish.md │ │ │ │ ├── great-pianos-work.md │ │ │ │ ├── heavy-baboons-give.md │ │ │ │ ├── kind-planets-cough.md │ │ │ │ ├── light-news-listen.md │ │ │ │ ├── lucky-crews-eat.md │ │ │ │ ├── nervous-eyes-teach.md │ │ │ │ ├── nervous-pans-grow.md │ │ │ │ ├── nice-paws-pull.md │ │ │ │ ├── odd-files-protect.md │ │ │ │ ├── odd-lobsters-wash.md │ │ │ │ ├── poor-chefs-cheat.md │ │ │ │ ├── serious-carrots-provide.md │ │ │ │ ├── shiny-poets-whisper.md │ │ │ │ ├── silver-swans-promise.md │ │ │ │ ├── smart-bugs-switch.md │ │ │ │ ├── spotty-falcons-explain.md │ │ │ │ ├── spotty-queens-own.md │ │ │ │ ├── strong-singers-talk.md │ │ │ │ ├── thick-pumpkins-report.md │ │ │ │ ├── thin-walls-drop.md │ │ │ │ ├── tricky-bats-pretend.md │ │ │ │ ├── twenty-feet-grin.md │ │ │ │ ├── violet-moons-tell.md │ │ │ │ ├── warm-sheep-cover.md │ │ │ │ ├── wise-bobcats-speak.md │ │ │ │ ├── witty-chicken-smile.md │ │ │ │ ├── yellow-deers-walk.md │ │ │ │ └── yellow-moles-hammer.md │ │ │ │ ├── .codecov.yml │ │ │ │ ├── .editorconfig │ │ │ │ ├── .eslintrc │ │ │ │ ├── .githooks │ │ │ │ └── pre-push │ │ │ │ ├── .github │ │ │ │ ├── ISSUE_TEMPLATE │ │ │ │ │ ├── bug_report.md │ │ │ │ │ ├── config.yml │ │ │ │ │ └── feature_request.md │ │ │ │ ├── PULL_REQUEST_TEMPLATE.md │ │ │ │ ├── actions │ │ │ │ │ ├── gas-compare │ │ │ │ │ │ └── action.yml │ │ │ │ │ ├── setup │ │ │ │ │ │ └── action.yml │ │ │ │ │ └── storage-layout │ │ │ │ │ │ └── action.yml │ │ │ │ └── workflows │ │ │ │ │ ├── actionlint.yml │ │ │ │ │ ├── changeset.yml │ │ │ │ │ ├── checks.yml │ │ │ │ │ ├── docs.yml │ │ │ │ │ ├── formal-verification.yml │ │ │ │ │ ├── release-cycle.yml │ │ │ │ │ └── upgradeable.yml │ │ │ │ ├── .gitignore │ │ │ │ ├── .gitmodules │ │ │ │ ├── .mocharc.js │ │ │ │ ├── .prettierrc │ │ │ │ ├── .solcover.js │ │ │ │ ├── CHANGELOG.md │ │ │ │ ├── CODE_OF_CONDUCT.md │ │ │ │ ├── CONTRIBUTING.md │ │ │ │ ├── FUNDING.json │ │ │ │ ├── GUIDELINES.md │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── RELEASING.md │ │ │ │ ├── SECURITY.md │ │ │ │ ├── audits │ │ │ │ ├── 2017-03.md │ │ │ │ ├── 2018-10.pdf │ │ │ │ ├── 2022-10-Checkpoints.pdf │ │ │ │ ├── 2022-10-ERC4626.pdf │ │ │ │ ├── 2023-05-v4.9.pdf │ │ │ │ ├── 2023-10-v5.0.pdf │ │ │ │ └── README.md │ │ │ │ ├── certora │ │ │ │ ├── .gitignore │ │ │ │ ├── Makefile │ │ │ │ ├── README.md │ │ │ │ ├── diff │ │ │ │ │ └── access_manager_AccessManager.sol.patch │ │ │ │ ├── harnesses │ │ │ │ │ ├── AccessControlDefaultAdminRulesHarness.sol │ │ │ │ │ ├── AccessControlHarness.sol │ │ │ │ │ ├── AccessManagedHarness.sol │ │ │ │ │ ├── AccessManagerHarness.sol │ │ │ │ │ ├── DoubleEndedQueueHarness.sol │ │ │ │ │ ├── ERC20FlashMintHarness.sol │ │ │ │ │ ├── ERC20PermitHarness.sol │ │ │ │ │ ├── ERC20WrapperHarness.sol │ │ │ │ │ ├── ERC3156FlashBorrowerHarness.sol │ │ │ │ │ ├── ERC721Harness.sol │ │ │ │ │ ├── ERC721ReceiverHarness.sol │ │ │ │ │ ├── EnumerableMapHarness.sol │ │ │ │ │ ├── EnumerableSetHarness.sol │ │ │ │ │ ├── InitializableHarness.sol │ │ │ │ │ ├── NoncesHarness.sol │ │ │ │ │ ├── Ownable2StepHarness.sol │ │ │ │ │ ├── OwnableHarness.sol │ │ │ │ │ ├── PausableHarness.sol │ │ │ │ │ └── TimelockControllerHarness.sol │ │ │ │ ├── reports │ │ │ │ │ ├── 2021-10.pdf │ │ │ │ │ ├── 2022-03.pdf │ │ │ │ │ └── 2022-05.pdf │ │ │ │ ├── run.js │ │ │ │ ├── specs.json │ │ │ │ └── specs │ │ │ │ │ ├── AccessControl.spec │ │ │ │ │ ├── AccessControlDefaultAdminRules.spec │ │ │ │ │ ├── AccessManaged.spec │ │ │ │ │ ├── AccessManager.spec │ │ │ │ │ ├── DoubleEndedQueue.spec │ │ │ │ │ ├── ERC20.spec │ │ │ │ │ ├── ERC20FlashMint.spec │ │ │ │ │ ├── ERC20Wrapper.spec │ │ │ │ │ ├── ERC721.spec │ │ │ │ │ ├── EnumerableMap.spec │ │ │ │ │ ├── EnumerableSet.spec │ │ │ │ │ ├── Initializable.spec │ │ │ │ │ ├── Nonces.spec │ │ │ │ │ ├── Ownable.spec │ │ │ │ │ ├── Ownable2Step.spec │ │ │ │ │ ├── Pausable.spec │ │ │ │ │ ├── TimelockController.spec │ │ │ │ │ ├── helpers │ │ │ │ │ └── helpers.spec │ │ │ │ │ └── methods │ │ │ │ │ ├── IAccessControl.spec │ │ │ │ │ ├── IAccessControlDefaultAdminRules.spec │ │ │ │ │ ├── IAccessManaged.spec │ │ │ │ │ ├── IAccessManager.spec │ │ │ │ │ ├── IERC20.spec │ │ │ │ │ ├── IERC2612.spec │ │ │ │ │ ├── IERC3156FlashBorrower.spec │ │ │ │ │ ├── IERC3156FlashLender.spec │ │ │ │ │ ├── IERC5313.spec │ │ │ │ │ ├── IERC721.spec │ │ │ │ │ ├── IERC721Receiver.spec │ │ │ │ │ ├── IOwnable.spec │ │ │ │ │ └── IOwnable2Step.spec │ │ │ │ ├── contracts │ │ │ │ ├── access │ │ │ │ │ ├── AccessControl.sol │ │ │ │ │ ├── IAccessControl.sol │ │ │ │ │ ├── Ownable.sol │ │ │ │ │ ├── Ownable2Step.sol │ │ │ │ │ ├── README.adoc │ │ │ │ │ ├── extensions │ │ │ │ │ │ ├── AccessControlDefaultAdminRules.sol │ │ │ │ │ │ ├── AccessControlEnumerable.sol │ │ │ │ │ │ ├── IAccessControlDefaultAdminRules.sol │ │ │ │ │ │ └── IAccessControlEnumerable.sol │ │ │ │ │ └── manager │ │ │ │ │ │ ├── AccessManaged.sol │ │ │ │ │ │ ├── AccessManager.sol │ │ │ │ │ │ ├── AuthorityUtils.sol │ │ │ │ │ │ ├── IAccessManaged.sol │ │ │ │ │ │ ├── IAccessManager.sol │ │ │ │ │ │ └── IAuthority.sol │ │ │ │ ├── finance │ │ │ │ │ ├── README.adoc │ │ │ │ │ ├── VestingWallet.sol │ │ │ │ │ └── VestingWalletCliff.sol │ │ │ │ ├── governance │ │ │ │ │ ├── Governor.sol │ │ │ │ │ ├── IGovernor.sol │ │ │ │ │ ├── README.adoc │ │ │ │ │ ├── TimelockController.sol │ │ │ │ │ ├── extensions │ │ │ │ │ │ ├── GovernorCountingFractional.sol │ │ │ │ │ │ ├── GovernorCountingSimple.sol │ │ │ │ │ │ ├── GovernorPreventLateQuorum.sol │ │ │ │ │ │ ├── GovernorSettings.sol │ │ │ │ │ │ ├── GovernorStorage.sol │ │ │ │ │ │ ├── GovernorTimelockAccess.sol │ │ │ │ │ │ ├── GovernorTimelockCompound.sol │ │ │ │ │ │ ├── GovernorTimelockControl.sol │ │ │ │ │ │ ├── GovernorVotes.sol │ │ │ │ │ │ └── GovernorVotesQuorumFraction.sol │ │ │ │ │ └── utils │ │ │ │ │ │ ├── IVotes.sol │ │ │ │ │ │ └── Votes.sol │ │ │ │ ├── interfaces │ │ │ │ │ ├── IERC1155.sol │ │ │ │ │ ├── IERC1155MetadataURI.sol │ │ │ │ │ ├── IERC1155Receiver.sol │ │ │ │ │ ├── IERC1271.sol │ │ │ │ │ ├── IERC1363.sol │ │ │ │ │ ├── IERC1363Receiver.sol │ │ │ │ │ ├── IERC1363Spender.sol │ │ │ │ │ ├── IERC165.sol │ │ │ │ │ ├── IERC1820Implementer.sol │ │ │ │ │ ├── IERC1820Registry.sol │ │ │ │ │ ├── IERC1967.sol │ │ │ │ │ ├── IERC20.sol │ │ │ │ │ ├── IERC20Metadata.sol │ │ │ │ │ ├── IERC2309.sol │ │ │ │ │ ├── IERC2612.sol │ │ │ │ │ ├── IERC2981.sol │ │ │ │ │ ├── IERC3156.sol │ │ │ │ │ ├── IERC3156FlashBorrower.sol │ │ │ │ │ ├── IERC3156FlashLender.sol │ │ │ │ │ ├── IERC4626.sol │ │ │ │ │ ├── IERC4906.sol │ │ │ │ │ ├── IERC5267.sol │ │ │ │ │ ├── IERC5313.sol │ │ │ │ │ ├── IERC5805.sol │ │ │ │ │ ├── IERC6372.sol │ │ │ │ │ ├── IERC721.sol │ │ │ │ │ ├── IERC721Enumerable.sol │ │ │ │ │ ├── IERC721Metadata.sol │ │ │ │ │ ├── IERC721Receiver.sol │ │ │ │ │ ├── IERC777.sol │ │ │ │ │ ├── IERC777Recipient.sol │ │ │ │ │ ├── IERC777Sender.sol │ │ │ │ │ ├── README.adoc │ │ │ │ │ ├── draft-IERC1822.sol │ │ │ │ │ ├── draft-IERC6093.sol │ │ │ │ │ └── draft-IERC7674.sol │ │ │ │ ├── metatx │ │ │ │ │ ├── ERC2771Context.sol │ │ │ │ │ ├── ERC2771Forwarder.sol │ │ │ │ │ └── README.adoc │ │ │ │ ├── mocks │ │ │ │ │ ├── AccessManagedTarget.sol │ │ │ │ │ ├── AccessManagerMock.sol │ │ │ │ │ ├── ArraysMock.sol │ │ │ │ │ ├── AuthorityMock.sol │ │ │ │ │ ├── Base64Dirty.sol │ │ │ │ │ ├── BatchCaller.sol │ │ │ │ │ ├── CallReceiverMock.sol │ │ │ │ │ ├── ConstructorMock.sol │ │ │ │ │ ├── ContextMock.sol │ │ │ │ │ ├── DummyImplementation.sol │ │ │ │ │ ├── EIP712Verifier.sol │ │ │ │ │ ├── ERC1271WalletMock.sol │ │ │ │ │ ├── ERC165 │ │ │ │ │ │ ├── ERC165InterfacesSupported.sol │ │ │ │ │ │ ├── ERC165MaliciousData.sol │ │ │ │ │ │ ├── ERC165MissingData.sol │ │ │ │ │ │ ├── ERC165NotSupported.sol │ │ │ │ │ │ └── ERC165ReturnBomb.sol │ │ │ │ │ ├── ERC2771ContextMock.sol │ │ │ │ │ ├── ERC3156FlashBorrowerMock.sol │ │ │ │ │ ├── EtherReceiverMock.sol │ │ │ │ │ ├── InitializableMock.sol │ │ │ │ │ ├── MerkleProofCustomHashMock.sol │ │ │ │ │ ├── MerkleTreeMock.sol │ │ │ │ │ ├── MulticallHelper.sol │ │ │ │ │ ├── MultipleInheritanceInitializableMocks.sol │ │ │ │ │ ├── PausableMock.sol │ │ │ │ │ ├── ReentrancyAttack.sol │ │ │ │ │ ├── ReentrancyMock.sol │ │ │ │ │ ├── ReentrancyTransientMock.sol │ │ │ │ │ ├── RegressionImplementation.sol │ │ │ │ │ ├── SingleInheritanceInitializableMocks.sol │ │ │ │ │ ├── Stateless.sol │ │ │ │ │ ├── StorageSlotMock.sol │ │ │ │ │ ├── TimelockReentrant.sol │ │ │ │ │ ├── UpgradeableBeaconMock.sol │ │ │ │ │ ├── VotesMock.sol │ │ │ │ │ ├── compound │ │ │ │ │ │ └── CompTimelock.sol │ │ │ │ │ ├── governance │ │ │ │ │ │ ├── GovernorFractionalMock.sol │ │ │ │ │ │ ├── GovernorMock.sol │ │ │ │ │ │ ├── GovernorPreventLateQuorumMock.sol │ │ │ │ │ │ ├── GovernorStorageMock.sol │ │ │ │ │ │ ├── GovernorTimelockAccessMock.sol │ │ │ │ │ │ ├── GovernorTimelockCompoundMock.sol │ │ │ │ │ │ ├── GovernorTimelockControlMock.sol │ │ │ │ │ │ ├── GovernorVoteMock.sol │ │ │ │ │ │ └── GovernorWithParamsMock.sol │ │ │ │ │ ├── proxy │ │ │ │ │ │ ├── BadBeacon.sol │ │ │ │ │ │ ├── ClashingImplementation.sol │ │ │ │ │ │ └── UUPSUpgradeableMock.sol │ │ │ │ │ └── token │ │ │ │ │ │ ├── ERC1155ReceiverMock.sol │ │ │ │ │ │ ├── ERC1363ForceApproveMock.sol │ │ │ │ │ │ ├── ERC1363NoReturnMock.sol │ │ │ │ │ │ ├── ERC1363ReceiverMock.sol │ │ │ │ │ │ ├── ERC1363ReturnFalseMock.sol │ │ │ │ │ │ ├── ERC1363SpenderMock.sol │ │ │ │ │ │ ├── ERC20ApprovalMock.sol │ │ │ │ │ │ ├── ERC20DecimalsMock.sol │ │ │ │ │ │ ├── ERC20ExcessDecimalsMock.sol │ │ │ │ │ │ ├── ERC20FlashMintMock.sol │ │ │ │ │ │ ├── ERC20ForceApproveMock.sol │ │ │ │ │ │ ├── ERC20GetterHelper.sol │ │ │ │ │ │ ├── ERC20Mock.sol │ │ │ │ │ │ ├── ERC20MulticallMock.sol │ │ │ │ │ │ ├── ERC20NoReturnMock.sol │ │ │ │ │ │ ├── ERC20Reentrant.sol │ │ │ │ │ │ ├── ERC20ReturnFalseMock.sol │ │ │ │ │ │ ├── ERC20VotesLegacyMock.sol │ │ │ │ │ │ ├── ERC20VotesTimestampMock.sol │ │ │ │ │ │ ├── ERC4626LimitsMock.sol │ │ │ │ │ │ ├── ERC4626Mock.sol │ │ │ │ │ │ ├── ERC4626OffsetMock.sol │ │ │ │ │ │ ├── ERC4646FeesMock.sol │ │ │ │ │ │ ├── ERC721ConsecutiveEnumerableMock.sol │ │ │ │ │ │ ├── ERC721ConsecutiveMock.sol │ │ │ │ │ │ ├── ERC721ReceiverMock.sol │ │ │ │ │ │ └── ERC721URIStorageMock.sol │ │ │ │ ├── package.json │ │ │ │ ├── proxy │ │ │ │ │ ├── Clones.sol │ │ │ │ │ ├── ERC1967 │ │ │ │ │ │ ├── ERC1967Proxy.sol │ │ │ │ │ │ └── ERC1967Utils.sol │ │ │ │ │ ├── Proxy.sol │ │ │ │ │ ├── README.adoc │ │ │ │ │ ├── beacon │ │ │ │ │ │ ├── BeaconProxy.sol │ │ │ │ │ │ ├── IBeacon.sol │ │ │ │ │ │ └── UpgradeableBeacon.sol │ │ │ │ │ ├── transparent │ │ │ │ │ │ ├── ProxyAdmin.sol │ │ │ │ │ │ └── TransparentUpgradeableProxy.sol │ │ │ │ │ └── utils │ │ │ │ │ │ ├── Initializable.sol │ │ │ │ │ │ └── UUPSUpgradeable.sol │ │ │ │ ├── token │ │ │ │ │ ├── ERC1155 │ │ │ │ │ │ ├── ERC1155.sol │ │ │ │ │ │ ├── IERC1155.sol │ │ │ │ │ │ ├── IERC1155Receiver.sol │ │ │ │ │ │ ├── README.adoc │ │ │ │ │ │ ├── extensions │ │ │ │ │ │ │ ├── ERC1155Burnable.sol │ │ │ │ │ │ │ ├── ERC1155Pausable.sol │ │ │ │ │ │ │ ├── ERC1155Supply.sol │ │ │ │ │ │ │ ├── ERC1155URIStorage.sol │ │ │ │ │ │ │ └── IERC1155MetadataURI.sol │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ ├── ERC1155Holder.sol │ │ │ │ │ │ │ └── ERC1155Utils.sol │ │ │ │ │ ├── ERC20 │ │ │ │ │ │ ├── ERC20.sol │ │ │ │ │ │ ├── IERC20.sol │ │ │ │ │ │ ├── README.adoc │ │ │ │ │ │ ├── extensions │ │ │ │ │ │ │ ├── ERC1363.sol │ │ │ │ │ │ │ ├── ERC20Burnable.sol │ │ │ │ │ │ │ ├── ERC20Capped.sol │ │ │ │ │ │ │ ├── ERC20FlashMint.sol │ │ │ │ │ │ │ ├── ERC20Pausable.sol │ │ │ │ │ │ │ ├── ERC20Permit.sol │ │ │ │ │ │ │ ├── ERC20Votes.sol │ │ │ │ │ │ │ ├── ERC20Wrapper.sol │ │ │ │ │ │ │ ├── ERC4626.sol │ │ │ │ │ │ │ ├── IERC20Metadata.sol │ │ │ │ │ │ │ ├── IERC20Permit.sol │ │ │ │ │ │ │ └── draft-ERC20TemporaryApproval.sol │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ ├── ERC1363Utils.sol │ │ │ │ │ │ │ └── SafeERC20.sol │ │ │ │ │ ├── ERC721 │ │ │ │ │ │ ├── ERC721.sol │ │ │ │ │ │ ├── IERC721.sol │ │ │ │ │ │ ├── IERC721Receiver.sol │ │ │ │ │ │ ├── README.adoc │ │ │ │ │ │ ├── extensions │ │ │ │ │ │ │ ├── ERC721Burnable.sol │ │ │ │ │ │ │ ├── ERC721Consecutive.sol │ │ │ │ │ │ │ ├── ERC721Enumerable.sol │ │ │ │ │ │ │ ├── ERC721Pausable.sol │ │ │ │ │ │ │ ├── ERC721Royalty.sol │ │ │ │ │ │ │ ├── ERC721URIStorage.sol │ │ │ │ │ │ │ ├── ERC721Votes.sol │ │ │ │ │ │ │ ├── ERC721Wrapper.sol │ │ │ │ │ │ │ ├── IERC721Enumerable.sol │ │ │ │ │ │ │ └── IERC721Metadata.sol │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ ├── ERC721Holder.sol │ │ │ │ │ │ │ └── ERC721Utils.sol │ │ │ │ │ └── common │ │ │ │ │ │ ├── ERC2981.sol │ │ │ │ │ │ └── README.adoc │ │ │ │ ├── utils │ │ │ │ │ ├── Address.sol │ │ │ │ │ ├── Arrays.sol │ │ │ │ │ ├── Base64.sol │ │ │ │ │ ├── Comparators.sol │ │ │ │ │ ├── Context.sol │ │ │ │ │ ├── Create2.sol │ │ │ │ │ ├── Errors.sol │ │ │ │ │ ├── Multicall.sol │ │ │ │ │ ├── Nonces.sol │ │ │ │ │ ├── Packing.sol │ │ │ │ │ ├── Panic.sol │ │ │ │ │ ├── Pausable.sol │ │ │ │ │ ├── README.adoc │ │ │ │ │ ├── ReentrancyGuard.sol │ │ │ │ │ ├── ReentrancyGuardTransient.sol │ │ │ │ │ ├── ShortStrings.sol │ │ │ │ │ ├── SlotDerivation.sol │ │ │ │ │ ├── StorageSlot.sol │ │ │ │ │ ├── Strings.sol │ │ │ │ │ ├── cryptography │ │ │ │ │ │ ├── ECDSA.sol │ │ │ │ │ │ ├── EIP712.sol │ │ │ │ │ │ ├── Hashes.sol │ │ │ │ │ │ ├── MerkleProof.sol │ │ │ │ │ │ ├── MessageHashUtils.sol │ │ │ │ │ │ ├── P256.sol │ │ │ │ │ │ ├── RSA.sol │ │ │ │ │ │ └── SignatureChecker.sol │ │ │ │ │ ├── introspection │ │ │ │ │ │ ├── ERC165.sol │ │ │ │ │ │ ├── ERC165Checker.sol │ │ │ │ │ │ └── IERC165.sol │ │ │ │ │ ├── math │ │ │ │ │ │ ├── Math.sol │ │ │ │ │ │ ├── SafeCast.sol │ │ │ │ │ │ └── SignedMath.sol │ │ │ │ │ ├── structs │ │ │ │ │ │ ├── BitMaps.sol │ │ │ │ │ │ ├── Checkpoints.sol │ │ │ │ │ │ ├── CircularBuffer.sol │ │ │ │ │ │ ├── DoubleEndedQueue.sol │ │ │ │ │ │ ├── EnumerableMap.sol │ │ │ │ │ │ ├── EnumerableSet.sol │ │ │ │ │ │ ├── Heap.sol │ │ │ │ │ │ └── MerkleTree.sol │ │ │ │ │ └── types │ │ │ │ │ │ └── Time.sol │ │ │ │ └── vendor │ │ │ │ │ └── compound │ │ │ │ │ ├── ICompoundTimelock.sol │ │ │ │ │ └── LICENSE │ │ │ │ ├── foundry.toml │ │ │ │ ├── fv-requirements.txt │ │ │ │ ├── hardhat.config.js │ │ │ │ ├── hardhat │ │ │ │ ├── async-test-sanity.js │ │ │ │ ├── env-artifacts.js │ │ │ │ ├── ignore-unreachable-warnings.js │ │ │ │ ├── remappings.js │ │ │ │ ├── skip-foundry-tests.js │ │ │ │ └── task-test-get-files.js │ │ │ │ ├── lib │ │ │ │ ├── erc4626-tests │ │ │ │ │ ├── ERC4626.prop.sol │ │ │ │ │ ├── ERC4626.test.sol │ │ │ │ │ ├── LICENSE │ │ │ │ │ └── README.md │ │ │ │ ├── forge-std │ │ │ │ │ ├── .gitattributes │ │ │ │ │ ├── .github │ │ │ │ │ │ └── workflows │ │ │ │ │ │ │ ├── ci.yml │ │ │ │ │ │ │ └── sync.yml │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── .gitmodules │ │ │ │ │ ├── LICENSE-APACHE │ │ │ │ │ ├── LICENSE-MIT │ │ │ │ │ ├── README.md │ │ │ │ │ ├── foundry.toml │ │ │ │ │ ├── lib │ │ │ │ │ │ └── ds-test │ │ │ │ │ │ │ ├── .github │ │ │ │ │ │ │ └── workflows │ │ │ │ │ │ │ │ └── build.yml │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ │ ├── Makefile │ │ │ │ │ │ │ ├── default.nix │ │ │ │ │ │ │ ├── demo │ │ │ │ │ │ │ └── demo.sol │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ └── src │ │ │ │ │ │ │ ├── test.sol │ │ │ │ │ │ │ └── test.t.sol │ │ │ │ │ ├── package.json │ │ │ │ │ ├── scripts │ │ │ │ │ │ └── vm.py │ │ │ │ │ ├── src │ │ │ │ │ │ ├── Base.sol │ │ │ │ │ │ ├── Script.sol │ │ │ │ │ │ ├── StdAssertions.sol │ │ │ │ │ │ ├── StdChains.sol │ │ │ │ │ │ ├── StdCheats.sol │ │ │ │ │ │ ├── StdError.sol │ │ │ │ │ │ ├── StdInvariant.sol │ │ │ │ │ │ ├── StdJson.sol │ │ │ │ │ │ ├── StdMath.sol │ │ │ │ │ │ ├── StdStorage.sol │ │ │ │ │ │ ├── StdStyle.sol │ │ │ │ │ │ ├── StdUtils.sol │ │ │ │ │ │ ├── Test.sol │ │ │ │ │ │ ├── Vm.sol │ │ │ │ │ │ ├── console.sol │ │ │ │ │ │ ├── console2.sol │ │ │ │ │ │ ├── interfaces │ │ │ │ │ │ │ ├── IERC1155.sol │ │ │ │ │ │ │ ├── IERC165.sol │ │ │ │ │ │ │ ├── IERC20.sol │ │ │ │ │ │ │ ├── IERC4626.sol │ │ │ │ │ │ │ ├── IERC721.sol │ │ │ │ │ │ │ └── IMulticall3.sol │ │ │ │ │ │ ├── mocks │ │ │ │ │ │ │ ├── MockERC20.sol │ │ │ │ │ │ │ └── MockERC721.sol │ │ │ │ │ │ └── safeconsole.sol │ │ │ │ │ └── test │ │ │ │ │ │ ├── StdAssertions.t.sol │ │ │ │ │ │ ├── StdChains.t.sol │ │ │ │ │ │ ├── StdCheats.t.sol │ │ │ │ │ │ ├── StdError.t.sol │ │ │ │ │ │ ├── StdMath.t.sol │ │ │ │ │ │ ├── StdStorage.t.sol │ │ │ │ │ │ ├── StdStyle.t.sol │ │ │ │ │ │ ├── StdUtils.t.sol │ │ │ │ │ │ ├── Vm.t.sol │ │ │ │ │ │ ├── compilation │ │ │ │ │ │ ├── CompilationScript.sol │ │ │ │ │ │ ├── CompilationScriptBase.sol │ │ │ │ │ │ ├── CompilationTest.sol │ │ │ │ │ │ └── CompilationTestBase.sol │ │ │ │ │ │ ├── fixtures │ │ │ │ │ │ └── broadcast.log.json │ │ │ │ │ │ └── mocks │ │ │ │ │ │ ├── MockERC20.t.sol │ │ │ │ │ │ └── MockERC721.t.sol │ │ │ │ └── halmos-cheatcodes │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── README.md │ │ │ │ │ └── src │ │ │ │ │ ├── SVM.sol │ │ │ │ │ └── SymTest.sol │ │ │ │ ├── logo.svg │ │ │ │ ├── netlify.toml │ │ │ │ ├── package-lock.json │ │ │ │ ├── package.json │ │ │ │ ├── remappings.txt │ │ │ │ ├── renovate.json │ │ │ │ ├── scripts │ │ │ │ ├── checks │ │ │ │ │ ├── compare-layout.js │ │ │ │ │ ├── compareGasReports.js │ │ │ │ │ ├── coverage.sh │ │ │ │ │ ├── extract-layout.js │ │ │ │ │ ├── generation.sh │ │ │ │ │ └── inheritance-ordering.js │ │ │ │ ├── gen-nav.js │ │ │ │ ├── generate │ │ │ │ │ ├── format-lines.js │ │ │ │ │ ├── helpers │ │ │ │ │ │ └── sanitize.js │ │ │ │ │ ├── run.js │ │ │ │ │ └── templates │ │ │ │ │ │ ├── Arrays.js │ │ │ │ │ │ ├── Arrays.opts.js │ │ │ │ │ │ ├── Checkpoints.js │ │ │ │ │ │ ├── Checkpoints.opts.js │ │ │ │ │ │ ├── Checkpoints.t.js │ │ │ │ │ │ ├── EnumerableMap.js │ │ │ │ │ │ ├── EnumerableMap.opts.js │ │ │ │ │ │ ├── EnumerableSet.js │ │ │ │ │ │ ├── EnumerableSet.opts.js │ │ │ │ │ │ ├── MerkleProof.js │ │ │ │ │ │ ├── MerkleProof.opts.js │ │ │ │ │ │ ├── Packing.js │ │ │ │ │ │ ├── Packing.opts.js │ │ │ │ │ │ ├── Packing.t.js │ │ │ │ │ │ ├── SafeCast.js │ │ │ │ │ │ ├── Slot.opts.js │ │ │ │ │ │ ├── SlotDerivation.js │ │ │ │ │ │ ├── SlotDerivation.t.js │ │ │ │ │ │ ├── StorageSlot.js │ │ │ │ │ │ ├── StorageSlotMock.js │ │ │ │ │ │ └── conversion.js │ │ │ │ ├── git-user-config.sh │ │ │ │ ├── helpers.js │ │ │ │ ├── prepack.sh │ │ │ │ ├── prepare-docs.sh │ │ │ │ ├── prepare.sh │ │ │ │ ├── release │ │ │ │ │ ├── format-changelog.js │ │ │ │ │ ├── synchronize-versions.js │ │ │ │ │ ├── update-comment.js │ │ │ │ │ ├── version.sh │ │ │ │ │ └── workflow │ │ │ │ │ │ ├── exit-prerelease.sh │ │ │ │ │ │ ├── github-release.js │ │ │ │ │ │ ├── integrity-check.sh │ │ │ │ │ │ ├── pack.sh │ │ │ │ │ │ ├── publish.sh │ │ │ │ │ │ ├── rerun.js │ │ │ │ │ │ ├── set-changesets-pr-title.js │ │ │ │ │ │ ├── start.sh │ │ │ │ │ │ └── state.js │ │ │ │ ├── remove-ignored-artifacts.js │ │ │ │ ├── solhint-custom │ │ │ │ │ ├── index.js │ │ │ │ │ └── package.json │ │ │ │ ├── update-docs-branch.js │ │ │ │ └── upgradeable │ │ │ │ │ ├── README.md │ │ │ │ │ ├── patch-apply.sh │ │ │ │ │ ├── patch-save.sh │ │ │ │ │ ├── transpile-onto.sh │ │ │ │ │ ├── transpile.sh │ │ │ │ │ └── upgradeable.patch │ │ │ │ ├── slither.config.json │ │ │ │ ├── solhint.config.js │ │ │ │ └── test │ │ │ │ ├── TESTING.md │ │ │ │ ├── access │ │ │ │ ├── AccessControl.behavior.js │ │ │ │ ├── AccessControl.test.js │ │ │ │ ├── Ownable.test.js │ │ │ │ ├── Ownable2Step.test.js │ │ │ │ ├── extensions │ │ │ │ │ ├── AccessControlDefaultAdminRules.test.js │ │ │ │ │ └── AccessControlEnumerable.test.js │ │ │ │ └── manager │ │ │ │ │ ├── AccessManaged.test.js │ │ │ │ │ ├── AccessManager.behavior.js │ │ │ │ │ ├── AccessManager.predicate.js │ │ │ │ │ ├── AccessManager.test.js │ │ │ │ │ └── AuthorityUtils.test.js │ │ │ │ ├── finance │ │ │ │ ├── VestingWallet.behavior.js │ │ │ │ ├── VestingWallet.test.js │ │ │ │ └── VestingWalletCliff.test.js │ │ │ │ ├── governance │ │ │ │ ├── Governor.t.sol │ │ │ │ ├── Governor.test.js │ │ │ │ ├── TimelockController.test.js │ │ │ │ ├── extensions │ │ │ │ │ ├── GovernorCountingFractional.test.js │ │ │ │ │ ├── GovernorERC721.test.js │ │ │ │ │ ├── GovernorPreventLateQuorum.test.js │ │ │ │ │ ├── GovernorStorage.test.js │ │ │ │ │ ├── GovernorTimelockAccess.test.js │ │ │ │ │ ├── GovernorTimelockCompound.test.js │ │ │ │ │ ├── GovernorTimelockControl.test.js │ │ │ │ │ ├── GovernorVotesQuorumFraction.test.js │ │ │ │ │ └── GovernorWithParams.test.js │ │ │ │ └── utils │ │ │ │ │ ├── ERC6372.behavior.js │ │ │ │ │ ├── Votes.behavior.js │ │ │ │ │ └── Votes.test.js │ │ │ │ ├── helpers │ │ │ │ ├── access-manager.js │ │ │ │ ├── account.js │ │ │ │ ├── constants.js │ │ │ │ ├── deploy.js │ │ │ │ ├── eip712-types.js │ │ │ │ ├── eip712.js │ │ │ │ ├── enums.js │ │ │ │ ├── governance.js │ │ │ │ ├── iterate.js │ │ │ │ ├── math.js │ │ │ │ ├── methods.js │ │ │ │ ├── random.js │ │ │ │ ├── storage.js │ │ │ │ ├── strings.js │ │ │ │ ├── time.js │ │ │ │ └── txpool.js │ │ │ │ ├── metatx │ │ │ │ ├── ERC2771Context.test.js │ │ │ │ ├── ERC2771Forwarder.t.sol │ │ │ │ └── ERC2771Forwarder.test.js │ │ │ │ ├── proxy │ │ │ │ ├── Clones.behaviour.js │ │ │ │ ├── Clones.t.sol │ │ │ │ ├── Clones.test.js │ │ │ │ ├── ERC1967 │ │ │ │ │ ├── ERC1967Proxy.test.js │ │ │ │ │ └── ERC1967Utils.test.js │ │ │ │ ├── Proxy.behaviour.js │ │ │ │ ├── beacon │ │ │ │ │ ├── BeaconProxy.test.js │ │ │ │ │ └── UpgradeableBeacon.test.js │ │ │ │ ├── transparent │ │ │ │ │ ├── ProxyAdmin.test.js │ │ │ │ │ ├── TransparentUpgradeableProxy.behaviour.js │ │ │ │ │ └── TransparentUpgradeableProxy.test.js │ │ │ │ └── utils │ │ │ │ │ ├── Initializable.test.js │ │ │ │ │ └── UUPSUpgradeable.test.js │ │ │ │ ├── sanity.test.js │ │ │ │ ├── token │ │ │ │ ├── ERC1155 │ │ │ │ │ ├── ERC1155.behavior.js │ │ │ │ │ ├── ERC1155.test.js │ │ │ │ │ ├── extensions │ │ │ │ │ │ ├── ERC1155Burnable.test.js │ │ │ │ │ │ ├── ERC1155Pausable.test.js │ │ │ │ │ │ ├── ERC1155Supply.test.js │ │ │ │ │ │ └── ERC1155URIStorage.test.js │ │ │ │ │ └── utils │ │ │ │ │ │ ├── ERC1155Holder.test.js │ │ │ │ │ │ └── ERC1155Utils.test.js │ │ │ │ ├── ERC20 │ │ │ │ │ ├── ERC20.behavior.js │ │ │ │ │ ├── ERC20.test.js │ │ │ │ │ ├── extensions │ │ │ │ │ │ ├── ERC1363.test.js │ │ │ │ │ │ ├── ERC20Burnable.test.js │ │ │ │ │ │ ├── ERC20Capped.test.js │ │ │ │ │ │ ├── ERC20FlashMint.test.js │ │ │ │ │ │ ├── ERC20Pausable.test.js │ │ │ │ │ │ ├── ERC20Permit.test.js │ │ │ │ │ │ ├── ERC20Votes.test.js │ │ │ │ │ │ ├── ERC20Wrapper.test.js │ │ │ │ │ │ ├── ERC4626.t.sol │ │ │ │ │ │ ├── ERC4626.test.js │ │ │ │ │ │ └── draft-ERC20TemporaryApproval.test.js │ │ │ │ │ └── utils │ │ │ │ │ │ └── SafeERC20.test.js │ │ │ │ ├── ERC721 │ │ │ │ │ ├── ERC721.behavior.js │ │ │ │ │ ├── ERC721.test.js │ │ │ │ │ ├── ERC721Enumerable.test.js │ │ │ │ │ ├── extensions │ │ │ │ │ │ ├── ERC721Burnable.test.js │ │ │ │ │ │ ├── ERC721Consecutive.t.sol │ │ │ │ │ │ ├── ERC721Consecutive.test.js │ │ │ │ │ │ ├── ERC721Pausable.test.js │ │ │ │ │ │ ├── ERC721Royalty.test.js │ │ │ │ │ │ ├── ERC721URIStorage.test.js │ │ │ │ │ │ ├── ERC721Votes.test.js │ │ │ │ │ │ └── ERC721Wrapper.test.js │ │ │ │ │ └── utils │ │ │ │ │ │ ├── ERC721Holder.test.js │ │ │ │ │ │ └── ERC721Utils.test.js │ │ │ │ └── common │ │ │ │ │ └── ERC2981.behavior.js │ │ │ │ └── utils │ │ │ │ ├── Address.test.js │ │ │ │ ├── Arrays.t.sol │ │ │ │ ├── Arrays.test.js │ │ │ │ ├── Base64.t.sol │ │ │ │ ├── Base64.test.js │ │ │ │ ├── Context.behavior.js │ │ │ │ ├── Context.test.js │ │ │ │ ├── Create2.t.sol │ │ │ │ ├── Create2.test.js │ │ │ │ ├── Multicall.test.js │ │ │ │ ├── Nonces.test.js │ │ │ │ ├── Packing.t.sol │ │ │ │ ├── Packing.test.js │ │ │ │ ├── Panic.test.js │ │ │ │ ├── Pausable.test.js │ │ │ │ ├── ReentrancyGuard.test.js │ │ │ │ ├── ShortStrings.t.sol │ │ │ │ ├── ShortStrings.test.js │ │ │ │ ├── SlotDerivation.t.sol │ │ │ │ ├── SlotDerivation.test.js │ │ │ │ ├── StorageSlot.test.js │ │ │ │ ├── Strings.test.js │ │ │ │ ├── cryptography │ │ │ │ ├── ECDSA.test.js │ │ │ │ ├── EIP712.test.js │ │ │ │ ├── MerkleProof.test.js │ │ │ │ ├── MessageHashUtils.test.js │ │ │ │ ├── P256.t.sol │ │ │ │ ├── P256.test.js │ │ │ │ ├── RSA.helper.js │ │ │ │ ├── RSA.test.js │ │ │ │ ├── SigVer15_186-3.rsp │ │ │ │ ├── SignatureChecker.test.js │ │ │ │ └── ecdsa_secp256r1_sha256_p1363_test.json │ │ │ │ ├── introspection │ │ │ │ ├── ERC165.test.js │ │ │ │ ├── ERC165Checker.test.js │ │ │ │ └── SupportsInterface.behavior.js │ │ │ │ ├── math │ │ │ │ ├── Math.t.sol │ │ │ │ ├── Math.test.js │ │ │ │ ├── SafeCast.test.js │ │ │ │ ├── SignedMath.t.sol │ │ │ │ └── SignedMath.test.js │ │ │ │ ├── structs │ │ │ │ ├── BitMap.test.js │ │ │ │ ├── Checkpoints.t.sol │ │ │ │ ├── Checkpoints.test.js │ │ │ │ ├── CircularBuffer.test.js │ │ │ │ ├── DoubleEndedQueue.test.js │ │ │ │ ├── EnumerableMap.behavior.js │ │ │ │ ├── EnumerableMap.test.js │ │ │ │ ├── EnumerableSet.behavior.js │ │ │ │ ├── EnumerableSet.test.js │ │ │ │ ├── Heap.t.sol │ │ │ │ ├── Heap.test.js │ │ │ │ └── MerkleTree.test.js │ │ │ │ └── types │ │ │ │ └── Time.test.js │ │ ├── logo.svg │ │ ├── netlify.toml │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── remappings.txt │ │ ├── renovate.json │ │ ├── scripts │ │ │ ├── checks │ │ │ │ ├── compare-layout.js │ │ │ │ ├── compareGasReports.js │ │ │ │ ├── coverage.sh │ │ │ │ ├── extract-layout.js │ │ │ │ ├── generation.sh │ │ │ │ └── inheritance-ordering.js │ │ │ ├── gen-nav.js │ │ │ ├── generate │ │ │ │ ├── format-lines.js │ │ │ │ ├── helpers │ │ │ │ │ └── sanitize.js │ │ │ │ ├── run.js │ │ │ │ └── templates │ │ │ │ │ ├── Arrays.js │ │ │ │ │ ├── Arrays.opts.js │ │ │ │ │ ├── Checkpoints.js │ │ │ │ │ ├── Checkpoints.opts.js │ │ │ │ │ ├── Checkpoints.t.js │ │ │ │ │ ├── EnumerableMap.js │ │ │ │ │ ├── EnumerableMap.opts.js │ │ │ │ │ ├── EnumerableSet.js │ │ │ │ │ ├── EnumerableSet.opts.js │ │ │ │ │ ├── MerkleProof.js │ │ │ │ │ ├── MerkleProof.opts.js │ │ │ │ │ ├── Packing.js │ │ │ │ │ ├── Packing.opts.js │ │ │ │ │ ├── Packing.t.js │ │ │ │ │ ├── SafeCast.js │ │ │ │ │ ├── Slot.opts.js │ │ │ │ │ ├── SlotDerivation.js │ │ │ │ │ ├── SlotDerivation.t.js │ │ │ │ │ ├── StorageSlot.js │ │ │ │ │ ├── StorageSlotMock.js │ │ │ │ │ └── conversion.js │ │ │ ├── git-user-config.sh │ │ │ ├── helpers.js │ │ │ ├── prepack.sh │ │ │ ├── prepare-docs.sh │ │ │ ├── prepare.sh │ │ │ ├── release │ │ │ │ ├── format-changelog.js │ │ │ │ ├── synchronize-versions.js │ │ │ │ ├── update-comment.js │ │ │ │ ├── version.sh │ │ │ │ └── workflow │ │ │ │ │ ├── exit-prerelease.sh │ │ │ │ │ ├── github-release.js │ │ │ │ │ ├── integrity-check.sh │ │ │ │ │ ├── pack.sh │ │ │ │ │ ├── publish.sh │ │ │ │ │ ├── rerun.js │ │ │ │ │ ├── set-changesets-pr-title.js │ │ │ │ │ ├── start.sh │ │ │ │ │ └── state.js │ │ │ ├── remove-ignored-artifacts.js │ │ │ ├── solhint-custom │ │ │ │ ├── index.js │ │ │ │ └── package.json │ │ │ ├── update-docs-branch.js │ │ │ └── upgradeable │ │ │ │ ├── README.md │ │ │ │ ├── patch-apply.sh │ │ │ │ ├── patch-save.sh │ │ │ │ ├── transpile-onto.sh │ │ │ │ ├── transpile.sh │ │ │ │ └── upgradeable.patch │ │ ├── slither.config.json │ │ ├── solhint.config.js │ │ └── test │ │ │ ├── TESTING.md │ │ │ ├── access │ │ │ ├── AccessControl.behavior.js │ │ │ ├── AccessControl.test.js │ │ │ ├── Ownable.test.js │ │ │ ├── Ownable2Step.test.js │ │ │ ├── extensions │ │ │ │ ├── AccessControlDefaultAdminRules.test.js │ │ │ │ └── AccessControlEnumerable.test.js │ │ │ └── manager │ │ │ │ ├── AccessManaged.test.js │ │ │ │ ├── AccessManager.behavior.js │ │ │ │ ├── AccessManager.predicate.js │ │ │ │ ├── AccessManager.test.js │ │ │ │ └── AuthorityUtils.test.js │ │ │ ├── finance │ │ │ ├── VestingWallet.behavior.js │ │ │ ├── VestingWallet.test.js │ │ │ └── VestingWalletCliff.test.js │ │ │ ├── governance │ │ │ ├── Governor.t.sol │ │ │ ├── Governor.test.js │ │ │ ├── TimelockController.test.js │ │ │ ├── extensions │ │ │ │ ├── GovernorCountingFractional.test.js │ │ │ │ ├── GovernorERC721.test.js │ │ │ │ ├── GovernorPreventLateQuorum.test.js │ │ │ │ ├── GovernorStorage.test.js │ │ │ │ ├── GovernorTimelockAccess.test.js │ │ │ │ ├── GovernorTimelockCompound.test.js │ │ │ │ ├── GovernorTimelockControl.test.js │ │ │ │ ├── GovernorVotesQuorumFraction.test.js │ │ │ │ └── GovernorWithParams.test.js │ │ │ └── utils │ │ │ │ ├── ERC6372.behavior.js │ │ │ │ ├── Votes.behavior.js │ │ │ │ └── Votes.test.js │ │ │ ├── helpers │ │ │ ├── access-manager.js │ │ │ ├── account.js │ │ │ ├── constants.js │ │ │ ├── deploy.js │ │ │ ├── eip712-types.js │ │ │ ├── eip712.js │ │ │ ├── enums.js │ │ │ ├── governance.js │ │ │ ├── iterate.js │ │ │ ├── math.js │ │ │ ├── methods.js │ │ │ ├── random.js │ │ │ ├── storage.js │ │ │ ├── strings.js │ │ │ ├── time.js │ │ │ └── txpool.js │ │ │ ├── metatx │ │ │ ├── ERC2771Context.test.js │ │ │ ├── ERC2771Forwarder.t.sol │ │ │ └── ERC2771Forwarder.test.js │ │ │ ├── proxy │ │ │ ├── Clones.behaviour.js │ │ │ ├── Clones.t.sol │ │ │ ├── Clones.test.js │ │ │ ├── ERC1967 │ │ │ │ ├── ERC1967Proxy.test.js │ │ │ │ └── ERC1967Utils.test.js │ │ │ ├── Proxy.behaviour.js │ │ │ ├── beacon │ │ │ │ ├── BeaconProxy.test.js │ │ │ │ └── UpgradeableBeacon.test.js │ │ │ ├── transparent │ │ │ │ ├── ProxyAdmin.test.js │ │ │ │ ├── TransparentUpgradeableProxy.behaviour.js │ │ │ │ └── TransparentUpgradeableProxy.test.js │ │ │ └── utils │ │ │ │ ├── Initializable.test.js │ │ │ │ └── UUPSUpgradeable.test.js │ │ │ ├── sanity.test.js │ │ │ ├── token │ │ │ ├── ERC1155 │ │ │ │ ├── ERC1155.behavior.js │ │ │ │ ├── ERC1155.test.js │ │ │ │ ├── extensions │ │ │ │ │ ├── ERC1155Burnable.test.js │ │ │ │ │ ├── ERC1155Pausable.test.js │ │ │ │ │ ├── ERC1155Supply.test.js │ │ │ │ │ └── ERC1155URIStorage.test.js │ │ │ │ └── utils │ │ │ │ │ ├── ERC1155Holder.test.js │ │ │ │ │ └── ERC1155Utils.test.js │ │ │ ├── ERC20 │ │ │ │ ├── ERC20.behavior.js │ │ │ │ ├── ERC20.test.js │ │ │ │ ├── extensions │ │ │ │ │ ├── ERC1363.test.js │ │ │ │ │ ├── ERC20Burnable.test.js │ │ │ │ │ ├── ERC20Capped.test.js │ │ │ │ │ ├── ERC20FlashMint.test.js │ │ │ │ │ ├── ERC20Pausable.test.js │ │ │ │ │ ├── ERC20Permit.test.js │ │ │ │ │ ├── ERC20Votes.test.js │ │ │ │ │ ├── ERC20Wrapper.test.js │ │ │ │ │ ├── ERC4626.t.sol │ │ │ │ │ ├── ERC4626.test.js │ │ │ │ │ └── draft-ERC20TemporaryApproval.test.js │ │ │ │ └── utils │ │ │ │ │ └── SafeERC20.test.js │ │ │ ├── ERC721 │ │ │ │ ├── ERC721.behavior.js │ │ │ │ ├── ERC721.test.js │ │ │ │ ├── ERC721Enumerable.test.js │ │ │ │ ├── extensions │ │ │ │ │ ├── ERC721Burnable.test.js │ │ │ │ │ ├── ERC721Consecutive.t.sol │ │ │ │ │ ├── ERC721Consecutive.test.js │ │ │ │ │ ├── ERC721Pausable.test.js │ │ │ │ │ ├── ERC721Royalty.test.js │ │ │ │ │ ├── ERC721URIStorage.test.js │ │ │ │ │ ├── ERC721Votes.test.js │ │ │ │ │ └── ERC721Wrapper.test.js │ │ │ │ └── utils │ │ │ │ │ ├── ERC721Holder.test.js │ │ │ │ │ └── ERC721Utils.test.js │ │ │ └── common │ │ │ │ └── ERC2981.behavior.js │ │ │ └── utils │ │ │ ├── Address.test.js │ │ │ ├── Arrays.t.sol │ │ │ ├── Arrays.test.js │ │ │ ├── Base64.t.sol │ │ │ ├── Base64.test.js │ │ │ ├── Context.behavior.js │ │ │ ├── Context.test.js │ │ │ ├── Create2.t.sol │ │ │ ├── Create2.test.js │ │ │ ├── Multicall.test.js │ │ │ ├── Nonces.test.js │ │ │ ├── Packing.t.sol │ │ │ ├── Packing.test.js │ │ │ ├── Panic.test.js │ │ │ ├── Pausable.test.js │ │ │ ├── ReentrancyGuard.test.js │ │ │ ├── ShortStrings.t.sol │ │ │ ├── ShortStrings.test.js │ │ │ ├── SlotDerivation.t.sol │ │ │ ├── SlotDerivation.test.js │ │ │ ├── StorageSlot.test.js │ │ │ ├── Strings.test.js │ │ │ ├── cryptography │ │ │ ├── ECDSA.test.js │ │ │ ├── EIP712.test.js │ │ │ ├── MerkleProof.test.js │ │ │ ├── MessageHashUtils.test.js │ │ │ ├── P256.t.sol │ │ │ ├── P256.test.js │ │ │ ├── RSA.helper.js │ │ │ ├── RSA.test.js │ │ │ ├── SigVer15_186-3.rsp │ │ │ ├── SignatureChecker.test.js │ │ │ └── ecdsa_secp256r1_sha256_p1363_test.json │ │ │ ├── introspection │ │ │ ├── ERC165.test.js │ │ │ ├── ERC165Checker.test.js │ │ │ └── SupportsInterface.behavior.js │ │ │ ├── math │ │ │ ├── Math.t.sol │ │ │ ├── Math.test.js │ │ │ ├── SafeCast.test.js │ │ │ ├── SignedMath.t.sol │ │ │ └── SignedMath.test.js │ │ │ ├── structs │ │ │ ├── BitMap.test.js │ │ │ ├── Checkpoints.t.sol │ │ │ ├── Checkpoints.test.js │ │ │ ├── CircularBuffer.test.js │ │ │ ├── DoubleEndedQueue.test.js │ │ │ ├── EnumerableMap.behavior.js │ │ │ ├── EnumerableMap.test.js │ │ │ ├── EnumerableSet.behavior.js │ │ │ ├── EnumerableSet.test.js │ │ │ ├── Heap.t.sol │ │ │ ├── Heap.test.js │ │ │ └── MerkleTree.test.js │ │ │ └── types │ │ │ └── Time.test.js │ └── openzeppelin-contracts │ │ ├── .changeset │ │ └── config.json │ │ ├── .codecov.yml │ │ ├── .editorconfig │ │ ├── .eslintrc │ │ ├── .github │ │ ├── ISSUE_TEMPLATE │ │ │ ├── bug_report.md │ │ │ ├── config.yml │ │ │ └── feature_request.md │ │ ├── PULL_REQUEST_TEMPLATE.md │ │ ├── actions │ │ │ ├── gas-compare │ │ │ │ └── action.yml │ │ │ ├── setup │ │ │ │ └── action.yml │ │ │ └── storage-layout │ │ │ │ └── action.yml │ │ └── workflows │ │ │ ├── actionlint.yml │ │ │ ├── changeset.yml │ │ │ ├── checks.yml │ │ │ ├── docs.yml │ │ │ ├── formal-verification.yml │ │ │ ├── release-cycle.yml │ │ │ └── upgradeable.yml │ │ ├── .gitignore │ │ ├── .gitmodules │ │ ├── .mocharc.js │ │ ├── .prettierrc │ │ ├── .solcover.js │ │ ├── .solhint.json │ │ ├── CHANGELOG.md │ │ ├── CODE_OF_CONDUCT.md │ │ ├── CONTRIBUTING.md │ │ ├── GUIDELINES.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── RELEASING.md │ │ ├── SECURITY.md │ │ ├── audits │ │ ├── 2017-03.md │ │ ├── 2018-10.pdf │ │ ├── 2022-10-Checkpoints.pdf │ │ ├── 2022-10-ERC4626.pdf │ │ ├── 2023-05-v4.9.pdf │ │ └── README.md │ │ ├── certora │ │ ├── .gitignore │ │ ├── Makefile │ │ ├── README.md │ │ ├── diff │ │ │ └── token_ERC721_ERC721.sol.patch │ │ ├── harnesses │ │ │ ├── AccessControlDefaultAdminRulesHarness.sol │ │ │ ├── AccessControlHarness.sol │ │ │ ├── DoubleEndedQueueHarness.sol │ │ │ ├── ERC20FlashMintHarness.sol │ │ │ ├── ERC20PermitHarness.sol │ │ │ ├── ERC20WrapperHarness.sol │ │ │ ├── ERC3156FlashBorrowerHarness.sol │ │ │ ├── ERC721Harness.sol │ │ │ ├── ERC721ReceiverHarness.sol │ │ │ ├── EnumerableMapHarness.sol │ │ │ ├── EnumerableSetHarness.sol │ │ │ ├── InitializableHarness.sol │ │ │ ├── Ownable2StepHarness.sol │ │ │ ├── OwnableHarness.sol │ │ │ ├── PausableHarness.sol │ │ │ └── TimelockControllerHarness.sol │ │ ├── reports │ │ │ ├── 2021-10.pdf │ │ │ ├── 2022-03.pdf │ │ │ └── 2022-05.pdf │ │ ├── run.js │ │ ├── specs.json │ │ └── specs │ │ │ ├── AccessControl.spec │ │ │ ├── AccessControlDefaultAdminRules.spec │ │ │ ├── DoubleEndedQueue.spec │ │ │ ├── ERC20.spec │ │ │ ├── ERC20FlashMint.spec │ │ │ ├── ERC20Wrapper.spec │ │ │ ├── ERC721.spec │ │ │ ├── EnumerableMap.spec │ │ │ ├── EnumerableSet.spec │ │ │ ├── Initializable.spec │ │ │ ├── Ownable.spec │ │ │ ├── Ownable2Step.spec │ │ │ ├── Pausable.spec │ │ │ ├── TimelockController.spec │ │ │ ├── helpers │ │ │ └── helpers.spec │ │ │ └── methods │ │ │ ├── IAccessControl.spec │ │ │ ├── IAccessControlDefaultAdminRules.spec │ │ │ ├── IERC20.spec │ │ │ ├── IERC2612.spec │ │ │ ├── IERC3156.spec │ │ │ ├── IERC5313.spec │ │ │ ├── IERC721.spec │ │ │ ├── IOwnable.spec │ │ │ └── IOwnable2Step.spec │ │ ├── contracts │ │ ├── access │ │ │ ├── AccessControl.sol │ │ │ ├── AccessControlCrossChain.sol │ │ │ ├── AccessControlDefaultAdminRules.sol │ │ │ ├── AccessControlEnumerable.sol │ │ │ ├── IAccessControl.sol │ │ │ ├── IAccessControlDefaultAdminRules.sol │ │ │ ├── IAccessControlEnumerable.sol │ │ │ ├── Ownable.sol │ │ │ ├── Ownable2Step.sol │ │ │ └── README.adoc │ │ ├── crosschain │ │ │ ├── CrossChainEnabled.sol │ │ │ ├── README.adoc │ │ │ ├── amb │ │ │ │ ├── CrossChainEnabledAMB.sol │ │ │ │ └── LibAMB.sol │ │ │ ├── arbitrum │ │ │ │ ├── CrossChainEnabledArbitrumL1.sol │ │ │ │ ├── CrossChainEnabledArbitrumL2.sol │ │ │ │ ├── LibArbitrumL1.sol │ │ │ │ └── LibArbitrumL2.sol │ │ │ ├── errors.sol │ │ │ ├── optimism │ │ │ │ ├── CrossChainEnabledOptimism.sol │ │ │ │ └── LibOptimism.sol │ │ │ └── polygon │ │ │ │ └── CrossChainEnabledPolygonChild.sol │ │ ├── finance │ │ │ ├── PaymentSplitter.sol │ │ │ ├── README.adoc │ │ │ └── VestingWallet.sol │ │ ├── governance │ │ │ ├── Governor.sol │ │ │ ├── IGovernor.sol │ │ │ ├── README.adoc │ │ │ ├── TimelockController.sol │ │ │ ├── compatibility │ │ │ │ ├── GovernorCompatibilityBravo.sol │ │ │ │ └── IGovernorCompatibilityBravo.sol │ │ │ ├── extensions │ │ │ │ ├── GovernorCountingSimple.sol │ │ │ │ ├── GovernorPreventLateQuorum.sol │ │ │ │ ├── GovernorProposalThreshold.sol │ │ │ │ ├── GovernorSettings.sol │ │ │ │ ├── GovernorTimelockCompound.sol │ │ │ │ ├── GovernorTimelockControl.sol │ │ │ │ ├── GovernorVotes.sol │ │ │ │ ├── GovernorVotesComp.sol │ │ │ │ ├── GovernorVotesQuorumFraction.sol │ │ │ │ └── IGovernorTimelock.sol │ │ │ └── utils │ │ │ │ ├── IVotes.sol │ │ │ │ └── Votes.sol │ │ ├── interfaces │ │ │ ├── IERC1155.sol │ │ │ ├── IERC1155MetadataURI.sol │ │ │ ├── IERC1155Receiver.sol │ │ │ ├── IERC1271.sol │ │ │ ├── IERC1363.sol │ │ │ ├── IERC1363Receiver.sol │ │ │ ├── IERC1363Spender.sol │ │ │ ├── IERC165.sol │ │ │ ├── IERC1820Implementer.sol │ │ │ ├── IERC1820Registry.sol │ │ │ ├── IERC1967.sol │ │ │ ├── IERC20.sol │ │ │ ├── IERC20Metadata.sol │ │ │ ├── IERC2309.sol │ │ │ ├── IERC2612.sol │ │ │ ├── IERC2981.sol │ │ │ ├── IERC3156.sol │ │ │ ├── IERC3156FlashBorrower.sol │ │ │ ├── IERC3156FlashLender.sol │ │ │ ├── IERC4626.sol │ │ │ ├── IERC4906.sol │ │ │ ├── IERC5267.sol │ │ │ ├── IERC5313.sol │ │ │ ├── IERC5805.sol │ │ │ ├── IERC6372.sol │ │ │ ├── IERC721.sol │ │ │ ├── IERC721Enumerable.sol │ │ │ ├── IERC721Metadata.sol │ │ │ ├── IERC721Receiver.sol │ │ │ ├── IERC777.sol │ │ │ ├── IERC777Recipient.sol │ │ │ ├── IERC777Sender.sol │ │ │ ├── README.adoc │ │ │ ├── draft-IERC1822.sol │ │ │ └── draft-IERC2612.sol │ │ ├── metatx │ │ │ ├── ERC2771Context.sol │ │ │ ├── MinimalForwarder.sol │ │ │ └── README.adoc │ │ ├── mocks │ │ │ ├── AccessControlCrossChainMock.sol │ │ │ ├── ArraysMock.sol │ │ │ ├── Base64Dirty.sol │ │ │ ├── CallReceiverMock.sol │ │ │ ├── ConditionalEscrowMock.sol │ │ │ ├── ContextMock.sol │ │ │ ├── DummyImplementation.sol │ │ │ ├── EIP712Verifier.sol │ │ │ ├── ERC1271WalletMock.sol │ │ │ ├── ERC165 │ │ │ │ ├── ERC165MaliciousData.sol │ │ │ │ ├── ERC165MissingData.sol │ │ │ │ ├── ERC165NotSupported.sol │ │ │ │ └── ERC165ReturnBomb.sol │ │ │ ├── ERC20Mock.sol │ │ │ ├── ERC20Reentrant.sol │ │ │ ├── ERC2771ContextMock.sol │ │ │ ├── ERC3156FlashBorrowerMock.sol │ │ │ ├── ERC4626Mock.sol │ │ │ ├── EtherReceiverMock.sol │ │ │ ├── InitializableMock.sol │ │ │ ├── MulticallTest.sol │ │ │ ├── MultipleInheritanceInitializableMocks.sol │ │ │ ├── PausableMock.sol │ │ │ ├── PullPaymentMock.sol │ │ │ ├── ReentrancyAttack.sol │ │ │ ├── ReentrancyMock.sol │ │ │ ├── RegressionImplementation.sol │ │ │ ├── SafeMathMemoryCheck.sol │ │ │ ├── SingleInheritanceInitializableMocks.sol │ │ │ ├── StorageSlotMock.sol │ │ │ ├── TimelockReentrant.sol │ │ │ ├── TimersBlockNumberImpl.sol │ │ │ ├── TimersTimestampImpl.sol │ │ │ ├── VotesMock.sol │ │ │ ├── compound │ │ │ │ └── CompTimelock.sol │ │ │ ├── crosschain │ │ │ │ ├── bridges.sol │ │ │ │ └── receivers.sol │ │ │ ├── governance │ │ │ │ ├── GovernorCompMock.sol │ │ │ │ ├── GovernorCompatibilityBravoMock.sol │ │ │ │ ├── GovernorMock.sol │ │ │ │ ├── GovernorPreventLateQuorumMock.sol │ │ │ │ ├── GovernorTimelockCompoundMock.sol │ │ │ │ ├── GovernorTimelockControlMock.sol │ │ │ │ ├── GovernorVoteMock.sol │ │ │ │ └── GovernorWithParamsMock.sol │ │ │ ├── proxy │ │ │ │ ├── BadBeacon.sol │ │ │ │ ├── ClashingImplementation.sol │ │ │ │ ├── UUPSLegacy.sol │ │ │ │ └── UUPSUpgradeableMock.sol │ │ │ ├── token │ │ │ │ ├── ERC1155ReceiverMock.sol │ │ │ │ ├── ERC20DecimalsMock.sol │ │ │ │ ├── ERC20ExcessDecimalsMock.sol │ │ │ │ ├── ERC20FlashMintMock.sol │ │ │ │ ├── ERC20ForceApproveMock.sol │ │ │ │ ├── ERC20MulticallMock.sol │ │ │ │ ├── ERC20NoReturnMock.sol │ │ │ │ ├── ERC20PermitNoRevertMock.sol │ │ │ │ ├── ERC20ReturnFalseMock.sol │ │ │ │ ├── ERC20VotesLegacyMock.sol │ │ │ │ ├── ERC4626OffsetMock.sol │ │ │ │ ├── ERC4646FeesMock.sol │ │ │ │ ├── ERC721ConsecutiveEnumerableMock.sol │ │ │ │ ├── ERC721ConsecutiveMock.sol │ │ │ │ ├── ERC721ReceiverMock.sol │ │ │ │ ├── ERC721URIStorageMock.sol │ │ │ │ ├── ERC777Mock.sol │ │ │ │ ├── ERC777SenderRecipientMock.sol │ │ │ │ └── VotesTimestamp.sol │ │ │ └── wizard │ │ │ │ ├── MyGovernor1.sol │ │ │ │ ├── MyGovernor2.sol │ │ │ │ └── MyGovernor3.sol │ │ ├── package.json │ │ ├── proxy │ │ │ ├── Clones.sol │ │ │ ├── ERC1967 │ │ │ │ ├── ERC1967Proxy.sol │ │ │ │ └── ERC1967Upgrade.sol │ │ │ ├── Proxy.sol │ │ │ ├── README.adoc │ │ │ ├── beacon │ │ │ │ ├── BeaconProxy.sol │ │ │ │ ├── IBeacon.sol │ │ │ │ └── UpgradeableBeacon.sol │ │ │ ├── transparent │ │ │ │ ├── ProxyAdmin.sol │ │ │ │ └── TransparentUpgradeableProxy.sol │ │ │ └── utils │ │ │ │ ├── Initializable.sol │ │ │ │ └── UUPSUpgradeable.sol │ │ ├── security │ │ │ ├── Pausable.sol │ │ │ ├── PullPayment.sol │ │ │ ├── README.adoc │ │ │ └── ReentrancyGuard.sol │ │ ├── token │ │ │ ├── ERC1155 │ │ │ │ ├── ERC1155.sol │ │ │ │ ├── IERC1155.sol │ │ │ │ ├── IERC1155Receiver.sol │ │ │ │ ├── README.adoc │ │ │ │ ├── extensions │ │ │ │ │ ├── ERC1155Burnable.sol │ │ │ │ │ ├── ERC1155Pausable.sol │ │ │ │ │ ├── ERC1155Supply.sol │ │ │ │ │ ├── ERC1155URIStorage.sol │ │ │ │ │ └── IERC1155MetadataURI.sol │ │ │ │ ├── presets │ │ │ │ │ ├── ERC1155PresetMinterPauser.sol │ │ │ │ │ └── README.md │ │ │ │ └── utils │ │ │ │ │ ├── ERC1155Holder.sol │ │ │ │ │ └── ERC1155Receiver.sol │ │ │ ├── ERC20 │ │ │ │ ├── ERC20.sol │ │ │ │ ├── IERC20.sol │ │ │ │ ├── README.adoc │ │ │ │ ├── extensions │ │ │ │ │ ├── ERC20Burnable.sol │ │ │ │ │ ├── ERC20Capped.sol │ │ │ │ │ ├── ERC20FlashMint.sol │ │ │ │ │ ├── ERC20Pausable.sol │ │ │ │ │ ├── ERC20Permit.sol │ │ │ │ │ ├── ERC20Snapshot.sol │ │ │ │ │ ├── ERC20Votes.sol │ │ │ │ │ ├── ERC20VotesComp.sol │ │ │ │ │ ├── ERC20Wrapper.sol │ │ │ │ │ ├── ERC4626.sol │ │ │ │ │ ├── IERC20Metadata.sol │ │ │ │ │ ├── IERC20Permit.sol │ │ │ │ │ ├── draft-ERC20Permit.sol │ │ │ │ │ └── draft-IERC20Permit.sol │ │ │ │ ├── presets │ │ │ │ │ ├── ERC20PresetFixedSupply.sol │ │ │ │ │ ├── ERC20PresetMinterPauser.sol │ │ │ │ │ └── README.md │ │ │ │ └── utils │ │ │ │ │ ├── SafeERC20.sol │ │ │ │ │ └── TokenTimelock.sol │ │ │ ├── ERC721 │ │ │ │ ├── ERC721.sol │ │ │ │ ├── IERC721.sol │ │ │ │ ├── IERC721Receiver.sol │ │ │ │ ├── README.adoc │ │ │ │ ├── extensions │ │ │ │ │ ├── ERC721Burnable.sol │ │ │ │ │ ├── ERC721Consecutive.sol │ │ │ │ │ ├── ERC721Enumerable.sol │ │ │ │ │ ├── ERC721Pausable.sol │ │ │ │ │ ├── ERC721Royalty.sol │ │ │ │ │ ├── ERC721URIStorage.sol │ │ │ │ │ ├── ERC721Votes.sol │ │ │ │ │ ├── ERC721Wrapper.sol │ │ │ │ │ ├── IERC721Enumerable.sol │ │ │ │ │ ├── IERC721Metadata.sol │ │ │ │ │ └── draft-ERC721Votes.sol │ │ │ │ ├── presets │ │ │ │ │ ├── ERC721PresetMinterPauserAutoId.sol │ │ │ │ │ └── README.md │ │ │ │ └── utils │ │ │ │ │ └── ERC721Holder.sol │ │ │ ├── ERC777 │ │ │ │ ├── ERC777.sol │ │ │ │ ├── IERC777.sol │ │ │ │ ├── IERC777Recipient.sol │ │ │ │ ├── IERC777Sender.sol │ │ │ │ ├── README.adoc │ │ │ │ └── presets │ │ │ │ │ └── ERC777PresetFixedSupply.sol │ │ │ └── common │ │ │ │ ├── ERC2981.sol │ │ │ │ └── README.adoc │ │ ├── utils │ │ │ ├── Address.sol │ │ │ ├── Arrays.sol │ │ │ ├── Base64.sol │ │ │ ├── Checkpoints.sol │ │ │ ├── Context.sol │ │ │ ├── Counters.sol │ │ │ ├── Create2.sol │ │ │ ├── Multicall.sol │ │ │ ├── README.adoc │ │ │ ├── ShortStrings.sol │ │ │ ├── StorageSlot.sol │ │ │ ├── Strings.sol │ │ │ ├── Timers.sol │ │ │ ├── cryptography │ │ │ │ ├── ECDSA.sol │ │ │ │ ├── EIP712.sol │ │ │ │ ├── MerkleProof.sol │ │ │ │ ├── SignatureChecker.sol │ │ │ │ └── draft-EIP712.sol │ │ │ ├── escrow │ │ │ │ ├── ConditionalEscrow.sol │ │ │ │ ├── Escrow.sol │ │ │ │ └── RefundEscrow.sol │ │ │ ├── introspection │ │ │ │ ├── ERC165.sol │ │ │ │ ├── ERC165Checker.sol │ │ │ │ ├── ERC165Storage.sol │ │ │ │ ├── ERC1820Implementer.sol │ │ │ │ ├── IERC165.sol │ │ │ │ ├── IERC1820Implementer.sol │ │ │ │ └── IERC1820Registry.sol │ │ │ ├── math │ │ │ │ ├── Math.sol │ │ │ │ ├── SafeCast.sol │ │ │ │ ├── SafeMath.sol │ │ │ │ ├── SignedMath.sol │ │ │ │ └── SignedSafeMath.sol │ │ │ └── structs │ │ │ │ ├── BitMaps.sol │ │ │ │ ├── DoubleEndedQueue.sol │ │ │ │ ├── EnumerableMap.sol │ │ │ │ └── EnumerableSet.sol │ │ └── vendor │ │ │ ├── amb │ │ │ └── IAMB.sol │ │ │ ├── arbitrum │ │ │ ├── IArbSys.sol │ │ │ ├── IBridge.sol │ │ │ ├── IDelayedMessageProvider.sol │ │ │ ├── IInbox.sol │ │ │ └── IOutbox.sol │ │ │ ├── compound │ │ │ ├── ICompoundTimelock.sol │ │ │ └── LICENSE │ │ │ ├── optimism │ │ │ ├── ICrossDomainMessenger.sol │ │ │ └── LICENSE │ │ │ └── polygon │ │ │ └── IFxMessageProcessor.sol │ │ ├── foundry.toml │ │ ├── hardhat.config.js │ │ ├── hardhat │ │ ├── env-artifacts.js │ │ ├── env-contract.js │ │ ├── ignore-unreachable-warnings.js │ │ ├── skip-foundry-tests.js │ │ └── task-test-get-files.js │ │ ├── lib │ │ ├── erc4626-tests │ │ │ ├── ERC4626.prop.sol │ │ │ ├── ERC4626.test.sol │ │ │ ├── LICENSE │ │ │ └── README.md │ │ └── forge-std │ │ │ ├── .github │ │ │ └── workflows │ │ │ │ └── ci.yml │ │ │ ├── .gitignore │ │ │ ├── .gitmodules │ │ │ ├── LICENSE-APACHE │ │ │ ├── LICENSE-MIT │ │ │ ├── README.md │ │ │ ├── foundry.toml │ │ │ ├── lib │ │ │ └── ds-test │ │ │ │ ├── .github │ │ │ │ └── workflows │ │ │ │ │ └── build.yml │ │ │ │ ├── .gitignore │ │ │ │ ├── LICENSE │ │ │ │ ├── Makefile │ │ │ │ ├── default.nix │ │ │ │ ├── demo │ │ │ │ └── demo.sol │ │ │ │ ├── package.json │ │ │ │ └── src │ │ │ │ ├── test.sol │ │ │ │ └── test.t.sol │ │ │ ├── package.json │ │ │ ├── src │ │ │ ├── Base.sol │ │ │ ├── Script.sol │ │ │ ├── StdAssertions.sol │ │ │ ├── StdChains.sol │ │ │ ├── StdCheats.sol │ │ │ ├── StdError.sol │ │ │ ├── StdInvariant.sol │ │ │ ├── StdJson.sol │ │ │ ├── StdMath.sol │ │ │ ├── StdStorage.sol │ │ │ ├── StdStyle.sol │ │ │ ├── StdUtils.sol │ │ │ ├── Test.sol │ │ │ ├── Vm.sol │ │ │ ├── console.sol │ │ │ ├── console2.sol │ │ │ └── interfaces │ │ │ │ ├── IERC1155.sol │ │ │ │ ├── IERC165.sol │ │ │ │ ├── IERC20.sol │ │ │ │ ├── IERC4626.sol │ │ │ │ ├── IERC721.sol │ │ │ │ └── IMulticall3.sol │ │ │ └── test │ │ │ ├── StdAssertions.t.sol │ │ │ ├── StdChains.t.sol │ │ │ ├── StdCheats.t.sol │ │ │ ├── StdError.t.sol │ │ │ ├── StdMath.t.sol │ │ │ ├── StdStorage.t.sol │ │ │ ├── StdStyle.t.sol │ │ │ ├── StdUtils.t.sol │ │ │ ├── compilation │ │ │ ├── CompilationScript.sol │ │ │ ├── CompilationScriptBase.sol │ │ │ ├── CompilationTest.sol │ │ │ └── CompilationTestBase.sol │ │ │ └── fixtures │ │ │ └── broadcast.log.json │ │ ├── logo.svg │ │ ├── netlify.toml │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── remappings.txt │ │ ├── renovate.json │ │ ├── requirements.txt │ │ ├── scripts │ │ ├── checks │ │ │ ├── compare-layout.js │ │ │ ├── compareGasReports.js │ │ │ ├── extract-layout.js │ │ │ ├── generation.sh │ │ │ └── inheritance-ordering.js │ │ ├── gen-nav.js │ │ ├── generate │ │ │ ├── format-lines.js │ │ │ ├── run.js │ │ │ └── templates │ │ │ │ ├── Checkpoints.js │ │ │ │ ├── Checkpoints.opts.js │ │ │ │ ├── Checkpoints.t.js │ │ │ │ ├── EnumerableMap.js │ │ │ │ ├── EnumerableSet.js │ │ │ │ ├── SafeCast.js │ │ │ │ ├── StorageSlot.js │ │ │ │ └── conversion.js │ │ ├── git-user-config.sh │ │ ├── helpers.js │ │ ├── migrate-imports.js │ │ ├── prepack.sh │ │ ├── prepare-contracts-package.sh │ │ ├── prepare-docs.sh │ │ ├── prepare.sh │ │ ├── release │ │ │ ├── format-changelog.js │ │ │ ├── synchronize-versions.js │ │ │ ├── update-comment.js │ │ │ ├── version.sh │ │ │ └── workflow │ │ │ │ ├── exit-prerelease.sh │ │ │ │ ├── github-release.js │ │ │ │ ├── integrity-check.sh │ │ │ │ ├── pack.sh │ │ │ │ ├── publish.sh │ │ │ │ ├── rerun.js │ │ │ │ ├── set-changesets-pr-title.js │ │ │ │ ├── start.sh │ │ │ │ └── state.js │ │ ├── remove-ignored-artifacts.js │ │ ├── update-docs-branch.js │ │ └── upgradeable │ │ │ ├── README.md │ │ │ ├── patch-apply.sh │ │ │ ├── patch-save.sh │ │ │ ├── transpile-onto.sh │ │ │ ├── transpile.sh │ │ │ └── upgradeable.patch │ │ ├── slither.config.json │ │ └── test │ │ ├── TESTING.md │ │ ├── access │ │ ├── AccessControl.behavior.js │ │ ├── AccessControl.test.js │ │ ├── AccessControlCrossChain.test.js │ │ ├── AccessControlDefaultAdminRules.test.js │ │ ├── AccessControlEnumerable.test.js │ │ ├── Ownable.test.js │ │ └── Ownable2Step.test.js │ │ ├── crosschain │ │ └── CrossChainEnabled.test.js │ │ ├── finance │ │ ├── PaymentSplitter.test.js │ │ ├── VestingWallet.behavior.js │ │ └── VestingWallet.test.js │ │ ├── governance │ │ ├── Governor.t.sol │ │ ├── Governor.test.js │ │ ├── TimelockController.test.js │ │ ├── compatibility │ │ │ └── GovernorCompatibilityBravo.test.js │ │ ├── extensions │ │ │ ├── GovernorComp.test.js │ │ │ ├── GovernorERC721.test.js │ │ │ ├── GovernorPreventLateQuorum.test.js │ │ │ ├── GovernorTimelockCompound.test.js │ │ │ ├── GovernorTimelockControl.test.js │ │ │ ├── GovernorVotesQuorumFraction.test.js │ │ │ └── GovernorWithParams.test.js │ │ └── utils │ │ │ ├── EIP6372.behavior.js │ │ │ ├── Votes.behavior.js │ │ │ └── Votes.test.js │ │ ├── helpers │ │ ├── chainid.js │ │ ├── create2.js │ │ ├── crosschain.js │ │ ├── customError.js │ │ ├── eip712.js │ │ ├── enums.js │ │ ├── erc1967.js │ │ ├── governance.js │ │ ├── map-values.js │ │ ├── sign.js │ │ ├── time.js │ │ └── txpool.js │ │ ├── metatx │ │ ├── ERC2771Context.test.js │ │ └── MinimalForwarder.test.js │ │ ├── migrate-imports.test.js │ │ ├── proxy │ │ ├── Clones.behaviour.js │ │ ├── Clones.test.js │ │ ├── ERC1967 │ │ │ └── ERC1967Proxy.test.js │ │ ├── Proxy.behaviour.js │ │ ├── beacon │ │ │ ├── BeaconProxy.test.js │ │ │ └── UpgradeableBeacon.test.js │ │ ├── transparent │ │ │ ├── ProxyAdmin.test.js │ │ │ ├── TransparentUpgradeableProxy.behaviour.js │ │ │ └── TransparentUpgradeableProxy.test.js │ │ └── utils │ │ │ ├── Initializable.test.js │ │ │ └── UUPSUpgradeable.test.js │ │ ├── security │ │ ├── Pausable.test.js │ │ ├── PullPayment.test.js │ │ └── ReentrancyGuard.test.js │ │ ├── token │ │ ├── ERC1155 │ │ │ ├── ERC1155.behavior.js │ │ │ ├── ERC1155.test.js │ │ │ ├── extensions │ │ │ │ ├── ERC1155Burnable.test.js │ │ │ │ ├── ERC1155Pausable.test.js │ │ │ │ ├── ERC1155Supply.test.js │ │ │ │ └── ERC1155URIStorage.test.js │ │ │ ├── presets │ │ │ │ └── ERC1155PresetMinterPauser.test.js │ │ │ └── utils │ │ │ │ └── ERC1155Holder.test.js │ │ ├── ERC20 │ │ │ ├── ERC20.behavior.js │ │ │ ├── ERC20.test.js │ │ │ ├── extensions │ │ │ │ ├── ERC20Burnable.behavior.js │ │ │ │ ├── ERC20Burnable.test.js │ │ │ │ ├── ERC20Capped.behavior.js │ │ │ │ ├── ERC20Capped.test.js │ │ │ │ ├── ERC20FlashMint.test.js │ │ │ │ ├── ERC20Pausable.test.js │ │ │ │ ├── ERC20Snapshot.test.js │ │ │ │ ├── ERC20Votes.test.js │ │ │ │ ├── ERC20VotesComp.test.js │ │ │ │ ├── ERC20Wrapper.test.js │ │ │ │ ├── ERC4626.t.sol │ │ │ │ ├── ERC4626.test.js │ │ │ │ └── draft-ERC20Permit.test.js │ │ │ ├── presets │ │ │ │ ├── ERC20PresetFixedSupply.test.js │ │ │ │ └── ERC20PresetMinterPauser.test.js │ │ │ └── utils │ │ │ │ ├── SafeERC20.test.js │ │ │ │ └── TokenTimelock.test.js │ │ ├── ERC721 │ │ │ ├── ERC721.behavior.js │ │ │ ├── ERC721.test.js │ │ │ ├── ERC721Enumerable.test.js │ │ │ ├── extensions │ │ │ │ ├── ERC721Burnable.test.js │ │ │ │ ├── ERC721Consecutive.t.sol │ │ │ │ ├── ERC721Consecutive.test.js │ │ │ │ ├── ERC721Pausable.test.js │ │ │ │ ├── ERC721Royalty.test.js │ │ │ │ ├── ERC721URIStorage.test.js │ │ │ │ ├── ERC721Votes.test.js │ │ │ │ └── ERC721Wrapper.test.js │ │ │ ├── presets │ │ │ │ └── ERC721PresetMinterPauserAutoId.test.js │ │ │ └── utils │ │ │ │ └── ERC721Holder.test.js │ │ ├── ERC777 │ │ │ ├── ERC777.behavior.js │ │ │ ├── ERC777.test.js │ │ │ └── presets │ │ │ │ └── ERC777PresetFixedSupply.test.js │ │ └── common │ │ │ └── ERC2981.behavior.js │ │ └── utils │ │ ├── Address.test.js │ │ ├── Arrays.test.js │ │ ├── Base64.test.js │ │ ├── Checkpoints.t.sol │ │ ├── Checkpoints.test.js │ │ ├── Context.behavior.js │ │ ├── Context.test.js │ │ ├── Counters.test.js │ │ ├── Create2.test.js │ │ ├── Multicall.test.js │ │ ├── ShortStrings.t.sol │ │ ├── ShortStrings.test.js │ │ ├── StorageSlot.test.js │ │ ├── Strings.test.js │ │ ├── TimersBlockNumberImpl.test.js │ │ ├── TimersTimestamp.test.js │ │ ├── cryptography │ │ ├── ECDSA.test.js │ │ ├── EIP712.test.js │ │ ├── MerkleProof.test.js │ │ └── SignatureChecker.test.js │ │ ├── escrow │ │ ├── ConditionalEscrow.test.js │ │ ├── Escrow.behavior.js │ │ ├── Escrow.test.js │ │ └── RefundEscrow.test.js │ │ ├── introspection │ │ ├── ERC165.test.js │ │ ├── ERC165Checker.test.js │ │ ├── ERC165Storage.test.js │ │ ├── ERC1820Implementer.test.js │ │ └── SupportsInterface.behavior.js │ │ ├── math │ │ ├── Math.t.sol │ │ ├── Math.test.js │ │ ├── SafeCast.test.js │ │ ├── SafeMath.test.js │ │ ├── SignedMath.test.js │ │ └── SignedSafeMath.test.js │ │ └── structs │ │ ├── BitMap.test.js │ │ ├── DoubleEndedQueue.test.js │ │ ├── EnumerableMap.behavior.js │ │ ├── EnumerableMap.test.js │ │ ├── EnumerableSet.behavior.js │ │ └── EnumerableSet.test.js ├── remappings.txt ├── script │ └── Deploy.s.sol ├── src │ ├── Challenge.sol │ ├── DummyPolicy.sol │ ├── extensions │ │ ├── GatewayV3.sol │ │ ├── TransparentUpgradeableProxyV2.sol │ │ ├── WethUnwrapper.sol │ │ ├── WithdrawalLimitation.sol │ │ └── collections │ │ │ ├── HasContracts.sol │ │ │ └── HasProxyAdmin.sol │ ├── interfaces │ │ ├── IMainchainGatewayV3.sol │ │ ├── IQuorum.sol │ │ ├── IWETH.sol │ │ ├── bridge │ │ │ ├── IBridgeManager.sol │ │ │ ├── IBridgeManagerCallback.sol │ │ │ └── events │ │ │ │ └── IBridgeManagerEvents.sol │ │ ├── collections │ │ │ └── IHasContracts.sol │ │ └── consumers │ │ │ ├── MappedTokenConsumer.sol │ │ │ └── SignatureConsumer.sol │ ├── libraries │ │ ├── AddressArrayUtils.sol │ │ ├── LibTokenInfo.sol │ │ ├── LibTokenOwner.sol │ │ └── Transfer.sol │ ├── mainchain │ │ └── MainchainGatewayV3.sol │ ├── onchain-firewall │ │ ├── .gitignore │ │ ├── LICENSE │ │ ├── README.md │ │ ├── contracts │ │ │ ├── Firewall.sol │ │ │ ├── FirewallConsumer.sol │ │ │ ├── FirewallConsumerBase.sol │ │ │ ├── consumers │ │ │ │ ├── FirewallConsumerStorage.sol │ │ │ │ └── SimpleUpgradeableFirewallConsumer.sol │ │ │ ├── interfaces │ │ │ │ ├── IERC165.sol │ │ │ │ ├── IFirewall.sol │ │ │ │ ├── IFirewallConsumer.sol │ │ │ │ ├── IFirewallConsumerStorage.sol │ │ │ │ ├── IFirewallPolicy.sol │ │ │ │ └── IFirewallPrivateInvariantsPolicy.sol │ │ │ ├── lib │ │ │ │ └── openzeppelin │ │ │ │ │ ├── access │ │ │ │ │ ├── Ownable.sol │ │ │ │ │ └── Ownable2Step.sol │ │ │ │ │ └── utils │ │ │ │ │ └── Context.sol │ │ │ ├── policies │ │ │ │ ├── AdminCallPolicy.sol │ │ │ │ ├── AllowlistPolicy.sol │ │ │ │ ├── ApprovedCallsPolicy.sol │ │ │ │ ├── ApprovedVectorsPolicy.sol │ │ │ │ ├── BalanceChangePolicy.sol │ │ │ │ ├── BlocklistPolicy.sol │ │ │ │ ├── CombinedPoliciesPolicy.sol │ │ │ │ ├── FirewallPolicyBase.sol │ │ │ │ ├── ForbiddenMethodsPolicy.sol │ │ │ │ ├── NonReentrantPolicy.sol │ │ │ │ └── OnlyEOAPolicy.sol │ │ │ └── proxy │ │ │ │ ├── FirewallProxyAdmin.sol │ │ │ │ ├── FirewallProxyIntercept.sol │ │ │ │ └── FirewallTransparentUpgradeableProxy.sol │ │ ├── hardhat.config.js │ │ ├── ironblocks-logo.svg │ │ ├── package.json │ │ ├── scripts │ │ │ ├── deploy.js │ │ │ ├── deployFirewallTestnet.js │ │ │ ├── deployProxy.js │ │ │ └── gasTest.js │ │ └── test │ │ │ ├── adminCallPolicy.js │ │ │ ├── allowlistPolicy.js │ │ │ ├── approvedCallsPolicy.js │ │ │ ├── approvedVectorsOrApprovedCalls.js │ │ │ ├── approvedVectorsPolicy.js │ │ │ ├── balanceChangeOrApprovedCalls.js │ │ │ ├── balanceChangePolicy.js │ │ │ ├── combinedPoliciesPolicy.js │ │ │ ├── firewall.js │ │ │ ├── firewallConsumerUpgradeable.js │ │ │ ├── firewallConsumerUpgradeableProxy.js │ │ │ ├── privateInvariantPolicy.js │ │ │ ├── simpleUpgradeableFirewallConsumer.js │ │ │ └── utils │ │ │ └── utils.js │ └── utils │ │ ├── CommonErrors.sol │ │ ├── ContractType.sol │ │ ├── IdentityGuard.sol │ │ └── RoleAccess.sol └── test │ └── Counter.t.sol ├── server ├── Dockerfile ├── attack.txt ├── benign.txt └── server.py └── solve.py /.github/workflows/build-infra.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/.github/workflows/build-infra.yaml -------------------------------------------------------------------------------- /.github/workflows/build-revmc-anvil-builder.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/.github/workflows/build-revmc-anvil-builder.yaml -------------------------------------------------------------------------------- /.github/workflows/build-revmc-anvil.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/.github/workflows/build-revmc-anvil.yaml -------------------------------------------------------------------------------- /.github/workflows/build-safusol.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/.github/workflows/build-safusol.yaml -------------------------------------------------------------------------------- /.github/workflows/build-solalloc.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/.github/workflows/build-solalloc.yaml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/.gitignore -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/README.md -------------------------------------------------------------------------------- /bigen-layer/.challengeignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/bigen-layer/.challengeignore -------------------------------------------------------------------------------- /bigen-layer/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/bigen-layer/README.md -------------------------------------------------------------------------------- /bigen-layer/challenge.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/bigen-layer/challenge.yaml -------------------------------------------------------------------------------- /bigen-layer/challenge/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/bigen-layer/challenge/Dockerfile -------------------------------------------------------------------------------- /bigen-layer/challenge/Dockerfile.local: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/bigen-layer/challenge/Dockerfile.local -------------------------------------------------------------------------------- /bigen-layer/challenge/challenge.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/bigen-layer/challenge/challenge.py -------------------------------------------------------------------------------- /bigen-layer/challenge/docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/bigen-layer/challenge/docker-compose.yml -------------------------------------------------------------------------------- /bigen-layer/challenge/project/.gitignore: -------------------------------------------------------------------------------- 1 | broadcast/ 2 | cache/ 3 | out/ -------------------------------------------------------------------------------- /bigen-layer/challenge/project/foundry.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/bigen-layer/challenge/project/foundry.toml -------------------------------------------------------------------------------- /bigen-layer/challenge/project/lib/forge-std/.gitignore: -------------------------------------------------------------------------------- 1 | cache/ 2 | out/ 3 | .vscode 4 | .idea 5 | -------------------------------------------------------------------------------- /bigen-layer/challenge/project/lib/forge-std/lib/ds-test/.gitignore: -------------------------------------------------------------------------------- 1 | /.dapple 2 | /build 3 | /out 4 | /cache/ 5 | -------------------------------------------------------------------------------- /bigen-layer/challenge/project/remappings.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/bigen-layer/challenge/project/remappings.txt -------------------------------------------------------------------------------- /bigen-layer/challenge/project/script/Deploy.s.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/bigen-layer/challenge/project/script/Deploy.s.sol -------------------------------------------------------------------------------- /bigen-layer/challenge/project/src/Challenge.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/bigen-layer/challenge/project/src/Challenge.sol -------------------------------------------------------------------------------- /bigen-layer/challenge/project/src/ERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/bigen-layer/challenge/project/src/ERC20.sol -------------------------------------------------------------------------------- /bigen-layer/deploy.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/bigen-layer/deploy.sh -------------------------------------------------------------------------------- /bundle.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/bundle.sh -------------------------------------------------------------------------------- /chisel-as-a-service/.challengeignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/chisel-as-a-service/.challengeignore -------------------------------------------------------------------------------- /chisel-as-a-service/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/chisel-as-a-service/README.md -------------------------------------------------------------------------------- /chisel-as-a-service/build-web.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/chisel-as-a-service/build-web.sh -------------------------------------------------------------------------------- /chisel-as-a-service/challenge.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/chisel-as-a-service/challenge.yaml -------------------------------------------------------------------------------- /chisel-as-a-service/challenge/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/chisel-as-a-service/challenge/Dockerfile -------------------------------------------------------------------------------- /chisel-as-a-service/challenge/Dockerfile.local: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/chisel-as-a-service/challenge/Dockerfile.local -------------------------------------------------------------------------------- /chisel-as-a-service/challenge/challenge.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/chisel-as-a-service/challenge/challenge.py -------------------------------------------------------------------------------- /chisel-as-a-service/challenge/docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/chisel-as-a-service/challenge/docker-compose.yml -------------------------------------------------------------------------------- /chisel-as-a-service/challenge/project/.gitignore: -------------------------------------------------------------------------------- 1 | broadcast/ 2 | cache/ 3 | out/ -------------------------------------------------------------------------------- /chisel-as-a-service/challenge/project/foundry.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/chisel-as-a-service/challenge/project/foundry.toml -------------------------------------------------------------------------------- /chisel-as-a-service/challenge/project/lib/forge-std/.gitignore: -------------------------------------------------------------------------------- 1 | cache/ 2 | out/ 3 | .vscode 4 | .idea 5 | -------------------------------------------------------------------------------- /chisel-as-a-service/challenge/project/lib/forge-std/lib/ds-test/.gitignore: -------------------------------------------------------------------------------- 1 | /.dapple 2 | /build 3 | /out 4 | /cache/ 5 | -------------------------------------------------------------------------------- /chisel-as-a-service/challenge/solve.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/chisel-as-a-service/challenge/solve.py -------------------------------------------------------------------------------- /chisel-as-a-service/challenge/web/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/chisel-as-a-service/challenge/web/Dockerfile -------------------------------------------------------------------------------- /chisel-as-a-service/challenge/web/flag.txt: -------------------------------------------------------------------------------- 1 | blaz{m1na_b4k3_y0ur_pizza} 2 | -------------------------------------------------------------------------------- /chisel-as-a-service/challenge/web/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/chisel-as-a-service/challenge/web/index.js -------------------------------------------------------------------------------- /chisel-as-a-service/challenge/web/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/chisel-as-a-service/challenge/web/package.json -------------------------------------------------------------------------------- /cyber-cartel/.challengeignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/cyber-cartel/.challengeignore -------------------------------------------------------------------------------- /cyber-cartel/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/cyber-cartel/README.md -------------------------------------------------------------------------------- /cyber-cartel/challenge.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/cyber-cartel/challenge.yaml -------------------------------------------------------------------------------- /cyber-cartel/challenge/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/cyber-cartel/challenge/Dockerfile -------------------------------------------------------------------------------- /cyber-cartel/challenge/Dockerfile.local: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/cyber-cartel/challenge/Dockerfile.local -------------------------------------------------------------------------------- /cyber-cartel/challenge/challenge.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/cyber-cartel/challenge/challenge.py -------------------------------------------------------------------------------- /cyber-cartel/challenge/docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/cyber-cartel/challenge/docker-compose.yml -------------------------------------------------------------------------------- /cyber-cartel/challenge/project/.gitignore: -------------------------------------------------------------------------------- 1 | broadcast/ 2 | cache/ 3 | out/ -------------------------------------------------------------------------------- /cyber-cartel/challenge/project/foundry.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/cyber-cartel/challenge/project/foundry.toml -------------------------------------------------------------------------------- /cyber-cartel/challenge/project/lib/forge-std/.gitignore: -------------------------------------------------------------------------------- 1 | cache/ 2 | out/ 3 | .vscode 4 | .idea 5 | -------------------------------------------------------------------------------- /cyber-cartel/challenge/project/lib/forge-std/lib/ds-test/.gitignore: -------------------------------------------------------------------------------- 1 | /.dapple 2 | /build 3 | /out 4 | /cache/ 5 | -------------------------------------------------------------------------------- /cyber-cartel/challenge/project/remappings.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/cyber-cartel/challenge/project/remappings.txt -------------------------------------------------------------------------------- /cyber-cartel/challenge/project/script/Deploy.s.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/cyber-cartel/challenge/project/script/Deploy.s.sol -------------------------------------------------------------------------------- /cyber-cartel/challenge/project/src/Challenge.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/cyber-cartel/challenge/project/src/Challenge.sol -------------------------------------------------------------------------------- /cyber-cartel/challenge/project/src/CyberCartel.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/cyber-cartel/challenge/project/src/CyberCartel.sol -------------------------------------------------------------------------------- /cyber-cartel/deploy.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/cyber-cartel/deploy.sh -------------------------------------------------------------------------------- /doju/.challengeignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/doju/.challengeignore -------------------------------------------------------------------------------- /doju/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/doju/README.md -------------------------------------------------------------------------------- /doju/challenge.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/doju/challenge.yaml -------------------------------------------------------------------------------- /doju/challenge/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/doju/challenge/Dockerfile -------------------------------------------------------------------------------- /doju/challenge/Dockerfile.local: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/doju/challenge/Dockerfile.local -------------------------------------------------------------------------------- /doju/challenge/challenge.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/doju/challenge/challenge.py -------------------------------------------------------------------------------- /doju/challenge/docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/doju/challenge/docker-compose.yml -------------------------------------------------------------------------------- /doju/challenge/project/.gitignore: -------------------------------------------------------------------------------- 1 | broadcast/ 2 | cache/ 3 | out/ -------------------------------------------------------------------------------- /doju/challenge/project/foundry.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/doju/challenge/project/foundry.toml -------------------------------------------------------------------------------- /doju/challenge/project/lib/forge-std/.gitignore: -------------------------------------------------------------------------------- 1 | cache/ 2 | out/ 3 | .vscode 4 | .idea 5 | -------------------------------------------------------------------------------- /doju/challenge/project/lib/forge-std/.gitmodules: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/doju/challenge/project/lib/forge-std/.gitmodules -------------------------------------------------------------------------------- /doju/challenge/project/lib/forge-std/LICENSE-MIT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/doju/challenge/project/lib/forge-std/LICENSE-MIT -------------------------------------------------------------------------------- /doju/challenge/project/lib/forge-std/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/doju/challenge/project/lib/forge-std/README.md -------------------------------------------------------------------------------- /doju/challenge/project/lib/forge-std/foundry.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/doju/challenge/project/lib/forge-std/foundry.toml -------------------------------------------------------------------------------- /doju/challenge/project/lib/forge-std/lib/ds-test/.gitignore: -------------------------------------------------------------------------------- 1 | /.dapple 2 | /build 3 | /out 4 | /cache/ 5 | -------------------------------------------------------------------------------- /doju/challenge/project/lib/forge-std/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/doju/challenge/project/lib/forge-std/package.json -------------------------------------------------------------------------------- /doju/challenge/project/lib/forge-std/src/Base.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/doju/challenge/project/lib/forge-std/src/Base.sol -------------------------------------------------------------------------------- /doju/challenge/project/lib/forge-std/src/Test.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/doju/challenge/project/lib/forge-std/src/Test.sol -------------------------------------------------------------------------------- /doju/challenge/project/lib/forge-std/src/Vm.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/doju/challenge/project/lib/forge-std/src/Vm.sol -------------------------------------------------------------------------------- /doju/challenge/project/lib/forge-std/test/Vm.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/doju/challenge/project/lib/forge-std/test/Vm.t.sol -------------------------------------------------------------------------------- /doju/challenge/project/remappings.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/doju/challenge/project/remappings.txt -------------------------------------------------------------------------------- /doju/challenge/project/script/Deploy.s.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/doju/challenge/project/script/Deploy.s.sol -------------------------------------------------------------------------------- /doju/challenge/project/src/Challenge.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/doju/challenge/project/src/Challenge.sol -------------------------------------------------------------------------------- /doju/challenge/project/src/Doju.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/doju/challenge/project/src/Doju.sol -------------------------------------------------------------------------------- /doju/challenge/project/test/Dojo.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/doju/challenge/project/test/Dojo.t.sol -------------------------------------------------------------------------------- /doju/deploy.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/doju/deploy.sh -------------------------------------------------------------------------------- /eight-inch/.challengeignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/eight-inch/.challengeignore -------------------------------------------------------------------------------- /eight-inch/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/eight-inch/README.md -------------------------------------------------------------------------------- /eight-inch/Solution.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/eight-inch/Solution.t.sol -------------------------------------------------------------------------------- /eight-inch/challenge.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/eight-inch/challenge.yaml -------------------------------------------------------------------------------- /eight-inch/challenge/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/eight-inch/challenge/Dockerfile -------------------------------------------------------------------------------- /eight-inch/challenge/Dockerfile.local: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/eight-inch/challenge/Dockerfile.local -------------------------------------------------------------------------------- /eight-inch/challenge/challenge.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/eight-inch/challenge/challenge.py -------------------------------------------------------------------------------- /eight-inch/challenge/docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/eight-inch/challenge/docker-compose.yml -------------------------------------------------------------------------------- /eight-inch/challenge/project/.gitignore: -------------------------------------------------------------------------------- 1 | broadcast/ 2 | cache/ 3 | out/ -------------------------------------------------------------------------------- /eight-inch/challenge/project/foundry.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/eight-inch/challenge/project/foundry.toml -------------------------------------------------------------------------------- /eight-inch/challenge/project/lib/forge-std/.gitignore: -------------------------------------------------------------------------------- 1 | cache/ 2 | out/ 3 | .vscode 4 | .idea 5 | -------------------------------------------------------------------------------- /eight-inch/challenge/project/lib/forge-std/lib/ds-test/.gitignore: -------------------------------------------------------------------------------- 1 | /.dapple 2 | /build 3 | /out 4 | /cache/ 5 | -------------------------------------------------------------------------------- /eight-inch/challenge/project/remappings.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/eight-inch/challenge/project/remappings.txt -------------------------------------------------------------------------------- /eight-inch/challenge/project/script/Deploy.s.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/eight-inch/challenge/project/script/Deploy.s.sol -------------------------------------------------------------------------------- /eight-inch/challenge/project/src/8Inch.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/eight-inch/challenge/project/src/8Inch.sol -------------------------------------------------------------------------------- /eight-inch/challenge/project/src/ERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/eight-inch/challenge/project/src/ERC20.sol -------------------------------------------------------------------------------- /eight-inch/challenge/project/src/SafeUint112.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/eight-inch/challenge/project/src/SafeUint112.sol -------------------------------------------------------------------------------- /eight-inch/deploy.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/eight-inch/deploy.sh -------------------------------------------------------------------------------- /enterprise-blockchain/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/Dockerfile -------------------------------------------------------------------------------- /enterprise-blockchain/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/README.md -------------------------------------------------------------------------------- /enterprise-blockchain/bridge_contracts/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/bridge_contracts/.gitignore -------------------------------------------------------------------------------- /enterprise-blockchain/bridge_contracts/deploy.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/bridge_contracts/deploy.py -------------------------------------------------------------------------------- /enterprise-blockchain/bridge_contracts/deploy.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/bridge_contracts/deploy.sh -------------------------------------------------------------------------------- /enterprise-blockchain/bridge_contracts/lib/openzeppelin-contracts/certora/.gitignore: -------------------------------------------------------------------------------- 1 | patched 2 | -------------------------------------------------------------------------------- /enterprise-blockchain/bridge_contracts/lib/openzeppelin-contracts/lib/forge-std/.gitignore: -------------------------------------------------------------------------------- 1 | cache/ 2 | out/ 3 | .vscode 4 | .idea 5 | -------------------------------------------------------------------------------- /enterprise-blockchain/bridge_contracts/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/.gitignore: -------------------------------------------------------------------------------- 1 | /.dapple 2 | /build 3 | /out 4 | -------------------------------------------------------------------------------- /enterprise-blockchain/bridge_contracts/lib/openzeppelin-contracts/remappings.txt: -------------------------------------------------------------------------------- 1 | openzeppelin/=contracts/ 2 | -------------------------------------------------------------------------------- /enterprise-blockchain/bridge_contracts/lib/openzeppelin-contracts/requirements.txt: -------------------------------------------------------------------------------- 1 | certora-cli==3.6.4 2 | -------------------------------------------------------------------------------- /enterprise-blockchain/build.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/build.sh -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/.cargo/config.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/.cargo/config.toml -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/.dockerignore: -------------------------------------------------------------------------------- 1 | target 2 | .github 3 | -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/.gitattributes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/.gitattributes -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/.github/demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/.github/demo.gif -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/.github/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/.github/logo.png -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/.gitignore -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/CHANGELOG.md -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/CONTRIBUTING.md -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/Cargo.lock -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/Cargo.toml -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/Dockerfile -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/LICENSE-APACHE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/LICENSE-APACHE -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/LICENSE-MIT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/LICENSE-MIT -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/README.md -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/abi/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/abi/Cargo.toml -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/abi/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/abi/README.md -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/abi/abi/Console.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/abi/abi/Console.sol -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/abi/abi/HEVM.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/abi/abi/HEVM.sol -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/abi/build.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/abi/build.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/abi/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/abi/src/lib.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/anvil/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/anvil/Cargo.toml -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/anvil/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/anvil/README.md -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/anvil/build.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/anvil/build.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/anvil/rpc/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/anvil/rpc/Cargo.toml -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/anvil/rpc/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/anvil/rpc/src/lib.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/anvil/src/anvil.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/anvil/src/anvil.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/anvil/src/cmd.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/anvil/src/cmd.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/anvil/src/config.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/anvil/src/config.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/anvil/src/eth/api.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/anvil/src/eth/api.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/anvil/src/eth/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/anvil/src/eth/mod.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/anvil/src/filter.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/anvil/src/filter.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/anvil/src/genesis.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/anvil/src/genesis.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/anvil/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/anvil/src/lib.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/anvil/src/logging.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/anvil/src/logging.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/anvil/src/pubsub.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/anvil/src/pubsub.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/anvil/src/service.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/anvil/src/service.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/binder/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/binder/Cargo.toml -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/binder/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/binder/README.md -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/binder/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/binder/src/lib.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/binder/src/utils.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/binder/src/utils.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/cast/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/cast/Cargo.toml -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/cast/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/cast/README.md -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/cast/src/base.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/cast/src/base.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/cast/src/errors.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/cast/src/errors.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/cast/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/cast/src/lib.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/cast/src/tx.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/cast/src/tx.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/chisel/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/chisel/Cargo.toml -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/chisel/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/chisel/README.md -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/chisel/build.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/chisel/build.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/chisel/src/cmd.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/chisel/src/cmd.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/chisel/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/chisel/src/lib.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/chisel/src/runner.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/chisel/src/runner.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/cli/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/cli/Cargo.toml -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/cli/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/cli/README.md -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/cli/benches/cast.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/cli/benches/cast.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/cli/build.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/cli/build.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/cli/src/cast.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/cli/src/cast.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/cli/src/cmd/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/cli/src/cmd/mod.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/cli/src/cmd/retry.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/cli/src/cmd/retry.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/cli/src/cmd/utils.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/cli/src/cmd/utils.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/cli/src/forge.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/cli/src/forge.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/cli/src/handler.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/cli/src/handler.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/cli/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/cli/src/lib.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/cli/src/opts/cast.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/cli/src/opts/cast.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/cli/src/opts/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/cli/src/opts/mod.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/cli/src/stdin.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/cli/src/stdin.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/cli/src/utils.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/cli/src/utils.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/cli/tests/fixtures/keystore/password: -------------------------------------------------------------------------------- 1 | this is keystore password 2 | -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/cli/tests/fixtures/keystore/password-ec554: -------------------------------------------------------------------------------- 1 | keystorepassword -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/cli/tests/it/cast.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/cli/tests/it/cast.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/cli/tests/it/cmd.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/cli/tests/it/cmd.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/cli/tests/it/doc.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/cli/tests/it/doc.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/cli/tests/it/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/cli/tests/it/main.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/cli/tests/it/svm.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/cli/tests/it/svm.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/common/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/common/Cargo.toml -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/common/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/common/README.md -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/common/src/abi.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/common/src/abi.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/common/src/calc.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/common/src/calc.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/common/src/evm.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/common/src/evm.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/common/src/fmt.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/common/src/fmt.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/common/src/fs.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/common/src/fs.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/common/src/glob.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/common/src/glob.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/common/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/common/src/lib.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/common/src/shell.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/common/src/shell.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/common/src/term.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/common/src/term.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/config/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/config/Cargo.toml -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/config/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/config/README.md -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/config/src/doc.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/config/src/doc.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/config/src/fix.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/config/src/fix.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/config/src/fmt.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/config/src/fmt.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/config/src/fuzz.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/config/src/fuzz.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/config/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/config/src/lib.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/deny.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/deny.toml -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/doc/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/doc/Cargo.toml -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/doc/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/doc/README.md -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/doc/src/builder.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/doc/src/builder.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/doc/src/helpers.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/doc/src/helpers.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/doc/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/doc/src/lib.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/doc/src/server.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/doc/src/server.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/evm/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/evm/Cargo.toml -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/evm/src/debug.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/evm/src/debug.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/evm/src/decode.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/evm/src/decode.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/evm/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/evm/src/lib.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/evm/src/utils.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/evm/src/utils.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/fmt/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/fmt/Cargo.toml -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/fmt/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/fmt/README.md -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/fmt/src/buffer.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/fmt/src/buffer.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/fmt/src/chunk.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/fmt/src/chunk.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/fmt/src/helpers.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/fmt/src/helpers.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/fmt/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/fmt/src/lib.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/fmt/src/macros.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/fmt/src/macros.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/fmt/src/string.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/fmt/src/string.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/fmt/src/visit.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/fmt/src/visit.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/fmt/tests/it/main.rs: -------------------------------------------------------------------------------- 1 | mod formatter; 2 | -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/forge/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/forge/Cargo.toml -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/forge/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/forge/README.md -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/forge/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/forge/src/lib.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/foundryup/install: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/foundryup/install -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/macros/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/macros/Cargo.toml -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/macros/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/macros/src/lib.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/rustfmt.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/rustfmt.toml -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/testdata/.gitignore: -------------------------------------------------------------------------------- 1 | # Compiler files 2 | cache/ 3 | out/ -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/testdata/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/testdata/README.md -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/testdata/fixtures/Dir/depth1: -------------------------------------------------------------------------------- 1 | Wow! 😀 2 | -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/testdata/fixtures/Dir/nested/depth2: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/testdata/fixtures/Dir/nested/nested2/depth3: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/testdata/fixtures/File/read.txt: -------------------------------------------------------------------------------- 1 | hello readable world 2 | this is the second line! -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/testdata/fixtures/File/symlink: -------------------------------------------------------------------------------- 1 | hello readable world 2 | this is the second line! -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/ui/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/ui/Cargo.toml -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/ui/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/ui/src/lib.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/utils/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/utils/Cargo.toml -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/utils/README.md: -------------------------------------------------------------------------------- 1 | # foundry-utils 2 | 3 | Helper methods for interacting with EVM ABIs 4 | -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/utils/src/abi.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/utils/src/abi.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/utils/src/error.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/utils/src/error.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/utils/src/glob.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/utils/src/glob.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/utils/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/utils/src/lib.rs -------------------------------------------------------------------------------- /enterprise-blockchain/foundry/utils/src/rpc.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/foundry/utils/src/rpc.rs -------------------------------------------------------------------------------- /enterprise-blockchain/k8s.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/k8s.yaml -------------------------------------------------------------------------------- /enterprise-blockchain/multisig-l2contracts/build-and-run.sh: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /enterprise-blockchain/multisig-l2contracts/ct/lib/forge-std/.gitignore: -------------------------------------------------------------------------------- 1 | cache/ 2 | out/ 3 | .vscode 4 | .idea 5 | -------------------------------------------------------------------------------- /enterprise-blockchain/multisig-l2contracts/ct/lib/forge-std/lib/ds-test/.gitignore: -------------------------------------------------------------------------------- 1 | /.dapple 2 | /build 3 | /out 4 | /cache/ 5 | -------------------------------------------------------------------------------- /enterprise-blockchain/package/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/package/.gitignore -------------------------------------------------------------------------------- /enterprise-blockchain/package/abi.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/package/abi.json -------------------------------------------------------------------------------- /enterprise-blockchain/package/anvil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/package/anvil -------------------------------------------------------------------------------- /enterprise-blockchain/package/anvil.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/package/anvil.py -------------------------------------------------------------------------------- /enterprise-blockchain/package/challenge.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/package/challenge.py -------------------------------------------------------------------------------- /enterprise-blockchain/package/config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/package/config.py -------------------------------------------------------------------------------- /enterprise-blockchain/package/config.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/package/config.yaml -------------------------------------------------------------------------------- /enterprise-blockchain/package/l1-state.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/package/l1-state.json -------------------------------------------------------------------------------- /enterprise-blockchain/package/l2-state.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/package/l2-state.json -------------------------------------------------------------------------------- /enterprise-blockchain/package/main.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/package/main.py -------------------------------------------------------------------------------- /enterprise-blockchain/package/requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/package/requirements.txt -------------------------------------------------------------------------------- /enterprise-blockchain/public-files/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/public-files/Dockerfile -------------------------------------------------------------------------------- /enterprise-blockchain/public-files/package/anvil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/public-files/package/anvil -------------------------------------------------------------------------------- /enterprise-blockchain/relayer/.gitignore: -------------------------------------------------------------------------------- 1 | venv 2 | -------------------------------------------------------------------------------- /enterprise-blockchain/relayer/abi.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/relayer/abi.json -------------------------------------------------------------------------------- /enterprise-blockchain/relayer/main.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/relayer/main.py -------------------------------------------------------------------------------- /enterprise-blockchain/relayer/requirements.txt: -------------------------------------------------------------------------------- 1 | web3==6.6.1 -------------------------------------------------------------------------------- /enterprise-blockchain/relayer/run-juno.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/relayer/run-juno.sh -------------------------------------------------------------------------------- /enterprise-blockchain/relayer/run.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/relayer/run.sh -------------------------------------------------------------------------------- /enterprise-blockchain/revm/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/revm/.gitignore -------------------------------------------------------------------------------- /enterprise-blockchain/revm/.rustfmt.toml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /enterprise-blockchain/revm/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/revm/CHANGELOG.md -------------------------------------------------------------------------------- /enterprise-blockchain/revm/Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/revm/Cargo.lock -------------------------------------------------------------------------------- /enterprise-blockchain/revm/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/revm/Cargo.toml -------------------------------------------------------------------------------- /enterprise-blockchain/revm/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/revm/LICENSE -------------------------------------------------------------------------------- /enterprise-blockchain/revm/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/revm/README.md -------------------------------------------------------------------------------- /enterprise-blockchain/revm/bins/revme/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/revm/bins/revme/Cargo.toml -------------------------------------------------------------------------------- /enterprise-blockchain/revm/bins/revme/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/revm/bins/revme/LICENSE -------------------------------------------------------------------------------- /enterprise-blockchain/revm/bins/revme/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/revm/bins/revme/README.md -------------------------------------------------------------------------------- /enterprise-blockchain/revm/bins/revme/src/cmd.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/revm/bins/revme/src/cmd.rs -------------------------------------------------------------------------------- /enterprise-blockchain/revm/bins/revme/src/exec.rs: -------------------------------------------------------------------------------- 1 | //pub struct Runner {} 2 | -------------------------------------------------------------------------------- /enterprise-blockchain/revm/bins/revme/src/lib.rs: -------------------------------------------------------------------------------- 1 | pub mod statetest; 2 | -------------------------------------------------------------------------------- /enterprise-blockchain/revm/bins/revme/src/parser.rs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /enterprise-blockchain/revm/bins/revme/src/state.rs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /enterprise-blockchain/revm/crates/revm/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/revm/crates/revm/LICENSE -------------------------------------------------------------------------------- /enterprise-blockchain/revm/crates/revm/src/db.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/enterprise-blockchain/revm/crates/revm/src/db.rs -------------------------------------------------------------------------------- /i-love-revmc/.challengeignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/i-love-revmc/.challengeignore -------------------------------------------------------------------------------- /i-love-revmc/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/i-love-revmc/README.md -------------------------------------------------------------------------------- /i-love-revmc/challenge.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/i-love-revmc/challenge.yaml -------------------------------------------------------------------------------- /i-love-revmc/challenge/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/i-love-revmc/challenge/Dockerfile -------------------------------------------------------------------------------- /i-love-revmc/challenge/Dockerfile.local: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/i-love-revmc/challenge/Dockerfile.local -------------------------------------------------------------------------------- /i-love-revmc/challenge/anvil-image/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/i-love-revmc/challenge/anvil-image/Dockerfile -------------------------------------------------------------------------------- /i-love-revmc/challenge/anvil-image/build.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/i-love-revmc/challenge/anvil-image/build.sh -------------------------------------------------------------------------------- /i-love-revmc/challenge/anvil-image/foundry.patch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/i-love-revmc/challenge/anvil-image/foundry.patch -------------------------------------------------------------------------------- /i-love-revmc/challenge/anvil-image/jit-compiler/build.rs: -------------------------------------------------------------------------------- 1 | fn main() { 2 | revmc_build::emit(); 3 | } 4 | -------------------------------------------------------------------------------- /i-love-revmc/challenge/anvil-image/revm.patch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/i-love-revmc/challenge/anvil-image/revm.patch -------------------------------------------------------------------------------- /i-love-revmc/challenge/anvil-image/revmc.patch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/i-love-revmc/challenge/anvil-image/revmc.patch -------------------------------------------------------------------------------- /i-love-revmc/challenge/challenge.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/i-love-revmc/challenge/challenge.py -------------------------------------------------------------------------------- /i-love-revmc/challenge/docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/i-love-revmc/challenge/docker-compose.yml -------------------------------------------------------------------------------- /i-love-revmc/exp-do-not-upload.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/i-love-revmc/exp-do-not-upload.py -------------------------------------------------------------------------------- /infrastructure/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/infrastructure/.gitignore -------------------------------------------------------------------------------- /infrastructure/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/infrastructure/README.md -------------------------------------------------------------------------------- /infrastructure/forge-ctf/src/CTFDeployer.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/infrastructure/forge-ctf/src/CTFDeployer.sol -------------------------------------------------------------------------------- /infrastructure/forge-ctf/src/CTFSolver.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/infrastructure/forge-ctf/src/CTFSolver.sol -------------------------------------------------------------------------------- /infrastructure/kctf-challenge/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/infrastructure/kctf-challenge/Dockerfile -------------------------------------------------------------------------------- /infrastructure/kctf-challenge/kctf_persist_env: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/infrastructure/kctf-challenge/kctf_persist_env -------------------------------------------------------------------------------- /infrastructure/kctf-challenge/kctf_restore_env: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/infrastructure/kctf-challenge/kctf_restore_env -------------------------------------------------------------------------------- /infrastructure/kctf-challenge/nsjail.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/infrastructure/kctf-challenge/nsjail.cfg -------------------------------------------------------------------------------- /infrastructure/kubernetes/ctf-server.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/infrastructure/kubernetes/ctf-server.yaml -------------------------------------------------------------------------------- /infrastructure/kubernetes/easy-ticket.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/infrastructure/kubernetes/easy-ticket.yaml -------------------------------------------------------------------------------- /infrastructure/paradigmctf.py/.dockerignore: -------------------------------------------------------------------------------- 1 | **/__pycache__ 2 | *.pyc 3 | -------------------------------------------------------------------------------- /infrastructure/paradigmctf.py/.gitignore: -------------------------------------------------------------------------------- 1 | build/ 2 | *.egg-info 3 | **/__pycache__/ -------------------------------------------------------------------------------- /infrastructure/paradigmctf.py/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/infrastructure/paradigmctf.py/Dockerfile -------------------------------------------------------------------------------- /infrastructure/paradigmctf.py/ctf_launchers/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /infrastructure/paradigmctf.py/ctf_solvers/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /infrastructure/paradigmctf.py/docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/infrastructure/paradigmctf.py/docker-compose.yml -------------------------------------------------------------------------------- /infrastructure/paradigmctf.py/foundry/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /infrastructure/paradigmctf.py/foundry/anvil.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/infrastructure/paradigmctf.py/foundry/anvil.py -------------------------------------------------------------------------------- /infrastructure/paradigmctf.py/requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/infrastructure/paradigmctf.py/requirements.txt -------------------------------------------------------------------------------- /infrastructure/paradigmctf.py/setup.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/infrastructure/paradigmctf.py/setup.py -------------------------------------------------------------------------------- /oh-fuck-oym/.challengeignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/oh-fuck-oym/.challengeignore -------------------------------------------------------------------------------- /oh-fuck-oym/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/oh-fuck-oym/README.md -------------------------------------------------------------------------------- /oh-fuck-oym/challenge.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/oh-fuck-oym/challenge.yaml -------------------------------------------------------------------------------- /oh-fuck-oym/challenge/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/oh-fuck-oym/challenge/Dockerfile -------------------------------------------------------------------------------- /oh-fuck-oym/challenge/Dockerfile.local: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/oh-fuck-oym/challenge/Dockerfile.local -------------------------------------------------------------------------------- /oh-fuck-oym/challenge/challenge.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/oh-fuck-oym/challenge/challenge.py -------------------------------------------------------------------------------- /oh-fuck-oym/challenge/docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/oh-fuck-oym/challenge/docker-compose.yml -------------------------------------------------------------------------------- /oh-fuck-oym/challenge/project/.gitignore: -------------------------------------------------------------------------------- 1 | broadcast/ 2 | cache/ 3 | out/ -------------------------------------------------------------------------------- /oh-fuck-oym/challenge/project/foundry.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/oh-fuck-oym/challenge/project/foundry.toml -------------------------------------------------------------------------------- /oh-fuck-oym/challenge/project/lib/forge-std/.gitignore: -------------------------------------------------------------------------------- 1 | cache/ 2 | out/ 3 | .vscode 4 | .idea 5 | -------------------------------------------------------------------------------- /oh-fuck-oym/challenge/project/lib/forge-std/lib/ds-test/.gitignore: -------------------------------------------------------------------------------- 1 | /.dapple 2 | /build 3 | /out 4 | /cache/ 5 | -------------------------------------------------------------------------------- /oh-fuck-oym/challenge/project/remappings.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/oh-fuck-oym/challenge/project/remappings.txt -------------------------------------------------------------------------------- /oh-fuck-oym/challenge/project/src/Challenge.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/oh-fuck-oym/challenge/project/src/Challenge.sol -------------------------------------------------------------------------------- /oh-fuck-oym/challenge/project/src/ERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/oh-fuck-oym/challenge/project/src/ERC20.sol -------------------------------------------------------------------------------- /oh-fuck-oym/deploy.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/oh-fuck-oym/deploy.sh -------------------------------------------------------------------------------- /oh-fuck-pendle/.challengeignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/oh-fuck-pendle/.challengeignore -------------------------------------------------------------------------------- /oh-fuck-pendle/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/oh-fuck-pendle/README.md -------------------------------------------------------------------------------- /oh-fuck-pendle/challenge.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/oh-fuck-pendle/challenge.yaml -------------------------------------------------------------------------------- /oh-fuck-pendle/challenge/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/oh-fuck-pendle/challenge/Dockerfile -------------------------------------------------------------------------------- /oh-fuck-pendle/challenge/Dockerfile.local: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/oh-fuck-pendle/challenge/Dockerfile.local -------------------------------------------------------------------------------- /oh-fuck-pendle/challenge/challenge.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/oh-fuck-pendle/challenge/challenge.py -------------------------------------------------------------------------------- /oh-fuck-pendle/challenge/docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/oh-fuck-pendle/challenge/docker-compose.yml -------------------------------------------------------------------------------- /oh-fuck-pendle/challenge/project/.gitignore: -------------------------------------------------------------------------------- 1 | broadcast/ 2 | cache/ 3 | out/ -------------------------------------------------------------------------------- /oh-fuck-pendle/challenge/project/foundry.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/oh-fuck-pendle/challenge/project/foundry.toml -------------------------------------------------------------------------------- /oh-fuck-pendle/challenge/project/lib/forge-std/.gitignore: -------------------------------------------------------------------------------- 1 | cache/ 2 | out/ 3 | .vscode 4 | .idea 5 | -------------------------------------------------------------------------------- /oh-fuck-pendle/challenge/project/lib/forge-std/lib/ds-test/.gitignore: -------------------------------------------------------------------------------- 1 | /.dapple 2 | /build 3 | /out 4 | /cache/ 5 | -------------------------------------------------------------------------------- /oh-fuck-pendle/challenge/project/remappings.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/oh-fuck-pendle/challenge/project/remappings.txt -------------------------------------------------------------------------------- /oh-fuck-pendle/challenge/project/src/ERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/oh-fuck-pendle/challenge/project/src/ERC20.sol -------------------------------------------------------------------------------- /oh-fuck-pendle/deploy.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/oh-fuck-pendle/deploy.sh -------------------------------------------------------------------------------- /safusol/.challengeignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/safusol/.challengeignore -------------------------------------------------------------------------------- /safusol/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/safusol/README.md -------------------------------------------------------------------------------- /safusol/challenge.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/safusol/challenge.yaml -------------------------------------------------------------------------------- /safusol/challenge/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/safusol/challenge/Dockerfile -------------------------------------------------------------------------------- /safusol/challenge/server/.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | -------------------------------------------------------------------------------- /safusol/challenge/server/Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/safusol/challenge/server/Cargo.lock -------------------------------------------------------------------------------- /safusol/challenge/server/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/safusol/challenge/server/Cargo.toml -------------------------------------------------------------------------------- /safusol/challenge/server/program/makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/safusol/challenge/server/program/makefile -------------------------------------------------------------------------------- /safusol/challenge/server/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/safusol/challenge/server/src/main.rs -------------------------------------------------------------------------------- /safusol/challenge/solve-template/makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/safusol/challenge/solve-template/makefile -------------------------------------------------------------------------------- /safusol/challenge/solve-template/solve.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/safusol/challenge/solve-template/solve.py -------------------------------------------------------------------------------- /solalloc/.challengeignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/solalloc/.challengeignore -------------------------------------------------------------------------------- /solalloc/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/solalloc/README.md -------------------------------------------------------------------------------- /solalloc/challenge.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/solalloc/challenge.yaml -------------------------------------------------------------------------------- /solalloc/challenge/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/solalloc/challenge/Dockerfile -------------------------------------------------------------------------------- /solalloc/challenge/server/.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | -------------------------------------------------------------------------------- /solalloc/challenge/server/Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/solalloc/challenge/server/Cargo.lock -------------------------------------------------------------------------------- /solalloc/challenge/server/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/solalloc/challenge/server/Cargo.toml -------------------------------------------------------------------------------- /solalloc/challenge/server/program/makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/solalloc/challenge/server/program/makefile -------------------------------------------------------------------------------- /solalloc/challenge/server/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/solalloc/challenge/server/src/main.rs -------------------------------------------------------------------------------- /solalloc/challenge/solve-template/makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/solalloc/challenge/solve-template/makefile -------------------------------------------------------------------------------- /solalloc/challenge/solve-template/solve.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/solalloc/challenge/solve-template/solve.py -------------------------------------------------------------------------------- /start.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/start.sh -------------------------------------------------------------------------------- /templates/pwn/.challengeignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/templates/pwn/.challengeignore -------------------------------------------------------------------------------- /templates/pwn/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/templates/pwn/README.md -------------------------------------------------------------------------------- /templates/pwn/challenge.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/templates/pwn/challenge.yaml -------------------------------------------------------------------------------- /templates/pwn/challenge/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/templates/pwn/challenge/Dockerfile -------------------------------------------------------------------------------- /templates/pwn/challenge/Dockerfile.local: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/templates/pwn/challenge/Dockerfile.local -------------------------------------------------------------------------------- /templates/pwn/challenge/challenge.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/templates/pwn/challenge/challenge.py -------------------------------------------------------------------------------- /templates/pwn/challenge/docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/templates/pwn/challenge/docker-compose.yml -------------------------------------------------------------------------------- /templates/pwn/challenge/project/.gitignore: -------------------------------------------------------------------------------- 1 | broadcast/ 2 | cache/ 3 | out/ -------------------------------------------------------------------------------- /templates/pwn/challenge/project/foundry.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/templates/pwn/challenge/project/foundry.toml -------------------------------------------------------------------------------- /templates/pwn/challenge/project/lib/forge-std/.gitignore: -------------------------------------------------------------------------------- 1 | cache/ 2 | out/ 3 | .vscode 4 | .idea 5 | -------------------------------------------------------------------------------- /templates/pwn/challenge/project/lib/forge-std/lib/ds-test/.gitignore: -------------------------------------------------------------------------------- 1 | /.dapple 2 | /build 3 | /out 4 | /cache/ 5 | -------------------------------------------------------------------------------- /templates/pwn/challenge/project/remappings.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/templates/pwn/challenge/project/remappings.txt -------------------------------------------------------------------------------- /templates/pwn/challenge/solve.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/templates/pwn/challenge/solve.py -------------------------------------------------------------------------------- /teragas/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/teragas/README.md -------------------------------------------------------------------------------- /tony-lend-2/.challengeignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tony-lend-2/.challengeignore -------------------------------------------------------------------------------- /tony-lend-2/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tony-lend-2/README.md -------------------------------------------------------------------------------- /tony-lend-2/challenge.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tony-lend-2/challenge.yaml -------------------------------------------------------------------------------- /tony-lend-2/challenge/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tony-lend-2/challenge/Dockerfile -------------------------------------------------------------------------------- /tony-lend-2/challenge/Dockerfile.local: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tony-lend-2/challenge/Dockerfile.local -------------------------------------------------------------------------------- /tony-lend-2/challenge/challenge.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tony-lend-2/challenge/challenge.py -------------------------------------------------------------------------------- /tony-lend-2/challenge/docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tony-lend-2/challenge/docker-compose.yml -------------------------------------------------------------------------------- /tony-lend-2/challenge/project/.gitignore: -------------------------------------------------------------------------------- 1 | broadcast/ 2 | cache/ 3 | out/ -------------------------------------------------------------------------------- /tony-lend-2/challenge/project/foundry.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tony-lend-2/challenge/project/foundry.toml -------------------------------------------------------------------------------- /tony-lend-2/challenge/project/lib/forge-std/.gitignore: -------------------------------------------------------------------------------- 1 | cache/ 2 | out/ 3 | .vscode 4 | .idea 5 | -------------------------------------------------------------------------------- /tony-lend-2/challenge/project/lib/forge-std/lib/ds-test/.gitignore: -------------------------------------------------------------------------------- 1 | /.dapple 2 | /build 3 | /out 4 | /cache/ 5 | -------------------------------------------------------------------------------- /tony-lend-2/challenge/project/lib/openzeppelin-contracts/certora/.gitignore: -------------------------------------------------------------------------------- 1 | patched 2 | -------------------------------------------------------------------------------- /tony-lend-2/challenge/project/lib/openzeppelin-contracts/lib/forge-std/.gitattributes: -------------------------------------------------------------------------------- 1 | src/Vm.sol linguist-generated 2 | -------------------------------------------------------------------------------- /tony-lend-2/challenge/project/lib/openzeppelin-contracts/lib/forge-std/.gitignore: -------------------------------------------------------------------------------- 1 | cache/ 2 | out/ 3 | .vscode 4 | .idea 5 | -------------------------------------------------------------------------------- /tony-lend-2/challenge/project/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/.gitignore: -------------------------------------------------------------------------------- 1 | /.dapple 2 | /build 3 | /out 4 | /cache/ 5 | -------------------------------------------------------------------------------- /tony-lend-2/challenge/project/remappings.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tony-lend-2/challenge/project/remappings.txt -------------------------------------------------------------------------------- /tony-lend-2/challenge/project/src/Challenge.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tony-lend-2/challenge/project/src/Challenge.sol -------------------------------------------------------------------------------- /tony-lend-2/challenge/project/src/TonyLend.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tony-lend-2/challenge/project/src/TonyLend.sol -------------------------------------------------------------------------------- /tony-lend-2/deploy.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tony-lend-2/deploy.sh -------------------------------------------------------------------------------- /tony-lend/.challengeignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tony-lend/.challengeignore -------------------------------------------------------------------------------- /tony-lend/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tony-lend/README.md -------------------------------------------------------------------------------- /tony-lend/challenge.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tony-lend/challenge.yaml -------------------------------------------------------------------------------- /tony-lend/challenge/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tony-lend/challenge/Dockerfile -------------------------------------------------------------------------------- /tony-lend/challenge/Dockerfile.local: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tony-lend/challenge/Dockerfile.local -------------------------------------------------------------------------------- /tony-lend/challenge/challenge.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tony-lend/challenge/challenge.py -------------------------------------------------------------------------------- /tony-lend/challenge/docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tony-lend/challenge/docker-compose.yml -------------------------------------------------------------------------------- /tony-lend/challenge/project/.gitignore: -------------------------------------------------------------------------------- 1 | broadcast/ 2 | cache/ 3 | out/ -------------------------------------------------------------------------------- /tony-lend/challenge/project/foundry.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tony-lend/challenge/project/foundry.toml -------------------------------------------------------------------------------- /tony-lend/challenge/project/lib/forge-std/.gitignore: -------------------------------------------------------------------------------- 1 | cache/ 2 | out/ 3 | .vscode 4 | .idea 5 | -------------------------------------------------------------------------------- /tony-lend/challenge/project/lib/forge-std/lib/ds-test/.gitignore: -------------------------------------------------------------------------------- 1 | /.dapple 2 | /build 3 | /out 4 | /cache/ 5 | -------------------------------------------------------------------------------- /tony-lend/challenge/project/lib/openzeppelin-contracts/.mocharc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | require: 'hardhat/register', 3 | timeout: 4000, 4 | }; 5 | -------------------------------------------------------------------------------- /tony-lend/challenge/project/lib/openzeppelin-contracts/certora/.gitignore: -------------------------------------------------------------------------------- 1 | patched 2 | -------------------------------------------------------------------------------- /tony-lend/challenge/project/lib/openzeppelin-contracts/lib/forge-std/.gitattributes: -------------------------------------------------------------------------------- 1 | src/Vm.sol linguist-generated 2 | -------------------------------------------------------------------------------- /tony-lend/challenge/project/lib/openzeppelin-contracts/lib/forge-std/.gitignore: -------------------------------------------------------------------------------- 1 | cache/ 2 | out/ 3 | .vscode 4 | .idea 5 | -------------------------------------------------------------------------------- /tony-lend/challenge/project/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/.gitignore: -------------------------------------------------------------------------------- 1 | /.dapple 2 | /build 3 | /out 4 | /cache/ 5 | -------------------------------------------------------------------------------- /tony-lend/challenge/project/remappings.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tony-lend/challenge/project/remappings.txt -------------------------------------------------------------------------------- /tony-lend/challenge/project/script/Deploy.s.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tony-lend/challenge/project/script/Deploy.s.sol -------------------------------------------------------------------------------- /tony-lend/challenge/project/src/Challenge.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tony-lend/challenge/project/src/Challenge.sol -------------------------------------------------------------------------------- /tony-lend/challenge/project/src/TonyLend.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tony-lend/challenge/project/src/TonyLend.sol -------------------------------------------------------------------------------- /tony-lend/challenge/project/test/TonyLend.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tony-lend/challenge/project/test/TonyLend.t.sol -------------------------------------------------------------------------------- /tony-lend/deploy.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tony-lend/deploy.sh -------------------------------------------------------------------------------- /tonyallet/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tonyallet/README.md -------------------------------------------------------------------------------- /tonyallet/backend/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tonyallet/backend/main.js -------------------------------------------------------------------------------- /tonyallet/backend/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tonyallet/backend/package-lock.json -------------------------------------------------------------------------------- /tonyallet/backend/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tonyallet/backend/package.json -------------------------------------------------------------------------------- /tonyallet/backend/tg.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tonyallet/backend/tg.js -------------------------------------------------------------------------------- /tonyallet/frontend/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tonyallet/frontend/index.html -------------------------------------------------------------------------------- /tonyallet/frontend/post.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tonyallet/frontend/post.html -------------------------------------------------------------------------------- /tonyallet/handout.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tonyallet/handout.py -------------------------------------------------------------------------------- /tutori4l/.challengeignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tutori4l/.challengeignore -------------------------------------------------------------------------------- /tutori4l/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tutori4l/README.md -------------------------------------------------------------------------------- /tutori4l/challenge.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tutori4l/challenge.yaml -------------------------------------------------------------------------------- /tutori4l/challenge/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tutori4l/challenge/Dockerfile -------------------------------------------------------------------------------- /tutori4l/challenge/Dockerfile.local: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tutori4l/challenge/Dockerfile.local -------------------------------------------------------------------------------- /tutori4l/challenge/challenge.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tutori4l/challenge/challenge.py -------------------------------------------------------------------------------- /tutori4l/challenge/docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tutori4l/challenge/docker-compose.yml -------------------------------------------------------------------------------- /tutori4l/challenge/project/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tutori4l/challenge/project/.gitignore -------------------------------------------------------------------------------- /tutori4l/challenge/project/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tutori4l/challenge/project/LICENSE -------------------------------------------------------------------------------- /tutori4l/challenge/project/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tutori4l/challenge/project/README.md -------------------------------------------------------------------------------- /tutori4l/challenge/project/foundry.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tutori4l/challenge/project/foundry.toml -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/forge-std/.gitattributes: -------------------------------------------------------------------------------- 1 | src/Vm.sol linguist-generated 2 | -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/forge-std/.gitignore: -------------------------------------------------------------------------------- 1 | cache/ 2 | out/ 3 | .vscode 4 | .idea 5 | -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/BitMathLeastSignificantBitMaxUint128.snap: -------------------------------------------------------------------------------- 1 | 29 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/BitMathLeastSignificantBitMaxUint256.snap: -------------------------------------------------------------------------------- 1 | 29 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/BitMathLeastSignificantBitSmallNumber.snap: -------------------------------------------------------------------------------- 1 | 29 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/BitMathMostSignificantBitMaxUint128.snap: -------------------------------------------------------------------------------- 1 | 29 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/BitMathMostSignificantBitMaxUint256.snap: -------------------------------------------------------------------------------- 1 | 29 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/BitMathMostSignificantBitSmallNumber.snap: -------------------------------------------------------------------------------- 1 | 29 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/ERC6909Claims approve.snap: -------------------------------------------------------------------------------- 1 | 46323 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/ERC6909Claims burn.snap: -------------------------------------------------------------------------------- 1 | 29389 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/ERC6909Claims mint.snap: -------------------------------------------------------------------------------- 1 | 46603 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/ERC6909Claims transfer.snap: -------------------------------------------------------------------------------- 1 | 51756 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/ERC6909Claims transferFrom as operator.snap: -------------------------------------------------------------------------------- 1 | 54437 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/ERC6909Claims transferFrom with approval.snap: -------------------------------------------------------------------------------- 1 | 59939 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/ERC6909Claims transferFrom with infinite approval.snap: -------------------------------------------------------------------------------- 1 | 56770 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/NoDelegateCall.snap: -------------------------------------------------------------------------------- 1 | 51 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/SwapMath_oneForZero_exactInCapped.snap: -------------------------------------------------------------------------------- 1 | 1192 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/SwapMath_oneForZero_exactInPartial.snap: -------------------------------------------------------------------------------- 1 | 1261 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/SwapMath_oneForZero_exactOutCapped.snap: -------------------------------------------------------------------------------- 1 | 1005 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/SwapMath_oneForZero_exactOutPartial.snap: -------------------------------------------------------------------------------- 1 | 1569 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/SwapMath_zeroForOne_exactInCapped.snap: -------------------------------------------------------------------------------- 1 | 1130 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/SwapMath_zeroForOne_exactInPartial.snap: -------------------------------------------------------------------------------- 1 | 1443 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/SwapMath_zeroForOne_exactOutCapped.snap: -------------------------------------------------------------------------------- 1 | 920 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/SwapMath_zeroForOne_exactOutPartial.snap: -------------------------------------------------------------------------------- 1 | 1134 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/TickMathGetSqrtPriceAtTick.snap: -------------------------------------------------------------------------------- 1 | 72353 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/TickMathGetTickAtSqrtPrice.snap: -------------------------------------------------------------------------------- 1 | 195023 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/add liquidity to already existing position with salt.snap: -------------------------------------------------------------------------------- 1 | 144651 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/addLiquidity CA fee.snap: -------------------------------------------------------------------------------- 1 | 170947 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/addLiquidity with empty hook.snap: -------------------------------------------------------------------------------- 1 | 274218 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/addLiquidity with native token.snap: -------------------------------------------------------------------------------- 1 | 135141 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/clear.snap: -------------------------------------------------------------------------------- 1 | 1717 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/create new liquidity to a position with salt.snap: -------------------------------------------------------------------------------- 1 | 292843 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/donate gas with 1 token.snap: -------------------------------------------------------------------------------- 1 | 106333 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/donate gas with 2 tokens.snap: -------------------------------------------------------------------------------- 1 | 145754 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/erc20 collect protocol fees.snap: -------------------------------------------------------------------------------- 1 | 57442 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/extsload getFeeGrowthGlobals.snap: -------------------------------------------------------------------------------- 1 | 777 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/extsload getFeeGrowthInside.snap: -------------------------------------------------------------------------------- 1 | 375 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/extsload getLiquidity.snap: -------------------------------------------------------------------------------- 1 | 375 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/extsload getPositionInfo.snap: -------------------------------------------------------------------------------- 1 | 952 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/extsload getPositionLiquidity.snap: -------------------------------------------------------------------------------- 1 | 375 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/extsload getSlot0.snap: -------------------------------------------------------------------------------- 1 | 375 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/extsload getTickBitmap.snap: -------------------------------------------------------------------------------- 1 | 375 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/extsload getTickFeeGrowthOutside.snap: -------------------------------------------------------------------------------- 1 | 777 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/extsload getTickInfo.snap: -------------------------------------------------------------------------------- 1 | 952 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/extsload getTickLiquidity.snap: -------------------------------------------------------------------------------- 1 | 375 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/flipTick_flippingATickThatResultsInDeletingAWord.snap: -------------------------------------------------------------------------------- 1 | 5113 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/flipTick_flippingFirstTickInWordToInitialized.snap: -------------------------------------------------------------------------------- 1 | 22213 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/flipTick_flippingSecondTickInWordToInitialized.snap: -------------------------------------------------------------------------------- 1 | 5182 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/getAmount0Delta_gasCostForAmount0WhereRoundUpIsFalse.snap: -------------------------------------------------------------------------------- 1 | 247 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/getAmount0Delta_gasCostForAmount0WhereRoundUpIsTrue.snap: -------------------------------------------------------------------------------- 1 | 364 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/getAmount1Delta_gasCostForAmount1WhereRoundUpIsFalse.snap: -------------------------------------------------------------------------------- 1 | 233 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/getAmount1Delta_gasCostForAmount1WhereRoundUpIsTrue.snap: -------------------------------------------------------------------------------- 1 | 268 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/getNextSqrtPriceFromInput_zeroForOneEqualsFalseGas.snap: -------------------------------------------------------------------------------- 1 | 320 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/getNextSqrtPriceFromInput_zeroForOneEqualsTrueGas.snap: -------------------------------------------------------------------------------- 1 | 543 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/getNextSqrtPriceFromOutput_zeroForOneEqualsFalseGas.snap: -------------------------------------------------------------------------------- 1 | 548 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/getNextSqrtPriceFromOutput_zeroForOneEqualsTrueGas.snap: -------------------------------------------------------------------------------- 1 | 218 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/getReserves.snap: -------------------------------------------------------------------------------- 1 | 3917 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/initialize.snap: -------------------------------------------------------------------------------- 1 | 60025 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/native collect protocol fees.snap: -------------------------------------------------------------------------------- 1 | 59726 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/nextInitializedTickWithinOneWord_lteFalse_forEntireWord.snap: -------------------------------------------------------------------------------- 1 | 2267 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/nextInitializedTickWithinOneWord_lteFalse_justBelowBoundary.snap: -------------------------------------------------------------------------------- 1 | 2272 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/nextInitializedTickWithinOneWord_lteFalse_onBoundary.snap: -------------------------------------------------------------------------------- 1 | 2285 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/nextInitializedTickWithinOneWord_lteTrue_forEntireWord.snap: -------------------------------------------------------------------------------- 1 | 2262 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/nextInitializedTickWithinOneWord_lteTrue_justBelowBoundary.snap: -------------------------------------------------------------------------------- 1 | 2246 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/nextInitializedTickWithinOneWord_lteTrue_onBoundary_gas.snap: -------------------------------------------------------------------------------- 1 | 2291 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/poolManager bytecode size.snap: -------------------------------------------------------------------------------- 1 | 24073 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/removeLiquidity CA fee.snap: -------------------------------------------------------------------------------- 1 | 141229 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/removeLiquidity with empty hook.snap: -------------------------------------------------------------------------------- 1 | 130597 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/removeLiquidity with native token.snap: -------------------------------------------------------------------------------- 1 | 112535 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/set protocol fee.snap: -------------------------------------------------------------------------------- 1 | 31730 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/simple addLiquidity second addition same range.snap: -------------------------------------------------------------------------------- 1 | 98850 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/simple addLiquidity.snap: -------------------------------------------------------------------------------- 1 | 161395 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/simple removeLiquidity some liquidity remains.snap: -------------------------------------------------------------------------------- 1 | 92983 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/simple removeLiquidity.snap: -------------------------------------------------------------------------------- 1 | 85096 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/simple swap with native.snap: -------------------------------------------------------------------------------- 1 | 108515 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/simple swap.snap: -------------------------------------------------------------------------------- 1 | 123335 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/sparse external sload.snap: -------------------------------------------------------------------------------- 1 | 2164 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/swap CA custom curve + swap noop.snap: -------------------------------------------------------------------------------- 1 | 124663 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/swap CA fee on unspecified.snap: -------------------------------------------------------------------------------- 1 | 154783 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/swap against liquidity with native token.snap: -------------------------------------------------------------------------------- 1 | 105637 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/swap against liquidity.snap: -------------------------------------------------------------------------------- 1 | 116705 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/swap burn 6909 for input.snap: -------------------------------------------------------------------------------- 1 | 129269 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/swap burn native 6909 for input.snap: -------------------------------------------------------------------------------- 1 | 118725 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/swap mint native output as 6909.snap: -------------------------------------------------------------------------------- 1 | 139747 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/swap mint output as 6909.snap: -------------------------------------------------------------------------------- 1 | 155176 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/swap skips hook call if hook is caller.snap: -------------------------------------------------------------------------------- 1 | 206425 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/swap with dynamic fee.snap: -------------------------------------------------------------------------------- 1 | 139356 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/swap with hooks.snap: -------------------------------------------------------------------------------- 1 | 132343 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/swap with lp fee and protocol fee.snap: -------------------------------------------------------------------------------- 1 | 169603 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/swap with return dynamic fee.snap: -------------------------------------------------------------------------------- 1 | 145683 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/tickSpacingToMaxLiquidityPerTick_gasCost60TickSpacing.snap: -------------------------------------------------------------------------------- 1 | 29 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/tickSpacingToMaxLiquidityPerTick_gasCostMaxTickSpacing.snap: -------------------------------------------------------------------------------- 1 | 29 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/tickSpacingToMaxLiquidityPerTick_gasCostMinTickSpacing.snap: -------------------------------------------------------------------------------- 1 | 29 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.forge-snapshots/update dynamic fee in before swap.snap: -------------------------------------------------------------------------------- 1 | 147966 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.gitattributes: -------------------------------------------------------------------------------- 1 | *.sol linguist-language=Solidity -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/.prettierignore: -------------------------------------------------------------------------------- 1 | .prettierrc 2 | foundry.toml 3 | out 4 | lib/ 5 | cache/ 6 | *.sol 7 | dist/ -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tutori4l/challenge/project/lib/v4-core/LICENSE -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tutori4l/challenge/project/lib/v4-core/README.md -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/justfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tutori4l/challenge/project/lib/v4-core/justfile -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/lib/forge-gas-snapshot/.forge-snapshots/addFirst.snap: -------------------------------------------------------------------------------- 1 | 5247 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/lib/forge-gas-snapshot/.forge-snapshots/addSecond.snap: -------------------------------------------------------------------------------- 1 | 744 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/lib/forge-gas-snapshot/.forge-snapshots/addThird.snap: -------------------------------------------------------------------------------- 1 | 744 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/lib/forge-gas-snapshot/.forge-snapshots/checkManyAdd.snap: -------------------------------------------------------------------------------- 1 | 17530 2 | -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/lib/forge-gas-snapshot/.forge-snapshots/checkManySstore.snap: -------------------------------------------------------------------------------- 1 | 1 2 | -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/lib/forge-gas-snapshot/.forge-snapshots/checkSize.snap: -------------------------------------------------------------------------------- 1 | 349 2 | -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/lib/forge-gas-snapshot/.forge-snapshots/checkSizeFail.snap: -------------------------------------------------------------------------------- 1 | 1 2 | -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/lib/forge-gas-snapshot/.forge-snapshots/internalClosure.snap: -------------------------------------------------------------------------------- 1 | 22217 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/lib/forge-gas-snapshot/.forge-snapshots/manyAdd.snap: -------------------------------------------------------------------------------- 1 | 17530 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/lib/forge-gas-snapshot/.forge-snapshots/manySstore.snap: -------------------------------------------------------------------------------- 1 | 70348 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/lib/forge-gas-snapshot/.forge-snapshots/singleSstore.snap: -------------------------------------------------------------------------------- 1 | 48459 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/lib/forge-gas-snapshot/.forge-snapshots/singleSstoreClosure.snap: -------------------------------------------------------------------------------- 1 | 46269 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/lib/forge-gas-snapshot/.forge-snapshots/singleSstoreLastCall.snap: -------------------------------------------------------------------------------- 1 | 43429 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/lib/forge-gas-snapshot/.forge-snapshots/sizeTarget.snap: -------------------------------------------------------------------------------- 1 | 349 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/lib/forge-gas-snapshot/.forge-snapshots/sstoreClosure.snap: -------------------------------------------------------------------------------- 1 | 68158 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/lib/forge-gas-snapshot/.forge-snapshots/value.snap: -------------------------------------------------------------------------------- 1 | 1234 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/lib/forge-gas-snapshot/.gitignore: -------------------------------------------------------------------------------- 1 | out/ 2 | lib/ 3 | cache/ 4 | -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/lib/forge-std/.gitattributes: -------------------------------------------------------------------------------- 1 | src/Vm.sol linguist-generated 2 | -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/lib/forge-std/.gitignore: -------------------------------------------------------------------------------- 1 | cache/ 2 | out/ 3 | .vscode 4 | .idea 5 | -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/lib/openzeppelin-contracts/certora/.gitignore: -------------------------------------------------------------------------------- 1 | patched 2 | -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/lib/openzeppelin-contracts/lib/forge-std/.gitignore: -------------------------------------------------------------------------------- 1 | cache/ 2 | out/ 3 | .vscode 4 | .idea 5 | -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/.gitignore: -------------------------------------------------------------------------------- 1 | /.dapple 2 | /build 3 | /out 4 | -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/lib/openzeppelin-contracts/requirements.txt: -------------------------------------------------------------------------------- 1 | certora-cli==4.8.0 2 | -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/lib/solmate/.gitattributes: -------------------------------------------------------------------------------- 1 | .gas-snapshot linguist-language=Julia -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/lib/solmate/.gitignore: -------------------------------------------------------------------------------- 1 | /cache 2 | /node_modules 3 | /out -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/lib/solmate/.prettierignore: -------------------------------------------------------------------------------- 1 | lib -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-core/lib/solmate/lib/ds-test/.gitignore: -------------------------------------------------------------------------------- 1 | /.dapple 2 | /build 3 | /out 4 | -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/BaseActionsRouter_mock10commands.snap: -------------------------------------------------------------------------------- 1 | 60677 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/Payments_swap_settleFromCaller_takeAllToMsgSender.snap: -------------------------------------------------------------------------------- 1 | 129854 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/Payments_swap_settleFromCaller_takeAllToSpecifiedAddress.snap: -------------------------------------------------------------------------------- 1 | 131905 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/Payments_swap_settleWithBalance_takeAllToMsgSender.snap: -------------------------------------------------------------------------------- 1 | 124110 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/Payments_swap_settleWithBalance_takeAllToSpecifiedAddress.snap: -------------------------------------------------------------------------------- 1 | 124252 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/PositionManager_burn_empty.snap: -------------------------------------------------------------------------------- 1 | 50413 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/PositionManager_burn_empty_native.snap: -------------------------------------------------------------------------------- 1 | 50413 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/PositionManager_burn_nonEmpty_native_withClose.snap: -------------------------------------------------------------------------------- 1 | 125551 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/PositionManager_burn_nonEmpty_native_withTakePair.snap: -------------------------------------------------------------------------------- 1 | 124998 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/PositionManager_burn_nonEmpty_withClose.snap: -------------------------------------------------------------------------------- 1 | 132404 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/PositionManager_burn_nonEmpty_withTakePair.snap: -------------------------------------------------------------------------------- 1 | 131851 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/PositionManager_collect_native.snap: -------------------------------------------------------------------------------- 1 | 146253 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/PositionManager_collect_sameRange.snap: -------------------------------------------------------------------------------- 1 | 154819 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/PositionManager_collect_withClose.snap: -------------------------------------------------------------------------------- 1 | 154819 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/PositionManager_collect_withTakePair.snap: -------------------------------------------------------------------------------- 1 | 154140 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/PositionManager_decreaseLiquidity_native.snap: -------------------------------------------------------------------------------- 1 | 111948 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/PositionManager_decreaseLiquidity_withClose.snap: -------------------------------------------------------------------------------- 1 | 119700 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/PositionManager_decreaseLiquidity_withTakePair.snap: -------------------------------------------------------------------------------- 1 | 119021 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/PositionManager_decrease_burnEmpty.snap: -------------------------------------------------------------------------------- 1 | 135200 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/PositionManager_decrease_burnEmpty_native.snap: -------------------------------------------------------------------------------- 1 | 128348 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/PositionManager_decrease_sameRange_allLiquidity.snap: -------------------------------------------------------------------------------- 1 | 132387 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/PositionManager_decrease_take_take.snap: -------------------------------------------------------------------------------- 1 | 120276 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/PositionManager_increaseLiquidity_erc20_withClose.snap: -------------------------------------------------------------------------------- 1 | 159004 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/PositionManager_increaseLiquidity_erc20_withSettlePair.snap: -------------------------------------------------------------------------------- 1 | 157944 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/PositionManager_increaseLiquidity_native.snap: -------------------------------------------------------------------------------- 1 | 140831 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/PositionManager_increase_autocompoundExactUnclaimedFees.snap: -------------------------------------------------------------------------------- 1 | 136318 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/PositionManager_increase_autocompoundExcessFeesCredit.snap: -------------------------------------------------------------------------------- 1 | 177311 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/PositionManager_increase_autocompound_clearExcess.snap: -------------------------------------------------------------------------------- 1 | 147987 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/PositionManager_mint_native.snap: -------------------------------------------------------------------------------- 1 | 364704 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/PositionManager_mint_nativeWithSweep_withClose.snap: -------------------------------------------------------------------------------- 1 | 373227 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/PositionManager_mint_nativeWithSweep_withSettlePair.snap: -------------------------------------------------------------------------------- 1 | 372450 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/PositionManager_mint_onSameTickLower.snap: -------------------------------------------------------------------------------- 1 | 317552 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/PositionManager_mint_onSameTickUpper.snap: -------------------------------------------------------------------------------- 1 | 318222 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/PositionManager_mint_sameRange.snap: -------------------------------------------------------------------------------- 1 | 243791 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/PositionManager_mint_settleWithBalance_sweep.snap: -------------------------------------------------------------------------------- 1 | 418983 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/PositionManager_mint_warmedPool_differentRange.snap: -------------------------------------------------------------------------------- 1 | 323583 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/PositionManager_mint_withClose.snap: -------------------------------------------------------------------------------- 1 | 420105 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/PositionManager_mint_withSettlePair.snap: -------------------------------------------------------------------------------- 1 | 419163 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/PositionManager_multicall_initialize_mint.snap: -------------------------------------------------------------------------------- 1 | 464277 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/PositionManager_permit.snap: -------------------------------------------------------------------------------- 1 | 79076 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/PositionManager_permit_secondPosition.snap: -------------------------------------------------------------------------------- 1 | 61976 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/PositionManager_permit_twice.snap: -------------------------------------------------------------------------------- 1 | 44876 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/PositionManager_subscribe.snap: -------------------------------------------------------------------------------- 1 | 84348 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/PositionManager_unsubscribe.snap: -------------------------------------------------------------------------------- 1 | 59238 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/StateView_extsload_getFeeGrowthGlobals.snap: -------------------------------------------------------------------------------- 1 | 2259 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/StateView_extsload_getFeeGrowthInside.snap: -------------------------------------------------------------------------------- 1 | 8003 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/StateView_extsload_getLiquidity.snap: -------------------------------------------------------------------------------- 1 | 1399 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/StateView_extsload_getPositionInfo.snap: -------------------------------------------------------------------------------- 1 | 2829 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/StateView_extsload_getPositionLiquidity.snap: -------------------------------------------------------------------------------- 1 | 1651 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/StateView_extsload_getSlot0.snap: -------------------------------------------------------------------------------- 1 | 1446 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/StateView_extsload_getTickBitmap.snap: -------------------------------------------------------------------------------- 1 | 1392 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/StateView_extsload_getTickFeeGrowthOutside.snap: -------------------------------------------------------------------------------- 1 | 2546 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/StateView_extsload_getTickInfo.snap: -------------------------------------------------------------------------------- 1 | 2761 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/StateView_extsload_getTickLiquidity.snap: -------------------------------------------------------------------------------- 1 | 1646 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/V4Router_Bytecode.snap: -------------------------------------------------------------------------------- 1 | 7148 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/V4Router_ExactIn1Hop_nativeIn.snap: -------------------------------------------------------------------------------- 1 | 115722 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/V4Router_ExactIn1Hop_nativeOut.snap: -------------------------------------------------------------------------------- 1 | 116043 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/V4Router_ExactIn1Hop_oneForZero.snap: -------------------------------------------------------------------------------- 1 | 124861 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/V4Router_ExactIn1Hop_zeroForOne.snap: -------------------------------------------------------------------------------- 1 | 130584 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/V4Router_ExactIn2Hops.snap: -------------------------------------------------------------------------------- 1 | 179724 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/V4Router_ExactIn2Hops_nativeIn.snap: -------------------------------------------------------------------------------- 1 | 170577 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/V4Router_ExactIn3Hops.snap: -------------------------------------------------------------------------------- 1 | 228843 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/V4Router_ExactIn3Hops_nativeIn.snap: -------------------------------------------------------------------------------- 1 | 219720 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/V4Router_ExactInputSingle.snap: -------------------------------------------------------------------------------- 1 | 129854 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/V4Router_ExactInputSingle_nativeIn.snap: -------------------------------------------------------------------------------- 1 | 114992 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/V4Router_ExactInputSingle_nativeOut.snap: -------------------------------------------------------------------------------- 1 | 115282 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/V4Router_ExactOut1Hop_nativeIn_sweepETH.snap: -------------------------------------------------------------------------------- 1 | 121985 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/V4Router_ExactOut1Hop_nativeOut.snap: -------------------------------------------------------------------------------- 1 | 117107 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/V4Router_ExactOut1Hop_oneForZero.snap: -------------------------------------------------------------------------------- 1 | 125925 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/V4Router_ExactOut1Hop_zeroForOne.snap: -------------------------------------------------------------------------------- 1 | 129870 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/V4Router_ExactOut2Hops.snap: -------------------------------------------------------------------------------- 1 | 179842 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/V4Router_ExactOut2Hops_nativeIn.snap: -------------------------------------------------------------------------------- 1 | 175902 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/V4Router_ExactOut3Hops.snap: -------------------------------------------------------------------------------- 1 | 229821 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/V4Router_ExactOut3Hops_nativeIn.snap: -------------------------------------------------------------------------------- 1 | 225905 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/V4Router_ExactOut3Hops_nativeOut.snap: -------------------------------------------------------------------------------- 1 | 221027 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/V4Router_ExactOutputSingle.snap: -------------------------------------------------------------------------------- 1 | 129140 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/V4Router_ExactOutputSingle_nativeIn_sweepETH.snap: -------------------------------------------------------------------------------- 1 | 121255 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.forge-snapshots/V4Router_ExactOutputSingle_nativeOut.snap: -------------------------------------------------------------------------------- 1 | 116452 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/.nvmrc: -------------------------------------------------------------------------------- 1 | v16 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/permit2/.env.example: -------------------------------------------------------------------------------- 1 | FORK_URL= -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/permit2/.forge-snapshots/batchTransferFrom.snap: -------------------------------------------------------------------------------- 1 | 61797 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/permit2/.forge-snapshots/batchTransferFromMultiToken.snap: -------------------------------------------------------------------------------- 1 | 81786 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/permit2/.forge-snapshots/lockdown.snap: -------------------------------------------------------------------------------- 1 | 28435 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/permit2/.forge-snapshots/permit2 + transferFrom2 with WETH9's mainnet address.snap: -------------------------------------------------------------------------------- 1 | 60346 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/permit2/.forge-snapshots/permit2 + transferFrom2 with a non EIP-2612 native token with fallback.snap: -------------------------------------------------------------------------------- 1 | 65533 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/permit2/.forge-snapshots/permit2 + transferFrom2 with a non EIP-2612 native token.snap: -------------------------------------------------------------------------------- 1 | 60811 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/permit2/.forge-snapshots/permit2 + transferFrom2 with an EIP-2612 native token.snap: -------------------------------------------------------------------------------- 1 | 46296 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/permit2/.forge-snapshots/permitBatchCleanWrite.snap: -------------------------------------------------------------------------------- 1 | 91924 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/permit2/.forge-snapshots/permitBatchDirtyWrite.snap: -------------------------------------------------------------------------------- 1 | 57724 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/permit2/.forge-snapshots/permitBatchTransferFromMultipleTokens.snap: -------------------------------------------------------------------------------- 1 | 143387 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/permit2/.forge-snapshots/permitBatchTransferFromSingleToken.snap: -------------------------------------------------------------------------------- 1 | 88867 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/permit2/.forge-snapshots/permitCleanWrite.snap: -------------------------------------------------------------------------------- 1 | 63119 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/permit2/.forge-snapshots/permitCompactSig.snap: -------------------------------------------------------------------------------- 1 | 63094 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/permit2/.forge-snapshots/permitDirtyNonce.snap: -------------------------------------------------------------------------------- 1 | 44014 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/permit2/.forge-snapshots/permitDirtyWrite.snap: -------------------------------------------------------------------------------- 1 | 46019 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/permit2/.forge-snapshots/permitInvalidSigner.snap: -------------------------------------------------------------------------------- 1 | 40301 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/permit2/.forge-snapshots/permitSetMaxAllowanceCleanWrite.snap: -------------------------------------------------------------------------------- 1 | 61114 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/permit2/.forge-snapshots/permitSetMaxAllowanceDirtyWrite.snap: -------------------------------------------------------------------------------- 1 | 44014 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/permit2/.forge-snapshots/permitSignatureExpired.snap: -------------------------------------------------------------------------------- 1 | 31700 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/permit2/.forge-snapshots/permitTransferFromBatchTypedWitness.snap: -------------------------------------------------------------------------------- 1 | 120325 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/permit2/.forge-snapshots/permitTransferFromCompactSig.snap: -------------------------------------------------------------------------------- 1 | 86066 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/permit2/.forge-snapshots/permitTransferFromSingleToken.snap: -------------------------------------------------------------------------------- 1 | 86092 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/permit2/.forge-snapshots/permitTransferFromTypedWitness.snap: -------------------------------------------------------------------------------- 1 | 87817 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/permit2/.forge-snapshots/safePermit + safeTransferFrom with an EIP-2612 native token.snap: -------------------------------------------------------------------------------- 1 | 48268 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/permit2/.forge-snapshots/simplePermit2 + transferFrom2 with a non EIP-2612 native token.snap: -------------------------------------------------------------------------------- 1 | 60811 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/permit2/.forge-snapshots/single recipient 2 tokens.snap: -------------------------------------------------------------------------------- 1 | 118525 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/permit2/.forge-snapshots/single recipient many tokens.snap: -------------------------------------------------------------------------------- 1 | 133544 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/permit2/.forge-snapshots/transferFrom with different owners.snap: -------------------------------------------------------------------------------- 1 | 61886 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/permit2/.forge-snapshots/transferFrom.snap: -------------------------------------------------------------------------------- 1 | 52197 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/permit2/.gitignore: -------------------------------------------------------------------------------- 1 | .env 2 | /cache 3 | /out 4 | broadcast/ 5 | -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/permit2/lib/forge-gas-snapshot/.forge-snapshots/add.snap: -------------------------------------------------------------------------------- 1 | 134 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/permit2/lib/forge-gas-snapshot/.forge-snapshots/addFirst.snap: -------------------------------------------------------------------------------- 1 | 134 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/permit2/lib/forge-gas-snapshot/.forge-snapshots/addSecond.snap: -------------------------------------------------------------------------------- 1 | 134 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/permit2/lib/forge-gas-snapshot/.forge-snapshots/manyAdd.snap: -------------------------------------------------------------------------------- 1 | 19195 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/permit2/lib/forge-gas-snapshot/.forge-snapshots/manySstore.snap: -------------------------------------------------------------------------------- 1 | 50990 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/permit2/lib/forge-gas-snapshot/.forge-snapshots/snapmanyAdd.snap: -------------------------------------------------------------------------------- 1 | 19195 2 | -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/permit2/lib/forge-gas-snapshot/.forge-snapshots/snapmanySstore.snap: -------------------------------------------------------------------------------- 1 | 1 2 | -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/permit2/lib/forge-gas-snapshot/.gitignore: -------------------------------------------------------------------------------- 1 | out/ 2 | lib/ 3 | cache/ 4 | -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/permit2/lib/forge-std/.gitignore: -------------------------------------------------------------------------------- 1 | cache/ 2 | out/ 3 | .vscode 4 | .idea 5 | -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/permit2/lib/forge-std/lib/ds-test/.gitignore: -------------------------------------------------------------------------------- 1 | /.dapple 2 | /build 3 | /out 4 | /cache/ 5 | -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/permit2/lib/openzeppelin-contracts/.gitattributes: -------------------------------------------------------------------------------- 1 | *.sol linguist-language=Solidity 2 | -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/permit2/lib/openzeppelin-contracts/certora/munged/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/permit2/lib/openzeppelin-contracts/migrations/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/permit2/lib/solmate/.gitignore: -------------------------------------------------------------------------------- 1 | /cache 2 | /node_modules 3 | /out -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/permit2/lib/solmate/.prettierignore: -------------------------------------------------------------------------------- 1 | lib -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/permit2/lib/solmate/lib/ds-test/.gitignore: -------------------------------------------------------------------------------- 1 | /.dapple 2 | /build 3 | /out 4 | -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/BitMathLeastSignificantBitMaxUint128.snap: -------------------------------------------------------------------------------- 1 | 29 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/BitMathLeastSignificantBitMaxUint256.snap: -------------------------------------------------------------------------------- 1 | 29 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/BitMathLeastSignificantBitSmallNumber.snap: -------------------------------------------------------------------------------- 1 | 29 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/BitMathMostSignificantBitMaxUint128.snap: -------------------------------------------------------------------------------- 1 | 29 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/BitMathMostSignificantBitMaxUint256.snap: -------------------------------------------------------------------------------- 1 | 29 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/BitMathMostSignificantBitSmallNumber.snap: -------------------------------------------------------------------------------- 1 | 29 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/ERC6909Claims approve.snap: -------------------------------------------------------------------------------- 1 | 46323 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/ERC6909Claims burn.snap: -------------------------------------------------------------------------------- 1 | 29389 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/ERC6909Claims mint.snap: -------------------------------------------------------------------------------- 1 | 46603 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/ERC6909Claims transfer.snap: -------------------------------------------------------------------------------- 1 | 51756 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/ERC6909Claims transferFrom as operator.snap: -------------------------------------------------------------------------------- 1 | 54437 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/ERC6909Claims transferFrom with approval.snap: -------------------------------------------------------------------------------- 1 | 59939 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/ERC6909Claims transferFrom with infinite approval.snap: -------------------------------------------------------------------------------- 1 | 56770 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/NoDelegateCall.snap: -------------------------------------------------------------------------------- 1 | 51 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/SwapMath_oneForZero_exactInCapped.snap: -------------------------------------------------------------------------------- 1 | 1192 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/SwapMath_oneForZero_exactInPartial.snap: -------------------------------------------------------------------------------- 1 | 1261 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/SwapMath_oneForZero_exactOutCapped.snap: -------------------------------------------------------------------------------- 1 | 1005 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/SwapMath_oneForZero_exactOutPartial.snap: -------------------------------------------------------------------------------- 1 | 1569 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/SwapMath_zeroForOne_exactInCapped.snap: -------------------------------------------------------------------------------- 1 | 1130 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/SwapMath_zeroForOne_exactInPartial.snap: -------------------------------------------------------------------------------- 1 | 1443 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/SwapMath_zeroForOne_exactOutCapped.snap: -------------------------------------------------------------------------------- 1 | 920 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/SwapMath_zeroForOne_exactOutPartial.snap: -------------------------------------------------------------------------------- 1 | 1134 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/TickMathGetSqrtPriceAtTick.snap: -------------------------------------------------------------------------------- 1 | 72353 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/TickMathGetTickAtSqrtPrice.snap: -------------------------------------------------------------------------------- 1 | 195023 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/add liquidity to already existing position with salt.snap: -------------------------------------------------------------------------------- 1 | 144651 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/addLiquidity CA fee.snap: -------------------------------------------------------------------------------- 1 | 170947 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/addLiquidity with empty hook.snap: -------------------------------------------------------------------------------- 1 | 274218 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/addLiquidity with native token.snap: -------------------------------------------------------------------------------- 1 | 135141 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/clear.snap: -------------------------------------------------------------------------------- 1 | 1717 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/create new liquidity to a position with salt.snap: -------------------------------------------------------------------------------- 1 | 292843 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/donate gas with 1 token.snap: -------------------------------------------------------------------------------- 1 | 106333 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/donate gas with 2 tokens.snap: -------------------------------------------------------------------------------- 1 | 145754 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/erc20 collect protocol fees.snap: -------------------------------------------------------------------------------- 1 | 57442 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/extsload getFeeGrowthGlobals.snap: -------------------------------------------------------------------------------- 1 | 777 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/extsload getFeeGrowthInside.snap: -------------------------------------------------------------------------------- 1 | 375 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/extsload getLiquidity.snap: -------------------------------------------------------------------------------- 1 | 375 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/extsload getPositionInfo.snap: -------------------------------------------------------------------------------- 1 | 952 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/extsload getPositionLiquidity.snap: -------------------------------------------------------------------------------- 1 | 375 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/extsload getSlot0.snap: -------------------------------------------------------------------------------- 1 | 375 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/extsload getTickBitmap.snap: -------------------------------------------------------------------------------- 1 | 375 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/extsload getTickFeeGrowthOutside.snap: -------------------------------------------------------------------------------- 1 | 777 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/extsload getTickInfo.snap: -------------------------------------------------------------------------------- 1 | 952 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/extsload getTickLiquidity.snap: -------------------------------------------------------------------------------- 1 | 375 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/flipTick_flippingATickThatResultsInDeletingAWord.snap: -------------------------------------------------------------------------------- 1 | 5113 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/flipTick_flippingFirstTickInWordToInitialized.snap: -------------------------------------------------------------------------------- 1 | 22213 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/flipTick_flippingSecondTickInWordToInitialized.snap: -------------------------------------------------------------------------------- 1 | 5182 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/getAmount0Delta_gasCostForAmount0WhereRoundUpIsFalse.snap: -------------------------------------------------------------------------------- 1 | 247 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/getAmount0Delta_gasCostForAmount0WhereRoundUpIsTrue.snap: -------------------------------------------------------------------------------- 1 | 364 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/getAmount1Delta_gasCostForAmount1WhereRoundUpIsFalse.snap: -------------------------------------------------------------------------------- 1 | 233 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/getAmount1Delta_gasCostForAmount1WhereRoundUpIsTrue.snap: -------------------------------------------------------------------------------- 1 | 268 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/getNextSqrtPriceFromInput_zeroForOneEqualsFalseGas.snap: -------------------------------------------------------------------------------- 1 | 320 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/getNextSqrtPriceFromInput_zeroForOneEqualsTrueGas.snap: -------------------------------------------------------------------------------- 1 | 543 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/getNextSqrtPriceFromOutput_zeroForOneEqualsFalseGas.snap: -------------------------------------------------------------------------------- 1 | 548 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/getNextSqrtPriceFromOutput_zeroForOneEqualsTrueGas.snap: -------------------------------------------------------------------------------- 1 | 218 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/getReserves.snap: -------------------------------------------------------------------------------- 1 | 3917 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/initialize.snap: -------------------------------------------------------------------------------- 1 | 60025 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/native collect protocol fees.snap: -------------------------------------------------------------------------------- 1 | 59726 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/nextInitializedTickWithinOneWord_lteFalse_forEntireWord.snap: -------------------------------------------------------------------------------- 1 | 2267 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/nextInitializedTickWithinOneWord_lteFalse_justBelowBoundary.snap: -------------------------------------------------------------------------------- 1 | 2272 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/nextInitializedTickWithinOneWord_lteFalse_onBoundary.snap: -------------------------------------------------------------------------------- 1 | 2285 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/nextInitializedTickWithinOneWord_lteTrue_forEntireWord.snap: -------------------------------------------------------------------------------- 1 | 2262 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/nextInitializedTickWithinOneWord_lteTrue_justBelowBoundary.snap: -------------------------------------------------------------------------------- 1 | 2246 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/nextInitializedTickWithinOneWord_lteTrue_onBoundary_gas.snap: -------------------------------------------------------------------------------- 1 | 2291 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/poolManager bytecode size.snap: -------------------------------------------------------------------------------- 1 | 24073 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/removeLiquidity CA fee.snap: -------------------------------------------------------------------------------- 1 | 141229 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/removeLiquidity with empty hook.snap: -------------------------------------------------------------------------------- 1 | 130597 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/removeLiquidity with native token.snap: -------------------------------------------------------------------------------- 1 | 112535 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/set protocol fee.snap: -------------------------------------------------------------------------------- 1 | 31730 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/simple addLiquidity second addition same range.snap: -------------------------------------------------------------------------------- 1 | 98850 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/simple addLiquidity.snap: -------------------------------------------------------------------------------- 1 | 161395 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/simple removeLiquidity some liquidity remains.snap: -------------------------------------------------------------------------------- 1 | 92983 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/simple removeLiquidity.snap: -------------------------------------------------------------------------------- 1 | 85096 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/simple swap with native.snap: -------------------------------------------------------------------------------- 1 | 108515 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/simple swap.snap: -------------------------------------------------------------------------------- 1 | 123335 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/sparse external sload.snap: -------------------------------------------------------------------------------- 1 | 2164 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/swap CA custom curve + swap noop.snap: -------------------------------------------------------------------------------- 1 | 124663 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/swap CA fee on unspecified.snap: -------------------------------------------------------------------------------- 1 | 154783 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/swap against liquidity with native token.snap: -------------------------------------------------------------------------------- 1 | 105637 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/swap against liquidity.snap: -------------------------------------------------------------------------------- 1 | 116705 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/swap burn 6909 for input.snap: -------------------------------------------------------------------------------- 1 | 129269 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/swap burn native 6909 for input.snap: -------------------------------------------------------------------------------- 1 | 118725 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/swap mint native output as 6909.snap: -------------------------------------------------------------------------------- 1 | 139747 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/swap mint output as 6909.snap: -------------------------------------------------------------------------------- 1 | 155176 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/swap skips hook call if hook is caller.snap: -------------------------------------------------------------------------------- 1 | 206425 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/swap with dynamic fee.snap: -------------------------------------------------------------------------------- 1 | 139356 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/swap with hooks.snap: -------------------------------------------------------------------------------- 1 | 132343 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/swap with lp fee and protocol fee.snap: -------------------------------------------------------------------------------- 1 | 169603 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/swap with return dynamic fee.snap: -------------------------------------------------------------------------------- 1 | 145683 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/tickSpacingToMaxLiquidityPerTick_gasCost60TickSpacing.snap: -------------------------------------------------------------------------------- 1 | 29 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/tickSpacingToMaxLiquidityPerTick_gasCostMaxTickSpacing.snap: -------------------------------------------------------------------------------- 1 | 29 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/tickSpacingToMaxLiquidityPerTick_gasCostMinTickSpacing.snap: -------------------------------------------------------------------------------- 1 | 29 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.forge-snapshots/update dynamic fee in before swap.snap: -------------------------------------------------------------------------------- 1 | 147966 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.gitattributes: -------------------------------------------------------------------------------- 1 | *.sol linguist-language=Solidity -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/.prettierignore: -------------------------------------------------------------------------------- 1 | .prettierrc 2 | foundry.toml 3 | out 4 | lib/ 5 | cache/ 6 | *.sol 7 | dist/ -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/lib/forge-gas-snapshot/.forge-snapshots/addFirst.snap: -------------------------------------------------------------------------------- 1 | 5247 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/lib/forge-gas-snapshot/.forge-snapshots/addSecond.snap: -------------------------------------------------------------------------------- 1 | 744 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/lib/forge-gas-snapshot/.forge-snapshots/addThird.snap: -------------------------------------------------------------------------------- 1 | 744 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/lib/forge-gas-snapshot/.forge-snapshots/checkManyAdd.snap: -------------------------------------------------------------------------------- 1 | 17530 2 | -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/lib/forge-gas-snapshot/.forge-snapshots/checkManySstore.snap: -------------------------------------------------------------------------------- 1 | 1 2 | -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/lib/forge-gas-snapshot/.forge-snapshots/checkSize.snap: -------------------------------------------------------------------------------- 1 | 349 2 | -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/lib/forge-gas-snapshot/.forge-snapshots/checkSizeFail.snap: -------------------------------------------------------------------------------- 1 | 1 2 | -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/lib/forge-gas-snapshot/.forge-snapshots/internalClosure.snap: -------------------------------------------------------------------------------- 1 | 22217 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/lib/forge-gas-snapshot/.forge-snapshots/manyAdd.snap: -------------------------------------------------------------------------------- 1 | 17530 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/lib/forge-gas-snapshot/.forge-snapshots/manySstore.snap: -------------------------------------------------------------------------------- 1 | 70348 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/lib/forge-gas-snapshot/.forge-snapshots/singleSstore.snap: -------------------------------------------------------------------------------- 1 | 48459 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/lib/forge-gas-snapshot/.forge-snapshots/singleSstoreClosure.snap: -------------------------------------------------------------------------------- 1 | 46269 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/lib/forge-gas-snapshot/.forge-snapshots/singleSstoreLastCall.snap: -------------------------------------------------------------------------------- 1 | 43429 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/lib/forge-gas-snapshot/.forge-snapshots/sizeTarget.snap: -------------------------------------------------------------------------------- 1 | 349 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/lib/forge-gas-snapshot/.forge-snapshots/sstoreClosure.snap: -------------------------------------------------------------------------------- 1 | 68158 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/lib/forge-gas-snapshot/.forge-snapshots/value.snap: -------------------------------------------------------------------------------- 1 | 1234 -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/lib/forge-gas-snapshot/.gitignore: -------------------------------------------------------------------------------- 1 | out/ 2 | lib/ 3 | cache/ 4 | -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/lib/forge-std/.gitattributes: -------------------------------------------------------------------------------- 1 | src/Vm.sol linguist-generated 2 | -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/lib/forge-std/.gitignore: -------------------------------------------------------------------------------- 1 | cache/ 2 | out/ 3 | .vscode 4 | .idea 5 | -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/lib/openzeppelin-contracts/certora/.gitignore: -------------------------------------------------------------------------------- 1 | patched 2 | -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/lib/openzeppelin-contracts/lib/forge-std/.gitignore: -------------------------------------------------------------------------------- 1 | cache/ 2 | out/ 3 | .vscode 4 | .idea 5 | -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/.gitignore: -------------------------------------------------------------------------------- 1 | /.dapple 2 | /build 3 | /out 4 | -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/lib/openzeppelin-contracts/requirements.txt: -------------------------------------------------------------------------------- 1 | certora-cli==4.8.0 2 | -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/lib/solmate/.gitattributes: -------------------------------------------------------------------------------- 1 | .gas-snapshot linguist-language=Julia -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/lib/solmate/.gitignore: -------------------------------------------------------------------------------- 1 | /cache 2 | /node_modules 3 | /out -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/lib/solmate/.prettierignore: -------------------------------------------------------------------------------- 1 | lib -------------------------------------------------------------------------------- /tutori4l/challenge/project/lib/v4-periphery/lib/v4-core/lib/solmate/lib/ds-test/.gitignore: -------------------------------------------------------------------------------- 1 | /.dapple 2 | /build 3 | /out 4 | -------------------------------------------------------------------------------- /tutori4l/challenge/project/remappings.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tutori4l/challenge/project/remappings.txt -------------------------------------------------------------------------------- /tutori4l/challenge/project/script/Deploy.s.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tutori4l/challenge/project/script/Deploy.s.sol -------------------------------------------------------------------------------- /tutori4l/challenge/project/script/Solve.s.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tutori4l/challenge/project/script/Solve.s.sol -------------------------------------------------------------------------------- /tutori4l/challenge/project/src/ERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tutori4l/challenge/project/src/ERC20.sol -------------------------------------------------------------------------------- /tutori4l/challenge/project/src/Hook.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tutori4l/challenge/project/src/Hook.sol -------------------------------------------------------------------------------- /tutori4l/challenge/project/src/HookMiner.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tutori4l/challenge/project/src/HookMiner.sol -------------------------------------------------------------------------------- /tutori4l/challenge/project/src/challenge.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tutori4l/challenge/project/src/challenge.sol -------------------------------------------------------------------------------- /tutori4l/challenge/solve.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tutori4l/challenge/solve.py -------------------------------------------------------------------------------- /tutori4l/deploy.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/tutori4l/deploy.sh -------------------------------------------------------------------------------- /upload.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/upload.sh -------------------------------------------------------------------------------- /venn-gated-ronin-bridge/.challengeignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/venn-gated-ronin-bridge/.challengeignore -------------------------------------------------------------------------------- /venn-gated-ronin-bridge/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/venn-gated-ronin-bridge/README.md -------------------------------------------------------------------------------- /venn-gated-ronin-bridge/build-server.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/venn-gated-ronin-bridge/build-server.sh -------------------------------------------------------------------------------- /venn-gated-ronin-bridge/challenge.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/venn-gated-ronin-bridge/challenge.yaml -------------------------------------------------------------------------------- /venn-gated-ronin-bridge/challenge/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/venn-gated-ronin-bridge/challenge/Dockerfile -------------------------------------------------------------------------------- /venn-gated-ronin-bridge/challenge/challenge.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/venn-gated-ronin-bridge/challenge/challenge.py -------------------------------------------------------------------------------- /venn-gated-ronin-bridge/challenge/project/.gitignore: -------------------------------------------------------------------------------- 1 | broadcast/ 2 | cache/ 3 | out/ -------------------------------------------------------------------------------- /venn-gated-ronin-bridge/challenge/project/lib/forge-std/.gitignore: -------------------------------------------------------------------------------- 1 | cache/ 2 | out/ 3 | .vscode 4 | .idea 5 | -------------------------------------------------------------------------------- /venn-gated-ronin-bridge/challenge/project/lib/forge-std/lib/ds-test/.gitignore: -------------------------------------------------------------------------------- 1 | /.dapple 2 | /build 3 | /out 4 | /cache/ 5 | -------------------------------------------------------------------------------- /venn-gated-ronin-bridge/challenge/project/lib/openzeppelin-contracts-upgradeable/certora/.gitignore: -------------------------------------------------------------------------------- 1 | patched 2 | -------------------------------------------------------------------------------- /venn-gated-ronin-bridge/challenge/project/lib/openzeppelin-contracts-upgradeable/lib/forge-std/.gitattributes: -------------------------------------------------------------------------------- 1 | src/Vm.sol linguist-generated 2 | -------------------------------------------------------------------------------- /venn-gated-ronin-bridge/challenge/project/lib/openzeppelin-contracts-upgradeable/lib/forge-std/.gitignore: -------------------------------------------------------------------------------- 1 | cache/ 2 | out/ 3 | .vscode 4 | .idea 5 | -------------------------------------------------------------------------------- /venn-gated-ronin-bridge/challenge/project/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/.gitignore: -------------------------------------------------------------------------------- 1 | patched 2 | -------------------------------------------------------------------------------- /venn-gated-ronin-bridge/challenge/project/lib/openzeppelin-contracts/certora/.gitignore: -------------------------------------------------------------------------------- 1 | patched 2 | -------------------------------------------------------------------------------- /venn-gated-ronin-bridge/challenge/project/lib/openzeppelin-contracts/lib/forge-std/.gitignore: -------------------------------------------------------------------------------- 1 | cache/ 2 | out/ 3 | .vscode 4 | .idea 5 | -------------------------------------------------------------------------------- /venn-gated-ronin-bridge/challenge/project/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/.gitignore: -------------------------------------------------------------------------------- 1 | /.dapple 2 | /build 3 | /out 4 | /cache/ 5 | -------------------------------------------------------------------------------- /venn-gated-ronin-bridge/challenge/project/lib/openzeppelin-contracts/remappings.txt: -------------------------------------------------------------------------------- 1 | openzeppelin/=contracts/ 2 | -------------------------------------------------------------------------------- /venn-gated-ronin-bridge/challenge/project/lib/openzeppelin-contracts/requirements.txt: -------------------------------------------------------------------------------- 1 | certora-cli==3.6.4 2 | -------------------------------------------------------------------------------- /venn-gated-ronin-bridge/challenge/solve.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuzzland/blazctf-2024/HEAD/venn-gated-ronin-bridge/challenge/solve.py --------------------------------------------------------------------------------