├── .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 |
--------------------------------------------------------------------------------