gitextract_e74y2gv2/ ├── .github/ │ └── workflows/ │ └── deploy-static.yml ├── .gitignore ├── 2020/ │ ├── CNAME │ ├── LICENSE.txt │ ├── README.md │ ├── assets/ │ │ ├── css/ │ │ │ ├── main.css │ │ │ └── noscript.css │ │ ├── js/ │ │ │ ├── main.js │ │ │ └── util.js │ │ └── sass/ │ │ ├── base/ │ │ │ ├── _page.scss │ │ │ ├── _reset.scss │ │ │ └── _typography.scss │ │ ├── components/ │ │ │ ├── _actions.scss │ │ │ ├── _box.scss │ │ │ ├── _button.scss │ │ │ ├── _contact.scss │ │ │ ├── _features.scss │ │ │ ├── _form.scss │ │ │ ├── _icon.scss │ │ │ ├── _icons.scss │ │ │ ├── _image.scss │ │ │ ├── _list.scss │ │ │ ├── _menu.scss │ │ │ ├── _row.scss │ │ │ ├── _section.scss │ │ │ ├── _split.scss │ │ │ ├── _spotlights.scss │ │ │ ├── _table.scss │ │ │ └── _wrapper.scss │ │ ├── layout/ │ │ │ ├── _footer.scss │ │ │ ├── _header.scss │ │ │ ├── _intro.scss │ │ │ ├── _sidebar.scss │ │ │ └── _wrapper.scss │ │ ├── libs/ │ │ │ ├── _breakpoints.scss │ │ │ ├── _functions.scss │ │ │ ├── _html-grid.scss │ │ │ ├── _mixins.scss │ │ │ ├── _vars.scss │ │ │ └── _vendor.scss │ │ ├── main.scss │ │ └── noscript.scss │ ├── index.html │ └── submissions_2020/ │ ├── submission10_MartinHolstSwende/ │ │ ├── README.md │ │ └── test.sol │ ├── submission11_RobertMCForster/ │ │ ├── LICENSE.txt │ │ ├── README.md │ │ └── contracts/ │ │ ├── BokkyDateTime.sol │ │ ├── Ownable.sol │ │ └── TimelockUpgrade.sol │ ├── submission12_LeonardoAlt/ │ │ ├── Makefile │ │ ├── README.md │ │ ├── lib/ │ │ │ └── ds-test/ │ │ │ ├── LICENSE │ │ │ ├── Makefile │ │ │ ├── default.nix │ │ │ └── src/ │ │ │ └── test.sol │ │ ├── out/ │ │ │ └── dapp.sol.json │ │ └── src/ │ │ ├── DNS.sol │ │ ├── DNSTest.t.sol │ │ ├── HEVMCheat.sol │ │ ├── IDNS.sol │ │ ├── MalDNS.sol │ │ ├── Upgrade.sol │ │ └── UpgradedDNS.sol │ ├── submission13_GregHysen/ │ │ ├── README.md │ │ └── contracts/ │ │ ├── Exploit.sol │ │ ├── FunWithSelectors.sol │ │ ├── Proxy.sol │ │ └── Test.sol │ ├── submission14_MariusVanDerWijden/ │ │ ├── ECDSA.sol │ │ ├── Proxy.sol │ │ ├── README.md │ │ └── RelayContract.sol │ ├── submission15_ChrisWhinfrey/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── contracts/ │ │ │ ├── ERC20.sol │ │ │ ├── Governance.sol │ │ │ ├── Proxy.sol │ │ │ ├── Token.sol │ │ │ └── spoilers/ │ │ │ └── Backdoor.sol │ │ ├── hardhat.config.ts │ │ ├── package.json │ │ └── test/ │ │ └── spoiler/ │ │ └── exploit.test.ts │ ├── submission16_VirajMalhotra/ │ │ ├── AddressSet.sol │ │ ├── ERC20V1.sol │ │ ├── Malicious.sol │ │ ├── Ownable.sol │ │ ├── Proxy.sol │ │ ├── README.md │ │ ├── Registry.sol │ │ └── Upgradable.sol │ ├── submission1_CoreyDickson/ │ │ ├── Attack.sol │ │ ├── OwnerRegistry.sol │ │ ├── README.md │ │ └── Target.sol │ ├── submission2_SohamZemse/ │ │ ├── GiveAway_v1.sol │ │ ├── GiveAway_v2.sol │ │ ├── Proxiable.sol │ │ ├── Proxy.sol │ │ └── README.md │ ├── submission3_AlexanderWade/ │ │ ├── Dispatcher.sol │ │ ├── README.md │ │ ├── erc20/ │ │ │ ├── erc20v1.sol │ │ │ └── erc20v2.sol │ │ └── interfaces/ │ │ ├── OptInContract.sol │ │ └── VersionContract.sol │ ├── submission4_JaimeIglesias/ │ │ ├── ERC20.sol │ │ ├── README.md │ │ └── VerySafuProxyTrustMe.sol │ ├── submission5_WilliamEntriken/ │ │ ├── README-WITH-SPOILERS.md │ │ ├── deployment.md │ │ └── main.sol │ ├── submission6_GregoryHill/ │ │ ├── README.md │ │ ├── buidler.config.ts │ │ ├── contracts/ │ │ │ ├── Accounts.sol │ │ │ └── Registry.json │ │ ├── package.json │ │ ├── test/ │ │ │ └── upgrade.test.ts │ │ └── tsconfig.json │ ├── submission7_MarkusWaas/ │ │ ├── GovernanceModule.sol │ │ ├── Proxy.sol │ │ ├── README.md │ │ └── TestERC20.sol │ ├── submission8_RichardMoore/ │ │ ├── Multisig.sol │ │ ├── README.md │ │ ├── Upgradable.sol │ │ └── deploy.txt │ └── submission9_LuizSoares/ │ ├── LICENSE │ ├── README.md │ └── contracts/ │ ├── Address.sol │ ├── Context.sol │ ├── IERC20.sol │ ├── Ownable.sol │ ├── PokeToken.sol │ ├── PokeTokenV2.sol │ ├── Proxy.sol │ ├── Superior.sol │ ├── SuperiorTransparentUpgradableProxy.sol │ ├── TransparentUpgradeableProxy.sol │ └── UpgradeableProxy.sol ├── 2022/ │ ├── .gitignore │ ├── CNAME │ ├── LICENSE.txt │ ├── README.md │ ├── assets/ │ │ ├── css/ │ │ │ ├── main.css │ │ │ └── noscript.css │ │ ├── js/ │ │ │ ├── main.js │ │ │ └── util.js │ │ └── sass/ │ │ ├── base/ │ │ │ ├── _page.scss │ │ │ ├── _reset.scss │ │ │ └── _typography.scss │ │ ├── components/ │ │ │ ├── _actions.scss │ │ │ ├── _box.scss │ │ │ ├── _button.scss │ │ │ ├── _contact.scss │ │ │ ├── _features.scss │ │ │ ├── _form.scss │ │ │ ├── _icon.scss │ │ │ ├── _icons.scss │ │ │ ├── _image.scss │ │ │ ├── _list.scss │ │ │ ├── _menu.scss │ │ │ ├── _row.scss │ │ │ ├── _section.scss │ │ │ ├── _split.scss │ │ │ ├── _spotlights.scss │ │ │ ├── _table.scss │ │ │ └── _wrapper.scss │ │ ├── layout/ │ │ │ ├── _footer.scss │ │ │ ├── _header.scss │ │ │ ├── _intro.scss │ │ │ ├── _sidebar.scss │ │ │ └── _wrapper.scss │ │ ├── libs/ │ │ │ ├── _breakpoints.scss │ │ │ ├── _functions.scss │ │ │ ├── _html-grid.scss │ │ │ ├── _mixins.scss │ │ │ ├── _vars.scss │ │ │ └── _vendor.scss │ │ ├── main.scss │ │ └── noscript.scss │ ├── index.html │ └── submissions_2022/ │ ├── submission10_SantiagoPalladino/ │ │ ├── .gitignore │ │ ├── LICENSE │ │ ├── README.md │ │ ├── SPOILER.md │ │ ├── contracts/ │ │ │ ├── Exchange.sol │ │ │ └── mocks/ │ │ │ └── MockERC20.sol │ │ ├── hardhat.config.js │ │ ├── package.json │ │ └── test/ │ │ ├── exploit.js │ │ └── happy.js │ ├── submission11_DanielVonFange/ │ │ ├── README.md │ │ ├── SPOILER.md │ │ ├── lib/ │ │ │ ├── ds-test/ │ │ │ │ ├── .gitignore │ │ │ │ ├── LICENSE │ │ │ │ ├── Makefile │ │ │ │ ├── default.nix │ │ │ │ ├── demo/ │ │ │ │ │ └── demo.sol │ │ │ │ └── src/ │ │ │ │ └── test.sol │ │ │ ├── openzeppelin-contracts/ │ │ │ │ ├── .codecov.yml │ │ │ │ ├── .editorconfig │ │ │ │ ├── .eslintrc │ │ │ │ ├── .gitattributes │ │ │ │ ├── .gitignore │ │ │ │ ├── .mocharc.js │ │ │ │ ├── .prettierrc │ │ │ │ ├── .solcover.js │ │ │ │ ├── .solhint.json │ │ │ │ ├── CHANGELOG.md │ │ │ │ ├── CODE_OF_CONDUCT.md │ │ │ │ ├── CONTRIBUTING.md │ │ │ │ ├── DOCUMENTATION.md │ │ │ │ ├── GUIDELINES.md │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── RELEASING.md │ │ │ │ ├── SECURITY.md │ │ │ │ ├── contracts/ │ │ │ │ │ ├── access/ │ │ │ │ │ │ ├── AccessControl.sol │ │ │ │ │ │ ├── AccessControlEnumerable.sol │ │ │ │ │ │ ├── IAccessControl.sol │ │ │ │ │ │ ├── IAccessControlEnumerable.sol │ │ │ │ │ │ ├── Ownable.sol │ │ │ │ │ │ └── README.adoc │ │ │ │ │ ├── finance/ │ │ │ │ │ │ ├── PaymentSplitter.sol │ │ │ │ │ │ ├── README.adoc │ │ │ │ │ │ └── VestingWallet.sol │ │ │ │ │ ├── governance/ │ │ │ │ │ │ ├── Governor.sol │ │ │ │ │ │ ├── IGovernor.sol │ │ │ │ │ │ ├── README.adoc │ │ │ │ │ │ ├── TimelockController.sol │ │ │ │ │ │ ├── compatibility/ │ │ │ │ │ │ │ ├── GovernorCompatibilityBravo.sol │ │ │ │ │ │ │ └── IGovernorCompatibilityBravo.sol │ │ │ │ │ │ └── extensions/ │ │ │ │ │ │ ├── GovernorCountingSimple.sol │ │ │ │ │ │ ├── GovernorProposalThreshold.sol │ │ │ │ │ │ ├── GovernorSettings.sol │ │ │ │ │ │ ├── GovernorTimelockCompound.sol │ │ │ │ │ │ ├── GovernorTimelockControl.sol │ │ │ │ │ │ ├── GovernorVotes.sol │ │ │ │ │ │ ├── GovernorVotesComp.sol │ │ │ │ │ │ ├── GovernorVotesQuorumFraction.sol │ │ │ │ │ │ └── IGovernorTimelock.sol │ │ │ │ │ ├── interfaces/ │ │ │ │ │ │ ├── IERC1155.sol │ │ │ │ │ │ ├── IERC1155MetadataURI.sol │ │ │ │ │ │ ├── IERC1155Receiver.sol │ │ │ │ │ │ ├── IERC1271.sol │ │ │ │ │ │ ├── IERC1363.sol │ │ │ │ │ │ ├── IERC1363Receiver.sol │ │ │ │ │ │ ├── IERC1363Spender.sol │ │ │ │ │ │ ├── IERC165.sol │ │ │ │ │ │ ├── IERC1820Implementer.sol │ │ │ │ │ │ ├── IERC1820Registry.sol │ │ │ │ │ │ ├── IERC20.sol │ │ │ │ │ │ ├── IERC20Metadata.sol │ │ │ │ │ │ ├── IERC2981.sol │ │ │ │ │ │ ├── IERC3156.sol │ │ │ │ │ │ ├── IERC3156FlashBorrower.sol │ │ │ │ │ │ ├── IERC3156FlashLender.sol │ │ │ │ │ │ ├── IERC721.sol │ │ │ │ │ │ ├── IERC721Enumerable.sol │ │ │ │ │ │ ├── IERC721Metadata.sol │ │ │ │ │ │ ├── IERC721Receiver.sol │ │ │ │ │ │ ├── IERC777.sol │ │ │ │ │ │ ├── IERC777Recipient.sol │ │ │ │ │ │ ├── IERC777Sender.sol │ │ │ │ │ │ ├── README.adoc │ │ │ │ │ │ └── draft-IERC2612.sol │ │ │ │ │ ├── metatx/ │ │ │ │ │ │ ├── ERC2771Context.sol │ │ │ │ │ │ ├── MinimalForwarder.sol │ │ │ │ │ │ └── README.adoc │ │ │ │ │ ├── mocks/ │ │ │ │ │ │ ├── AccessControlEnumerableMock.sol │ │ │ │ │ │ ├── AccessControlMock.sol │ │ │ │ │ │ ├── AddressImpl.sol │ │ │ │ │ │ ├── ArraysImpl.sol │ │ │ │ │ │ ├── BadBeacon.sol │ │ │ │ │ │ ├── BitmapMock.sol │ │ │ │ │ │ ├── CallReceiverMock.sol │ │ │ │ │ │ ├── ClashingImplementation.sol │ │ │ │ │ │ ├── ClonesMock.sol │ │ │ │ │ │ ├── ConditionalEscrowMock.sol │ │ │ │ │ │ ├── ContextMock.sol │ │ │ │ │ │ ├── CountersImpl.sol │ │ │ │ │ │ ├── Create2Impl.sol │ │ │ │ │ │ ├── DummyImplementation.sol │ │ │ │ │ │ ├── ECDSAMock.sol │ │ │ │ │ │ ├── EIP712External.sol │ │ │ │ │ │ ├── ERC1155BurnableMock.sol │ │ │ │ │ │ ├── ERC1155Mock.sol │ │ │ │ │ │ ├── ERC1155PausableMock.sol │ │ │ │ │ │ ├── ERC1155ReceiverMock.sol │ │ │ │ │ │ ├── ERC1155SupplyMock.sol │ │ │ │ │ │ ├── ERC1271WalletMock.sol │ │ │ │ │ │ ├── ERC165/ │ │ │ │ │ │ │ ├── ERC165InterfacesSupported.sol │ │ │ │ │ │ │ ├── ERC165MissingData.sol │ │ │ │ │ │ │ └── ERC165NotSupported.sol │ │ │ │ │ │ ├── ERC165CheckerMock.sol │ │ │ │ │ │ ├── ERC165Mock.sol │ │ │ │ │ │ ├── ERC165StorageMock.sol │ │ │ │ │ │ ├── ERC1820ImplementerMock.sol │ │ │ │ │ │ ├── ERC20BurnableMock.sol │ │ │ │ │ │ ├── ERC20CappedMock.sol │ │ │ │ │ │ ├── ERC20DecimalsMock.sol │ │ │ │ │ │ ├── ERC20FlashMintMock.sol │ │ │ │ │ │ ├── ERC20Mock.sol │ │ │ │ │ │ ├── ERC20PausableMock.sol │ │ │ │ │ │ ├── ERC20PermitMock.sol │ │ │ │ │ │ ├── ERC20SnapshotMock.sol │ │ │ │ │ │ ├── ERC20VotesCompMock.sol │ │ │ │ │ │ ├── ERC20VotesMock.sol │ │ │ │ │ │ ├── ERC20WrapperMock.sol │ │ │ │ │ │ ├── ERC2771ContextMock.sol │ │ │ │ │ │ ├── ERC3156FlashBorrowerMock.sol │ │ │ │ │ │ ├── ERC721BurnableMock.sol │ │ │ │ │ │ ├── ERC721EnumerableMock.sol │ │ │ │ │ │ ├── ERC721Mock.sol │ │ │ │ │ │ ├── ERC721PausableMock.sol │ │ │ │ │ │ ├── ERC721ReceiverMock.sol │ │ │ │ │ │ ├── ERC721URIStorageMock.sol │ │ │ │ │ │ ├── ERC777Mock.sol │ │ │ │ │ │ ├── ERC777SenderRecipientMock.sol │ │ │ │ │ │ ├── EnumerableMapMock.sol │ │ │ │ │ │ ├── EnumerableSetMock.sol │ │ │ │ │ │ ├── EtherReceiverMock.sol │ │ │ │ │ │ ├── GovernorCompMock.sol │ │ │ │ │ │ ├── GovernorCompatibilityBravoMock.sol │ │ │ │ │ │ ├── GovernorMock.sol │ │ │ │ │ │ ├── GovernorTimelockCompoundMock.sol │ │ │ │ │ │ ├── GovernorTimelockControlMock.sol │ │ │ │ │ │ ├── InitializableMock.sol │ │ │ │ │ │ ├── MathMock.sol │ │ │ │ │ │ ├── MerkleProofWrapper.sol │ │ │ │ │ │ ├── MulticallTest.sol │ │ │ │ │ │ ├── MulticallTokenMock.sol │ │ │ │ │ │ ├── MultipleInheritanceInitializableMocks.sol │ │ │ │ │ │ ├── OwnableMock.sol │ │ │ │ │ │ ├── PausableMock.sol │ │ │ │ │ │ ├── PullPaymentMock.sol │ │ │ │ │ │ ├── ReentrancyAttack.sol │ │ │ │ │ │ ├── ReentrancyMock.sol │ │ │ │ │ │ ├── RegressionImplementation.sol │ │ │ │ │ │ ├── SafeCastMock.sol │ │ │ │ │ │ ├── SafeERC20Helper.sol │ │ │ │ │ │ ├── SafeMathMock.sol │ │ │ │ │ │ ├── SignatureCheckerMock.sol │ │ │ │ │ │ ├── SignedSafeMathMock.sol │ │ │ │ │ │ ├── SingleInheritanceInitializableMocks.sol │ │ │ │ │ │ ├── StorageSlotMock.sol │ │ │ │ │ │ ├── StringsMock.sol │ │ │ │ │ │ ├── TimersBlockNumberImpl.sol │ │ │ │ │ │ ├── TimersTimestampImpl.sol │ │ │ │ │ │ ├── UUPS/ │ │ │ │ │ │ │ └── TestInProd.sol │ │ │ │ │ │ ├── compound/ │ │ │ │ │ │ │ └── CompTimelock.sol │ │ │ │ │ │ └── wizard/ │ │ │ │ │ │ ├── MyGovernor1.sol │ │ │ │ │ │ ├── MyGovernor2.sol │ │ │ │ │ │ └── MyGovernor3.sol │ │ │ │ │ ├── package.json │ │ │ │ │ ├── proxy/ │ │ │ │ │ │ ├── Clones.sol │ │ │ │ │ │ ├── ERC1967/ │ │ │ │ │ │ │ ├── ERC1967Proxy.sol │ │ │ │ │ │ │ └── ERC1967Upgrade.sol │ │ │ │ │ │ ├── Proxy.sol │ │ │ │ │ │ ├── README.adoc │ │ │ │ │ │ ├── beacon/ │ │ │ │ │ │ │ ├── BeaconProxy.sol │ │ │ │ │ │ │ ├── IBeacon.sol │ │ │ │ │ │ │ └── UpgradeableBeacon.sol │ │ │ │ │ │ ├── transparent/ │ │ │ │ │ │ │ ├── ProxyAdmin.sol │ │ │ │ │ │ │ └── TransparentUpgradeableProxy.sol │ │ │ │ │ │ └── utils/ │ │ │ │ │ │ ├── Initializable.sol │ │ │ │ │ │ └── UUPSUpgradeable.sol │ │ │ │ │ ├── security/ │ │ │ │ │ │ ├── Pausable.sol │ │ │ │ │ │ ├── PullPayment.sol │ │ │ │ │ │ ├── README.adoc │ │ │ │ │ │ └── ReentrancyGuard.sol │ │ │ │ │ ├── token/ │ │ │ │ │ │ ├── ERC1155/ │ │ │ │ │ │ │ ├── ERC1155.sol │ │ │ │ │ │ │ ├── IERC1155.sol │ │ │ │ │ │ │ ├── IERC1155Receiver.sol │ │ │ │ │ │ │ ├── README.adoc │ │ │ │ │ │ │ ├── extensions/ │ │ │ │ │ │ │ │ ├── ERC1155Burnable.sol │ │ │ │ │ │ │ │ ├── ERC1155Pausable.sol │ │ │ │ │ │ │ │ ├── ERC1155Supply.sol │ │ │ │ │ │ │ │ └── IERC1155MetadataURI.sol │ │ │ │ │ │ │ ├── presets/ │ │ │ │ │ │ │ │ └── ERC1155PresetMinterPauser.sol │ │ │ │ │ │ │ └── utils/ │ │ │ │ │ │ │ ├── ERC1155Holder.sol │ │ │ │ │ │ │ └── ERC1155Receiver.sol │ │ │ │ │ │ ├── ERC20/ │ │ │ │ │ │ │ ├── ERC20.sol │ │ │ │ │ │ │ ├── IERC20.sol │ │ │ │ │ │ │ ├── README.adoc │ │ │ │ │ │ │ ├── extensions/ │ │ │ │ │ │ │ │ ├── ERC20Burnable.sol │ │ │ │ │ │ │ │ ├── ERC20Capped.sol │ │ │ │ │ │ │ │ ├── ERC20FlashMint.sol │ │ │ │ │ │ │ │ ├── ERC20Pausable.sol │ │ │ │ │ │ │ │ ├── ERC20Snapshot.sol │ │ │ │ │ │ │ │ ├── ERC20Votes.sol │ │ │ │ │ │ │ │ ├── ERC20VotesComp.sol │ │ │ │ │ │ │ │ ├── ERC20Wrapper.sol │ │ │ │ │ │ │ │ ├── IERC20Metadata.sol │ │ │ │ │ │ │ │ ├── draft-ERC20Permit.sol │ │ │ │ │ │ │ │ └── draft-IERC20Permit.sol │ │ │ │ │ │ │ ├── presets/ │ │ │ │ │ │ │ │ ├── ERC20PresetFixedSupply.sol │ │ │ │ │ │ │ │ └── ERC20PresetMinterPauser.sol │ │ │ │ │ │ │ └── utils/ │ │ │ │ │ │ │ ├── SafeERC20.sol │ │ │ │ │ │ │ └── TokenTimelock.sol │ │ │ │ │ │ ├── ERC721/ │ │ │ │ │ │ │ ├── ERC721.sol │ │ │ │ │ │ │ ├── IERC721.sol │ │ │ │ │ │ │ ├── IERC721Receiver.sol │ │ │ │ │ │ │ ├── README.adoc │ │ │ │ │ │ │ ├── extensions/ │ │ │ │ │ │ │ │ ├── ERC721Burnable.sol │ │ │ │ │ │ │ │ ├── ERC721Enumerable.sol │ │ │ │ │ │ │ │ ├── ERC721Pausable.sol │ │ │ │ │ │ │ │ ├── ERC721URIStorage.sol │ │ │ │ │ │ │ │ ├── IERC721Enumerable.sol │ │ │ │ │ │ │ │ └── IERC721Metadata.sol │ │ │ │ │ │ │ ├── presets/ │ │ │ │ │ │ │ │ └── ERC721PresetMinterPauserAutoId.sol │ │ │ │ │ │ │ └── utils/ │ │ │ │ │ │ │ └── ERC721Holder.sol │ │ │ │ │ │ └── ERC777/ │ │ │ │ │ │ ├── ERC777.sol │ │ │ │ │ │ ├── IERC777.sol │ │ │ │ │ │ ├── IERC777Recipient.sol │ │ │ │ │ │ ├── IERC777Sender.sol │ │ │ │ │ │ ├── README.adoc │ │ │ │ │ │ └── presets/ │ │ │ │ │ │ └── ERC777PresetFixedSupply.sol │ │ │ │ │ └── utils/ │ │ │ │ │ ├── Address.sol │ │ │ │ │ ├── Arrays.sol │ │ │ │ │ ├── Context.sol │ │ │ │ │ ├── Counters.sol │ │ │ │ │ ├── Create2.sol │ │ │ │ │ ├── Multicall.sol │ │ │ │ │ ├── README.adoc │ │ │ │ │ ├── StorageSlot.sol │ │ │ │ │ ├── Strings.sol │ │ │ │ │ ├── Timers.sol │ │ │ │ │ ├── cryptography/ │ │ │ │ │ │ ├── ECDSA.sol │ │ │ │ │ │ ├── MerkleProof.sol │ │ │ │ │ │ ├── SignatureChecker.sol │ │ │ │ │ │ └── draft-EIP712.sol │ │ │ │ │ ├── escrow/ │ │ │ │ │ │ ├── ConditionalEscrow.sol │ │ │ │ │ │ ├── Escrow.sol │ │ │ │ │ │ └── RefundEscrow.sol │ │ │ │ │ ├── introspection/ │ │ │ │ │ │ ├── ERC165.sol │ │ │ │ │ │ ├── ERC165Checker.sol │ │ │ │ │ │ ├── ERC165Storage.sol │ │ │ │ │ │ ├── ERC1820Implementer.sol │ │ │ │ │ │ ├── IERC165.sol │ │ │ │ │ │ ├── IERC1820Implementer.sol │ │ │ │ │ │ └── IERC1820Registry.sol │ │ │ │ │ ├── math/ │ │ │ │ │ │ ├── Math.sol │ │ │ │ │ │ ├── SafeCast.sol │ │ │ │ │ │ ├── SafeMath.sol │ │ │ │ │ │ └── SignedSafeMath.sol │ │ │ │ │ └── structs/ │ │ │ │ │ ├── BitMaps.sol │ │ │ │ │ ├── EnumerableMap.sol │ │ │ │ │ └── EnumerableSet.sol │ │ │ │ ├── hardhat/ │ │ │ │ │ └── env-contract.js │ │ │ │ ├── hardhat.config.js │ │ │ │ ├── migrations/ │ │ │ │ │ └── .gitkeep │ │ │ │ ├── netlify.toml │ │ │ │ ├── package.json │ │ │ │ └── renovate.json │ │ │ └── openzeppelin-contracts-upgradeable/ │ │ │ ├── .codecov.yml │ │ │ ├── .editorconfig │ │ │ ├── .eslintrc │ │ │ ├── .gitattributes │ │ │ ├── .gitignore │ │ │ ├── .mocharc.js │ │ │ ├── .prettierrc │ │ │ ├── .solcover.js │ │ │ ├── .solhint.json │ │ │ ├── CHANGELOG.md │ │ │ ├── CODE_OF_CONDUCT.md │ │ │ ├── CONTRIBUTING.md │ │ │ ├── DOCUMENTATION.md │ │ │ ├── GUIDELINES.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── RELEASING.md │ │ │ ├── SECURITY.md │ │ │ ├── UPGRADEABLE.md │ │ │ ├── contracts/ │ │ │ │ ├── access/ │ │ │ │ │ ├── AccessControlEnumerableUpgradeable.sol │ │ │ │ │ ├── AccessControlUpgradeable.sol │ │ │ │ │ ├── IAccessControlEnumerableUpgradeable.sol │ │ │ │ │ ├── IAccessControlUpgradeable.sol │ │ │ │ │ ├── OwnableUpgradeable.sol │ │ │ │ │ └── README.adoc │ │ │ │ ├── finance/ │ │ │ │ │ ├── PaymentSplitterUpgradeable.sol │ │ │ │ │ ├── README.adoc │ │ │ │ │ └── VestingWalletUpgradeable.sol │ │ │ │ ├── governance/ │ │ │ │ │ ├── GovernorUpgradeable.sol │ │ │ │ │ ├── IGovernorUpgradeable.sol │ │ │ │ │ ├── README.adoc │ │ │ │ │ ├── TimelockControllerUpgradeable.sol │ │ │ │ │ ├── compatibility/ │ │ │ │ │ │ ├── GovernorCompatibilityBravoUpgradeable.sol │ │ │ │ │ │ └── IGovernorCompatibilityBravoUpgradeable.sol │ │ │ │ │ └── extensions/ │ │ │ │ │ ├── GovernorCountingSimpleUpgradeable.sol │ │ │ │ │ ├── GovernorProposalThresholdUpgradeable.sol │ │ │ │ │ ├── GovernorSettingsUpgradeable.sol │ │ │ │ │ ├── GovernorTimelockCompoundUpgradeable.sol │ │ │ │ │ ├── GovernorTimelockControlUpgradeable.sol │ │ │ │ │ ├── GovernorVotesCompUpgradeable.sol │ │ │ │ │ ├── GovernorVotesQuorumFractionUpgradeable.sol │ │ │ │ │ ├── GovernorVotesUpgradeable.sol │ │ │ │ │ └── IGovernorTimelockUpgradeable.sol │ │ │ │ ├── interfaces/ │ │ │ │ │ ├── IERC1155MetadataURIUpgradeable.sol │ │ │ │ │ ├── IERC1155ReceiverUpgradeable.sol │ │ │ │ │ ├── IERC1155Upgradeable.sol │ │ │ │ │ ├── IERC1271Upgradeable.sol │ │ │ │ │ ├── IERC1363ReceiverUpgradeable.sol │ │ │ │ │ ├── IERC1363SpenderUpgradeable.sol │ │ │ │ │ ├── IERC1363Upgradeable.sol │ │ │ │ │ ├── IERC165Upgradeable.sol │ │ │ │ │ ├── IERC1820ImplementerUpgradeable.sol │ │ │ │ │ ├── IERC1820RegistryUpgradeable.sol │ │ │ │ │ ├── IERC20MetadataUpgradeable.sol │ │ │ │ │ ├── IERC20Upgradeable.sol │ │ │ │ │ ├── IERC2981Upgradeable.sol │ │ │ │ │ ├── IERC3156FlashBorrowerUpgradeable.sol │ │ │ │ │ ├── IERC3156FlashLenderUpgradeable.sol │ │ │ │ │ ├── IERC3156Upgradeable.sol │ │ │ │ │ ├── IERC721EnumerableUpgradeable.sol │ │ │ │ │ ├── IERC721MetadataUpgradeable.sol │ │ │ │ │ ├── IERC721ReceiverUpgradeable.sol │ │ │ │ │ ├── IERC721Upgradeable.sol │ │ │ │ │ ├── IERC777RecipientUpgradeable.sol │ │ │ │ │ ├── IERC777SenderUpgradeable.sol │ │ │ │ │ ├── IERC777Upgradeable.sol │ │ │ │ │ ├── README.adoc │ │ │ │ │ └── draft-IERC2612Upgradeable.sol │ │ │ │ ├── metatx/ │ │ │ │ │ ├── ERC2771ContextUpgradeable.sol │ │ │ │ │ ├── MinimalForwarderUpgradeable.sol │ │ │ │ │ └── README.adoc │ │ │ │ ├── mocks/ │ │ │ │ │ ├── AccessControlEnumerableMockUpgradeable.sol │ │ │ │ │ ├── AccessControlMockUpgradeable.sol │ │ │ │ │ ├── AddressImplUpgradeable.sol │ │ │ │ │ ├── ArraysImplUpgradeable.sol │ │ │ │ │ ├── BadBeaconUpgradeable.sol │ │ │ │ │ ├── BitmapMockUpgradeable.sol │ │ │ │ │ ├── CallReceiverMockUpgradeable.sol │ │ │ │ │ ├── ClashingImplementationUpgradeable.sol │ │ │ │ │ ├── ClonesMockUpgradeable.sol │ │ │ │ │ ├── ConditionalEscrowMockUpgradeable.sol │ │ │ │ │ ├── ContextMockUpgradeable.sol │ │ │ │ │ ├── CountersImplUpgradeable.sol │ │ │ │ │ ├── Create2ImplUpgradeable.sol │ │ │ │ │ ├── DummyImplementationUpgradeable.sol │ │ │ │ │ ├── ECDSAMockUpgradeable.sol │ │ │ │ │ ├── EIP712ExternalUpgradeable.sol │ │ │ │ │ ├── ERC1155BurnableMockUpgradeable.sol │ │ │ │ │ ├── ERC1155MockUpgradeable.sol │ │ │ │ │ ├── ERC1155PausableMockUpgradeable.sol │ │ │ │ │ ├── ERC1155ReceiverMockUpgradeable.sol │ │ │ │ │ ├── ERC1155SupplyMockUpgradeable.sol │ │ │ │ │ ├── ERC1271WalletMockUpgradeable.sol │ │ │ │ │ ├── ERC165/ │ │ │ │ │ │ ├── ERC165InterfacesSupportedUpgradeable.sol │ │ │ │ │ │ ├── ERC165MissingDataUpgradeable.sol │ │ │ │ │ │ └── ERC165NotSupportedUpgradeable.sol │ │ │ │ │ ├── ERC165CheckerMockUpgradeable.sol │ │ │ │ │ ├── ERC165MockUpgradeable.sol │ │ │ │ │ ├── ERC165StorageMockUpgradeable.sol │ │ │ │ │ ├── ERC1820ImplementerMockUpgradeable.sol │ │ │ │ │ ├── ERC20BurnableMockUpgradeable.sol │ │ │ │ │ ├── ERC20CappedMockUpgradeable.sol │ │ │ │ │ ├── ERC20DecimalsMockUpgradeable.sol │ │ │ │ │ ├── ERC20FlashMintMockUpgradeable.sol │ │ │ │ │ ├── ERC20MockUpgradeable.sol │ │ │ │ │ ├── ERC20PausableMockUpgradeable.sol │ │ │ │ │ ├── ERC20PermitMockUpgradeable.sol │ │ │ │ │ ├── ERC20SnapshotMockUpgradeable.sol │ │ │ │ │ ├── ERC20VotesCompMockUpgradeable.sol │ │ │ │ │ ├── ERC20VotesMockUpgradeable.sol │ │ │ │ │ ├── ERC20WrapperMockUpgradeable.sol │ │ │ │ │ ├── ERC2771ContextMockUpgradeable.sol │ │ │ │ │ ├── ERC3156FlashBorrowerMockUpgradeable.sol │ │ │ │ │ ├── ERC721BurnableMockUpgradeable.sol │ │ │ │ │ ├── ERC721EnumerableMockUpgradeable.sol │ │ │ │ │ ├── ERC721MockUpgradeable.sol │ │ │ │ │ ├── ERC721PausableMockUpgradeable.sol │ │ │ │ │ ├── ERC721ReceiverMockUpgradeable.sol │ │ │ │ │ ├── ERC721URIStorageMockUpgradeable.sol │ │ │ │ │ ├── ERC777MockUpgradeable.sol │ │ │ │ │ ├── ERC777SenderRecipientMockUpgradeable.sol │ │ │ │ │ ├── EnumerableMapMockUpgradeable.sol │ │ │ │ │ ├── EnumerableSetMockUpgradeable.sol │ │ │ │ │ ├── EtherReceiverMockUpgradeable.sol │ │ │ │ │ ├── GovernorCompMockUpgradeable.sol │ │ │ │ │ ├── GovernorCompatibilityBravoMockUpgradeable.sol │ │ │ │ │ ├── GovernorMockUpgradeable.sol │ │ │ │ │ ├── GovernorTimelockCompoundMockUpgradeable.sol │ │ │ │ │ ├── GovernorTimelockControlMockUpgradeable.sol │ │ │ │ │ ├── InitializableMock.sol │ │ │ │ │ ├── MathMockUpgradeable.sol │ │ │ │ │ ├── MerkleProofWrapperUpgradeable.sol │ │ │ │ │ ├── MulticallTestUpgradeable.sol │ │ │ │ │ ├── MulticallTokenMockUpgradeable.sol │ │ │ │ │ ├── MultipleInheritanceInitializableMocks.sol │ │ │ │ │ ├── OwnableMockUpgradeable.sol │ │ │ │ │ ├── PausableMockUpgradeable.sol │ │ │ │ │ ├── PullPaymentMockUpgradeable.sol │ │ │ │ │ ├── ReentrancyAttackUpgradeable.sol │ │ │ │ │ ├── ReentrancyMockUpgradeable.sol │ │ │ │ │ ├── RegressionImplementation.sol │ │ │ │ │ ├── SafeCastMockUpgradeable.sol │ │ │ │ │ ├── SafeERC20HelperUpgradeable.sol │ │ │ │ │ ├── SafeMathMockUpgradeable.sol │ │ │ │ │ ├── SignatureCheckerMockUpgradeable.sol │ │ │ │ │ ├── SignedSafeMathMockUpgradeable.sol │ │ │ │ │ ├── SingleInheritanceInitializableMocks.sol │ │ │ │ │ ├── StorageSlotMockUpgradeable.sol │ │ │ │ │ ├── StringsMockUpgradeable.sol │ │ │ │ │ ├── TimersBlockNumberImplUpgradeable.sol │ │ │ │ │ ├── TimersTimestampImplUpgradeable.sol │ │ │ │ │ ├── UUPS/ │ │ │ │ │ │ └── TestInProdUpgradeable.sol │ │ │ │ │ ├── WithInit.sol │ │ │ │ │ ├── compound/ │ │ │ │ │ │ └── CompTimelockUpgradeable.sol │ │ │ │ │ └── wizard/ │ │ │ │ │ ├── MyGovernor1Upgradeable.sol │ │ │ │ │ ├── MyGovernor2Upgradeable.sol │ │ │ │ │ └── MyGovernor3Upgradeable.sol │ │ │ │ ├── package.json │ │ │ │ ├── proxy/ │ │ │ │ │ ├── ClonesUpgradeable.sol │ │ │ │ │ ├── ERC1967/ │ │ │ │ │ │ └── ERC1967UpgradeUpgradeable.sol │ │ │ │ │ ├── README.adoc │ │ │ │ │ ├── beacon/ │ │ │ │ │ │ └── IBeaconUpgradeable.sol │ │ │ │ │ └── utils/ │ │ │ │ │ ├── Initializable.sol │ │ │ │ │ └── UUPSUpgradeable.sol │ │ │ │ ├── security/ │ │ │ │ │ ├── PausableUpgradeable.sol │ │ │ │ │ ├── PullPaymentUpgradeable.sol │ │ │ │ │ ├── README.adoc │ │ │ │ │ └── ReentrancyGuardUpgradeable.sol │ │ │ │ ├── token/ │ │ │ │ │ ├── ERC1155/ │ │ │ │ │ │ ├── ERC1155Upgradeable.sol │ │ │ │ │ │ ├── IERC1155ReceiverUpgradeable.sol │ │ │ │ │ │ ├── IERC1155Upgradeable.sol │ │ │ │ │ │ ├── README.adoc │ │ │ │ │ │ ├── extensions/ │ │ │ │ │ │ │ ├── ERC1155BurnableUpgradeable.sol │ │ │ │ │ │ │ ├── ERC1155PausableUpgradeable.sol │ │ │ │ │ │ │ ├── ERC1155SupplyUpgradeable.sol │ │ │ │ │ │ │ └── IERC1155MetadataURIUpgradeable.sol │ │ │ │ │ │ ├── presets/ │ │ │ │ │ │ │ └── ERC1155PresetMinterPauserUpgradeable.sol │ │ │ │ │ │ └── utils/ │ │ │ │ │ │ ├── ERC1155HolderUpgradeable.sol │ │ │ │ │ │ └── ERC1155ReceiverUpgradeable.sol │ │ │ │ │ ├── ERC20/ │ │ │ │ │ │ ├── ERC20Upgradeable.sol │ │ │ │ │ │ ├── IERC20Upgradeable.sol │ │ │ │ │ │ ├── README.adoc │ │ │ │ │ │ ├── extensions/ │ │ │ │ │ │ │ ├── ERC20BurnableUpgradeable.sol │ │ │ │ │ │ │ ├── ERC20CappedUpgradeable.sol │ │ │ │ │ │ │ ├── ERC20FlashMintUpgradeable.sol │ │ │ │ │ │ │ ├── ERC20PausableUpgradeable.sol │ │ │ │ │ │ │ ├── ERC20SnapshotUpgradeable.sol │ │ │ │ │ │ │ ├── ERC20VotesCompUpgradeable.sol │ │ │ │ │ │ │ ├── ERC20VotesUpgradeable.sol │ │ │ │ │ │ │ ├── ERC20WrapperUpgradeable.sol │ │ │ │ │ │ │ ├── IERC20MetadataUpgradeable.sol │ │ │ │ │ │ │ ├── draft-ERC20PermitUpgradeable.sol │ │ │ │ │ │ │ └── draft-IERC20PermitUpgradeable.sol │ │ │ │ │ │ ├── presets/ │ │ │ │ │ │ │ ├── ERC20PresetFixedSupplyUpgradeable.sol │ │ │ │ │ │ │ └── ERC20PresetMinterPauserUpgradeable.sol │ │ │ │ │ │ └── utils/ │ │ │ │ │ │ ├── SafeERC20Upgradeable.sol │ │ │ │ │ │ └── TokenTimelockUpgradeable.sol │ │ │ │ │ ├── ERC721/ │ │ │ │ │ │ ├── ERC721Upgradeable.sol │ │ │ │ │ │ ├── IERC721ReceiverUpgradeable.sol │ │ │ │ │ │ ├── IERC721Upgradeable.sol │ │ │ │ │ │ ├── README.adoc │ │ │ │ │ │ ├── extensions/ │ │ │ │ │ │ │ ├── ERC721BurnableUpgradeable.sol │ │ │ │ │ │ │ ├── ERC721EnumerableUpgradeable.sol │ │ │ │ │ │ │ ├── ERC721PausableUpgradeable.sol │ │ │ │ │ │ │ ├── ERC721URIStorageUpgradeable.sol │ │ │ │ │ │ │ ├── IERC721EnumerableUpgradeable.sol │ │ │ │ │ │ │ └── IERC721MetadataUpgradeable.sol │ │ │ │ │ │ ├── presets/ │ │ │ │ │ │ │ └── ERC721PresetMinterPauserAutoIdUpgradeable.sol │ │ │ │ │ │ └── utils/ │ │ │ │ │ │ └── ERC721HolderUpgradeable.sol │ │ │ │ │ └── ERC777/ │ │ │ │ │ ├── ERC777Upgradeable.sol │ │ │ │ │ ├── IERC777RecipientUpgradeable.sol │ │ │ │ │ ├── IERC777SenderUpgradeable.sol │ │ │ │ │ ├── IERC777Upgradeable.sol │ │ │ │ │ ├── README.adoc │ │ │ │ │ └── presets/ │ │ │ │ │ └── ERC777PresetFixedSupplyUpgradeable.sol │ │ │ │ └── utils/ │ │ │ │ ├── AddressUpgradeable.sol │ │ │ │ ├── ArraysUpgradeable.sol │ │ │ │ ├── ContextUpgradeable.sol │ │ │ │ ├── CountersUpgradeable.sol │ │ │ │ ├── Create2Upgradeable.sol │ │ │ │ ├── MulticallUpgradeable.sol │ │ │ │ ├── README.adoc │ │ │ │ ├── StorageSlotUpgradeable.sol │ │ │ │ ├── StringsUpgradeable.sol │ │ │ │ ├── TimersUpgradeable.sol │ │ │ │ ├── cryptography/ │ │ │ │ │ ├── ECDSAUpgradeable.sol │ │ │ │ │ ├── MerkleProofUpgradeable.sol │ │ │ │ │ ├── SignatureCheckerUpgradeable.sol │ │ │ │ │ └── draft-EIP712Upgradeable.sol │ │ │ │ ├── escrow/ │ │ │ │ │ ├── ConditionalEscrowUpgradeable.sol │ │ │ │ │ ├── EscrowUpgradeable.sol │ │ │ │ │ └── RefundEscrowUpgradeable.sol │ │ │ │ ├── introspection/ │ │ │ │ │ ├── ERC165CheckerUpgradeable.sol │ │ │ │ │ ├── ERC165StorageUpgradeable.sol │ │ │ │ │ ├── ERC165Upgradeable.sol │ │ │ │ │ ├── ERC1820ImplementerUpgradeable.sol │ │ │ │ │ ├── IERC165Upgradeable.sol │ │ │ │ │ ├── IERC1820ImplementerUpgradeable.sol │ │ │ │ │ └── IERC1820RegistryUpgradeable.sol │ │ │ │ ├── math/ │ │ │ │ │ ├── MathUpgradeable.sol │ │ │ │ │ ├── SafeCastUpgradeable.sol │ │ │ │ │ ├── SafeMathUpgradeable.sol │ │ │ │ │ └── SignedSafeMathUpgradeable.sol │ │ │ │ └── structs/ │ │ │ │ ├── BitMapsUpgradeable.sol │ │ │ │ ├── EnumerableMapUpgradeable.sol │ │ │ │ └── EnumerableSetUpgradeable.sol │ │ │ ├── hardhat/ │ │ │ │ ├── env-artifacts.js │ │ │ │ ├── env-contract.js │ │ │ │ ├── task-get-compiler-input.js │ │ │ │ └── task-test-get-files.js │ │ │ ├── hardhat.config.js │ │ │ ├── migrations/ │ │ │ │ └── .gitkeep │ │ │ ├── netlify.toml │ │ │ ├── package.json │ │ │ └── renovate.json │ │ └── src/ │ │ ├── LipPool.sol │ │ ├── MockToken.sol │ │ └── test/ │ │ └── Contract.t.sol │ ├── submission12_HubertRitzdorf/ │ │ ├── README │ │ ├── foundry.toml │ │ ├── lib/ │ │ │ ├── ds-test/ │ │ │ │ ├── .gitignore │ │ │ │ ├── LICENSE │ │ │ │ ├── Makefile │ │ │ │ ├── default.nix │ │ │ │ ├── demo/ │ │ │ │ │ └── demo.sol │ │ │ │ └── src/ │ │ │ │ └── test.sol │ │ │ └── solmate/ │ │ │ ├── .dapprc │ │ │ ├── .gas-snapshot │ │ │ ├── .gitattributes │ │ │ ├── .github/ │ │ │ │ └── workflows/ │ │ │ │ └── tests.yml │ │ │ ├── .gitignore │ │ │ ├── .gitmodules │ │ │ ├── .prettierrc │ │ │ ├── .vscode/ │ │ │ │ └── settings.json │ │ │ ├── LICENSE │ │ │ ├── Makefile │ │ │ ├── README.md │ │ │ ├── lib/ │ │ │ │ └── ds-test/ │ │ │ │ ├── .gitignore │ │ │ │ ├── LICENSE │ │ │ │ ├── Makefile │ │ │ │ ├── default.nix │ │ │ │ ├── demo/ │ │ │ │ │ └── demo.sol │ │ │ │ └── src/ │ │ │ │ └── test.sol │ │ │ ├── package.json │ │ │ ├── shell.nix │ │ │ └── src/ │ │ │ ├── auth/ │ │ │ │ ├── Auth.sol │ │ │ │ └── authorities/ │ │ │ │ ├── MultiRolesAuthority.sol │ │ │ │ └── RolesAuthority.sol │ │ │ ├── test/ │ │ │ │ ├── Auth.t.sol │ │ │ │ ├── Bytes32AddressLib.t.sol │ │ │ │ ├── CREATE3.t.sol │ │ │ │ ├── DSTestPlus.t.sol │ │ │ │ ├── ERC1155.t.sol │ │ │ │ ├── ERC20.t.sol │ │ │ │ ├── ERC721.t.sol │ │ │ │ ├── FixedPointMathLib.t.sol │ │ │ │ ├── MultiRolesAuthority.t.sol │ │ │ │ ├── ReentrancyGuard.t.sol │ │ │ │ ├── RolesAuthority.t.sol │ │ │ │ ├── SSTORE2.t.sol │ │ │ │ ├── SafeCastLib.t.sol │ │ │ │ ├── SafeTransferLib.t.sol │ │ │ │ ├── WETH.t.sol │ │ │ │ └── utils/ │ │ │ │ ├── DSInvariantTest.sol │ │ │ │ ├── DSTestPlus.sol │ │ │ │ ├── Hevm.sol │ │ │ │ ├── mocks/ │ │ │ │ │ ├── MockAuthChild.sol │ │ │ │ │ ├── MockAuthority.sol │ │ │ │ │ ├── MockERC1155.sol │ │ │ │ │ ├── MockERC20.sol │ │ │ │ │ └── MockERC721.sol │ │ │ │ └── users/ │ │ │ │ ├── ERC1155User.sol │ │ │ │ ├── ERC20User.sol │ │ │ │ ├── ERC721User.sol │ │ │ │ └── GenericUser.sol │ │ │ ├── tokens/ │ │ │ │ ├── ERC1155.sol │ │ │ │ ├── ERC20.sol │ │ │ │ ├── ERC721.sol │ │ │ │ └── WETH.sol │ │ │ └── utils/ │ │ │ ├── Bytes32AddressLib.sol │ │ │ ├── CREATE3.sol │ │ │ ├── FixedPointMathLib.sol │ │ │ ├── ReentrancyGuard.sol │ │ │ ├── SSTORE2.sol │ │ │ ├── SafeCastLib.sol │ │ │ └── SafeTransferLib.sol │ │ ├── spoiler.md │ │ └── src/ │ │ ├── Auction.sol │ │ └── test/ │ │ └── Contract.t.sol │ ├── submission13_TeamChainSecurity/ │ │ ├── README │ │ ├── foundry.toml │ │ ├── lib/ │ │ │ ├── ds-test/ │ │ │ │ ├── .gitignore │ │ │ │ ├── LICENSE │ │ │ │ ├── Makefile │ │ │ │ ├── default.nix │ │ │ │ ├── demo/ │ │ │ │ │ └── demo.sol │ │ │ │ └── src/ │ │ │ │ └── test.sol │ │ │ └── solmate/ │ │ │ ├── .dapprc │ │ │ ├── .gas-snapshot │ │ │ ├── .gitattributes │ │ │ ├── .github/ │ │ │ │ └── workflows/ │ │ │ │ └── tests.yml │ │ │ ├── .gitignore │ │ │ ├── .gitmodules │ │ │ ├── .prettierrc │ │ │ ├── .vscode/ │ │ │ │ └── settings.json │ │ │ ├── LICENSE │ │ │ ├── Makefile │ │ │ ├── README.md │ │ │ ├── lib/ │ │ │ │ ├── ds-test/ │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── Makefile │ │ │ │ │ ├── default.nix │ │ │ │ │ ├── demo/ │ │ │ │ │ │ └── demo.sol │ │ │ │ │ └── src/ │ │ │ │ │ └── test.sol │ │ │ │ └── weird-erc20/ │ │ │ │ ├── .envrc │ │ │ │ ├── .gitattributes │ │ │ │ ├── .gitignore │ │ │ │ ├── .gitmodules │ │ │ │ ├── Makefile │ │ │ │ ├── lib/ │ │ │ │ │ └── ds-test/ │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── Makefile │ │ │ │ │ ├── default.nix │ │ │ │ │ ├── demo/ │ │ │ │ │ │ └── demo.sol │ │ │ │ │ └── src/ │ │ │ │ │ └── test.sol │ │ │ │ ├── nix/ │ │ │ │ │ ├── sources.json │ │ │ │ │ └── sources.nix │ │ │ │ ├── readme.md │ │ │ │ ├── shell.nix │ │ │ │ └── src/ │ │ │ │ ├── Approval.sol │ │ │ │ ├── ApprovalToZero.sol │ │ │ │ ├── BlockList.sol │ │ │ │ ├── Bytes32Metadata.sol │ │ │ │ ├── ERC20.sol │ │ │ │ ├── HighDecimals.sol │ │ │ │ ├── LowDecimals.sol │ │ │ │ ├── MissingReturns.sol │ │ │ │ ├── NoRevert.sol │ │ │ │ ├── Pausable.sol │ │ │ │ ├── Proxied.sol │ │ │ │ ├── Reentrant.sol │ │ │ │ ├── ReturnsFalse.sol │ │ │ │ ├── RevertToZero.sol │ │ │ │ ├── RevertZero.sol │ │ │ │ ├── TransferFee.sol │ │ │ │ ├── TransferFromSelf.sol │ │ │ │ ├── Uint96.sol │ │ │ │ ├── Upgradable.sol │ │ │ │ └── test.t.sol │ │ │ ├── package.json │ │ │ ├── shell.nix │ │ │ └── src/ │ │ │ ├── auth/ │ │ │ │ ├── Auth.sol │ │ │ │ └── authorities/ │ │ │ │ ├── MultiRolesAuthority.sol │ │ │ │ └── RolesAuthority.sol │ │ │ ├── test/ │ │ │ │ ├── Auth.t.sol │ │ │ │ ├── Bytes32AddressLib.t.sol │ │ │ │ ├── CREATE3.t.sol │ │ │ │ ├── DSTestPlus.t.sol │ │ │ │ ├── ERC1155.t.sol │ │ │ │ ├── ERC20.t.sol │ │ │ │ ├── ERC721.t.sol │ │ │ │ ├── FixedPointMathLib.t.sol │ │ │ │ ├── MultiRolesAuthority.t.sol │ │ │ │ ├── ReentrancyGuard.t.sol │ │ │ │ ├── RolesAuthority.t.sol │ │ │ │ ├── SSTORE2.t.sol │ │ │ │ ├── SafeCastLib.t.sol │ │ │ │ ├── SafeTransferLib.t.sol │ │ │ │ ├── WETH.t.sol │ │ │ │ └── utils/ │ │ │ │ ├── DSInvariantTest.sol │ │ │ │ ├── DSTestPlus.sol │ │ │ │ ├── Hevm.sol │ │ │ │ ├── mocks/ │ │ │ │ │ ├── MockAuthChild.sol │ │ │ │ │ ├── MockAuthority.sol │ │ │ │ │ ├── MockERC1155.sol │ │ │ │ │ ├── MockERC20.sol │ │ │ │ │ └── MockERC721.sol │ │ │ │ └── users/ │ │ │ │ ├── ERC1155User.sol │ │ │ │ ├── ERC20User.sol │ │ │ │ ├── ERC721User.sol │ │ │ │ └── GenericUser.sol │ │ │ ├── tokens/ │ │ │ │ ├── ERC1155.sol │ │ │ │ ├── ERC20.sol │ │ │ │ ├── ERC721.sol │ │ │ │ └── WETH.sol │ │ │ └── utils/ │ │ │ ├── Bytes32AddressLib.sol │ │ │ ├── CREATE3.sol │ │ │ ├── FixedPointMathLib.sol │ │ │ ├── ReentrancyGuard.sol │ │ │ ├── SSTORE2.sol │ │ │ ├── SafeCastLib.sol │ │ │ └── SafeTransferLib.sol │ │ ├── spoiler.txt │ │ └── src/ │ │ ├── Contract.sol │ │ └── test/ │ │ └── Contract.t.sol │ ├── submission14_0xplaintxt/ │ │ ├── Colombo.txt │ │ ├── IColombo.txt │ │ ├── README.MD │ │ └── Spoilers.MD │ ├── submission15_MartinSwende/ │ │ ├── AssetMgr.sol │ │ ├── README.md │ │ ├── RUGPULL.txt │ │ └── SimpEX.sol │ ├── submission16_VladToie/ │ │ ├── Egg.sol │ │ ├── EggMarket.sol │ │ ├── README.md │ │ └── spoilers.md │ ├── submission17_MichaelZhu/ │ │ ├── BrokenSea.sol │ │ ├── README.md │ │ └── SPOILER.md │ ├── submission18_DavidNunez/ │ │ ├── README.md │ │ ├── brownie-config.yaml │ │ ├── contracts/ │ │ │ ├── CheapMarketplace.sol │ │ │ ├── NFT.sol │ │ │ └── PaymentToken.sol │ │ ├── spoiler.md │ │ └── tests/ │ │ └── test_marketplace.py │ ├── submission1_RikhardHjort/ │ │ ├── README.md │ │ ├── rugpull.txt │ │ └── src/ │ │ └── DEX.sol │ ├── submission2_Ashiq/ │ │ ├── README.md │ │ ├── Swap121.sol │ │ └── spoiler.txt │ ├── submission3_LeoAlt/ │ │ ├── README.md │ │ ├── SPOILER.md │ │ ├── foundry.toml │ │ ├── lib/ │ │ │ ├── ds-test/ │ │ │ │ ├── .gitignore │ │ │ │ ├── LICENSE │ │ │ │ ├── Makefile │ │ │ │ ├── default.nix │ │ │ │ ├── demo/ │ │ │ │ │ └── demo.sol │ │ │ │ └── src/ │ │ │ │ └── test.sol │ │ │ └── solmate/ │ │ │ ├── .dapprc │ │ │ ├── .gas-snapshot │ │ │ ├── .gitattributes │ │ │ ├── .github/ │ │ │ │ └── workflows/ │ │ │ │ └── tests.yml │ │ │ ├── .gitignore │ │ │ ├── .gitmodules │ │ │ ├── .prettierrc │ │ │ ├── .vscode/ │ │ │ │ └── settings.json │ │ │ ├── LICENSE │ │ │ ├── Makefile │ │ │ ├── README.md │ │ │ ├── lib/ │ │ │ │ ├── ds-test/ │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── Makefile │ │ │ │ │ ├── default.nix │ │ │ │ │ ├── demo/ │ │ │ │ │ │ └── demo.sol │ │ │ │ │ └── src/ │ │ │ │ │ └── test.sol │ │ │ │ └── weird-erc20/ │ │ │ │ ├── .envrc │ │ │ │ ├── .gitattributes │ │ │ │ ├── .gitignore │ │ │ │ ├── .gitmodules │ │ │ │ ├── Makefile │ │ │ │ ├── lib/ │ │ │ │ │ └── ds-test/ │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── Makefile │ │ │ │ │ ├── default.nix │ │ │ │ │ ├── demo/ │ │ │ │ │ │ └── demo.sol │ │ │ │ │ └── src/ │ │ │ │ │ └── test.sol │ │ │ │ ├── nix/ │ │ │ │ │ ├── sources.json │ │ │ │ │ └── sources.nix │ │ │ │ ├── readme.md │ │ │ │ ├── shell.nix │ │ │ │ └── src/ │ │ │ │ ├── Approval.sol │ │ │ │ ├── ApprovalToZero.sol │ │ │ │ ├── BlockList.sol │ │ │ │ ├── Bytes32Metadata.sol │ │ │ │ ├── ERC20.sol │ │ │ │ ├── HighDecimals.sol │ │ │ │ ├── LowDecimals.sol │ │ │ │ ├── MissingReturns.sol │ │ │ │ ├── NoRevert.sol │ │ │ │ ├── Pausable.sol │ │ │ │ ├── Proxied.sol │ │ │ │ ├── Reentrant.sol │ │ │ │ ├── ReturnsFalse.sol │ │ │ │ ├── RevertToZero.sol │ │ │ │ ├── RevertZero.sol │ │ │ │ ├── TransferFee.sol │ │ │ │ ├── TransferFromSelf.sol │ │ │ │ ├── Uint96.sol │ │ │ │ ├── Upgradable.sol │ │ │ │ └── test.t.sol │ │ │ ├── package.json │ │ │ ├── shell.nix │ │ │ └── src/ │ │ │ ├── auth/ │ │ │ │ ├── Auth.sol │ │ │ │ └── authorities/ │ │ │ │ ├── MultiRolesAuthority.sol │ │ │ │ └── RolesAuthority.sol │ │ │ ├── mixins/ │ │ │ │ └── ERC4626.sol │ │ │ ├── test/ │ │ │ │ ├── Auth.t.sol │ │ │ │ ├── Bytes32AddressLib.t.sol │ │ │ │ ├── CREATE3.t.sol │ │ │ │ ├── DSTestPlus.t.sol │ │ │ │ ├── ERC1155.t.sol │ │ │ │ ├── ERC20.t.sol │ │ │ │ ├── ERC4626.t.sol │ │ │ │ ├── ERC721.t.sol │ │ │ │ ├── FixedPointMathLib.t.sol │ │ │ │ ├── MultiRolesAuthority.t.sol │ │ │ │ ├── ReentrancyGuard.t.sol │ │ │ │ ├── RolesAuthority.t.sol │ │ │ │ ├── SSTORE2.t.sol │ │ │ │ ├── SafeCastLib.t.sol │ │ │ │ ├── SafeTransferLib.t.sol │ │ │ │ ├── WETH.t.sol │ │ │ │ └── utils/ │ │ │ │ ├── DSInvariantTest.sol │ │ │ │ ├── DSTestPlus.sol │ │ │ │ ├── Hevm.sol │ │ │ │ ├── mocks/ │ │ │ │ │ ├── MockAuthChild.sol │ │ │ │ │ ├── MockAuthority.sol │ │ │ │ │ ├── MockERC1155.sol │ │ │ │ │ ├── MockERC20.sol │ │ │ │ │ ├── MockERC4626.sol │ │ │ │ │ └── MockERC721.sol │ │ │ │ └── users/ │ │ │ │ ├── ERC1155User.sol │ │ │ │ ├── ERC20User.sol │ │ │ │ ├── ERC4626User.sol │ │ │ │ ├── ERC721User.sol │ │ │ │ └── GenericUser.sol │ │ │ ├── tokens/ │ │ │ │ ├── ERC1155.sol │ │ │ │ ├── ERC20.sol │ │ │ │ ├── ERC721.sol │ │ │ │ └── WETH.sol │ │ │ └── utils/ │ │ │ ├── Bytes32AddressLib.sol │ │ │ ├── CREATE3.sol │ │ │ ├── FixedPointMathLib.sol │ │ │ ├── ReentrancyGuard.sol │ │ │ ├── SSTORE2.sol │ │ │ ├── SafeCastLib.sol │ │ │ └── SafeTransferLib.sol │ │ └── src/ │ │ ├── MatchMaking.sol │ │ └── test/ │ │ └── MatchMaking.t.sol │ ├── submission4_WilliamBowling/ │ │ ├── DoubleDex.sol │ │ ├── readme.md │ │ └── spoiler.md │ ├── submission5_ArthurHsiao/ │ │ ├── NFTExchange.sol │ │ ├── README.md │ │ └── spoiler.txt │ ├── submission6_KurtWillis/ │ │ ├── README.md │ │ ├── SPOILER.md │ │ └── contracts/ │ │ └── NFTOrderBook.sol │ ├── submission7_RobertoCano/ │ │ ├── EXPLOIT/ │ │ │ ├── SPOILER.md │ │ │ └── VeryCoolAMMExploit.sol │ │ ├── README.md │ │ ├── VeryCoolPeriphery.sol │ │ ├── VeryCoolPoolETH.sol │ │ └── VeryCoolPoolTokens.sol │ ├── submission8_MartínAbbatemarco/ │ │ ├── README.md │ │ ├── SPOILER.md │ │ └── UniswapWrapper.sol │ └── submission9_TynanRichards/ │ ├── README.md │ ├── SPOILERS.md │ └── dexploit.sol ├── 2024/ │ └── submissions_2024/ │ ├── submission1_Stepan/ │ │ ├── LightStorage.sol │ │ ├── LightVesting.sol │ │ ├── README.md │ │ └── SPOILER.md │ ├── submission2_Seppilon/ │ │ ├── README.md │ │ ├── foundry.toml │ │ ├── remappings.txt │ │ ├── src/ │ │ │ ├── InstantVoting.sol │ │ │ └── Mock/ │ │ │ ├── MockExecutor.sol │ │ │ ├── MockVoterRegistry.sol │ │ │ └── MockVotingToken.sol │ │ └── test/ │ │ ├── exploit.t.sol │ │ └── legit.t.sol │ ├── submission3_William_Bowling/ │ │ ├── OffchainStaking.sol │ │ ├── readme.txt │ │ └── spoiler.txt │ └── submission4_Gerard_Persoon/ │ ├── README.txt │ ├── spoiler.sol │ ├── spoiler.txt │ └── token.sol ├── CNAME ├── LICENSE.txt ├── README.md ├── assets/ │ ├── css/ │ │ ├── main.css │ │ └── noscript.css │ ├── js/ │ │ ├── main.js │ │ └── util.js │ └── sass/ │ ├── base/ │ │ ├── _page.scss │ │ ├── _reset.scss │ │ └── _typography.scss │ ├── components/ │ │ ├── _actions.scss │ │ ├── _box.scss │ │ ├── _button.scss │ │ ├── _contact.scss │ │ ├── _features.scss │ │ ├── _form.scss │ │ ├── _icon.scss │ │ ├── _icons.scss │ │ ├── _image.scss │ │ ├── _list.scss │ │ ├── _menu.scss │ │ ├── _row.scss │ │ ├── _section.scss │ │ ├── _split.scss │ │ ├── _spotlights.scss │ │ ├── _table.scss │ │ └── _wrapper.scss │ ├── layout/ │ │ ├── _footer.scss │ │ ├── _header.scss │ │ ├── _intro.scss │ │ ├── _sidebar.scss │ │ └── _wrapper.scss │ ├── libs/ │ │ ├── _breakpoints.scss │ │ ├── _functions.scss │ │ ├── _html-grid.scss │ │ ├── _mixins.scss │ │ ├── _vars.scss │ │ └── _vendor.scss │ ├── main.scss │ └── noscript.scss └── index.html