├── .prettierignore ├── lib ├── openzeppelin-contracts │ ├── certora │ │ ├── .gitignore │ │ ├── specs │ │ │ ├── helpers │ │ │ │ └── helpers.spec │ │ │ └── methods │ │ │ │ ├── IERC5313.spec │ │ │ │ ├── IOwnable.spec │ │ │ │ ├── IOwnable2Step.spec │ │ │ │ ├── IAccessControl.spec │ │ │ │ ├── IERC2612.spec │ │ │ │ └── IERC3156.spec │ │ ├── reports │ │ │ ├── 2021-10.pdf │ │ │ ├── 2022-03.pdf │ │ │ └── 2022-05.pdf │ │ ├── harnesses │ │ │ ├── AccessControlHarness.sol │ │ │ ├── OwnableHarness.sol │ │ │ ├── Ownable2StepHarness.sol │ │ │ ├── ERC721ReceiverHarness.sol │ │ │ ├── TimelockControllerHarness.sol │ │ │ ├── ERC3156FlashBorrowerHarness.sol │ │ │ ├── PausableHarness.sol │ │ │ └── ERC20PermitHarness.sol │ │ └── diff │ │ │ └── token_ERC721_ERC721.sol.patch │ ├── requirements.txt │ ├── remappings.txt │ ├── lib │ │ └── forge-std │ │ │ ├── .gitignore │ │ │ ├── lib │ │ │ └── ds-test │ │ │ │ ├── .gitignore │ │ │ │ ├── default.nix │ │ │ │ ├── Makefile │ │ │ │ └── package.json │ │ │ ├── .gitmodules │ │ │ ├── test │ │ │ └── compilation │ │ │ │ ├── CompilationTest.sol │ │ │ │ ├── CompilationScript.sol │ │ │ │ ├── CompilationTestBase.sol │ │ │ │ └── CompilationScriptBase.sol │ │ │ └── package.json │ ├── foundry.toml │ ├── netlify.toml │ ├── .mocharc.js │ ├── renovate.json │ ├── audits │ │ ├── 2018-10.pdf │ │ ├── 2023-05-v4.9.pdf │ │ ├── 2022-10-ERC4626.pdf │ │ └── 2022-10-Checkpoints.pdf │ ├── scripts │ │ ├── checks │ │ │ └── generation.sh │ │ ├── release │ │ │ ├── workflow │ │ │ │ ├── exit-prerelease.sh │ │ │ │ ├── rerun.js │ │ │ │ ├── integrity-check.sh │ │ │ │ └── publish.sh │ │ │ ├── version.sh │ │ │ └── synchronize-versions.js │ │ ├── git-user-config.sh │ │ ├── prepare.sh │ │ ├── prepack.sh │ │ ├── prepare-contracts-package.sh │ │ ├── upgradeable │ │ │ ├── patch-save.sh │ │ │ └── patch-apply.sh │ │ └── generate │ │ │ └── format-lines.js │ ├── docs │ │ ├── antora.yml │ │ ├── modules │ │ │ └── ROOT │ │ │ │ └── images │ │ │ │ ├── tally-exec.png │ │ │ │ ├── tally-vote.png │ │ │ │ ├── erc4626-mint.png │ │ │ │ ├── erc4626-attack.png │ │ │ │ ├── erc4626-deposit.png │ │ │ │ ├── erc4626-attack-3a.png │ │ │ │ ├── erc4626-attack-3b.png │ │ │ │ ├── erc4626-attack-6.png │ │ │ │ ├── erc4626-rate-linear.png │ │ │ │ ├── erc4626-rate-loglog.png │ │ │ │ └── erc4626-rate-loglogext.png │ │ └── templates │ │ │ └── page.hbs │ ├── contracts │ │ ├── mocks │ │ │ ├── ERC165 │ │ │ │ ├── ERC165NotSupported.sol │ │ │ │ ├── ERC165MissingData.sol │ │ │ │ ├── ERC165MaliciousData.sol │ │ │ │ └── ERC165ReturnBomb.sol │ │ │ ├── token │ │ │ │ ├── ERC20MulticallMock.sol │ │ │ │ ├── ERC20ExcessDecimalsMock.sol │ │ │ │ ├── ERC777Mock.sol │ │ │ │ ├── ERC20DecimalsMock.sol │ │ │ │ ├── ERC4626OffsetMock.sol │ │ │ │ ├── ERC721URIStorageMock.sol │ │ │ │ ├── ERC20ForceApproveMock.sol │ │ │ │ └── ERC20ReturnFalseMock.sol │ │ │ ├── proxy │ │ │ │ ├── BadBeacon.sol │ │ │ │ └── ClashingImplementation.sol │ │ │ ├── AccessControlCrossChainMock.sol │ │ │ ├── ReentrancyAttack.sol │ │ │ ├── EtherReceiverMock.sol │ │ │ ├── PullPaymentMock.sol │ │ │ ├── ERC20Mock.sol │ │ │ ├── ERC4626Mock.sol │ │ │ └── ConditionalEscrowMock.sol │ │ ├── token │ │ │ ├── ERC20 │ │ │ │ ├── presets │ │ │ │ │ └── README.md │ │ │ │ └── extensions │ │ │ │ │ ├── draft-ERC20Permit.sol │ │ │ │ │ └── draft-IERC20Permit.sol │ │ │ ├── ERC1155 │ │ │ │ └── presets │ │ │ │ │ └── README.md │ │ │ ├── ERC721 │ │ │ │ ├── presets │ │ │ │ │ └── README.md │ │ │ │ └── extensions │ │ │ │ │ └── draft-ERC721Votes.sol │ │ │ └── common │ │ │ │ └── README.adoc │ │ ├── interfaces │ │ │ ├── IERC20.sol │ │ │ ├── IERC721.sol │ │ │ ├── IERC777.sol │ │ │ ├── IERC1155.sol │ │ │ ├── IERC165.sol │ │ │ ├── IERC777Sender.sol │ │ │ ├── IERC721Receiver.sol │ │ │ ├── IERC1155Receiver.sol │ │ │ ├── IERC20Metadata.sol │ │ │ ├── IERC777Recipient.sol │ │ │ ├── IERC1820Registry.sol │ │ │ ├── IERC721Metadata.sol │ │ │ ├── IERC721Enumerable.sol │ │ │ ├── IERC1820Implementer.sol │ │ │ ├── IERC3156.sol │ │ │ ├── IERC1155MetadataURI.sol │ │ │ ├── IERC2612.sol │ │ │ ├── draft-IERC2612.sol │ │ │ ├── IERC5805.sol │ │ │ └── IERC5313.sol │ │ ├── crosschain │ │ │ └── errors.sol │ │ ├── metatx │ │ │ └── README.adoc │ │ ├── utils │ │ │ └── cryptography │ │ │ │ └── draft-EIP712.sol │ │ ├── vendor │ │ │ └── polygon │ │ │ │ └── IFxMessageProcessor.sol │ │ └── proxy │ │ │ └── beacon │ │ │ └── IBeacon.sol │ ├── test │ │ ├── helpers │ │ │ ├── map-values.js │ │ │ ├── chainid.js │ │ │ ├── create2.js │ │ │ └── enums.js │ │ ├── TESTING.md │ │ ├── utils │ │ │ ├── introspection │ │ │ │ └── ERC165.test.js │ │ │ ├── escrow │ │ │ │ └── Escrow.test.js │ │ │ └── Context.test.js │ │ ├── proxy │ │ │ └── ERC1967 │ │ │ │ └── ERC1967Proxy.test.js │ │ ├── access │ │ │ └── AccessControl.test.js │ │ └── token │ │ │ └── ERC721 │ │ │ └── ERC721.test.js │ ├── .github │ │ ├── ISSUE_TEMPLATE │ │ │ ├── config.yml │ │ │ └── feature_request.md │ │ ├── workflows │ │ │ └── docs.yml │ │ └── actions │ │ │ └── setup │ │ │ └── action.yml │ ├── .gitmodules │ ├── .codecov.yml │ ├── .prettierrc │ ├── .changeset │ │ └── config.json │ ├── hardhat │ │ ├── skip-foundry-tests.js │ │ └── env-contract.js │ ├── .solcover.js │ ├── .editorconfig │ ├── .eslintrc │ └── .solhint.json ├── forge-std │ ├── .gitignore │ ├── lib │ │ └── ds-test │ │ │ ├── .gitignore │ │ │ ├── default.nix │ │ │ ├── Makefile │ │ │ └── package.json │ ├── .gitmodules │ ├── test │ │ └── compilation │ │ │ ├── CompilationTest.sol │ │ │ ├── CompilationScript.sol │ │ │ ├── CompilationTestBase.sol │ │ │ └── CompilationScriptBase.sol │ ├── package.json │ └── src │ │ └── interfaces │ │ └── IERC165.sol └── openzeppelin-contracts-upgradeable │ ├── certora │ ├── .gitignore │ ├── specs │ │ ├── methods │ │ │ ├── IERC5313.spec │ │ │ ├── IOwnable.spec │ │ │ ├── IOwnable2Step.spec │ │ │ ├── IAccessControl.spec │ │ │ ├── IERC2612.spec │ │ │ └── IERC3156.spec │ │ └── helpers │ │ │ └── helpers.spec │ ├── reports │ │ ├── 2021-10.pdf │ │ ├── 2022-03.pdf │ │ └── 2022-05.pdf │ ├── harnesses │ │ ├── AccessControlHarness.sol │ │ ├── OwnableHarness.sol │ │ ├── Ownable2StepHarness.sol │ │ ├── ERC721ReceiverHarness.sol │ │ ├── TimelockControllerHarness.sol │ │ ├── ERC3156FlashBorrowerHarness.sol │ │ ├── PausableHarness.sol │ │ └── ERC20PermitHarness.sol │ └── diff │ │ └── token_ERC721_ERC721.sol.patch │ ├── requirements.txt │ ├── remappings.txt │ ├── lib │ └── forge-std │ │ ├── .gitignore │ │ ├── lib │ │ └── ds-test │ │ │ ├── .gitignore │ │ │ ├── default.nix │ │ │ ├── Makefile │ │ │ └── package.json │ │ ├── .gitmodules │ │ └── test │ │ └── compilation │ │ ├── CompilationTest.sol │ │ ├── CompilationScript.sol │ │ ├── CompilationTestBase.sol │ │ └── CompilationScriptBase.sol │ ├── foundry.toml │ ├── netlify.toml │ ├── .mocharc.js │ ├── renovate.json │ ├── scripts │ ├── checks │ │ └── generation.sh │ ├── git-user-config.sh │ ├── release │ │ ├── workflow │ │ │ ├── exit-prerelease.sh │ │ │ ├── rerun.js │ │ │ ├── integrity-check.sh │ │ │ └── publish.sh │ │ ├── version.sh │ │ └── synchronize-versions.js │ ├── prepare.sh │ ├── prepack.sh │ ├── prepare-contracts-package.sh │ ├── upgradeable │ │ ├── patch-save.sh │ │ └── patch-apply.sh │ └── generate │ │ └── format-lines.js │ ├── audits │ ├── 2018-10.pdf │ ├── 2023-05-v4.9.pdf │ ├── 2022-10-ERC4626.pdf │ └── 2022-10-Checkpoints.pdf │ ├── docs │ ├── antora.yml │ ├── templates │ │ └── page.hbs │ └── modules │ │ └── ROOT │ │ └── images │ │ ├── tally-exec.png │ │ ├── tally-vote.png │ │ ├── erc4626-mint.png │ │ ├── erc4626-attack.png │ │ ├── erc4626-deposit.png │ │ ├── erc4626-attack-3a.png │ │ ├── erc4626-attack-3b.png │ │ ├── erc4626-attack-6.png │ │ ├── erc4626-rate-linear.png │ │ ├── erc4626-rate-loglog.png │ │ └── erc4626-rate-loglogext.png │ ├── contracts │ ├── token │ │ ├── ERC1155 │ │ │ └── presets │ │ │ │ └── README.md │ │ ├── ERC20 │ │ │ ├── presets │ │ │ │ └── README.md │ │ │ └── extensions │ │ │ │ ├── draft-ERC20PermitUpgradeable.sol │ │ │ │ └── draft-IERC20PermitUpgradeable.sol │ │ ├── ERC721 │ │ │ ├── presets │ │ │ │ └── README.md │ │ │ └── extensions │ │ │ │ └── draft-ERC721VotesUpgradeable.sol │ │ └── common │ │ │ └── README.adoc │ ├── interfaces │ │ ├── IERC20Upgradeable.sol │ │ ├── IERC721Upgradeable.sol │ │ ├── IERC777Upgradeable.sol │ │ ├── IERC1155Upgradeable.sol │ │ ├── IERC165Upgradeable.sol │ │ ├── IERC777SenderUpgradeable.sol │ │ ├── IERC721ReceiverUpgradeable.sol │ │ ├── IERC777RecipientUpgradeable.sol │ │ ├── IERC1155ReceiverUpgradeable.sol │ │ ├── IERC20MetadataUpgradeable.sol │ │ ├── IERC1820RegistryUpgradeable.sol │ │ ├── IERC721MetadataUpgradeable.sol │ │ ├── IERC721EnumerableUpgradeable.sol │ │ ├── IERC1820ImplementerUpgradeable.sol │ │ ├── IERC1155MetadataURIUpgradeable.sol │ │ ├── IERC3156Upgradeable.sol │ │ ├── draft-IERC2612Upgradeable.sol │ │ ├── IERC2612Upgradeable.sol │ │ ├── IERC5805Upgradeable.sol │ │ └── IERC5313Upgradeable.sol │ ├── metatx │ │ └── README.adoc │ ├── crosschain │ │ └── errorsUpgradeable.sol │ ├── utils │ │ └── cryptography │ │ │ └── draft-EIP712Upgradeable.sol │ ├── vendor │ │ └── polygon │ │ │ └── IFxMessageProcessorUpgradeable.sol │ └── proxy │ │ └── beacon │ │ └── IBeaconUpgradeable.sol │ ├── test │ ├── helpers │ │ ├── map-values.js │ │ ├── chainid.js │ │ ├── create2.js │ │ └── enums.js │ ├── TESTING.md │ ├── utils │ │ ├── introspection │ │ │ └── ERC165.test.js │ │ ├── escrow │ │ │ └── Escrow.test.js │ │ └── Context.test.js │ ├── proxy │ │ └── ERC1967 │ │ │ └── ERC1967Proxy.test.js │ ├── access │ │ └── AccessControl.test.js │ └── token │ │ └── ERC721 │ │ └── ERC721.test.js │ ├── .gitmodules │ ├── .codecov.yml │ ├── .prettierrc │ ├── .changeset │ └── config.json │ ├── hardhat │ ├── skip-foundry-tests.js │ └── env-contract.js │ ├── .solcover.js │ ├── .github │ ├── ISSUE_TEMPLATE │ │ └── config.yml │ ├── workflows │ │ └── docs.yml │ └── actions │ │ └── setup │ │ └── action.yml │ ├── .editorconfig │ ├── .eslintrc │ └── .solhint.json ├── forge ├── lib │ └── forge-std │ │ ├── .gitignore │ │ ├── lib │ │ └── ds-test │ │ │ ├── .gitignore │ │ │ ├── default.nix │ │ │ ├── Makefile │ │ │ └── package.json │ │ ├── .gitmodules │ │ ├── test │ │ └── compilation │ │ │ ├── CompilationTest.sol │ │ │ ├── CompilationScript.sol │ │ │ ├── CompilationTestBase.sol │ │ │ └── CompilationScriptBase.sol │ │ ├── package.json │ │ └── src │ │ └── interfaces │ │ └── IERC165.sol ├── foundry.toml ├── script │ └── Counter.s.sol └── src │ └── Counter.sol ├── .DS_Store ├── protocols └── .DS_Store ├── solhint.json ├── scope.txt ├── contracts ├── interfaces │ ├── archive │ │ ├── IOracle.sol │ │ ├── IStablePool.sol │ │ ├── IStablePoolKeeper.sol │ │ ├── IRedeem.sol │ │ ├── IChainlinkV3Aggregator.sol │ │ ├── IWETH.sol │ │ ├── IPriceOracleAggregator.sol │ │ └── IeETH.sol │ ├── IUSDeSiloDefinitions.sol │ ├── IERC20Events.sol │ ├── ISingleAdminAccessControl.sol │ └── IUSDeDefinitions.sol └── external │ ├── curve │ └── ICurvePool.sol │ ├── lido │ ├── ILidoToken.sol │ └── ILidoOracle.sol │ └── convex │ ├── IVirtualBalanceRewardPool.sol │ └── IConvexBooster.sol ├── .env.example ├── discord-export ├── Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files │ ├── 0-EB806.png │ ├── 1-B2132.png │ ├── 2-ADBB4.png │ ├── 3-FB033.png │ ├── 4-4551A.png │ ├── audits-A51E8 │ ├── eth-3D006.png │ ├── image-971A0.png │ ├── image-B2083.png │ ├── image-B30BE.png │ ├── image-B7E49.png │ ├── image-ECA0A.png │ ├── IMG_4465-C8F12.png │ ├── popcat-wen-BA4D6.mp4 │ ├── where-you-D2EF9.mp4 │ ├── kid-thinking-ECAAB.mp4 │ ├── soon-hamster-A2DEF.mp4 │ ├── counting-money-21572.mp4 │ ├── waiting-titanic-684B8.mp4 │ ├── 1f3fb-E58B7.svg │ ├── 1f3fc-4884A.svg │ ├── tv-shows-annoyed-CF311.mp4 │ ├── 1080667809002037320-8957D.png │ ├── 1083068770823721071-EE4F6.png │ ├── 588197188199252006-F53D1.png │ ├── 851893826846457866-1AD3D.png │ ├── 851893827027075142-F23DF.png │ ├── 851893827035725825-8ED59.png │ ├── 851893827089727568-5FD38.png │ ├── 851893827315826708-F59C0.png │ ├── 851893827442442280-31B9F.png │ ├── 977133670429261884-CA8EA.png │ ├── ggsans-italic-400-E988B.woff2 │ ├── ggsans-italic-500-0777F.woff2 │ ├── ggsans-italic-600-CB411.woff2 │ ├── ggsans-italic-700-891AC.woff2 │ ├── ggsans-italic-800-D36B0.woff2 │ ├── ggsans-normal-400-1456D.woff2 │ ├── ggsans-normal-500-89CE5.woff2 │ ├── ggsans-normal-600-C1EA8.woff2 │ ├── ggsans-normal-700-1949A.woff2 │ ├── ggsans-normal-800-58487.woff2 │ ├── dudu-cry-hay-nako-reika-9F48A.mp4 │ ├── how-dare-you-screaming-lady-9646C.mp4 │ ├── 000ac5363e3f6dbccf99b0e7a27d2d3a-E863B.png │ ├── 00228663602fb46de464e9ee2fbfad9c-5DBEB.png │ ├── 05d0501f278247d31dc24aab71d597d5-F7D75.png │ ├── 07158b76e34c74f71b4876b66b9dff50-D54F0.png │ ├── 0ab6fddedfdca4dee0b54ab41ab4faad-3EFDA.png │ ├── 0dd6255142c84dcc6ec663458ed3fda9-E98D2.png │ ├── 108db4db43a8df92fb224ce27c8419ec-5A94A.png │ ├── 12b1cd82ae01e1b8c6e500f018ad4b73-E8E85.png │ ├── 14f8cbc620b0a89c2a11ca8deace58eb-DA2D1.png │ ├── 15cdaa10c5644d913a1ab1f9f06288c1-8A82B.png │ ├── 1628fc11e7961d85181295493426b775-7E20F.png │ ├── 1c4a80121deeb5d2fdd1654a720538b4-2A197.png │ ├── 250ab6d8024fd889b64e57da579af3ef-988E0.png │ ├── 258a1ffc46d9e9c3872ad643ab9b4bd5-EE2DC.png │ ├── 25c2064c61832f99da8ae540b3d0001a-8D043.png │ ├── 2a9faff195fe333526cfe6ae6fce1420-49B98.png │ ├── 2c1e18acbcb9cdaeabfd7fc6f5090edf-CA387.png │ ├── 2de2bcb6fe2e5617e1d3dd4c56a5a8f1-DE975.png │ ├── 3509c87444456234b909af7a35509580-77C1F.png │ ├── 39c2d6dc79b0521285b055c21dcdfe93-C76FE.png │ ├── 402b68164a51455e395a06ad04fc04b5-D7A38.png │ ├── 407f6dcef34069853b9ca2321a06fb98-1DD94.png │ ├── 4155d983056d861c045620cf8e11d612-A5980.png │ ├── 453eac052c6c6b7a61d2f55848c5bdc6-FCF15.png │ ├── 47a90c36a9d5ab41d808ed4927e2d160-09864.png │ ├── 4ab2406667fe4b7443bf50983abffd58-40A7F.png │ ├── 50bd8deba6527b5c796a9b33197754dc-A7667.png │ ├── 514d83db5e503f5a33fd3f790d42d452-555FF.png │ ├── 5445ffd7ffb201a98393cbdf684ea4b1-FF0A0.png │ ├── 593f36e88b1657d978d620f5152eca82-52AEA.png │ ├── 599667a9bd34d1211af25019e6da7fa4-6667B.png │ ├── 5b71d15a9bcde45fd5520e3fb580eb53-E1A50.png │ ├── 5e3fb61df91ed29c573265a690af4600-E824E.png │ ├── 5fd4eaf3a92a63920dfe6c4e8175c1df-7264A.png │ ├── 6094e48ab77eb87fae4e3348c0d872b4-34FEF.png │ ├── 6329524d9a9a84434050006ef362f18a-0C556.png │ ├── 66c54ad6b6c2224e66ef8148ab5b7bcc-9BDF6.png │ ├── 67594ee4b4d1fc03bca468327a0d145b-BD76A.png │ ├── 69f62d716a18efe5a880b067a0c01710-53265.png │ ├── 701300a5bdd3bf5640bd1370251533e2-0DC47.png │ ├── 71476c06d19018237b44456792b216cf-F281B.png │ ├── 722858dd7f149d9c482133b6487e6ffa-CC24E.png │ ├── 751f210cd76b9b17316bb54ff939887b-0B021.png │ ├── 80b63b8eef8e8e0bef63af4cd4598430-39256.png │ ├── 8230f476eec54d0f43d90d66df912139-9C1D4.png │ ├── 8441d5e9fe1fd4c074797db4578a0b54-66B22.png │ ├── 860bc8415fcb344bebcf89a301158ffd-36A89.png │ ├── 8646f8b4f073429bf27df27459ab18a2-F6800.png │ ├── 8c6129305f7cfbc60d0e2c052bc22211-CC381.png │ ├── 9220a9ff683f654eaf5151b8663e8b53-22007.png │ ├── 9542a3c6a8ce011c16ce81d61dc908f9-F344E.png │ ├── 970d2e2f00cd7ef2134a1a3f21326349-404EA.png │ ├── 9b01adfea5eb85ed7f3fc2c94c3592c8-E96F4.png │ ├── 9b64b35b6e372d499cb21ff145de301e-6E451.png │ ├── a0457d118b6579a0106b86d86660fd78-D29A1.png │ ├── a15d1fd903ebf135e19766fdf040a280-46865.png │ ├── a4781d16f553953c32982f7090379dab-82161.png │ ├── aa3584c2ce5b338f4758e69aec19637c-72010.png │ ├── ab8a4984f6e5f9a8197047c4cfa62ec1-654F2.png │ ├── b2680abf1970a250b052bbd6059a1b24-B7522.png │ ├── b4fead77f737aa7840a25e1cd39eb062-CEDEC.png │ ├── b5c5564bbdaa22a1e2d459e9bf6aef5a-B3AC0.png │ ├── b8676351c64c465016196367cbff9901-0DC19.png │ ├── bd6e705b7e22db04232dfaaf530eee5f-A1D9E.png │ ├── c2468d8d0f40ab01d5dc01d07d2cf760-8FD6B.png │ ├── c616e441e02fbf7f8f4594b17761c02c-768C2.png │ ├── c6b85a4a6ca07ab15a30a24f570be5b8-6C020.png │ ├── c6d26a3e68c59bd84c235cce3ad37904-87D0A.png │ ├── c8582808c3d6e596a73294c8b1ded7e8-7A679.png │ ├── c894b6c4af55a46fb2d1aef0cd4cf6b0-27286.png │ ├── c9cb30134c634c9e02d0c64df4922803-98E33.png │ ├── ccb73a5017c683a41087f52a84c389da-4578D.png │ ├── d136675562368c0c346cc5b0b6d7357f-E2435.png │ ├── d352b5d64239648acbeb7b6f310df0b8-E875A.png │ ├── d4b3590ea4349f36f3b9b71c4d408d60-B73C4.png │ ├── d5a5211a980b21f9a45f9588e01be6b6-B0E43.png │ ├── d9fa0ae50d731854d342f81d679964af-D6B3D.png │ ├── dc6e0072c993da12b699bb569417b6d1-25F7D.png │ ├── e99436ce7f263d3f7b6d999b8921abbf-BAFA9.png │ ├── eacfed25facb875e3340fc96efe82381-ABE0D.png │ ├── ec29e162c99a502f591715e569811ab5-4EBC6.png │ ├── ec2bcb7830d93aed7b07ee0d3a51e605-19997.png │ ├── ece049bda85fdcdb08ba4595daf9e38a-48509.png │ ├── ed4484ef66c898526d51a3b65936c2ff-6B4AE.png │ ├── f3289e295a19f229403199a736a9ec88-EFDB4.png │ ├── f72c5f6eae5af3197504f447d8d59688-3515E.png │ ├── f8ee3d74786e5ca83e77844ce1b50a9f-E20FE.png │ ├── fd61dd1a8ad38e5b2b9264a9ef490dd2-D1976.png │ ├── Screenshot_2023-11-30_at_16.48.00-BB75C.png │ ├── mental-health-mental-health-crisis-B36E0.mp4 │ ├── 2795-3358E.svg │ ├── 1f1f3-1f1ec-22AE2.svg │ ├── 1f62e-FE396.svg │ ├── 2764-A3D25.svg │ ├── 1f600-F7528.svg │ ├── 1f50d-195C0.svg │ ├── 2705-0589F.svg │ ├── 1f488-DEA4B.svg │ ├── 1f642-83E8A.svg │ └── 1f446-9CC34.svg └── Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].txt_Files │ ├── audits-A51E8 │ ├── eth-3D006.png │ ├── image-971A0.png │ ├── image-B2083.png │ ├── image-B30BE.png │ ├── image-B7E49.png │ ├── image-ECA0A.png │ ├── IMG_4465-C8F12.png │ ├── popcat-wen-0C105.png │ ├── where-you-B9BEE.png │ ├── kid-thinking-BFE96.png │ ├── soon-hamster-D08BD.png │ ├── counting-money-B7EC2.png │ ├── tv-shows-annoyed-DB3F9.png │ ├── waiting-titanic-965AB.png │ ├── dudu-cry-hay-nako-reika-64469.png │ ├── how-dare-you-screaming-lady-A2003.png │ ├── Screenshot_2023-11-30_at_16.48.00-BB75C.png │ └── mental-health-mental-health-crisis-E620E.png ├── remappings.txt ├── turbo.json └── slither.config.json /.prettierignore: -------------------------------------------------------------------------------- 1 | lib/ -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/certora/.gitignore: -------------------------------------------------------------------------------- 1 | patched 2 | -------------------------------------------------------------------------------- /lib/forge-std/.gitignore: -------------------------------------------------------------------------------- 1 | cache/ 2 | out/ 3 | .vscode 4 | .idea 5 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/requirements.txt: -------------------------------------------------------------------------------- 1 | certora-cli==3.6.4 2 | -------------------------------------------------------------------------------- /forge/lib/forge-std/.gitignore: -------------------------------------------------------------------------------- 1 | cache/ 2 | out/ 3 | .vscode 4 | .idea 5 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/certora/.gitignore: -------------------------------------------------------------------------------- 1 | patched 2 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/remappings.txt: -------------------------------------------------------------------------------- 1 | openzeppelin/=contracts/ 2 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/requirements.txt: -------------------------------------------------------------------------------- 1 | certora-cli==3.6.4 2 | -------------------------------------------------------------------------------- /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/.DS_Store -------------------------------------------------------------------------------- /lib/forge-std/lib/ds-test/.gitignore: -------------------------------------------------------------------------------- 1 | /.dapple 2 | /build 3 | /out 4 | /cache/ 5 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/remappings.txt: -------------------------------------------------------------------------------- 1 | openzeppelin/=contracts/ 2 | -------------------------------------------------------------------------------- /forge/lib/forge-std/lib/ds-test/.gitignore: -------------------------------------------------------------------------------- 1 | /.dapple 2 | /build 3 | /out 4 | /cache/ 5 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/lib/forge-std/.gitignore: -------------------------------------------------------------------------------- 1 | cache/ 2 | out/ 3 | .vscode 4 | .idea 5 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/foundry.toml: -------------------------------------------------------------------------------- 1 | [fuzz] 2 | runs = 10000 3 | max_test_rejects = 150000 4 | -------------------------------------------------------------------------------- /protocols/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/protocols/.DS_Store -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/lib/forge-std/.gitignore: -------------------------------------------------------------------------------- 1 | cache/ 2 | out/ 3 | .vscode 4 | .idea 5 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/.gitignore: -------------------------------------------------------------------------------- 1 | /.dapple 2 | /build 3 | /out 4 | /cache/ 5 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/netlify.toml: -------------------------------------------------------------------------------- 1 | [build] 2 | command = "npm run docs" 3 | publish = "build/site" 4 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/foundry.toml: -------------------------------------------------------------------------------- 1 | [fuzz] 2 | runs = 10000 3 | max_test_rejects = 150000 4 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/.gitignore: -------------------------------------------------------------------------------- 1 | /.dapple 2 | /build 3 | /out 4 | /cache/ 5 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/netlify.toml: -------------------------------------------------------------------------------- 1 | [build] 2 | command = "npm run docs" 3 | publish = "build/site" 4 | -------------------------------------------------------------------------------- /lib/forge-std/.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "lib/ds-test"] 2 | path = lib/ds-test 3 | url = https://github.com/dapphub/ds-test 4 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/.mocharc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | require: 'hardhat/register', 3 | timeout: 4000, 4 | }; 5 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/certora/specs/helpers/helpers.spec: -------------------------------------------------------------------------------- 1 | definition nonpayable(env e) returns bool = e.msg.value == 0; 2 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/certora/specs/methods/IERC5313.spec: -------------------------------------------------------------------------------- 1 | methods { 2 | owner() returns (address) envfree 3 | } 4 | -------------------------------------------------------------------------------- /forge/lib/forge-std/.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "lib/ds-test"] 2 | path = lib/ds-test 3 | url = https://github.com/dapphub/ds-test 4 | -------------------------------------------------------------------------------- /lib/forge-std/lib/ds-test/default.nix: -------------------------------------------------------------------------------- 1 | { solidityPackage, dappsys }: solidityPackage { 2 | name = "ds-test"; 3 | src = ./src; 4 | } 5 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/.mocharc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | require: 'hardhat/register', 3 | timeout: 4000, 4 | }; 5 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/certora/specs/methods/IERC5313.spec: -------------------------------------------------------------------------------- 1 | methods { 2 | owner() returns (address) envfree 3 | } 4 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/certora/specs/helpers/helpers.spec: -------------------------------------------------------------------------------- 1 | definition nonpayable(env e) returns bool = e.msg.value == 0; 2 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["github>OpenZeppelin/configs"], 3 | "labels": ["ignore-changeset"] 4 | } 5 | -------------------------------------------------------------------------------- /forge/lib/forge-std/lib/ds-test/default.nix: -------------------------------------------------------------------------------- 1 | { solidityPackage, dappsys }: solidityPackage { 2 | name = "ds-test"; 3 | src = ./src; 4 | } 5 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["github>OpenZeppelin/configs"], 3 | "labels": ["ignore-changeset"] 4 | } 5 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/audits/2018-10.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/lib/openzeppelin-contracts/audits/2018-10.pdf -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/lib/forge-std/.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "lib/ds-test"] 2 | path = lib/ds-test 3 | url = https://github.com/dapphub/ds-test 4 | -------------------------------------------------------------------------------- /solhint.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "solhint:default", 3 | "rules": { 4 | "private-vars-leading-underscore": ["warn", { "strict": false }] 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/audits/2023-05-v4.9.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/lib/openzeppelin-contracts/audits/2023-05-v4.9.pdf -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/scripts/checks/generation.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -euo pipefail 4 | 5 | npm run generate 6 | git diff -R --exit-code 7 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/lib/forge-std/.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "lib/ds-test"] 2 | path = lib/ds-test 3 | url = https://github.com/dapphub/ds-test 4 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/audits/2022-10-ERC4626.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/lib/openzeppelin-contracts/audits/2022-10-ERC4626.pdf -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/docs/antora.yml: -------------------------------------------------------------------------------- 1 | name: contracts 2 | title: Contracts 3 | version: 4.x 4 | nav: 5 | - modules/ROOT/nav.adoc 6 | - modules/api/nav.adoc 7 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/default.nix: -------------------------------------------------------------------------------- 1 | { solidityPackage, dappsys }: solidityPackage { 2 | name = "ds-test"; 3 | src = ./src; 4 | } 5 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/scripts/checks/generation.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -euo pipefail 4 | 5 | npm run generate 6 | git diff -R --exit-code 7 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/certora/reports/2021-10.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/lib/openzeppelin-contracts/certora/reports/2021-10.pdf -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/certora/reports/2022-03.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/lib/openzeppelin-contracts/certora/reports/2022-03.pdf -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/certora/reports/2022-05.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/lib/openzeppelin-contracts/certora/reports/2022-05.pdf -------------------------------------------------------------------------------- /forge/foundry.toml: -------------------------------------------------------------------------------- 1 | [profile.default] 2 | src = "src" 3 | out = "out" 4 | libs = ["lib"] 5 | 6 | # See more config options https://github.com/foundry-rs/foundry/tree/master/config -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/audits/2018-10.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/lib/openzeppelin-contracts-upgradeable/audits/2018-10.pdf -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/default.nix: -------------------------------------------------------------------------------- 1 | { solidityPackage, dappsys }: solidityPackage { 2 | name = "ds-test"; 3 | src = ./src; 4 | } 5 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/audits/2022-10-Checkpoints.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/lib/openzeppelin-contracts/audits/2022-10-Checkpoints.pdf -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/docs/antora.yml: -------------------------------------------------------------------------------- 1 | name: contracts 2 | title: Contracts 3 | version: 4.x 4 | nav: 5 | - modules/ROOT/nav.adoc 6 | - modules/api/nav.adoc 7 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165NotSupported.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity ^0.8.0; 4 | 5 | contract ERC165NotSupported {} 6 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/audits/2023-05-v4.9.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/lib/openzeppelin-contracts-upgradeable/audits/2023-05-v4.9.pdf -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/certora/specs/methods/IOwnable.spec: -------------------------------------------------------------------------------- 1 | methods { 2 | owner() returns (address) envfree 3 | transferOwnership(address) 4 | renounceOwnership() 5 | } 6 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/audits/2022-10-ERC4626.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/lib/openzeppelin-contracts-upgradeable/audits/2022-10-ERC4626.pdf -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/certora/reports/2021-10.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/lib/openzeppelin-contracts-upgradeable/certora/reports/2021-10.pdf -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/certora/reports/2022-03.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/lib/openzeppelin-contracts-upgradeable/certora/reports/2022-03.pdf -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/certora/reports/2022-05.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/lib/openzeppelin-contracts-upgradeable/certora/reports/2022-05.pdf -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/docs/modules/ROOT/images/tally-exec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/lib/openzeppelin-contracts/docs/modules/ROOT/images/tally-exec.png -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/docs/modules/ROOT/images/tally-vote.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/lib/openzeppelin-contracts/docs/modules/ROOT/images/tally-vote.png -------------------------------------------------------------------------------- /scope.txt: -------------------------------------------------------------------------------- 1 | contracts/USDe.sol 2 | contracts/EthenaMinting.sol 3 | contracts/StakedUSDe.sol 4 | contracts/StakedUSDeV2.sol 5 | contracts/USDeSilo.sol 6 | contracts/SingleAdminAccessControl.sol -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-mint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-mint.png -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/audits/2022-10-Checkpoints.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/lib/openzeppelin-contracts-upgradeable/audits/2022-10-Checkpoints.pdf -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/certora/specs/methods/IOwnable.spec: -------------------------------------------------------------------------------- 1 | methods { 2 | owner() returns (address) envfree 3 | transferOwnership(address) 4 | renounceOwnership() 5 | } 6 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/token/ERC20/presets/README.md: -------------------------------------------------------------------------------- 1 | Contract presets are now deprecated in favor of [Contracts Wizard](https://wizard.openzeppelin.com/) as a more powerful alternative. 2 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack.png -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-deposit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-deposit.png -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/docs/templates/page.hbs: -------------------------------------------------------------------------------- 1 | :github-icon: pass:[] 2 | {{#with-prelude}} 3 | {{readme (readme-path)}} 4 | {{/with-prelude}} 5 | -------------------------------------------------------------------------------- /contracts/interfaces/archive/IOracle.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity 0.8.19; 3 | 4 | interface IOracle { 5 | function viewPriceInUSD() external view returns (uint256); 6 | } 7 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/token/ERC1155/presets/README.md: -------------------------------------------------------------------------------- 1 | Contract presets are now deprecated in favor of [Contracts Wizard](https://wizard.openzeppelin.com/) as a more powerful alternative. 2 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/token/ERC721/presets/README.md: -------------------------------------------------------------------------------- 1 | Contract presets are now deprecated in favor of [Contracts Wizard](https://wizard.openzeppelin.com/) as a more powerful alternative. 2 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-3a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-3a.png -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-3b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-3b.png -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-6.png -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/docs/templates/page.hbs: -------------------------------------------------------------------------------- 1 | :github-icon: pass:[] 2 | {{#with-prelude}} 3 | {{readme (readme-path)}} 4 | {{/with-prelude}} 5 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-linear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-linear.png -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-loglog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-loglog.png -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/presets/README.md: -------------------------------------------------------------------------------- 1 | Contract presets are now deprecated in favor of [Contracts Wizard](https://wizard.openzeppelin.com/) as a more powerful alternative. 2 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/presets/README.md: -------------------------------------------------------------------------------- 1 | Contract presets are now deprecated in favor of [Contracts Wizard](https://wizard.openzeppelin.com/) as a more powerful alternative. 2 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/presets/README.md: -------------------------------------------------------------------------------- 1 | Contract presets are now deprecated in favor of [Contracts Wizard](https://wizard.openzeppelin.com/) as a more powerful alternative. 2 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/tally-exec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/tally-exec.png -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/tally-vote.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/tally-vote.png -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-loglogext.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-loglogext.png -------------------------------------------------------------------------------- /.env.example: -------------------------------------------------------------------------------- 1 | # Foundry 2 | PRIVATE_KEY= 3 | ETHERSCAN_API_KEY= 4 | POLYGONSCAN_API_KEY= 5 | BASESCAN_API_KEY= 6 | SEPOLIA_RPC_URL= 7 | MAINNET_RPC_URL= 8 | POLYGON_RPC_URL= 9 | GOERLI_RPC_URL= 10 | BASE_RPC_URL= -------------------------------------------------------------------------------- /contracts/interfaces/archive/IStablePool.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-3.0 2 | pragma solidity >=0.8.10; 3 | 4 | interface IStablePool { 5 | function prepare(uint256 amount, bytes calldata data) external; 6 | } 7 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-mint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-mint.png -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-attack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-attack.png -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-deposit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-deposit.png -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-attack-3a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-attack-3a.png -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-attack-3b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-attack-3b.png -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-attack-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-attack-6.png -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.1 (interfaces/IERC20.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../token/ERC20/IERC20.sol"; 7 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/scripts/release/workflow/exit-prerelease.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -euo pipefail 4 | 5 | npx changeset pre exit rc 6 | git add . 7 | git commit -m "Exit release candidate" 8 | git push origin 9 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/test/helpers/map-values.js: -------------------------------------------------------------------------------- 1 | function mapValues(obj, fn) { 2 | return Object.fromEntries([...Object.entries(obj)].map(([k, v]) => [k, fn(v)])); 3 | } 4 | 5 | module.exports = { 6 | mapValues, 7 | }; 8 | -------------------------------------------------------------------------------- /contracts/interfaces/archive/IStablePoolKeeper.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-3.0 2 | pragma solidity 0.8.10; 3 | 4 | interface IStablePoolKeeper { 5 | function onPrepare(uint256 amount, bytes calldata data) external; 6 | } 7 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-rate-linear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-rate-linear.png -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-rate-loglog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-rate-loglog.png -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | contact_links: 2 | - name: Questions & Support Requests 3 | url: https://forum.openzeppelin.com/c/support/contracts/18 4 | about: Ask in the OpenZeppelin Forum 5 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/interfaces/IERC721.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.1 (interfaces/IERC721.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../token/ERC721/IERC721.sol"; 7 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/interfaces/IERC777.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.1 (interfaces/IERC777.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../token/ERC777/IERC777.sol"; 7 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/scripts/git-user-config.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -euo pipefail -x 4 | 5 | git config user.name 'github-actions' 6 | git config user.email '41898282+github-actions[bot]@users.noreply.github.com' 7 | -------------------------------------------------------------------------------- /contracts/interfaces/archive/IRedeem.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-3.0 2 | pragma solidity 0.8.19; 3 | 4 | interface IRedeem { 5 | function deposit(address token, uint256 tokenAmount) external returns (uint256 xUSDAmount); 6 | } 7 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-rate-loglogext.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-rate-loglogext.png -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/interfaces/IERC1155.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.1 (interfaces/IERC1155.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../token/ERC1155/IERC1155.sol"; 7 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/scripts/git-user-config.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -euo pipefail -x 4 | 5 | git config user.name 'github-actions' 6 | git config user.email '41898282+github-actions[bot]@users.noreply.github.com' 7 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/scripts/release/workflow/exit-prerelease.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -euo pipefail 4 | 5 | npx changeset pre exit rc 6 | git add . 7 | git commit -m "Exit release candidate" 8 | git push origin 9 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/test/helpers/map-values.js: -------------------------------------------------------------------------------- 1 | function mapValues(obj, fn) { 2 | return Object.fromEntries([...Object.entries(obj)].map(([k, v]) => [k, fn(v)])); 3 | } 4 | 5 | module.exports = { 6 | mapValues, 7 | }; 8 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.1 (interfaces/IERC165.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../utils/introspection/IERC165.sol"; 7 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/scripts/prepare.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -euo pipefail 4 | 5 | if [ "${SKIP_COMPILE:-}" == true ]; then 6 | exit 7 | fi 8 | 9 | npm run clean 10 | env COMPILE_MODE=production npm run compile 11 | -------------------------------------------------------------------------------- /contracts/external/curve/ICurvePool.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-3.0 2 | pragma solidity 0.8.19; 3 | 4 | interface ICurvePool { 5 | function exchange(int128 i, int128 j, uint256 dx, uint256 dy) external payable returns (uint256); 6 | } 7 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/certora/harnesses/AccessControlHarness.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity ^0.8.0; 4 | 5 | import "../patched/access/AccessControl.sol"; 6 | 7 | contract AccessControlHarness is AccessControl {} 8 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/scripts/prepare.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -euo pipefail 4 | 5 | if [ "${SKIP_COMPILE:-}" == true ]; then 6 | exit 7 | fi 8 | 9 | npm run clean 10 | env COMPILE_MODE=production npm run compile 11 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/interfaces/IERC777Sender.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.1 (interfaces/IERC777Sender.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../token/ERC777/IERC777Sender.sol"; 7 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/interfaces/IERC721Receiver.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.1 (interfaces/IERC721Receiver.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../token/ERC721/IERC721Receiver.sol"; 7 | -------------------------------------------------------------------------------- /contracts/interfaces/IUSDeSiloDefinitions.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-3.0 2 | pragma solidity 0.8.19; 3 | 4 | interface IUSDeSiloDefinitions { 5 | /// @notice Error emitted when the staking vault is not the caller 6 | error OnlyStakingVault(); 7 | } 8 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/0-EB806.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/0-EB806.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/1-B2132.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/1-B2132.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/2-ADBB4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/2-ADBB4.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/3-FB033.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/3-FB033.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/4-4551A.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/4-4551A.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/audits-A51E8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/audits-A51E8 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].txt_Files/audits-A51E8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].txt_Files/audits-A51E8 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].txt_Files/eth-3D006.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].txt_Files/eth-3D006.png -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/certora/harnesses/AccessControlHarness.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity ^0.8.0; 4 | 5 | import "../patched/access/AccessControl.sol"; 6 | 7 | contract AccessControlHarness is AccessControl {} 8 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC20Upgradeable.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.1 (interfaces/IERC20.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../token/ERC20/IERC20Upgradeable.sol"; 7 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/certora/specs/methods/IOwnable2Step.spec: -------------------------------------------------------------------------------- 1 | methods { 2 | owner() returns (address) envfree 3 | pendingOwner() returns (address) envfree 4 | transferOwnership(address) 5 | acceptOwnership() 6 | renounceOwnership() 7 | } 8 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/interfaces/IERC1155Receiver.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.1 (interfaces/IERC1155Receiver.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../token/ERC1155/IERC1155Receiver.sol"; 7 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/interfaces/IERC20Metadata.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.1 (interfaces/IERC20Metadata.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../token/ERC20/extensions/IERC20Metadata.sol"; 7 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/interfaces/IERC777Recipient.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.1 (interfaces/IERC777Recipient.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../token/ERC777/IERC777Recipient.sol"; 7 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/eth-3D006.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/eth-3D006.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/image-971A0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/image-971A0.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/image-B2083.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/image-B2083.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/image-B30BE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/image-B30BE.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/image-B7E49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/image-B7E49.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/image-ECA0A.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/image-ECA0A.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].txt_Files/image-971A0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].txt_Files/image-971A0.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].txt_Files/image-B2083.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].txt_Files/image-B2083.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].txt_Files/image-B30BE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].txt_Files/image-B30BE.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].txt_Files/image-B7E49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].txt_Files/image-B7E49.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].txt_Files/image-ECA0A.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].txt_Files/image-ECA0A.png -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC721Upgradeable.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.1 (interfaces/IERC721.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../token/ERC721/IERC721Upgradeable.sol"; 7 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC777Upgradeable.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.1 (interfaces/IERC777.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../token/ERC777/IERC777Upgradeable.sol"; 7 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/interfaces/IERC1820Registry.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.1 (interfaces/IERC1820Registry.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../utils/introspection/IERC1820Registry.sol"; 7 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/interfaces/IERC721Metadata.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.1 (interfaces/IERC721Metadata.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../token/ERC721/extensions/IERC721Metadata.sol"; 7 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165MissingData.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity ^0.8.0; 4 | 5 | contract ERC165MissingData { 6 | function supportsInterface(bytes4 interfaceId) public view {} // missing return 7 | } 8 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].txt_Files/IMG_4465-C8F12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].txt_Files/IMG_4465-C8F12.png -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1155Upgradeable.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.1 (interfaces/IERC1155.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../token/ERC1155/IERC1155Upgradeable.sol"; 7 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC165Upgradeable.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.1 (interfaces/IERC165.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../utils/introspection/IERC165Upgradeable.sol"; 7 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/interfaces/IERC721Enumerable.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.1 (interfaces/IERC721Enumerable.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../token/ERC721/extensions/IERC721Enumerable.sol"; 7 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/IMG_4465-C8F12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/IMG_4465-C8F12.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/popcat-wen-BA4D6.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/popcat-wen-BA4D6.mp4 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/where-you-D2EF9.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/where-you-D2EF9.mp4 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].txt_Files/popcat-wen-0C105.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].txt_Files/popcat-wen-0C105.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].txt_Files/where-you-B9BEE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].txt_Files/where-you-B9BEE.png -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/certora/specs/methods/IOwnable2Step.spec: -------------------------------------------------------------------------------- 1 | methods { 2 | owner() returns (address) envfree 3 | pendingOwner() returns (address) envfree 4 | transferOwnership(address) 5 | acceptOwnership() 6 | renounceOwnership() 7 | } 8 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "lib/forge-std"] 2 | branch = v1 3 | path = lib/forge-std 4 | url = https://github.com/foundry-rs/forge-std 5 | [submodule "lib/erc4626-tests"] 6 | path = lib/erc4626-tests 7 | url = https://github.com/a16z/erc4626-tests.git 8 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/interfaces/IERC1820Implementer.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.1 (interfaces/IERC1820Implementer.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../utils/introspection/IERC1820Implementer.sol"; 7 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/interfaces/IERC3156.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.1 (interfaces/IERC3156.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "./IERC3156FlashBorrower.sol"; 7 | import "./IERC3156FlashLender.sol"; 8 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/kid-thinking-ECAAB.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/kid-thinking-ECAAB.mp4 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/soon-hamster-A2DEF.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/soon-hamster-A2DEF.mp4 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].txt_Files/kid-thinking-BFE96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].txt_Files/kid-thinking-BFE96.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].txt_Files/soon-hamster-D08BD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].txt_Files/soon-hamster-D08BD.png -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/interfaces/IERC1155MetadataURI.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.1 (interfaces/IERC1155MetadataURI.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../token/ERC1155/extensions/IERC1155MetadataURI.sol"; 7 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/counting-money-21572.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/counting-money-21572.mp4 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/waiting-titanic-684B8.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/waiting-titanic-684B8.mp4 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].txt_Files/counting-money-B7EC2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].txt_Files/counting-money-B7EC2.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].txt_Files/tv-shows-annoyed-DB3F9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].txt_Files/tv-shows-annoyed-DB3F9.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].txt_Files/waiting-titanic-965AB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].txt_Files/waiting-titanic-965AB.png -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC777SenderUpgradeable.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.1 (interfaces/IERC777Sender.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../token/ERC777/IERC777SenderUpgradeable.sol"; 7 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/.codecov.yml: -------------------------------------------------------------------------------- 1 | comment: off 2 | github_checks: 3 | annotations: false 4 | coverage: 5 | status: 6 | patch: 7 | default: 8 | target: 95% 9 | only_pulls: true 10 | project: 11 | default: 12 | threshold: 1% 13 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/certora/harnesses/OwnableHarness.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity ^0.8.0; 4 | 5 | import "../patched/access/Ownable.sol"; 6 | 7 | contract OwnableHarness is Ownable { 8 | function restricted() external onlyOwner {} 9 | } 10 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/test/TESTING.md: -------------------------------------------------------------------------------- 1 | ## Testing 2 | 3 | Unit test are critical to OpenZeppelin Contracts. They help ensure code quality and mitigate against security vulnerabilities. The directory structure within the `/test` directory corresponds to the `/contracts` directory. 4 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/1f3fb-E58B7.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/1f3fc-4884A.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/tv-shows-annoyed-CF311.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/tv-shows-annoyed-CF311.mp4 -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "lib/forge-std"] 2 | branch = v1 3 | path = lib/forge-std 4 | url = https://github.com/foundry-rs/forge-std 5 | [submodule "lib/erc4626-tests"] 6 | path = lib/erc4626-tests 7 | url = https://github.com/a16z/erc4626-tests.git 8 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC721ReceiverUpgradeable.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.1 (interfaces/IERC721Receiver.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../token/ERC721/IERC721ReceiverUpgradeable.sol"; 7 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC777RecipientUpgradeable.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.1 (interfaces/IERC777Recipient.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../token/ERC777/IERC777RecipientUpgradeable.sol"; 7 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/mocks/token/ERC20MulticallMock.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity ^0.8.0; 4 | 5 | import "../../token/ERC20/ERC20.sol"; 6 | import "../../utils/Multicall.sol"; 7 | 8 | abstract contract ERC20MulticallMock is ERC20, Multicall {} 9 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/1080667809002037320-8957D.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/1080667809002037320-8957D.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/1083068770823721071-EE4F6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/1083068770823721071-EE4F6.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/588197188199252006-F53D1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/588197188199252006-F53D1.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/851893826846457866-1AD3D.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/851893826846457866-1AD3D.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/851893827027075142-F23DF.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/851893827027075142-F23DF.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/851893827035725825-8ED59.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/851893827035725825-8ED59.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/851893827089727568-5FD38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/851893827089727568-5FD38.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/851893827315826708-F59C0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/851893827315826708-F59C0.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/851893827442442280-31B9F.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/851893827442442280-31B9F.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/977133670429261884-CA8EA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/977133670429261884-CA8EA.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/ggsans-italic-400-E988B.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/ggsans-italic-400-E988B.woff2 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/ggsans-italic-500-0777F.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/ggsans-italic-500-0777F.woff2 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/ggsans-italic-600-CB411.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/ggsans-italic-600-CB411.woff2 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/ggsans-italic-700-891AC.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/ggsans-italic-700-891AC.woff2 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/ggsans-italic-800-D36B0.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/ggsans-italic-800-D36B0.woff2 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/ggsans-normal-400-1456D.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/ggsans-normal-400-1456D.woff2 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/ggsans-normal-500-89CE5.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/ggsans-normal-500-89CE5.woff2 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/ggsans-normal-600-C1EA8.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/ggsans-normal-600-C1EA8.woff2 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/ggsans-normal-700-1949A.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/ggsans-normal-700-1949A.woff2 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/ggsans-normal-800-58487.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/ggsans-normal-800-58487.woff2 -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/.codecov.yml: -------------------------------------------------------------------------------- 1 | comment: off 2 | github_checks: 3 | annotations: false 4 | coverage: 5 | status: 6 | patch: 7 | default: 8 | target: 95% 9 | only_pulls: true 10 | project: 11 | default: 12 | threshold: 1% 13 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1155ReceiverUpgradeable.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.1 (interfaces/IERC1155Receiver.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../token/ERC1155/IERC1155ReceiverUpgradeable.sol"; 7 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC20MetadataUpgradeable.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.1 (interfaces/IERC20Metadata.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../token/ERC20/extensions/IERC20MetadataUpgradeable.sol"; 7 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/test/TESTING.md: -------------------------------------------------------------------------------- 1 | ## Testing 2 | 3 | Unit test are critical to OpenZeppelin Contracts. They help ensure code quality and mitigate against security vulnerabilities. The directory structure within the `/test` directory corresponds to the `/contracts` directory. 4 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/scripts/release/version.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -euo pipefail 4 | 5 | changeset version 6 | 7 | scripts/release/format-changelog.js 8 | scripts/release/synchronize-versions.js 9 | scripts/release/update-comment.js 10 | 11 | oz-docs update-version 12 | -------------------------------------------------------------------------------- /contracts/external/lido/ILidoToken.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity 0.8.19; 3 | 4 | interface ILidoToken { 5 | function getBeaconStat() 6 | external 7 | view 8 | returns (uint256 depositedValidators, uint256 beaconValidators, uint256 beaconBalance); 9 | } 10 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].txt_Files/dudu-cry-hay-nako-reika-64469.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].txt_Files/dudu-cry-hay-nako-reika-64469.png -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/certora/harnesses/OwnableHarness.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity ^0.8.0; 4 | 5 | import "../patched/access/Ownable.sol"; 6 | 7 | contract OwnableHarness is Ownable { 8 | function restricted() external onlyOwner {} 9 | } 10 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1820RegistryUpgradeable.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.1 (interfaces/IERC1820Registry.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../utils/introspection/IERC1820RegistryUpgradeable.sol"; 7 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC721MetadataUpgradeable.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.1 (interfaces/IERC721Metadata.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../token/ERC721/extensions/IERC721MetadataUpgradeable.sol"; 7 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/crosschain/errors.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts (last updated v4.6.0) (crosschain/errors.sol) 3 | 4 | pragma solidity ^0.8.4; 5 | 6 | error NotCrossChainCall(); 7 | error InvalidCrossChainSender(address actual, address expected); 8 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/metatx/README.adoc: -------------------------------------------------------------------------------- 1 | = Meta Transactions 2 | 3 | [.readme-notice] 4 | NOTE: This document is better viewed at https://docs.openzeppelin.com/contracts/api/metatx 5 | 6 | == Core 7 | 8 | {{ERC2771Context}} 9 | 10 | == Utils 11 | 12 | {{MinimalForwarder}} 13 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/dudu-cry-hay-nako-reika-9F48A.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/dudu-cry-hay-nako-reika-9F48A.mp4 -------------------------------------------------------------------------------- /forge/script/Counter.s.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: UNLICENSED 2 | pragma solidity ^0.8.13; 3 | 4 | import "forge-std/Script.sol"; 5 | 6 | contract CounterScript is Script { 7 | function setUp() public {} 8 | 9 | function run() public { 10 | vm.broadcast(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC721EnumerableUpgradeable.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.1 (interfaces/IERC721Enumerable.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../token/ERC721/extensions/IERC721EnumerableUpgradeable.sol"; 7 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/certora/harnesses/Ownable2StepHarness.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity ^0.8.0; 4 | 5 | import "../patched/access/Ownable2Step.sol"; 6 | 7 | contract Ownable2StepHarness is Ownable2Step { 8 | function restricted() external onlyOwner {} 9 | } 10 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/certora/specs/methods/IAccessControl.spec: -------------------------------------------------------------------------------- 1 | methods { 2 | hasRole(bytes32, address) returns(bool) envfree 3 | getRoleAdmin(bytes32) returns(bytes32) envfree 4 | grantRole(bytes32, address) 5 | revokeRole(bytes32, address) 6 | renounceRole(bytes32, address) 7 | } 8 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/mocks/token/ERC20ExcessDecimalsMock.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity ^0.8.0; 4 | 5 | contract ERC20ExcessDecimalsMock { 6 | function decimals() public pure returns (uint256) { 7 | return type(uint256).max; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/how-dare-you-screaming-lady-9646C.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/how-dare-you-screaming-lady-9646C.mp4 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].txt_Files/how-dare-you-screaming-lady-A2003.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].txt_Files/how-dare-you-screaming-lady-A2003.png -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1820ImplementerUpgradeable.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.1 (interfaces/IERC1820Implementer.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../utils/introspection/IERC1820ImplementerUpgradeable.sol"; 7 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/contracts/metatx/README.adoc: -------------------------------------------------------------------------------- 1 | = Meta Transactions 2 | 3 | [.readme-notice] 4 | NOTE: This document is better viewed at https://docs.openzeppelin.com/contracts/api/metatx 5 | 6 | == Core 7 | 8 | {{ERC2771Context}} 9 | 10 | == Utils 11 | 12 | {{MinimalForwarder}} 13 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/scripts/release/version.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -euo pipefail 4 | 5 | changeset version 6 | 7 | scripts/release/format-changelog.js 8 | scripts/release/synchronize-versions.js 9 | scripts/release/update-comment.js 10 | 11 | oz-docs update-version 12 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/interfaces/IERC2612.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC2612.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../token/ERC20/extensions/IERC20Permit.sol"; 7 | 8 | interface IERC2612 is IERC20Permit {} 9 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/certora/specs/methods/IAccessControl.spec: -------------------------------------------------------------------------------- 1 | methods { 2 | hasRole(bytes32, address) returns(bool) envfree 3 | getRoleAdmin(bytes32) returns(bytes32) envfree 4 | grantRole(bytes32, address) 5 | revokeRole(bytes32, address) 6 | renounceRole(bytes32, address) 7 | } 8 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1155MetadataURIUpgradeable.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.1 (interfaces/IERC1155MetadataURI.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../token/ERC1155/extensions/IERC1155MetadataURIUpgradeable.sol"; 7 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 120, 3 | "singleQuote": true, 4 | "trailingComma": "all", 5 | "arrowParens": "avoid", 6 | "overrides": [ 7 | { 8 | "files": "*.sol", 9 | "options": { 10 | "singleQuote": false 11 | } 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/000ac5363e3f6dbccf99b0e7a27d2d3a-E863B.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/000ac5363e3f6dbccf99b0e7a27d2d3a-E863B.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/00228663602fb46de464e9ee2fbfad9c-5DBEB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/00228663602fb46de464e9ee2fbfad9c-5DBEB.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/05d0501f278247d31dc24aab71d597d5-F7D75.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/05d0501f278247d31dc24aab71d597d5-F7D75.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/07158b76e34c74f71b4876b66b9dff50-D54F0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/07158b76e34c74f71b4876b66b9dff50-D54F0.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/0ab6fddedfdca4dee0b54ab41ab4faad-3EFDA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/0ab6fddedfdca4dee0b54ab41ab4faad-3EFDA.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/0dd6255142c84dcc6ec663458ed3fda9-E98D2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/0dd6255142c84dcc6ec663458ed3fda9-E98D2.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/108db4db43a8df92fb224ce27c8419ec-5A94A.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/108db4db43a8df92fb224ce27c8419ec-5A94A.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/12b1cd82ae01e1b8c6e500f018ad4b73-E8E85.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/12b1cd82ae01e1b8c6e500f018ad4b73-E8E85.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/14f8cbc620b0a89c2a11ca8deace58eb-DA2D1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/14f8cbc620b0a89c2a11ca8deace58eb-DA2D1.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/15cdaa10c5644d913a1ab1f9f06288c1-8A82B.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/15cdaa10c5644d913a1ab1f9f06288c1-8A82B.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/1628fc11e7961d85181295493426b775-7E20F.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/1628fc11e7961d85181295493426b775-7E20F.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/1c4a80121deeb5d2fdd1654a720538b4-2A197.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/1c4a80121deeb5d2fdd1654a720538b4-2A197.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/250ab6d8024fd889b64e57da579af3ef-988E0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/250ab6d8024fd889b64e57da579af3ef-988E0.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/258a1ffc46d9e9c3872ad643ab9b4bd5-EE2DC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/258a1ffc46d9e9c3872ad643ab9b4bd5-EE2DC.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/25c2064c61832f99da8ae540b3d0001a-8D043.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/25c2064c61832f99da8ae540b3d0001a-8D043.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/2a9faff195fe333526cfe6ae6fce1420-49B98.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/2a9faff195fe333526cfe6ae6fce1420-49B98.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/2c1e18acbcb9cdaeabfd7fc6f5090edf-CA387.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/2c1e18acbcb9cdaeabfd7fc6f5090edf-CA387.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/2de2bcb6fe2e5617e1d3dd4c56a5a8f1-DE975.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/2de2bcb6fe2e5617e1d3dd4c56a5a8f1-DE975.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/3509c87444456234b909af7a35509580-77C1F.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/3509c87444456234b909af7a35509580-77C1F.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/39c2d6dc79b0521285b055c21dcdfe93-C76FE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/39c2d6dc79b0521285b055c21dcdfe93-C76FE.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/402b68164a51455e395a06ad04fc04b5-D7A38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/402b68164a51455e395a06ad04fc04b5-D7A38.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/407f6dcef34069853b9ca2321a06fb98-1DD94.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/407f6dcef34069853b9ca2321a06fb98-1DD94.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/4155d983056d861c045620cf8e11d612-A5980.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/4155d983056d861c045620cf8e11d612-A5980.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/453eac052c6c6b7a61d2f55848c5bdc6-FCF15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/453eac052c6c6b7a61d2f55848c5bdc6-FCF15.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/47a90c36a9d5ab41d808ed4927e2d160-09864.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/47a90c36a9d5ab41d808ed4927e2d160-09864.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/4ab2406667fe4b7443bf50983abffd58-40A7F.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/4ab2406667fe4b7443bf50983abffd58-40A7F.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/50bd8deba6527b5c796a9b33197754dc-A7667.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/50bd8deba6527b5c796a9b33197754dc-A7667.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/514d83db5e503f5a33fd3f790d42d452-555FF.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/514d83db5e503f5a33fd3f790d42d452-555FF.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/5445ffd7ffb201a98393cbdf684ea4b1-FF0A0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/5445ffd7ffb201a98393cbdf684ea4b1-FF0A0.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/593f36e88b1657d978d620f5152eca82-52AEA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/593f36e88b1657d978d620f5152eca82-52AEA.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/599667a9bd34d1211af25019e6da7fa4-6667B.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/599667a9bd34d1211af25019e6da7fa4-6667B.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/5b71d15a9bcde45fd5520e3fb580eb53-E1A50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/5b71d15a9bcde45fd5520e3fb580eb53-E1A50.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/5e3fb61df91ed29c573265a690af4600-E824E.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/5e3fb61df91ed29c573265a690af4600-E824E.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/5fd4eaf3a92a63920dfe6c4e8175c1df-7264A.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/5fd4eaf3a92a63920dfe6c4e8175c1df-7264A.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/6094e48ab77eb87fae4e3348c0d872b4-34FEF.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/6094e48ab77eb87fae4e3348c0d872b4-34FEF.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/6329524d9a9a84434050006ef362f18a-0C556.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/6329524d9a9a84434050006ef362f18a-0C556.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/66c54ad6b6c2224e66ef8148ab5b7bcc-9BDF6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/66c54ad6b6c2224e66ef8148ab5b7bcc-9BDF6.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/67594ee4b4d1fc03bca468327a0d145b-BD76A.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/67594ee4b4d1fc03bca468327a0d145b-BD76A.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/69f62d716a18efe5a880b067a0c01710-53265.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/69f62d716a18efe5a880b067a0c01710-53265.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/701300a5bdd3bf5640bd1370251533e2-0DC47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/701300a5bdd3bf5640bd1370251533e2-0DC47.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/71476c06d19018237b44456792b216cf-F281B.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/71476c06d19018237b44456792b216cf-F281B.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/722858dd7f149d9c482133b6487e6ffa-CC24E.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/722858dd7f149d9c482133b6487e6ffa-CC24E.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/751f210cd76b9b17316bb54ff939887b-0B021.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/751f210cd76b9b17316bb54ff939887b-0B021.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/80b63b8eef8e8e0bef63af4cd4598430-39256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/80b63b8eef8e8e0bef63af4cd4598430-39256.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/8230f476eec54d0f43d90d66df912139-9C1D4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/8230f476eec54d0f43d90d66df912139-9C1D4.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/8441d5e9fe1fd4c074797db4578a0b54-66B22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/8441d5e9fe1fd4c074797db4578a0b54-66B22.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/860bc8415fcb344bebcf89a301158ffd-36A89.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/860bc8415fcb344bebcf89a301158ffd-36A89.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/8646f8b4f073429bf27df27459ab18a2-F6800.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/8646f8b4f073429bf27df27459ab18a2-F6800.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/8c6129305f7cfbc60d0e2c052bc22211-CC381.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/8c6129305f7cfbc60d0e2c052bc22211-CC381.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/9220a9ff683f654eaf5151b8663e8b53-22007.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/9220a9ff683f654eaf5151b8663e8b53-22007.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/9542a3c6a8ce011c16ce81d61dc908f9-F344E.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/9542a3c6a8ce011c16ce81d61dc908f9-F344E.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/970d2e2f00cd7ef2134a1a3f21326349-404EA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/970d2e2f00cd7ef2134a1a3f21326349-404EA.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/9b01adfea5eb85ed7f3fc2c94c3592c8-E96F4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/9b01adfea5eb85ed7f3fc2c94c3592c8-E96F4.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/9b64b35b6e372d499cb21ff145de301e-6E451.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/9b64b35b6e372d499cb21ff145de301e-6E451.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/a0457d118b6579a0106b86d86660fd78-D29A1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/a0457d118b6579a0106b86d86660fd78-D29A1.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/a15d1fd903ebf135e19766fdf040a280-46865.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/a15d1fd903ebf135e19766fdf040a280-46865.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/a4781d16f553953c32982f7090379dab-82161.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/a4781d16f553953c32982f7090379dab-82161.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/aa3584c2ce5b338f4758e69aec19637c-72010.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/aa3584c2ce5b338f4758e69aec19637c-72010.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/ab8a4984f6e5f9a8197047c4cfa62ec1-654F2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/ab8a4984f6e5f9a8197047c4cfa62ec1-654F2.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/b2680abf1970a250b052bbd6059a1b24-B7522.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/b2680abf1970a250b052bbd6059a1b24-B7522.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/b4fead77f737aa7840a25e1cd39eb062-CEDEC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/b4fead77f737aa7840a25e1cd39eb062-CEDEC.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/b5c5564bbdaa22a1e2d459e9bf6aef5a-B3AC0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/b5c5564bbdaa22a1e2d459e9bf6aef5a-B3AC0.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/b8676351c64c465016196367cbff9901-0DC19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/b8676351c64c465016196367cbff9901-0DC19.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/bd6e705b7e22db04232dfaaf530eee5f-A1D9E.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/bd6e705b7e22db04232dfaaf530eee5f-A1D9E.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/c2468d8d0f40ab01d5dc01d07d2cf760-8FD6B.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/c2468d8d0f40ab01d5dc01d07d2cf760-8FD6B.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/c616e441e02fbf7f8f4594b17761c02c-768C2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/c616e441e02fbf7f8f4594b17761c02c-768C2.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/c6b85a4a6ca07ab15a30a24f570be5b8-6C020.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/c6b85a4a6ca07ab15a30a24f570be5b8-6C020.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/c6d26a3e68c59bd84c235cce3ad37904-87D0A.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/c6d26a3e68c59bd84c235cce3ad37904-87D0A.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/c8582808c3d6e596a73294c8b1ded7e8-7A679.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/c8582808c3d6e596a73294c8b1ded7e8-7A679.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/c894b6c4af55a46fb2d1aef0cd4cf6b0-27286.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/c894b6c4af55a46fb2d1aef0cd4cf6b0-27286.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/c9cb30134c634c9e02d0c64df4922803-98E33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/c9cb30134c634c9e02d0c64df4922803-98E33.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/ccb73a5017c683a41087f52a84c389da-4578D.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/ccb73a5017c683a41087f52a84c389da-4578D.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/d136675562368c0c346cc5b0b6d7357f-E2435.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/d136675562368c0c346cc5b0b6d7357f-E2435.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/d352b5d64239648acbeb7b6f310df0b8-E875A.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/d352b5d64239648acbeb7b6f310df0b8-E875A.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/d4b3590ea4349f36f3b9b71c4d408d60-B73C4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/d4b3590ea4349f36f3b9b71c4d408d60-B73C4.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/d5a5211a980b21f9a45f9588e01be6b6-B0E43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/d5a5211a980b21f9a45f9588e01be6b6-B0E43.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/d9fa0ae50d731854d342f81d679964af-D6B3D.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/d9fa0ae50d731854d342f81d679964af-D6B3D.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/dc6e0072c993da12b699bb569417b6d1-25F7D.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/dc6e0072c993da12b699bb569417b6d1-25F7D.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/e99436ce7f263d3f7b6d999b8921abbf-BAFA9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/e99436ce7f263d3f7b6d999b8921abbf-BAFA9.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/eacfed25facb875e3340fc96efe82381-ABE0D.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/eacfed25facb875e3340fc96efe82381-ABE0D.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/ec29e162c99a502f591715e569811ab5-4EBC6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/ec29e162c99a502f591715e569811ab5-4EBC6.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/ec2bcb7830d93aed7b07ee0d3a51e605-19997.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/ec2bcb7830d93aed7b07ee0d3a51e605-19997.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/ece049bda85fdcdb08ba4595daf9e38a-48509.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/ece049bda85fdcdb08ba4595daf9e38a-48509.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/ed4484ef66c898526d51a3b65936c2ff-6B4AE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/ed4484ef66c898526d51a3b65936c2ff-6B4AE.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/f3289e295a19f229403199a736a9ec88-EFDB4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/f3289e295a19f229403199a736a9ec88-EFDB4.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/f72c5f6eae5af3197504f447d8d59688-3515E.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/f72c5f6eae5af3197504f447d8d59688-3515E.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/f8ee3d74786e5ca83e77844ce1b50a9f-E20FE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/f8ee3d74786e5ca83e77844ce1b50a9f-E20FE.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/fd61dd1a8ad38e5b2b9264a9ef490dd2-D1976.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/fd61dd1a8ad38e5b2b9264a9ef490dd2-D1976.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].txt_Files/Screenshot_2023-11-30_at_16.48.00-BB75C.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].txt_Files/Screenshot_2023-11-30_at_16.48.00-BB75C.png -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/certora/harnesses/Ownable2StepHarness.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity ^0.8.0; 4 | 5 | import "../patched/access/Ownable2Step.sol"; 6 | 7 | contract Ownable2StepHarness is Ownable2Step { 8 | function restricted() external onlyOwner {} 9 | } 10 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC3156Upgradeable.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.1 (interfaces/IERC3156.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "./IERC3156FlashBorrowerUpgradeable.sol"; 7 | import "./IERC3156FlashLenderUpgradeable.sol"; 8 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/interfaces/draft-IERC2612.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts (last updated v4.9.0) (interfaces/draft-IERC2612.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | // EIP-2612 is Final as of 2022-11-01. This file is deprecated. 7 | 8 | import "./IERC2612.sol"; 9 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/test/helpers/chainid.js: -------------------------------------------------------------------------------- 1 | const hre = require('hardhat'); 2 | 3 | async function getChainId() { 4 | const chainIdHex = await hre.network.provider.send('eth_chainId', []); 5 | return new hre.web3.utils.BN(chainIdHex, 'hex'); 6 | } 7 | 8 | module.exports = { 9 | getChainId, 10 | }; 11 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/Screenshot_2023-11-30_at_16.48.00-BB75C.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/Screenshot_2023-11-30_at_16.48.00-BB75C.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/mental-health-mental-health-crisis-B36E0.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/mental-health-mental-health-crisis-B36E0.mp4 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].txt_Files/mental-health-mental-health-crisis-E620E.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2023-10-ethena/HEAD/discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].txt_Files/mental-health-mental-health-crisis-E620E.png -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/contracts/crosschain/errorsUpgradeable.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts (last updated v4.6.0) (crosschain/errors.sol) 3 | 4 | pragma solidity ^0.8.4; 5 | 6 | error NotCrossChainCall(); 7 | error InvalidCrossChainSender(address actual, address expected); 8 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 120, 3 | "singleQuote": true, 4 | "trailingComma": "all", 5 | "arrowParens": "avoid", 6 | "overrides": [ 7 | { 8 | "files": "*.sol", 9 | "options": { 10 | "singleQuote": false 11 | } 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/mocks/proxy/BadBeacon.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity ^0.8.0; 4 | 5 | contract BadBeaconNoImpl {} 6 | 7 | contract BadBeaconNotContract { 8 | function implementation() external pure returns (address) { 9 | return address(0x1); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts (last updated v4.8.0) (utils/cryptography/draft-EIP712.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | // EIP-712 is Final as of 2022-08-11. This file is deprecated. 7 | 8 | import "./EIP712.sol"; 9 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/scripts/release/workflow/rerun.js: -------------------------------------------------------------------------------- 1 | module.exports = ({ github, context }) => 2 | github.rest.actions.createWorkflowDispatch({ 3 | owner: context.repo.owner, 4 | repo: context.repo.repo, 5 | workflow_id: 'release-cycle.yml', 6 | ref: process.env.REF || process.env.GITHUB_REF_NAME, 7 | }); 8 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/test/helpers/chainid.js: -------------------------------------------------------------------------------- 1 | const hre = require('hardhat'); 2 | 3 | async function getChainId() { 4 | const chainIdHex = await hre.network.provider.send('eth_chainId', []); 5 | return new hre.web3.utils.BN(chainIdHex, 'hex'); 6 | } 7 | 8 | module.exports = { 9 | getChainId, 10 | }; 11 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/interfaces/IERC5805.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC5805.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../governance/utils/IVotes.sol"; 7 | import "./IERC6372.sol"; 8 | 9 | interface IERC5805 is IERC6372, IVotes {} 10 | -------------------------------------------------------------------------------- /forge/src/Counter.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: UNLICENSED 2 | pragma solidity ^0.8.13; 3 | 4 | contract Counter { 5 | uint256 public number; 6 | 7 | function setNumber(uint256 newNumber) public { 8 | number = newNumber; 9 | } 10 | 11 | function increment() public { 12 | number++; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/scripts/release/workflow/rerun.js: -------------------------------------------------------------------------------- 1 | module.exports = ({ github, context }) => 2 | github.rest.actions.createWorkflowDispatch({ 3 | owner: context.repo.owner, 4 | repo: context.repo.repo, 5 | workflow_id: 'release-cycle.yml', 6 | ref: process.env.REF || process.env.GITHUB_REF_NAME, 7 | }); 8 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/certora/specs/methods/IERC2612.spec: -------------------------------------------------------------------------------- 1 | methods { 2 | permit(address,address,uint256,uint256,uint8,bytes32,bytes32) => DISPATCHER(true) 3 | nonces(address) returns (uint256) envfree => DISPATCHER(true) 4 | DOMAIN_SEPARATOR() returns (bytes32) envfree => DISPATCHER(true) 5 | } 6 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/2795-3358E.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC2612Upgradeable.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts (last updated v4.9.0) (interfaces/draft-IERC2612.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | // EIP-2612 is Final as of 2022-11-01. This file is deprecated. 7 | 8 | import "./IERC2612Upgradeable.sol"; 9 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-ERC20Permit.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/extensions/draft-ERC20Permit.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | // EIP-2612 is Final as of 2022-11-01. This file is deprecated. 7 | 8 | import "./ERC20Permit.sol"; 9 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/extensions/draft-IERC20Permit.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | // EIP-2612 is Final as of 2022-11-01. This file is deprecated. 7 | 8 | import "./IERC20Permit.sol"; 9 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/certora/specs/methods/IERC2612.spec: -------------------------------------------------------------------------------- 1 | methods { 2 | permit(address,address,uint256,uint256,uint8,bytes32,bytes32) => DISPATCHER(true) 3 | nonces(address) returns (uint256) envfree => DISPATCHER(true) 4 | DOMAIN_SEPARATOR() returns (bytes32) envfree => DISPATCHER(true) 5 | } 6 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/certora/specs/methods/IERC3156.spec: -------------------------------------------------------------------------------- 1 | methods { 2 | maxFlashLoan(address) returns (uint256) envfree => DISPATCHER(true) 3 | flashFee(address,uint256) returns (uint256) envfree => DISPATCHER(true) 4 | flashLoan(address,address,uint256,bytes) returns (bool) => DISPATCHER(true) 5 | } 6 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC2612Upgradeable.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC2612.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../token/ERC20/extensions/IERC20PermitUpgradeable.sol"; 7 | 8 | interface IERC2612Upgradeable is IERC20PermitUpgradeable {} 9 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/draft-EIP712Upgradeable.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts (last updated v4.8.0) (utils/cryptography/draft-EIP712.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | // EIP-712 is Final as of 2022-08-11. This file is deprecated. 7 | 8 | import "./EIP712Upgradeable.sol"; 9 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/.changeset/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://unpkg.com/@changesets/config@2.3.0/schema.json", 3 | "changelog": [ 4 | "@changesets/changelog-github", 5 | { 6 | "repo": "OpenZeppelin/openzeppelin-contracts" 7 | } 8 | ], 9 | "commit": false, 10 | "access": "public", 11 | "baseBranch": "master" 12 | } 13 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/mocks/AccessControlCrossChainMock.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity ^0.8.4; 4 | 5 | import "../access/AccessControlCrossChain.sol"; 6 | import "../crosschain/arbitrum/CrossChainEnabledArbitrumL2.sol"; 7 | 8 | contract AccessControlCrossChainMock is AccessControlCrossChain, CrossChainEnabledArbitrumL2 {} 9 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/hardhat/skip-foundry-tests.js: -------------------------------------------------------------------------------- 1 | const { subtask } = require('hardhat/config'); 2 | const { TASK_COMPILE_SOLIDITY_GET_SOURCE_PATHS } = require('hardhat/builtin-tasks/task-names'); 3 | 4 | subtask(TASK_COMPILE_SOLIDITY_GET_SOURCE_PATHS).setAction(async (_, __, runSuper) => 5 | (await runSuper()).filter(path => !path.endsWith('.t.sol')), 6 | ); 7 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/scripts/prepack.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -euo pipefail 4 | shopt -s globstar 5 | 6 | # cross platform `mkdir -p` 7 | node -e 'fs.mkdirSync("build/contracts", { recursive: true })' 8 | 9 | cp artifacts/contracts/**/*.json build/contracts 10 | rm build/contracts/*.dbg.json 11 | 12 | node scripts/remove-ignored-artifacts.js 13 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/1f1f3-1f1ec-22AE2.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /lib/forge-std/lib/ds-test/Makefile: -------------------------------------------------------------------------------- 1 | all:; dapp build 2 | 3 | test: 4 | -dapp --use solc:0.4.23 build 5 | -dapp --use solc:0.4.26 build 6 | -dapp --use solc:0.5.17 build 7 | -dapp --use solc:0.6.12 build 8 | -dapp --use solc:0.7.5 build 9 | 10 | demo: 11 | DAPP_SRC=demo dapp --use solc:0.7.5 build 12 | -hevm dapp-test --verbose 3 13 | 14 | .PHONY: test demo 15 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/certora/specs/methods/IERC3156.spec: -------------------------------------------------------------------------------- 1 | methods { 2 | maxFlashLoan(address) returns (uint256) envfree => DISPATCHER(true) 3 | flashFee(address,uint256) returns (uint256) envfree => DISPATCHER(true) 4 | flashLoan(address,address,uint256,bytes) returns (bool) => DISPATCHER(true) 5 | } 6 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/.solcover.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | norpc: true, 3 | testCommand: 'npm test', 4 | compileCommand: 'npm run compile', 5 | skipFiles: ['mocks'], 6 | providerOptions: { 7 | default_balance_ether: '10000000000000000000000000', 8 | }, 9 | mocha: { 10 | fgrep: '[skip-on-coverage]', 11 | invert: true, 12 | }, 13 | }; 14 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/token/common/README.adoc: -------------------------------------------------------------------------------- 1 | = Common (Tokens) 2 | 3 | Functionality that is common to multiple token standards. 4 | 5 | * {ERC2981}: NFT Royalties compatible with both ERC721 and ERC1155. 6 | ** For ERC721 consider {ERC721Royalty} which clears the royalty information from storage on burn. 7 | 8 | == Contracts 9 | 10 | {{ERC2981}} 11 | -------------------------------------------------------------------------------- /remappings.txt: -------------------------------------------------------------------------------- 1 | ds-test/=lib/forge-std/lib/ds-test/src/ 2 | forge-std/=lib/forge-std/src/ 3 | @openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/ 4 | @openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/ 5 | @aave/core-v3=lib/aave-v3-core/ 6 | @bgd-helpers=lib/aave-helpers/src/ 7 | solidity-utils/=lib/aave-helpers/lib/solidity-utils/src/ -------------------------------------------------------------------------------- /forge/lib/forge-std/lib/ds-test/Makefile: -------------------------------------------------------------------------------- 1 | all:; dapp build 2 | 3 | test: 4 | -dapp --use solc:0.4.23 build 5 | -dapp --use solc:0.4.26 build 6 | -dapp --use solc:0.5.17 build 7 | -dapp --use solc:0.6.12 build 8 | -dapp --use solc:0.7.5 build 9 | 10 | demo: 11 | DAPP_SRC=demo dapp --use solc:0.7.5 build 12 | -hevm dapp-test --verbose 3 13 | 14 | .PHONY: test demo 15 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/.changeset/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://unpkg.com/@changesets/config@2.3.0/schema.json", 3 | "changelog": [ 4 | "@changesets/changelog-github", 5 | { 6 | "repo": "OpenZeppelin/openzeppelin-contracts" 7 | } 8 | ], 9 | "commit": false, 10 | "access": "public", 11 | "baseBranch": "master" 12 | } 13 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/hardhat/skip-foundry-tests.js: -------------------------------------------------------------------------------- 1 | const { subtask } = require('hardhat/config'); 2 | const { TASK_COMPILE_SOLIDITY_GET_SOURCE_PATHS } = require('hardhat/builtin-tasks/task-names'); 3 | 4 | subtask(TASK_COMPILE_SOLIDITY_GET_SOURCE_PATHS).setAction(async (_, __, runSuper) => 5 | (await runSuper()).filter(path => !path.endsWith('.t.sol')), 6 | ); 7 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/.solcover.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | norpc: true, 3 | testCommand: 'npm test', 4 | compileCommand: 'npm run compile', 5 | skipFiles: ['mocks'], 6 | providerOptions: { 7 | default_balance_ether: '10000000000000000000000000', 8 | }, 9 | mocha: { 10 | fgrep: '[skip-on-coverage]', 11 | invert: true, 12 | }, 13 | }; 14 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-ERC20PermitUpgradeable.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/extensions/draft-ERC20Permit.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | // EIP-2612 is Final as of 2022-11-01. This file is deprecated. 7 | 8 | import "./ERC20PermitUpgradeable.sol"; 9 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/scripts/prepack.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -euo pipefail 4 | shopt -s globstar 5 | 6 | # cross platform `mkdir -p` 7 | node -e 'fs.mkdirSync("build/contracts", { recursive: true })' 8 | 9 | cp artifacts/contracts/**/*.json build/contracts 10 | rm build/contracts/*.dbg.json 11 | 12 | node scripts/remove-ignored-artifacts.js 13 | -------------------------------------------------------------------------------- /contracts/interfaces/IERC20Events.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity 0.8.19; 4 | 5 | /** 6 | * @dev Interface of the ERC20 standard events only. 7 | */ 8 | interface IERC20Events { 9 | event Transfer(address indexed from, address indexed to, uint256 value); 10 | event Approval(address indexed owner, address indexed spender, uint256 value); 11 | } 12 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/extensions/draft-IERC20Permit.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | // EIP-2612 is Final as of 2022-11-01. This file is deprecated. 7 | 8 | import "./IERC20PermitUpgradeable.sol"; 9 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/contracts/token/common/README.adoc: -------------------------------------------------------------------------------- 1 | = Common (Tokens) 2 | 3 | Functionality that is common to multiple token standards. 4 | 5 | * {ERC2981}: NFT Royalties compatible with both ERC721 and ERC1155. 6 | ** For ERC721 consider {ERC721Royalty} which clears the royalty information from storage on burn. 7 | 8 | == Contracts 9 | 10 | {{ERC2981}} 11 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/vendor/polygon/IFxMessageProcessor.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts (last updated v4.9.0) (vendor/polygon/IFxMessageProcessor.sol) 3 | pragma solidity ^0.8.0; 4 | 5 | interface IFxMessageProcessor { 6 | function processMessageFromRoot(uint256 stateId, address rootMessageSender, bytes calldata data) external; 7 | } 8 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/test/utils/introspection/ERC165.test.js: -------------------------------------------------------------------------------- 1 | const { shouldSupportInterfaces } = require('./SupportsInterface.behavior'); 2 | 3 | const ERC165 = artifacts.require('$ERC165'); 4 | 5 | contract('ERC165', function () { 6 | beforeEach(async function () { 7 | this.mock = await ERC165.new(); 8 | }); 9 | 10 | shouldSupportInterfaces(['ERC165']); 11 | }); 12 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/test/utils/introspection/ERC165.test.js: -------------------------------------------------------------------------------- 1 | const { shouldSupportInterfaces } = require('./SupportsInterface.behavior'); 2 | 3 | const ERC165 = artifacts.require('$ERC165'); 4 | 5 | contract('ERC165', function () { 6 | beforeEach(async function () { 7 | this.mock = await ERC165.new(); 8 | }); 9 | 10 | shouldSupportInterfaces(['ERC165']); 11 | }); 12 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/Makefile: -------------------------------------------------------------------------------- 1 | all:; dapp build 2 | 3 | test: 4 | -dapp --use solc:0.4.23 build 5 | -dapp --use solc:0.4.26 build 6 | -dapp --use solc:0.5.17 build 7 | -dapp --use solc:0.6.12 build 8 | -dapp --use solc:0.7.5 build 9 | 10 | demo: 11 | DAPP_SRC=demo dapp --use solc:0.7.5 build 12 | -hevm dapp-test --verbose 3 13 | 14 | .PHONY: test demo 15 | -------------------------------------------------------------------------------- /contracts/interfaces/ISingleAdminAccessControl.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity 0.8.19; 3 | 4 | interface ISingleAdminAccessControl { 5 | error InvalidAdminChange(); 6 | error NotPendingAdmin(); 7 | 8 | event AdminTransferred(address indexed oldAdmin, address indexed newAdmin); 9 | event AdminTransferRequested(address indexed oldAdmin, address indexed newAdmin); 10 | } 11 | -------------------------------------------------------------------------------- /contracts/interfaces/archive/IChainlinkV3Aggregator.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity 0.8.19; 3 | 4 | interface IChainlinkV3Aggregator { 5 | function decimals() external view returns (uint8); 6 | 7 | function latestRoundData() 8 | external 9 | view 10 | returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound); 11 | } 12 | -------------------------------------------------------------------------------- /contracts/interfaces/archive/IWETH.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity 0.8.10; 3 | 4 | import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; 5 | import "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; 6 | 7 | interface IWETH is IERC20, IERC20Metadata { 8 | function deposit() external payable; 9 | 10 | function withdraw(uint256 wad) external; 11 | } 12 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/Makefile: -------------------------------------------------------------------------------- 1 | all:; dapp build 2 | 3 | test: 4 | -dapp --use solc:0.4.23 build 5 | -dapp --use solc:0.4.26 build 6 | -dapp --use solc:0.5.17 build 7 | -dapp --use solc:0.6.12 build 8 | -dapp --use solc:0.7.5 build 9 | 10 | demo: 11 | DAPP_SRC=demo dapp --use solc:0.7.5 build 12 | -hevm dapp-test --verbose 3 13 | 14 | .PHONY: test demo 15 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/test/helpers/create2.js: -------------------------------------------------------------------------------- 1 | function computeCreate2Address(saltHex, bytecode, deployer) { 2 | return web3.utils.toChecksumAddress( 3 | `0x${web3.utils 4 | .sha3(`0x${['ff', deployer, saltHex, web3.utils.soliditySha3(bytecode)].map(x => x.replace(/0x/, '')).join('')}`) 5 | .slice(-40)}`, 6 | ); 7 | } 8 | 9 | module.exports = { 10 | computeCreate2Address, 11 | }; 12 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC5805Upgradeable.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC5805.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../governance/utils/IVotesUpgradeable.sol"; 7 | import "./IERC6372Upgradeable.sol"; 8 | 9 | interface IERC5805Upgradeable is IERC6372Upgradeable, IVotesUpgradeable {} 10 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/contracts/vendor/polygon/IFxMessageProcessorUpgradeable.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts (last updated v4.9.0) (vendor/polygon/IFxMessageProcessor.sol) 3 | pragma solidity ^0.8.0; 4 | 5 | interface IFxMessageProcessorUpgradeable { 6 | function processMessageFromRoot(uint256 stateId, address rootMessageSender, bytes calldata data) external; 7 | } 8 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/test/helpers/create2.js: -------------------------------------------------------------------------------- 1 | function computeCreate2Address(saltHex, bytecode, deployer) { 2 | return web3.utils.toChecksumAddress( 3 | `0x${web3.utils 4 | .sha3(`0x${['ff', deployer, saltHex, web3.utils.soliditySha3(bytecode)].map(x => x.replace(/0x/, '')).join('')}`) 5 | .slice(-40)}`, 6 | ); 7 | } 8 | 9 | module.exports = { 10 | computeCreate2Address, 11 | }; 12 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/mocks/token/ERC777Mock.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity ^0.8.0; 4 | 5 | import "../../token/ERC777/ERC777.sol"; 6 | 7 | abstract contract ERC777Mock is ERC777 { 8 | event BeforeTokenTransfer(); 9 | 10 | function _beforeTokenTransfer(address, address, address, uint256) internal override { 11 | emit BeforeTokenTransfer(); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /contracts/interfaces/archive/IPriceOracleAggregator.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity 0.8.19; 3 | 4 | import "./IOracle.sol"; 5 | 6 | interface IPriceOracleAggregator { 7 | event UpdateOracle(address token, IOracle oracle); 8 | 9 | function updateOracleForAsset(address _asset, IOracle _oracle) external; 10 | 11 | function viewPriceInUSD(address _token) external view returns (uint256); 12 | } 13 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/mocks/ReentrancyAttack.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity ^0.8.0; 4 | 5 | import "../utils/Context.sol"; 6 | 7 | contract ReentrancyAttack is Context { 8 | function callSender(bytes4 data) public { 9 | (bool success, ) = _msgSender().call(abi.encodeWithSelector(data)); 10 | require(success, "ReentrancyAttack: failed call"); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/token/ERC721/extensions/draft-ERC721Votes.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts (last updated v4.8.0) (token/ERC721/extensions/draft-ERC721Votes.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | // ERC721Votes was marked as draft due to the EIP-712 dependency. 7 | // EIP-712 is Final as of 2022-08-11. This file is deprecated. 8 | 9 | import "./ERC721Votes.sol"; 10 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/1f62e-FE396.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165MaliciousData.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity ^0.8.0; 4 | 5 | contract ERC165MaliciousData { 6 | function supportsInterface(bytes4) public pure returns (bool) { 7 | assembly { 8 | mstore(0, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) 9 | return(0, 32) 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/certora/harnesses/ERC721ReceiverHarness.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity ^0.8.0; 4 | 5 | import "../patched/interfaces/IERC721Receiver.sol"; 6 | 7 | contract ERC721ReceiverHarness is IERC721Receiver { 8 | function onERC721Received(address, address, uint256, bytes calldata) external pure returns (bytes4) { 9 | return this.onERC721Received.selector; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/certora/harnesses/ERC721ReceiverHarness.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity ^0.8.0; 4 | 5 | import "../patched/interfaces/IERC721Receiver.sol"; 6 | 7 | contract ERC721ReceiverHarness is IERC721Receiver { 8 | function onERC721Received(address, address, uint256, bytes calldata) external pure returns (bytes4) { 9 | return this.onERC721Received.selector; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: Bug Reports & Feature Requests 4 | url: https://github.com/OpenZeppelin/openzeppelin-contracts/issues/new/choose 5 | about: Visit the OpenZeppelin Contracts repository 6 | - name: Questions & Support Requests 7 | url: https://forum.openzeppelin.com/c/support/contracts/18 8 | about: Ask in the OpenZeppelin Forum 9 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig is awesome: https://EditorConfig.org 2 | 3 | # top-most EditorConfig file 4 | root = true 5 | 6 | [*] 7 | charset = utf-8 8 | end_of_line = lf 9 | indent_style = space 10 | insert_final_newline = true 11 | trim_trailing_whitespace = false 12 | max_line_length = 120 13 | 14 | [*.sol] 15 | indent_size = 4 16 | 17 | [*.js] 18 | indent_size = 2 19 | 20 | [*.{adoc,md}] 21 | max_line_length = 0 22 | -------------------------------------------------------------------------------- /turbo.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["//"], 3 | "pipeline": { 4 | "build": { 5 | "outputs": ["typechain/**/*", "artifacts/**/*"], 6 | "dependsOn": ["^build"], 7 | "cache": true 8 | }, 9 | "check": { 10 | "dependsOn": ["^build"], 11 | "cache": false 12 | }, 13 | "node": { 14 | "dependsOn": ["build"], 15 | "outputs": ["deployments/**/*"], 16 | "persistent": true 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/2764-A3D25.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/mocks/EtherReceiverMock.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity ^0.8.0; 4 | 5 | contract EtherReceiverMock { 6 | bool private _acceptEther; 7 | 8 | function setAcceptEther(bool acceptEther) public { 9 | _acceptEther = acceptEther; 10 | } 11 | 12 | receive() external payable { 13 | if (!_acceptEther) { 14 | revert(); 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /lib/forge-std/lib/ds-test/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ds-test", 3 | "version": "1.0.0", 4 | "description": "Assertions, equality checks and other test helpers ", 5 | "bugs": "https://github.com/dapphub/ds-test/issues", 6 | "license": "GPL-3.0", 7 | "author": "Contributors to ds-test", 8 | "files": [ 9 | "src/*" 10 | ], 11 | "repository": { 12 | "type": "git", 13 | "url": "https://github.com/dapphub/ds-test.git" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig is awesome: https://EditorConfig.org 2 | 3 | # top-most EditorConfig file 4 | root = true 5 | 6 | [*] 7 | charset = utf-8 8 | end_of_line = lf 9 | indent_style = space 10 | insert_final_newline = true 11 | trim_trailing_whitespace = false 12 | max_line_length = 120 13 | 14 | [*.sol] 15 | indent_size = 4 16 | 17 | [*.js] 18 | indent_size = 2 19 | 20 | [*.{adoc,md}] 21 | max_line_length = 0 22 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/draft-ERC721VotesUpgradeable.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts (last updated v4.8.0) (token/ERC721/extensions/draft-ERC721Votes.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | // ERC721Votes was marked as draft due to the EIP-712 dependency. 7 | // EIP-712 is Final as of 2022-08-11. This file is deprecated. 8 | 9 | import "./ERC721VotesUpgradeable.sol"; 10 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "extends" : [ 4 | "eslint:recommended", 5 | "prettier", 6 | ], 7 | "env": { 8 | "es2022": true, 9 | "browser": true, 10 | "node": true, 11 | "mocha": true, 12 | }, 13 | "globals" : { 14 | "artifacts": "readonly", 15 | "contract": "readonly", 16 | "web3": "readonly", 17 | "extendEnvironment": "readonly", 18 | "expect": "readonly", 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/hardhat/env-contract.js: -------------------------------------------------------------------------------- 1 | extendEnvironment(env => { 2 | const { contract } = env; 3 | 4 | env.contract = function (name, body) { 5 | // remove the default account from the accounts list used in tests, in order 6 | // to protect tests against accidentally passing due to the contract 7 | // deployer being used subsequently as function caller 8 | contract(name, accounts => body(accounts.slice(1))); 9 | }; 10 | }); 11 | -------------------------------------------------------------------------------- /contracts/external/lido/ILidoOracle.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity 0.8.19; 3 | 4 | interface ILidoOracle { 5 | function getExpectedEpochId() external view returns (uint256); 6 | 7 | function getQuorum() external view returns (uint256); 8 | 9 | function getOracleMembers() external view returns (address[] memory); 10 | 11 | function reportBeacon(uint256 _epochId, uint64 _beaconBalances, uint32 _beaconValidators) external; 12 | } 13 | -------------------------------------------------------------------------------- /forge/lib/forge-std/lib/ds-test/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ds-test", 3 | "version": "1.0.0", 4 | "description": "Assertions, equality checks and other test helpers ", 5 | "bugs": "https://github.com/dapphub/ds-test/issues", 6 | "license": "GPL-3.0", 7 | "author": "Contributors to ds-test", 8 | "files": [ 9 | "src/*" 10 | ], 11 | "repository": { 12 | "type": "git", 13 | "url": "https://github.com/dapphub/ds-test.git" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/certora/harnesses/TimelockControllerHarness.sol: -------------------------------------------------------------------------------- 1 | pragma solidity ^0.8.0; 2 | 3 | import "../patched/governance/TimelockController.sol"; 4 | 5 | contract TimelockControllerHarness is TimelockController { 6 | constructor( 7 | uint256 minDelay, 8 | address[] memory proposers, 9 | address[] memory executors, 10 | address admin 11 | ) TimelockController(minDelay, proposers, executors, admin) {} 12 | } 13 | -------------------------------------------------------------------------------- /contracts/external/convex/IVirtualBalanceRewardPool.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-3.0 2 | pragma solidity 0.8.19; 3 | 4 | interface IVirtualBalanceRewardPool { 5 | function getReward(address) external; 6 | 7 | function getReward() external; 8 | 9 | function balanceOf(address) external view returns (uint256); 10 | 11 | function earned(address) external view returns (uint256); 12 | 13 | function rewardToken() external view returns (address); 14 | } 15 | -------------------------------------------------------------------------------- /lib/forge-std/test/compilation/CompilationTest.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity >=0.6.2 <0.9.0; 3 | 4 | pragma experimental ABIEncoderV2; 5 | 6 | import "../../src/Test.sol"; 7 | 8 | // The purpose of this contract is to benchmark compilation time to avoid accidentally introducing 9 | // a change that results in very long compilation times with via-ir. See https://github.com/foundry-rs/forge-std/issues/207 10 | contract CompilationTest is Test {} 11 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "extends" : [ 4 | "eslint:recommended", 5 | "prettier", 6 | ], 7 | "env": { 8 | "es2022": true, 9 | "browser": true, 10 | "node": true, 11 | "mocha": true, 12 | }, 13 | "globals" : { 14 | "artifacts": "readonly", 15 | "contract": "readonly", 16 | "web3": "readonly", 17 | "extendEnvironment": "readonly", 18 | "expect": "readonly", 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/certora/harnesses/TimelockControllerHarness.sol: -------------------------------------------------------------------------------- 1 | pragma solidity ^0.8.0; 2 | 3 | import "../patched/governance/TimelockController.sol"; 4 | 5 | contract TimelockControllerHarness is TimelockController { 6 | constructor( 7 | uint256 minDelay, 8 | address[] memory proposers, 9 | address[] memory executors, 10 | address admin 11 | ) TimelockController(minDelay, proposers, executors, admin) {} 12 | } 13 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/hardhat/env-contract.js: -------------------------------------------------------------------------------- 1 | extendEnvironment(env => { 2 | const { contract } = env; 3 | 4 | env.contract = function (name, body) { 5 | // remove the default account from the accounts list used in tests, in order 6 | // to protect tests against accidentally passing due to the contract 7 | // deployer being used subsequently as function caller 8 | contract(name, accounts => body(accounts.slice(1))); 9 | }; 10 | }); 11 | -------------------------------------------------------------------------------- /forge/lib/forge-std/test/compilation/CompilationTest.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity >=0.6.2 <0.9.0; 3 | 4 | pragma experimental ABIEncoderV2; 5 | 6 | import "../../src/Test.sol"; 7 | 8 | // The purpose of this contract is to benchmark compilation time to avoid accidentally introducing 9 | // a change that results in very long compilation times with via-ir. See https://github.com/foundry-rs/forge-std/issues/207 10 | contract CompilationTest is Test {} 11 | -------------------------------------------------------------------------------- /lib/forge-std/test/compilation/CompilationScript.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity >=0.6.2 <0.9.0; 3 | 4 | pragma experimental ABIEncoderV2; 5 | 6 | import "../../src/Script.sol"; 7 | 8 | // The purpose of this contract is to benchmark compilation time to avoid accidentally introducing 9 | // a change that results in very long compilation times with via-ir. See https://github.com/foundry-rs/forge-std/issues/207 10 | contract CompilationScript is Script {} 11 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/test/helpers/enums.js: -------------------------------------------------------------------------------- 1 | const { BN } = require('@openzeppelin/test-helpers'); 2 | 3 | function Enum(...options) { 4 | return Object.fromEntries(options.map((key, i) => [key, new BN(i)])); 5 | } 6 | 7 | module.exports = { 8 | Enum, 9 | ProposalState: Enum('Pending', 'Active', 'Canceled', 'Defeated', 'Succeeded', 'Queued', 'Expired', 'Executed'), 10 | VoteType: Enum('Against', 'For', 'Abstain'), 11 | Rounding: Enum('Down', 'Up', 'Zero'), 12 | }; 13 | -------------------------------------------------------------------------------- /lib/forge-std/test/compilation/CompilationTestBase.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity >=0.6.2 <0.9.0; 3 | 4 | pragma experimental ABIEncoderV2; 5 | 6 | import "../../src/Test.sol"; 7 | 8 | // The purpose of this contract is to benchmark compilation time to avoid accidentally introducing 9 | // a change that results in very long compilation times with via-ir. See https://github.com/foundry-rs/forge-std/issues/207 10 | contract CompilationTestBase is TestBase {} 11 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/mocks/PullPaymentMock.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity ^0.8.0; 4 | 5 | import "../security/PullPayment.sol"; 6 | 7 | // mock class using PullPayment 8 | contract PullPaymentMock is PullPayment { 9 | constructor() payable {} 10 | 11 | // test helper function to call asyncTransfer 12 | function callTransfer(address dest, uint256 amount) public { 13 | _asyncTransfer(dest, amount); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ds-test", 3 | "version": "1.0.0", 4 | "description": "Assertions, equality checks and other test helpers ", 5 | "bugs": "https://github.com/dapphub/ds-test/issues", 6 | "license": "GPL-3.0", 7 | "author": "Contributors to ds-test", 8 | "files": [ 9 | "src/*" 10 | ], 11 | "repository": { 12 | "type": "git", 13 | "url": "https://github.com/dapphub/ds-test.git" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /forge/lib/forge-std/test/compilation/CompilationScript.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity >=0.6.2 <0.9.0; 3 | 4 | pragma experimental ABIEncoderV2; 5 | 6 | import "../../src/Script.sol"; 7 | 8 | // The purpose of this contract is to benchmark compilation time to avoid accidentally introducing 9 | // a change that results in very long compilation times with via-ir. See https://github.com/foundry-rs/forge-std/issues/207 10 | contract CompilationScript is Script {} 11 | -------------------------------------------------------------------------------- /forge/lib/forge-std/test/compilation/CompilationTestBase.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity >=0.6.2 <0.9.0; 3 | 4 | pragma experimental ABIEncoderV2; 5 | 6 | import "../../src/Test.sol"; 7 | 8 | // The purpose of this contract is to benchmark compilation time to avoid accidentally introducing 9 | // a change that results in very long compilation times with via-ir. See https://github.com/foundry-rs/forge-std/issues/207 10 | contract CompilationTestBase is TestBase {} 11 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/.solhint.json: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | "no-unused-vars": "error", 4 | "const-name-snakecase": "error", 5 | "contract-name-camelcase": "error", 6 | "event-name-camelcase": "error", 7 | "func-name-mixedcase": "error", 8 | "func-param-name-mixedcase": "error", 9 | "modifier-name-mixedcase": "error", 10 | "private-vars-leading-underscore": "error", 11 | "var-name-mixedcase": "error", 12 | "imports-on-top": "error" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/scripts/prepare-contracts-package.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # cd to the root of the repo 4 | cd "$(git rev-parse --show-toplevel)" 5 | 6 | # avoids re-compilation during publishing of both packages 7 | if [[ ! -v ALREADY_COMPILED ]]; then 8 | npm run clean 9 | npm run prepare 10 | npm run prepack 11 | fi 12 | 13 | cp README.md contracts/ 14 | mkdir contracts/build contracts/build/contracts 15 | cp -r build/contracts/*.json contracts/build/contracts 16 | -------------------------------------------------------------------------------- /lib/forge-std/test/compilation/CompilationScriptBase.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity >=0.6.2 <0.9.0; 3 | 4 | pragma experimental ABIEncoderV2; 5 | 6 | import "../../src/Script.sol"; 7 | 8 | // The purpose of this contract is to benchmark compilation time to avoid accidentally introducing 9 | // a change that results in very long compilation times with via-ir. See https://github.com/foundry-rs/forge-std/issues/207 10 | contract CompilationScriptBase is ScriptBase {} 11 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ds-test", 3 | "version": "1.0.0", 4 | "description": "Assertions, equality checks and other test helpers ", 5 | "bugs": "https://github.com/dapphub/ds-test/issues", 6 | "license": "GPL-3.0", 7 | "author": "Contributors to ds-test", 8 | "files": [ 9 | "src/*" 10 | ], 11 | "repository": { 12 | "type": "git", 13 | "url": "https://github.com/dapphub/ds-test.git" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/test/helpers/enums.js: -------------------------------------------------------------------------------- 1 | const { BN } = require('@openzeppelin/test-helpers'); 2 | 3 | function Enum(...options) { 4 | return Object.fromEntries(options.map((key, i) => [key, new BN(i)])); 5 | } 6 | 7 | module.exports = { 8 | Enum, 9 | ProposalState: Enum('Pending', 'Active', 'Canceled', 'Defeated', 'Succeeded', 'Queued', 'Expired', 'Executed'), 10 | VoteType: Enum('Against', 'For', 'Abstain'), 11 | Rounding: Enum('Down', 'Up', 'Zero'), 12 | }; 13 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/mocks/token/ERC20DecimalsMock.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity ^0.8.0; 4 | 5 | import "../../token/ERC20/ERC20.sol"; 6 | 7 | abstract contract ERC20DecimalsMock is ERC20 { 8 | uint8 private immutable _decimals; 9 | 10 | constructor(uint8 decimals_) { 11 | _decimals = decimals_; 12 | } 13 | 14 | function decimals() public view override returns (uint8) { 15 | return _decimals; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/test/utils/escrow/Escrow.test.js: -------------------------------------------------------------------------------- 1 | require('@openzeppelin/test-helpers'); 2 | const { shouldBehaveLikeEscrow } = require('./Escrow.behavior'); 3 | 4 | const Escrow = artifacts.require('Escrow'); 5 | 6 | contract('Escrow', function (accounts) { 7 | const [owner, ...otherAccounts] = accounts; 8 | 9 | beforeEach(async function () { 10 | this.escrow = await Escrow.new({ from: owner }); 11 | }); 12 | 13 | shouldBehaveLikeEscrow(owner, otherAccounts); 14 | }); 15 | -------------------------------------------------------------------------------- /forge/lib/forge-std/test/compilation/CompilationScriptBase.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity >=0.6.2 <0.9.0; 3 | 4 | pragma experimental ABIEncoderV2; 5 | 6 | import "../../src/Script.sol"; 7 | 8 | // The purpose of this contract is to benchmark compilation time to avoid accidentally introducing 9 | // a change that results in very long compilation times with via-ir. See https://github.com/foundry-rs/forge-std/issues/207 10 | contract CompilationScriptBase is ScriptBase {} 11 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/certora/harnesses/ERC3156FlashBorrowerHarness.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | import "../patched/interfaces/IERC3156FlashBorrower.sol"; 4 | 5 | pragma solidity ^0.8.0; 6 | 7 | contract ERC3156FlashBorrowerHarness is IERC3156FlashBorrower { 8 | bytes32 somethingToReturn; 9 | 10 | function onFlashLoan(address, address, uint256, uint256, bytes calldata) external view override returns (bytes32) { 11 | return somethingToReturn; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/lib/forge-std/test/compilation/CompilationTest.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity >=0.6.2 <0.9.0; 3 | 4 | pragma experimental ABIEncoderV2; 5 | 6 | import "../../src/Test.sol"; 7 | 8 | // The purpose of this contract is to benchmark compilation time to avoid accidentally introducing 9 | // a change that results in very long compilation times with via-ir. See https://github.com/foundry-rs/forge-std/issues/207 10 | contract CompilationTest is Test {} 11 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/.solhint.json: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | "no-unused-vars": "error", 4 | "const-name-snakecase": "error", 5 | "contract-name-camelcase": "error", 6 | "event-name-camelcase": "error", 7 | "func-name-mixedcase": "error", 8 | "func-param-name-mixedcase": "error", 9 | "modifier-name-mixedcase": "error", 10 | "private-vars-leading-underscore": "error", 11 | "var-name-mixedcase": "error", 12 | "imports-on-top": "error" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/scripts/prepare-contracts-package.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # cd to the root of the repo 4 | cd "$(git rev-parse --show-toplevel)" 5 | 6 | # avoids re-compilation during publishing of both packages 7 | if [[ ! -v ALREADY_COMPILED ]]; then 8 | npm run clean 9 | npm run prepare 10 | npm run prepack 11 | fi 12 | 13 | cp README.md contracts/ 14 | mkdir contracts/build contracts/build/contracts 15 | cp -r build/contracts/*.json contracts/build/contracts 16 | -------------------------------------------------------------------------------- /contracts/interfaces/archive/IeETH.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-3.0 2 | pragma solidity ^0.8.0; 3 | 4 | import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; 5 | import "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; 6 | 7 | interface IeETH is IERC20, IERC20Metadata { 8 | function mint(address _to, uint256 _amount) external; 9 | 10 | function burn(address _from, uint256 _amount) external; 11 | 12 | function burnFrom(address account, uint256 amount) external; 13 | } 14 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/test/utils/escrow/Escrow.test.js: -------------------------------------------------------------------------------- 1 | require('@openzeppelin/test-helpers'); 2 | const { shouldBehaveLikeEscrow } = require('./Escrow.behavior'); 3 | 4 | const Escrow = artifacts.require('Escrow'); 5 | 6 | contract('Escrow', function (accounts) { 7 | const [owner, ...otherAccounts] = accounts; 8 | 9 | beforeEach(async function () { 10 | this.escrow = await Escrow.new({ from: owner }); 11 | }); 12 | 13 | shouldBehaveLikeEscrow(owner, otherAccounts); 14 | }); 15 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/.github/workflows/docs.yml: -------------------------------------------------------------------------------- 1 | name: Build Docs 2 | 3 | on: 4 | push: 5 | branches: [release-v*] 6 | 7 | permissions: 8 | contents: write 9 | 10 | jobs: 11 | build: 12 | runs-on: ubuntu-latest 13 | steps: 14 | - uses: actions/checkout@v3 15 | - name: Set up environment 16 | uses: ./.github/actions/setup 17 | - run: bash scripts/git-user-config.sh 18 | - run: node scripts/update-docs-branch.js 19 | - run: git push --all origin 20 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/mocks/ERC20Mock.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.8.0; 3 | 4 | import {ERC20} from "../token/ERC20/ERC20.sol"; 5 | 6 | contract ERC20Mock is ERC20 { 7 | constructor() ERC20("ERC20Mock", "E20M") {} 8 | 9 | function mint(address account, uint256 amount) external { 10 | _mint(account, amount); 11 | } 12 | 13 | function burn(address account, uint256 amount) external { 14 | _burn(account, amount); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/lib/forge-std/test/compilation/CompilationScript.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity >=0.6.2 <0.9.0; 3 | 4 | pragma experimental ABIEncoderV2; 5 | 6 | import "../../src/Script.sol"; 7 | 8 | // The purpose of this contract is to benchmark compilation time to avoid accidentally introducing 9 | // a change that results in very long compilation times with via-ir. See https://github.com/foundry-rs/forge-std/issues/207 10 | contract CompilationScript is Script {} 11 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/certora/harnesses/ERC3156FlashBorrowerHarness.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | import "../patched/interfaces/IERC3156FlashBorrower.sol"; 4 | 5 | pragma solidity ^0.8.0; 6 | 7 | contract ERC3156FlashBorrowerHarness is IERC3156FlashBorrower { 8 | bytes32 somethingToReturn; 9 | 10 | function onFlashLoan(address, address, uint256, uint256, bytes calldata) external view override returns (bytes32) { 11 | return somethingToReturn; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/lib/forge-std/test/compilation/CompilationTest.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity >=0.6.2 <0.9.0; 3 | 4 | pragma experimental ABIEncoderV2; 5 | 6 | import "../../src/Test.sol"; 7 | 8 | // The purpose of this contract is to benchmark compilation time to avoid accidentally introducing 9 | // a change that results in very long compilation times with via-ir. See https://github.com/foundry-rs/forge-std/issues/207 10 | contract CompilationTest is Test {} 11 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/mocks/token/ERC4626OffsetMock.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity ^0.8.0; 4 | 5 | import "../../token/ERC20/extensions/ERC4626.sol"; 6 | 7 | abstract contract ERC4626OffsetMock is ERC4626 { 8 | uint8 private immutable _offset; 9 | 10 | constructor(uint8 offset_) { 11 | _offset = offset_; 12 | } 13 | 14 | function _decimalsOffset() internal view virtual override returns (uint8) { 15 | return _offset; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/lib/forge-std/test/compilation/CompilationTestBase.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity >=0.6.2 <0.9.0; 3 | 4 | pragma experimental ABIEncoderV2; 5 | 6 | import "../../src/Test.sol"; 7 | 8 | // The purpose of this contract is to benchmark compilation time to avoid accidentally introducing 9 | // a change that results in very long compilation times with via-ir. See https://github.com/foundry-rs/forge-std/issues/207 10 | contract CompilationTestBase is TestBase {} 11 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/.github/workflows/docs.yml: -------------------------------------------------------------------------------- 1 | name: Build Docs 2 | 3 | on: 4 | push: 5 | branches: [release-v*] 6 | 7 | permissions: 8 | contents: write 9 | 10 | jobs: 11 | build: 12 | runs-on: ubuntu-latest 13 | steps: 14 | - uses: actions/checkout@v3 15 | - name: Set up environment 16 | uses: ./.github/actions/setup 17 | - run: bash scripts/git-user-config.sh 18 | - run: node scripts/update-docs-branch.js 19 | - run: git push --all origin 20 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/lib/forge-std/test/compilation/CompilationScript.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity >=0.6.2 <0.9.0; 3 | 4 | pragma experimental ABIEncoderV2; 5 | 6 | import "../../src/Script.sol"; 7 | 8 | // The purpose of this contract is to benchmark compilation time to avoid accidentally introducing 9 | // a change that results in very long compilation times with via-ir. See https://github.com/foundry-rs/forge-std/issues/207 10 | contract CompilationScript is Script {} 11 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/certora/diff/token_ERC721_ERC721.sol.patch: -------------------------------------------------------------------------------- 1 | --- token/ERC721/ERC721.sol 2023-03-07 10:48:47.736822221 +0100 2 | +++ token/ERC721/ERC721.sol 2023-03-09 19:49:39.669338673 +0100 3 | @@ -199,6 +199,11 @@ 4 | return _owners[tokenId]; 5 | } 6 | 7 | + // FV 8 | + function _getApproved(uint256 tokenId) internal view returns (address) { 9 | + return _tokenApprovals[tokenId]; 10 | + } 11 | + 12 | /** 13 | * @dev Returns whether `tokenId` exists. 14 | * 15 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/certora/harnesses/PausableHarness.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity ^0.8.0; 4 | 5 | import "../patched/security/Pausable.sol"; 6 | 7 | contract PausableHarness is Pausable { 8 | function pause() external { 9 | _pause(); 10 | } 11 | 12 | function unpause() external { 13 | _unpause(); 14 | } 15 | 16 | function onlyWhenPaused() external whenPaused {} 17 | 18 | function onlyWhenNotPaused() external whenNotPaused {} 19 | } 20 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/lib/forge-std/test/compilation/CompilationScriptBase.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity >=0.6.2 <0.9.0; 3 | 4 | pragma experimental ABIEncoderV2; 5 | 6 | import "../../src/Script.sol"; 7 | 8 | // The purpose of this contract is to benchmark compilation time to avoid accidentally introducing 9 | // a change that results in very long compilation times with via-ir. See https://github.com/foundry-rs/forge-std/issues/207 10 | contract CompilationScriptBase is ScriptBase {} 11 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/lib/forge-std/test/compilation/CompilationTestBase.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity >=0.6.2 <0.9.0; 3 | 4 | pragma experimental ABIEncoderV2; 5 | 6 | import "../../src/Test.sol"; 7 | 8 | // The purpose of this contract is to benchmark compilation time to avoid accidentally introducing 9 | // a change that results in very long compilation times with via-ir. See https://github.com/foundry-rs/forge-std/issues/207 10 | contract CompilationTestBase is TestBase {} 11 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/scripts/upgradeable/patch-save.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -euo pipefail 4 | 5 | DIRNAME="$(dirname -- "${BASH_SOURCE[0]}")" 6 | PATCH="$DIRNAME/upgradeable.patch" 7 | 8 | error() { 9 | echo Error: "$*" >&2 10 | exit 1 11 | } 12 | 13 | if ! git diff-files --quiet ":!$PATCH"; then 14 | error "Unstaged changes. Stage to include in patch or temporarily stash." 15 | fi 16 | 17 | git diff-index --cached --patch --output="$PATCH" HEAD 18 | git restore --staged --worktree ":!$PATCH" 19 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/certora/diff/token_ERC721_ERC721.sol.patch: -------------------------------------------------------------------------------- 1 | --- token/ERC721/ERC721.sol 2023-03-07 10:48:47.736822221 +0100 2 | +++ token/ERC721/ERC721.sol 2023-03-09 19:49:39.669338673 +0100 3 | @@ -199,6 +199,11 @@ 4 | return _owners[tokenId]; 5 | } 6 | 7 | + // FV 8 | + function _getApproved(uint256 tokenId) internal view returns (address) { 9 | + return _tokenApprovals[tokenId]; 10 | + } 11 | + 12 | /** 13 | * @dev Returns whether `tokenId` exists. 14 | * 15 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/certora/harnesses/PausableHarness.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity ^0.8.0; 4 | 5 | import "../patched/security/Pausable.sol"; 6 | 7 | contract PausableHarness is Pausable { 8 | function pause() external { 9 | _pause(); 10 | } 11 | 12 | function unpause() external { 13 | _unpause(); 14 | } 15 | 16 | function onlyWhenPaused() external whenPaused {} 17 | 18 | function onlyWhenNotPaused() external whenNotPaused {} 19 | } 20 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/lib/forge-std/test/compilation/CompilationScriptBase.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity >=0.6.2 <0.9.0; 3 | 4 | pragma experimental ABIEncoderV2; 5 | 6 | import "../../src/Script.sol"; 7 | 8 | // The purpose of this contract is to benchmark compilation time to avoid accidentally introducing 9 | // a change that results in very long compilation times with via-ir. See https://github.com/foundry-rs/forge-std/issues/207 10 | contract CompilationScriptBase is ScriptBase {} 11 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/scripts/upgradeable/patch-save.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -euo pipefail 4 | 5 | DIRNAME="$(dirname -- "${BASH_SOURCE[0]}")" 6 | PATCH="$DIRNAME/upgradeable.patch" 7 | 8 | error() { 9 | echo Error: "$*" >&2 10 | exit 1 11 | } 12 | 13 | if ! git diff-files --quiet ":!$PATCH"; then 14 | error "Unstaged changes. Stage to include in patch or temporarily stash." 15 | fi 16 | 17 | git diff-index --cached --patch --output="$PATCH" HEAD 18 | git restore --staged --worktree ":!$PATCH" 19 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/1f600-F7528.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/test/proxy/ERC1967/ERC1967Proxy.test.js: -------------------------------------------------------------------------------- 1 | const shouldBehaveLikeProxy = require('../Proxy.behaviour'); 2 | 3 | const ERC1967Proxy = artifacts.require('ERC1967Proxy'); 4 | 5 | contract('ERC1967Proxy', function (accounts) { 6 | const [proxyAdminOwner] = accounts; 7 | 8 | const createProxy = async function (implementation, _admin, initData, opts) { 9 | return ERC1967Proxy.new(implementation, initData, opts); 10 | }; 11 | 12 | shouldBehaveLikeProxy(createProxy, undefined, proxyAdminOwner); 13 | }); 14 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/scripts/generate/format-lines.js: -------------------------------------------------------------------------------- 1 | function formatLines(...lines) { 2 | return [...indentEach(0, lines)].join('\n') + '\n'; 3 | } 4 | 5 | function* indentEach(indent, lines) { 6 | for (const line of lines) { 7 | if (Array.isArray(line)) { 8 | yield* indentEach(indent + 1, line); 9 | } else { 10 | const padding = ' '.repeat(indent); 11 | yield* line.split('\n').map(subline => (subline === '' ? '' : padding + subline)); 12 | } 13 | } 14 | } 15 | 16 | module.exports = formatLines; 17 | -------------------------------------------------------------------------------- /slither.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "solc_remaps": [ 3 | "ds-test/=lib/forge-std/lib/ds-test/src/", 4 | "forge-std/=lib/forge-std/src/", 5 | "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/", 6 | "@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/", 7 | "@aave/core-v3=lib/aave-v3-core/", 8 | "@bgd-helpers=lib/aave-helpers/src/", 9 | "solidity-utils/=lib/aave-helpers/lib/solidity-utils/src/" 10 | ], 11 | "filter_paths": "(/test/|/script/|/forge/|/audit/|/lib/|)" 12 | } 13 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/1f50d-195C0.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/test/proxy/ERC1967/ERC1967Proxy.test.js: -------------------------------------------------------------------------------- 1 | const shouldBehaveLikeProxy = require('../Proxy.behaviour'); 2 | 3 | const ERC1967Proxy = artifacts.require('ERC1967Proxy'); 4 | 5 | contract('ERC1967Proxy', function (accounts) { 6 | const [proxyAdminOwner] = accounts; 7 | 8 | const createProxy = async function (implementation, _admin, initData, opts) { 9 | return ERC1967Proxy.new(implementation, initData, opts); 10 | }; 11 | 12 | shouldBehaveLikeProxy(createProxy, undefined, proxyAdminOwner); 13 | }); 14 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/scripts/upgradeable/patch-apply.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -euo pipefail 4 | 5 | DIRNAME="$(dirname -- "${BASH_SOURCE[0]}")" 6 | PATCH="$DIRNAME/upgradeable.patch" 7 | 8 | error() { 9 | echo Error: "$*" >&2 10 | exit 1 11 | } 12 | 13 | if ! git diff-files --quiet ":!$PATCH" || ! git diff-index --quiet HEAD ":!$PATCH"; then 14 | error "Repository must have no staged or unstaged changes" 15 | fi 16 | 17 | if ! git apply -3 "$PATCH"; then 18 | error "Fix conflicts and run $DIRNAME/patch-save.sh" 19 | fi 20 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/scripts/generate/format-lines.js: -------------------------------------------------------------------------------- 1 | function formatLines(...lines) { 2 | return [...indentEach(0, lines)].join('\n') + '\n'; 3 | } 4 | 5 | function* indentEach(indent, lines) { 6 | for (const line of lines) { 7 | if (Array.isArray(line)) { 8 | yield* indentEach(indent + 1, line); 9 | } else { 10 | const padding = ' '.repeat(indent); 11 | yield* line.split('\n').map(subline => (subline === '' ? '' : padding + subline)); 12 | } 13 | } 14 | } 15 | 16 | module.exports = formatLines; 17 | -------------------------------------------------------------------------------- /contracts/interfaces/IUSDeDefinitions.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-3.0 2 | pragma solidity 0.8.19; 3 | 4 | interface IUSDeDefinitions { 5 | /// @notice This event is fired when the minter changes 6 | event MinterUpdated(address indexed newMinter, address indexed oldMinter); 7 | 8 | /// @notice Zero address not allowed 9 | error ZeroAddressException(); 10 | /// @notice It's not possible to renounce the ownership 11 | error CantRenounceOwnership(); 12 | /// @notice Only the minter role can perform an action 13 | error OnlyMinter(); 14 | } 15 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/scripts/upgradeable/patch-apply.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -euo pipefail 4 | 5 | DIRNAME="$(dirname -- "${BASH_SOURCE[0]}")" 6 | PATCH="$DIRNAME/upgradeable.patch" 7 | 8 | error() { 9 | echo Error: "$*" >&2 10 | exit 1 11 | } 12 | 13 | if ! git diff-files --quiet ":!$PATCH" || ! git diff-index --quiet HEAD ":!$PATCH"; then 14 | error "Repository must have no staged or unstaged changes" 15 | fi 16 | 17 | if ! git apply -3 "$PATCH"; then 18 | error "Fix conflicts and run $DIRNAME/patch-save.sh" 19 | fi 20 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/.github/actions/setup/action.yml: -------------------------------------------------------------------------------- 1 | name: Setup 2 | 3 | runs: 4 | using: composite 5 | steps: 6 | - uses: actions/setup-node@v3 7 | with: 8 | node-version: 14.x 9 | - uses: actions/cache@v3 10 | id: cache 11 | with: 12 | path: '**/node_modules' 13 | key: npm-v3-${{ hashFiles('**/package-lock.json') }} 14 | - name: Install dependencies 15 | run: npm ci 16 | shell: bash 17 | if: steps.cache.outputs.cache-hit != 'true' 18 | env: 19 | SKIP_COMPILE: true 20 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/mocks/ERC4626Mock.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.8.0; 3 | 4 | import "../token/ERC20/extensions/ERC4626.sol"; 5 | 6 | contract ERC4626Mock is ERC4626 { 7 | constructor(address underlying) ERC20("ERC4626Mock", "E4626M") ERC4626(IERC20(underlying)) {} 8 | 9 | function mint(address account, uint256 amount) external { 10 | _mint(account, amount); 11 | } 12 | 13 | function burn(address account, uint256 amount) external { 14 | _burn(account, amount); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/2705-0589F.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/test/access/AccessControl.test.js: -------------------------------------------------------------------------------- 1 | const { DEFAULT_ADMIN_ROLE, shouldBehaveLikeAccessControl } = require('./AccessControl.behavior.js'); 2 | 3 | const AccessControl = artifacts.require('$AccessControl'); 4 | 5 | contract('AccessControl', function (accounts) { 6 | beforeEach(async function () { 7 | this.accessControl = await AccessControl.new({ from: accounts[0] }); 8 | await this.accessControl.$_grantRole(DEFAULT_ADMIN_ROLE, accounts[0]); 9 | }); 10 | 11 | shouldBehaveLikeAccessControl('AccessControl', ...accounts); 12 | }); 13 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.1 (proxy/beacon/IBeacon.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | /** 7 | * @dev This is the interface that {BeaconProxy} expects of its beacon. 8 | */ 9 | interface IBeacon { 10 | /** 11 | * @dev Must return an address that can be used as a delegate call target. 12 | * 13 | * {BeaconProxy} will check that this address is a contract. 14 | */ 15 | function implementation() external view returns (address); 16 | } 17 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/.github/actions/setup/action.yml: -------------------------------------------------------------------------------- 1 | name: Setup 2 | 3 | runs: 4 | using: composite 5 | steps: 6 | - uses: actions/setup-node@v3 7 | with: 8 | node-version: 14.x 9 | - uses: actions/cache@v3 10 | id: cache 11 | with: 12 | path: '**/node_modules' 13 | key: npm-v3-${{ hashFiles('**/package-lock.json') }} 14 | - name: Install dependencies 15 | run: npm ci 16 | shell: bash 17 | if: steps.cache.outputs.cache-hit != 'true' 18 | env: 19 | SKIP_COMPILE: true 20 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/test/token/ERC721/ERC721.test.js: -------------------------------------------------------------------------------- 1 | const { shouldBehaveLikeERC721, shouldBehaveLikeERC721Metadata } = require('./ERC721.behavior'); 2 | 3 | const ERC721 = artifacts.require('$ERC721'); 4 | 5 | contract('ERC721', function (accounts) { 6 | const name = 'Non Fungible Token'; 7 | const symbol = 'NFT'; 8 | 9 | beforeEach(async function () { 10 | this.token = await ERC721.new(name, symbol); 11 | }); 12 | 13 | shouldBehaveLikeERC721('ERC721', ...accounts); 14 | shouldBehaveLikeERC721Metadata('ERC721', name, symbol, ...accounts); 15 | }); 16 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/test/access/AccessControl.test.js: -------------------------------------------------------------------------------- 1 | const { DEFAULT_ADMIN_ROLE, shouldBehaveLikeAccessControl } = require('./AccessControl.behavior.js'); 2 | 3 | const AccessControl = artifacts.require('$AccessControl'); 4 | 5 | contract('AccessControl', function (accounts) { 6 | beforeEach(async function () { 7 | this.accessControl = await AccessControl.new({ from: accounts[0] }); 8 | await this.accessControl.$_grantRole(DEFAULT_ADMIN_ROLE, accounts[0]); 9 | }); 10 | 11 | shouldBehaveLikeAccessControl('AccessControl', ...accounts); 12 | }); 13 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165ReturnBomb.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity ^0.8.0; 4 | 5 | import "../../utils/introspection/IERC165.sol"; 6 | 7 | contract ERC165ReturnBombMock is IERC165 { 8 | function supportsInterface(bytes4 interfaceId) public pure override returns (bool) { 9 | if (interfaceId == type(IERC165).interfaceId) { 10 | assembly { 11 | mstore(0, 1) 12 | } 13 | } 14 | assembly { 15 | return(0, 101500) 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/test/token/ERC721/ERC721.test.js: -------------------------------------------------------------------------------- 1 | const { shouldBehaveLikeERC721, shouldBehaveLikeERC721Metadata } = require('./ERC721.behavior'); 2 | 3 | const ERC721 = artifacts.require('$ERC721'); 4 | 5 | contract('ERC721', function (accounts) { 6 | const name = 'Non Fungible Token'; 7 | const symbol = 'NFT'; 8 | 9 | beforeEach(async function () { 10 | this.token = await ERC721.new(name, symbol); 11 | }); 12 | 13 | shouldBehaveLikeERC721('ERC721', ...accounts); 14 | shouldBehaveLikeERC721Metadata('ERC721', name, symbol, ...accounts); 15 | }); 16 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for OpenZeppelin Contracts 4 | 5 | --- 6 | 7 | **🧐 Motivation** 8 | 9 | 10 | **📝 Details** 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/mocks/token/ERC721URIStorageMock.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity ^0.8.0; 4 | 5 | import "../../token/ERC721/extensions/ERC721URIStorage.sol"; 6 | 7 | abstract contract ERC721URIStorageMock is ERC721URIStorage { 8 | string private _baseTokenURI; 9 | 10 | function _baseURI() internal view virtual override returns (string memory) { 11 | return _baseTokenURI; 12 | } 13 | 14 | function setBaseURI(string calldata newBaseTokenURI) public { 15 | _baseTokenURI = newBaseTokenURI; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/scripts/release/workflow/integrity-check.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -euo pipefail 4 | 5 | CHECKSUMS="$RUNNER_TEMP/checksums.txt" 6 | 7 | # Extract tarball content into a tmp directory 8 | tar xf "$TARBALL" -C "$RUNNER_TEMP" 9 | 10 | # Move to extracted directory 11 | cd "$RUNNER_TEMP/package" 12 | 13 | # Checksum all Solidity files 14 | find . -type f -name "*.sol" | xargs shasum > "$CHECKSUMS" 15 | 16 | # Back to directory with git contents 17 | cd "$GITHUB_WORKSPACE/contracts" 18 | 19 | # Check against tarball contents 20 | shasum -c "$CHECKSUMS" 21 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/interfaces/IERC5313.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC5313.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | /** 7 | * @dev Interface for the Light Contract Ownership Standard. 8 | * 9 | * A standardized minimal interface required to identify an account that controls a contract 10 | * 11 | * _Available since v4.9._ 12 | */ 13 | interface IERC5313 { 14 | /** 15 | * @dev Gets the address of the owner. 16 | */ 17 | function owner() external view returns (address); 18 | } 19 | -------------------------------------------------------------------------------- /lib/forge-std/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "forge-std", 3 | "version": "1.5.3", 4 | "description": "Forge Standard Library is a collection of helpful contracts and libraries for use with Forge and Foundry.", 5 | "homepage": "https://book.getfoundry.sh/forge/forge-std", 6 | "bugs": "https://github.com/foundry-rs/forge-std/issues", 7 | "license": "(Apache-2.0 OR MIT)", 8 | "author": "Contributors to Forge Standard Library", 9 | "files": [ 10 | "src/**/*" 11 | ], 12 | "repository": { 13 | "type": "git", 14 | "url": "https://github.com/foundry-rs/forge-std.git" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/scripts/release/workflow/integrity-check.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -euo pipefail 4 | 5 | CHECKSUMS="$RUNNER_TEMP/checksums.txt" 6 | 7 | # Extract tarball content into a tmp directory 8 | tar xf "$TARBALL" -C "$RUNNER_TEMP" 9 | 10 | # Move to extracted directory 11 | cd "$RUNNER_TEMP/package" 12 | 13 | # Checksum all Solidity files 14 | find . -type f -name "*.sol" | xargs shasum > "$CHECKSUMS" 15 | 16 | # Back to directory with git contents 17 | cd "$GITHUB_WORKSPACE/contracts" 18 | 19 | # Check against tarball contents 20 | shasum -c "$CHECKSUMS" 21 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/certora/harnesses/ERC20PermitHarness.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity ^0.8.0; 4 | 5 | import "../patched/token/ERC20/extensions/ERC20Permit.sol"; 6 | 7 | contract ERC20PermitHarness is ERC20Permit { 8 | constructor(string memory name, string memory symbol) ERC20(name, symbol) ERC20Permit(name) {} 9 | 10 | function mint(address account, uint256 amount) external { 11 | _mint(account, amount); 12 | } 13 | 14 | function burn(address account, uint256 amount) external { 15 | _burn(account, amount); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/scripts/release/synchronize-versions.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | // Synchronizes the version in contracts/package.json with the one in package.json. 4 | // This is run automatically when npm version is run. 5 | 6 | const fs = require('fs'); 7 | 8 | setVersion('package.json', 'contracts/package.json'); 9 | 10 | function setVersion(from, to) { 11 | const fromJson = JSON.parse(fs.readFileSync(from)); 12 | const toJson = JSON.parse(fs.readFileSync(to)); 13 | toJson.version = fromJson.version; 14 | fs.writeFileSync(to, JSON.stringify(toJson, null, 2) + '\n'); 15 | } 16 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/1f488-DEA4B.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.1 (proxy/beacon/IBeacon.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | /** 7 | * @dev This is the interface that {BeaconProxy} expects of its beacon. 8 | */ 9 | interface IBeaconUpgradeable { 10 | /** 11 | * @dev Must return an address that can be used as a delegate call target. 12 | * 13 | * {BeaconProxy} will check that this address is a contract. 14 | */ 15 | function implementation() external view returns (address); 16 | } 17 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/mocks/token/ERC20ForceApproveMock.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity ^0.8.0; 4 | 5 | import "../../token/ERC20/ERC20.sol"; 6 | 7 | // contract that replicate USDT (0xdac17f958d2ee523a2206206994597c13d831ec7) approval beavior 8 | abstract contract ERC20ForceApproveMock is ERC20 { 9 | function approve(address spender, uint256 amount) public virtual override returns (bool) { 10 | require(amount == 0 || allowance(msg.sender, spender) == 0, "USDT approval failure"); 11 | return super.approve(spender, amount); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/test/utils/Context.test.js: -------------------------------------------------------------------------------- 1 | require('@openzeppelin/test-helpers'); 2 | 3 | const ContextMock = artifacts.require('ContextMock'); 4 | const ContextMockCaller = artifacts.require('ContextMockCaller'); 5 | 6 | const { shouldBehaveLikeRegularContext } = require('./Context.behavior'); 7 | 8 | contract('Context', function (accounts) { 9 | const [sender] = accounts; 10 | 11 | beforeEach(async function () { 12 | this.context = await ContextMock.new(); 13 | this.caller = await ContextMockCaller.new(); 14 | }); 15 | 16 | shouldBehaveLikeRegularContext(sender); 17 | }); 18 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/1f642-83E8A.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /forge/lib/forge-std/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "forge-std", 3 | "version": "1.5.6", 4 | "description": "Forge Standard Library is a collection of helpful contracts and libraries for use with Forge and Foundry.", 5 | "homepage": "https://book.getfoundry.sh/forge/forge-std", 6 | "bugs": "https://github.com/foundry-rs/forge-std/issues", 7 | "license": "(Apache-2.0 OR MIT)", 8 | "author": "Contributors to Forge Standard Library", 9 | "files": [ 10 | "src/**/*" 11 | ], 12 | "repository": { 13 | "type": "git", 14 | "url": "https://github.com/foundry-rs/forge-std.git" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/certora/harnesses/ERC20PermitHarness.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity ^0.8.0; 4 | 5 | import "../patched/token/ERC20/extensions/ERC20Permit.sol"; 6 | 7 | contract ERC20PermitHarness is ERC20Permit { 8 | constructor(string memory name, string memory symbol) ERC20(name, symbol) ERC20Permit(name) {} 9 | 10 | function mint(address account, uint256 amount) external { 11 | _mint(account, amount); 12 | } 13 | 14 | function burn(address account, uint256 amount) external { 15 | _burn(account, amount); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /lib/forge-std/src/interfaces/IERC165.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity >=0.6.2; 3 | 4 | interface IERC165 { 5 | /// @notice Query if a contract implements an interface 6 | /// @param interfaceID The interface identifier, as specified in ERC-165 7 | /// @dev Interface identification is specified in ERC-165. This function 8 | /// uses less than 30,000 gas. 9 | /// @return `true` if the contract implements `interfaceID` and 10 | /// `interfaceID` is not 0xffffffff, `false` otherwise 11 | function supportsInterface(bytes4 interfaceID) external view returns (bool); 12 | } 13 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/scripts/release/synchronize-versions.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | // Synchronizes the version in contracts/package.json with the one in package.json. 4 | // This is run automatically when npm version is run. 5 | 6 | const fs = require('fs'); 7 | 8 | setVersion('package.json', 'contracts/package.json'); 9 | 10 | function setVersion(from, to) { 11 | const fromJson = JSON.parse(fs.readFileSync(from)); 12 | const toJson = JSON.parse(fs.readFileSync(to)); 13 | toJson.version = fromJson.version; 14 | fs.writeFileSync(to, JSON.stringify(toJson, null, 2) + '\n'); 15 | } 16 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/test/utils/Context.test.js: -------------------------------------------------------------------------------- 1 | require('@openzeppelin/test-helpers'); 2 | 3 | const ContextMock = artifacts.require('ContextMock'); 4 | const ContextMockCaller = artifacts.require('ContextMockCaller'); 5 | 6 | const { shouldBehaveLikeRegularContext } = require('./Context.behavior'); 7 | 8 | contract('Context', function (accounts) { 9 | const [sender] = accounts; 10 | 11 | beforeEach(async function () { 12 | this.context = await ContextMock.new(); 13 | this.caller = await ContextMockCaller.new(); 14 | }); 15 | 16 | shouldBehaveLikeRegularContext(sender); 17 | }); 18 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/mocks/ConditionalEscrowMock.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity ^0.8.0; 4 | 5 | import "../utils/escrow/ConditionalEscrow.sol"; 6 | 7 | // mock class using ConditionalEscrow 8 | contract ConditionalEscrowMock is ConditionalEscrow { 9 | mapping(address => bool) private _allowed; 10 | 11 | function setAllowed(address payee, bool allowed) public { 12 | _allowed[payee] = allowed; 13 | } 14 | 15 | function withdrawalAllowed(address payee) public view override returns (bool) { 16 | return _allowed[payee]; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/scripts/release/workflow/publish.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -euo pipefail 4 | 5 | # Intentionally escape $ to avoid interpolation and writing the token to disk 6 | echo "//registry.npmjs.org/:_authToken=\${NPM_TOKEN}" > .npmrc 7 | 8 | # Actual publish 9 | npm publish "$TARBALL" --tag "$TAG" 10 | 11 | delete_tag() { 12 | PACKAGE_JSON_NAME="$(tar xfO "$TARBALL" package/package.json | jq -r .name)" 13 | npm dist-tag rm "$PACKAGE_JSON_NAME" "$1" 14 | } 15 | 16 | if [ "$TAG" = tmp ]; then 17 | delete_tag "$TAG" 18 | elif [ "$TAG" = latest ]; then 19 | delete_tag next 20 | fi 21 | -------------------------------------------------------------------------------- /forge/lib/forge-std/src/interfaces/IERC165.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity >=0.6.2; 3 | 4 | interface IERC165 { 5 | /// @notice Query if a contract implements an interface 6 | /// @param interfaceID The interface identifier, as specified in ERC-165 7 | /// @dev Interface identification is specified in ERC-165. This function 8 | /// uses less than 30,000 gas. 9 | /// @return `true` if the contract implements `interfaceID` and 10 | /// `interfaceID` is not 0xffffffff, `false` otherwise 11 | function supportsInterface(bytes4 interfaceID) external view returns (bool); 12 | } 13 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC5313Upgradeable.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC5313.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | /** 7 | * @dev Interface for the Light Contract Ownership Standard. 8 | * 9 | * A standardized minimal interface required to identify an account that controls a contract 10 | * 11 | * _Available since v4.9._ 12 | */ 13 | interface IERC5313Upgradeable { 14 | /** 15 | * @dev Gets the address of the owner. 16 | */ 17 | function owner() external view returns (address); 18 | } 19 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/lib/forge-std/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "forge-std", 3 | "version": "1.5.0", 4 | "description": "Forge Standard Library is a collection of helpful contracts and libraries for use with Forge and Foundry.", 5 | "homepage": "https://book.getfoundry.sh/forge/forge-std", 6 | "bugs": "https://github.com/foundry-rs/forge-std/issues", 7 | "license": "(Apache-2.0 OR MIT)", 8 | "author": "Contributors to Forge Standard Library", 9 | "files": [ 10 | "src/*" 11 | ], 12 | "repository": { 13 | "type": "git", 14 | "url": "https://github.com/foundry-rs/forge-std.git" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /contracts/external/convex/IConvexBooster.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-3.0 2 | pragma solidity 0.8.19; 3 | 4 | interface IConvexBooster { 5 | function poolInfo(uint256) external view returns (address, address, address, address, address, bool); 6 | 7 | function deposit(uint256, uint256, bool) external returns (bool); 8 | 9 | function depositAll(uint256, bool) external returns (bool); 10 | 11 | function withdraw(uint256, uint256) external returns (bool); 12 | 13 | function withdrawAll(uint256) external returns (bool); 14 | 15 | function rewardClaimed(uint256, address, uint256) external returns (bool); 16 | } 17 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts-upgradeable/scripts/release/workflow/publish.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -euo pipefail 4 | 5 | # Intentionally escape $ to avoid interpolation and writing the token to disk 6 | echo "//registry.npmjs.org/:_authToken=\${NPM_TOKEN}" > .npmrc 7 | 8 | # Actual publish 9 | npm publish "$TARBALL" --tag "$TAG" 10 | 11 | delete_tag() { 12 | PACKAGE_JSON_NAME="$(tar xfO "$TARBALL" package/package.json | jq -r .name)" 13 | npm dist-tag rm "$PACKAGE_JSON_NAME" "$1" 14 | } 15 | 16 | if [ "$TAG" = tmp ]; then 17 | delete_tag "$TAG" 18 | elif [ "$TAG" = latest ]; then 19 | delete_tag next 20 | fi 21 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/mocks/token/ERC20ReturnFalseMock.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity ^0.8.0; 4 | 5 | import "../../token/ERC20/ERC20.sol"; 6 | 7 | abstract contract ERC20ReturnFalseMock is ERC20 { 8 | function transfer(address, uint256) public pure override returns (bool) { 9 | return false; 10 | } 11 | 12 | function transferFrom(address, address, uint256) public pure override returns (bool) { 13 | return false; 14 | } 15 | 16 | function approve(address, uint256) public pure override returns (bool) { 17 | return false; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /lib/openzeppelin-contracts/contracts/mocks/proxy/ClashingImplementation.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity ^0.8.0; 4 | 5 | /** 6 | * @dev Implementation contract with a payable admin() function made to clash with TransparentUpgradeableProxy's to 7 | * test correct functioning of the Transparent Proxy feature. 8 | */ 9 | contract ClashingImplementation { 10 | function admin() external payable returns (address) { 11 | return 0x0000000000000000000000000000000011111142; 12 | } 13 | 14 | function delegatedFunction() external pure returns (bool) { 15 | return true; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q4-2023 - ethena-oct24 [1164939427051733143].html_Files/1f446-9CC34.svg: -------------------------------------------------------------------------------- 1 | --------------------------------------------------------------------------------