mint-day 0.3.2 → 0.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +5 -0
- package/api/classify.ts +97 -0
- package/api/feed.ts +71 -0
- package/api/sponsor.ts +106 -0
- package/api/verify.ts +93 -0
- package/contracts/.env.example +4 -0
- package/contracts/.github/workflows/test.yml +38 -0
- package/contracts/.gitmodules +6 -0
- package/contracts/README.md +66 -0
- package/contracts/broadcast/Deploy.s.sol/8453/run-1773710193457.json +29 -0
- package/contracts/broadcast/Deploy.s.sol/8453/run-latest.json +29 -0
- package/contracts/broadcast/Deploy.s.sol/84532/run-1773630171259.json +71 -0
- package/contracts/broadcast/Deploy.s.sol/84532/run-1773709957408.json +71 -0
- package/contracts/broadcast/Deploy.s.sol/84532/run-latest.json +71 -0
- package/contracts/foundry.lock +14 -0
- package/contracts/foundry.toml +20 -0
- package/contracts/lib/forge-std/.gitattributes +1 -0
- package/contracts/lib/forge-std/.github/CODEOWNERS +1 -0
- package/contracts/lib/forge-std/.github/dependabot.yml +6 -0
- package/contracts/lib/forge-std/.github/workflows/ci.yml +125 -0
- package/contracts/lib/forge-std/.github/workflows/sync.yml +36 -0
- package/contracts/lib/forge-std/CONTRIBUTING.md +193 -0
- package/contracts/lib/forge-std/LICENSE-APACHE +203 -0
- package/contracts/lib/forge-std/LICENSE-MIT +25 -0
- package/contracts/lib/forge-std/README.md +314 -0
- package/contracts/lib/forge-std/RELEASE_CHECKLIST.md +12 -0
- package/contracts/lib/forge-std/foundry.toml +18 -0
- package/contracts/lib/forge-std/package.json +16 -0
- package/contracts/lib/forge-std/scripts/vm.py +636 -0
- package/contracts/lib/forge-std/src/Base.sol +48 -0
- package/contracts/lib/forge-std/src/Config.sol +60 -0
- package/contracts/lib/forge-std/src/LibVariable.sol +477 -0
- package/contracts/lib/forge-std/src/Script.sol +28 -0
- package/contracts/lib/forge-std/src/StdAssertions.sol +779 -0
- package/contracts/lib/forge-std/src/StdChains.sol +303 -0
- package/contracts/lib/forge-std/src/StdCheats.sol +825 -0
- package/contracts/lib/forge-std/src/StdConfig.sol +632 -0
- package/contracts/lib/forge-std/src/StdConstants.sol +30 -0
- package/contracts/lib/forge-std/src/StdError.sol +15 -0
- package/contracts/lib/forge-std/src/StdInvariant.sol +140 -0
- package/contracts/lib/forge-std/src/StdJson.sol +275 -0
- package/contracts/lib/forge-std/src/StdMath.sol +47 -0
- package/contracts/lib/forge-std/src/StdStorage.sol +475 -0
- package/contracts/lib/forge-std/src/StdStyle.sol +333 -0
- package/contracts/lib/forge-std/src/StdToml.sol +275 -0
- package/contracts/lib/forge-std/src/StdUtils.sol +200 -0
- package/contracts/lib/forge-std/src/Test.sol +32 -0
- package/contracts/lib/forge-std/src/Vm.sol +2533 -0
- package/contracts/lib/forge-std/src/console.sol +1551 -0
- package/contracts/lib/forge-std/src/console2.sol +4 -0
- package/contracts/lib/forge-std/src/interfaces/IERC1155.sol +105 -0
- package/contracts/lib/forge-std/src/interfaces/IERC165.sol +12 -0
- package/contracts/lib/forge-std/src/interfaces/IERC20.sol +43 -0
- package/contracts/lib/forge-std/src/interfaces/IERC4626.sol +190 -0
- package/contracts/lib/forge-std/src/interfaces/IERC6909.sol +72 -0
- package/contracts/lib/forge-std/src/interfaces/IERC721.sol +164 -0
- package/contracts/lib/forge-std/src/interfaces/IERC7540.sol +144 -0
- package/contracts/lib/forge-std/src/interfaces/IERC7575.sol +241 -0
- package/contracts/lib/forge-std/src/interfaces/IMulticall3.sol +68 -0
- package/contracts/lib/forge-std/src/safeconsole.sol +13248 -0
- package/contracts/lib/forge-std/test/CommonBase.t.sol +44 -0
- package/contracts/lib/forge-std/test/Config.t.sol +381 -0
- package/contracts/lib/forge-std/test/LibVariable.t.sol +452 -0
- package/contracts/lib/forge-std/test/StdAssertions.t.sol +141 -0
- package/contracts/lib/forge-std/test/StdChains.t.sol +227 -0
- package/contracts/lib/forge-std/test/StdCheats.t.sol +638 -0
- package/contracts/lib/forge-std/test/StdConstants.t.sol +38 -0
- package/contracts/lib/forge-std/test/StdError.t.sol +119 -0
- package/contracts/lib/forge-std/test/StdJson.t.sol +49 -0
- package/contracts/lib/forge-std/test/StdMath.t.sol +202 -0
- package/contracts/lib/forge-std/test/StdStorage.t.sol +485 -0
- package/contracts/lib/forge-std/test/StdStyle.t.sol +110 -0
- package/contracts/lib/forge-std/test/StdToml.t.sol +49 -0
- package/contracts/lib/forge-std/test/StdUtils.t.sol +342 -0
- package/contracts/lib/forge-std/test/Vm.t.sol +18 -0
- package/contracts/lib/forge-std/test/compilation/CompilationScript.sol +8 -0
- package/contracts/lib/forge-std/test/compilation/CompilationScriptBase.sol +8 -0
- package/contracts/lib/forge-std/test/compilation/CompilationTest.sol +8 -0
- package/contracts/lib/forge-std/test/compilation/CompilationTestBase.sol +8 -0
- package/contracts/lib/forge-std/test/fixtures/broadcast.log.json +187 -0
- package/contracts/lib/forge-std/test/fixtures/config.toml +81 -0
- package/contracts/lib/forge-std/test/fixtures/test.json +8 -0
- package/contracts/lib/forge-std/test/fixtures/test.toml +6 -0
- package/contracts/lib/openzeppelin-contracts/.changeset/config.json +12 -0
- package/contracts/lib/openzeppelin-contracts/.codecov.yml +16 -0
- package/contracts/lib/openzeppelin-contracts/.editorconfig +21 -0
- package/contracts/lib/openzeppelin-contracts/.gitattributes +3 -0
- package/contracts/lib/openzeppelin-contracts/.github/CODEOWNERS +10 -0
- package/contracts/lib/openzeppelin-contracts/.github/ISSUE_TEMPLATE/bug_report.md +21 -0
- package/contracts/lib/openzeppelin-contracts/.github/ISSUE_TEMPLATE/config.yml +4 -0
- package/contracts/lib/openzeppelin-contracts/.github/ISSUE_TEMPLATE/feature_request.md +14 -0
- package/contracts/lib/openzeppelin-contracts/.github/PULL_REQUEST_TEMPLATE.md +20 -0
- package/contracts/lib/openzeppelin-contracts/.github/actions/gas-compare/action.yml +51 -0
- package/contracts/lib/openzeppelin-contracts/.github/actions/setup/action.yml +108 -0
- package/contracts/lib/openzeppelin-contracts/.github/actions/storage-layout/action.yml +57 -0
- package/contracts/lib/openzeppelin-contracts/.github/workflows/actionlint.yml +18 -0
- package/contracts/lib/openzeppelin-contracts/.github/workflows/changeset.yml +28 -0
- package/contracts/lib/openzeppelin-contracts/.github/workflows/checks.yml +132 -0
- package/contracts/lib/openzeppelin-contracts/.github/workflows/docs.yml +19 -0
- package/contracts/lib/openzeppelin-contracts/.github/workflows/formal-verification.yml +63 -0
- package/contracts/lib/openzeppelin-contracts/.github/workflows/release-cycle.yml +212 -0
- package/contracts/lib/openzeppelin-contracts/.github/workflows/release-upgradeable.yml +97 -0
- package/contracts/lib/openzeppelin-contracts/.github/workflows/upgradeable.yml +35 -0
- package/contracts/lib/openzeppelin-contracts/.gitmodules +10 -0
- package/contracts/lib/openzeppelin-contracts/.husky/pre-commit +2 -0
- package/contracts/lib/openzeppelin-contracts/.mocharc.js +4 -0
- package/contracts/lib/openzeppelin-contracts/.prettierrc +15 -0
- package/contracts/lib/openzeppelin-contracts/.solcover.js +21 -0
- package/contracts/lib/openzeppelin-contracts/CHANGELOG.md +1424 -0
- package/contracts/lib/openzeppelin-contracts/CODE_OF_CONDUCT.md +73 -0
- package/contracts/lib/openzeppelin-contracts/CONTRIBUTING.md +36 -0
- package/contracts/lib/openzeppelin-contracts/FUNDING.json +10 -0
- package/contracts/lib/openzeppelin-contracts/GUIDELINES.md +170 -0
- package/contracts/lib/openzeppelin-contracts/LICENSE +22 -0
- package/contracts/lib/openzeppelin-contracts/README.md +122 -0
- package/contracts/lib/openzeppelin-contracts/RELEASING.md +45 -0
- package/contracts/lib/openzeppelin-contracts/SECURITY.md +43 -0
- package/contracts/lib/openzeppelin-contracts/audits/2017-03.md +292 -0
- package/contracts/lib/openzeppelin-contracts/audits/2018-10.pdf +0 -0
- package/contracts/lib/openzeppelin-contracts/audits/2022-10-Checkpoints.pdf +0 -0
- package/contracts/lib/openzeppelin-contracts/audits/2022-10-ERC4626.pdf +0 -0
- package/contracts/lib/openzeppelin-contracts/audits/2023-05-v4.9.pdf +0 -0
- package/contracts/lib/openzeppelin-contracts/audits/2023-10-v5.0.pdf +0 -0
- package/contracts/lib/openzeppelin-contracts/audits/2024-10-v5.1.pdf +0 -0
- package/contracts/lib/openzeppelin-contracts/audits/2024-12-v5.2.pdf +0 -0
- package/contracts/lib/openzeppelin-contracts/audits/2025-04-v5.3.pdf +0 -0
- package/contracts/lib/openzeppelin-contracts/audits/2025-07-v5.4.pdf +0 -0
- package/contracts/lib/openzeppelin-contracts/audits/2025-10-v5.5.pdf +0 -0
- package/contracts/lib/openzeppelin-contracts/audits/README.md +22 -0
- package/contracts/lib/openzeppelin-contracts/contracts/access/AccessControl.sol +207 -0
- package/contracts/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol +98 -0
- package/contracts/lib/openzeppelin-contracts/contracts/access/Ownable.sol +100 -0
- package/contracts/lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol +67 -0
- package/contracts/lib/openzeppelin-contracts/contracts/access/README.adoc +45 -0
- package/contracts/lib/openzeppelin-contracts/contracts/access/extensions/AccessControlDefaultAdminRules.sol +372 -0
- package/contracts/lib/openzeppelin-contracts/contracts/access/extensions/AccessControlEnumerable.sol +81 -0
- package/contracts/lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlDefaultAdminRules.sol +192 -0
- package/contracts/lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlEnumerable.sol +31 -0
- package/contracts/lib/openzeppelin-contracts/contracts/access/manager/AccessManaged.sol +112 -0
- package/contracts/lib/openzeppelin-contracts/contracts/access/manager/AccessManager.sol +741 -0
- package/contracts/lib/openzeppelin-contracts/contracts/access/manager/AuthorityUtils.sol +36 -0
- package/contracts/lib/openzeppelin-contracts/contracts/access/manager/IAccessManaged.sol +32 -0
- package/contracts/lib/openzeppelin-contracts/contracts/access/manager/IAccessManager.sol +403 -0
- package/contracts/lib/openzeppelin-contracts/contracts/access/manager/IAuthority.sol +14 -0
- package/contracts/lib/openzeppelin-contracts/contracts/account/Account.sol +151 -0
- package/contracts/lib/openzeppelin-contracts/contracts/account/README.adoc +30 -0
- package/contracts/lib/openzeppelin-contracts/contracts/account/extensions/draft-AccountERC7579.sol +420 -0
- package/contracts/lib/openzeppelin-contracts/contracts/account/extensions/draft-AccountERC7579Hooked.sol +107 -0
- package/contracts/lib/openzeppelin-contracts/contracts/account/extensions/draft-ERC7821.sol +70 -0
- package/contracts/lib/openzeppelin-contracts/contracts/account/utils/EIP7702Utils.sol +21 -0
- package/contracts/lib/openzeppelin-contracts/contracts/account/utils/draft-ERC4337Utils.sol +279 -0
- package/contracts/lib/openzeppelin-contracts/contracts/account/utils/draft-ERC7579Utils.sol +280 -0
- package/contracts/lib/openzeppelin-contracts/contracts/crosschain/CrosschainLinked.sol +109 -0
- package/contracts/lib/openzeppelin-contracts/contracts/crosschain/ERC7786Recipient.sol +66 -0
- package/contracts/lib/openzeppelin-contracts/contracts/crosschain/README.adoc +29 -0
- package/contracts/lib/openzeppelin-contracts/contracts/crosschain/bridges/BridgeERC20.sol +37 -0
- package/contracts/lib/openzeppelin-contracts/contracts/crosschain/bridges/BridgeERC7802.sol +34 -0
- package/contracts/lib/openzeppelin-contracts/contracts/crosschain/bridges/abstract/BridgeFungible.sol +80 -0
- package/contracts/lib/openzeppelin-contracts/contracts/finance/README.adoc +14 -0
- package/contracts/lib/openzeppelin-contracts/contracts/finance/VestingWallet.sol +160 -0
- package/contracts/lib/openzeppelin-contracts/contracts/finance/VestingWalletCliff.sol +54 -0
- package/contracts/lib/openzeppelin-contracts/contracts/governance/Governor.sol +819 -0
- package/contracts/lib/openzeppelin-contracts/contracts/governance/IGovernor.sol +454 -0
- package/contracts/lib/openzeppelin-contracts/contracts/governance/README.adoc +197 -0
- package/contracts/lib/openzeppelin-contracts/contracts/governance/TimelockController.sol +470 -0
- package/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorCountingFractional.sol +190 -0
- package/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorCountingOverridable.sol +222 -0
- package/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorCountingSimple.sol +96 -0
- package/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorNoncesKeyed.sol +91 -0
- package/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorPreventLateQuorum.sol +92 -0
- package/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorProposalGuardian.sol +59 -0
- package/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorSequentialProposalId.sol +75 -0
- package/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorSettings.sol +106 -0
- package/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorStorage.sol +134 -0
- package/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorSuperQuorum.sol +59 -0
- package/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorTimelockAccess.sol +346 -0
- package/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorTimelockCompound.sol +165 -0
- package/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorTimelockControl.sol +167 -0
- package/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorVotes.sol +63 -0
- package/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorVotesQuorumFraction.sol +113 -0
- package/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorVotesSuperQuorumFraction.sol +135 -0
- package/contracts/lib/openzeppelin-contracts/contracts/governance/utils/IVotes.sol +60 -0
- package/contracts/lib/openzeppelin-contracts/contracts/governance/utils/Votes.sol +253 -0
- package/contracts/lib/openzeppelin-contracts/contracts/governance/utils/VotesExtended.sol +85 -0
- package/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1155.sol +6 -0
- package/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1155MetadataURI.sol +6 -0
- package/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1155Receiver.sol +6 -0
- package/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol +17 -0
- package/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol +86 -0
- package/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1363Receiver.sol +32 -0
- package/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1363Spender.sol +26 -0
- package/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol +6 -0
- package/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1820Implementer.sol +20 -0
- package/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1820Registry.sol +112 -0
- package/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol +24 -0
- package/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol +6 -0
- package/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC20Metadata.sol +6 -0
- package/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC2309.sol +19 -0
- package/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC2612.sol +8 -0
- package/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC2981.sol +26 -0
- package/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC3156.sol +7 -0
- package/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC3156FlashBorrower.sol +27 -0
- package/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC3156FlashLender.sol +41 -0
- package/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol +230 -0
- package/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC4906.sol +20 -0
- package/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol +28 -0
- package/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC5313.sol +16 -0
- package/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC5805.sol +9 -0
- package/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC6372.sol +17 -0
- package/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC6909.sol +125 -0
- package/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC721.sol +6 -0
- package/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC721Enumerable.sol +6 -0
- package/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC721Metadata.sol +6 -0
- package/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC721Receiver.sol +6 -0
- package/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC7751.sol +12 -0
- package/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC777.sol +200 -0
- package/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC777Recipient.sol +35 -0
- package/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC777Sender.sol +35 -0
- package/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC7913.sol +18 -0
- package/contracts/lib/openzeppelin-contracts/contracts/interfaces/README.adoc +138 -0
- package/contracts/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol +20 -0
- package/contracts/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC4337.sol +255 -0
- package/contracts/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol +162 -0
- package/contracts/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC7579.sol +227 -0
- package/contracts/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC7674.sol +17 -0
- package/contracts/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC7786.sol +64 -0
- package/contracts/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC7802.sol +32 -0
- package/contracts/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC7821.sol +44 -0
- package/contracts/lib/openzeppelin-contracts/contracts/metatx/ERC2771Context.sol +90 -0
- package/contracts/lib/openzeppelin-contracts/contracts/metatx/ERC2771Forwarder.sol +372 -0
- package/contracts/lib/openzeppelin-contracts/contracts/metatx/README.adoc +17 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/AccessManagedTarget.sol +34 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/AccessManagerMock.sol +20 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/ArraysMock.sol +171 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/AuthorityMock.sol +69 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/Base64Dirty.sol +19 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/BatchCaller.sol +20 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/CallReceiverMock.sol +106 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/ConstructorMock.sol +34 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/ContextMock.sol +35 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/DummyImplementation.sol +61 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/EIP712Verifier.sol +16 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC1271WalletMock.sol +24 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC165Mock.sol +100 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC2771ContextMock.sol +28 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC3156FlashBorrowerMock.sol +53 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/EtherReceiverMock.sol +17 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/InitializableMock.sol +130 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/MerkleProofCustomHashMock.sol +62 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/MerkleTreeMock.sol +52 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/MulticallHelper.sol +23 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/MultipleInheritanceInitializableMocks.sol +131 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/PausableMock.sol +31 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/ReentrancyAttack.sol +17 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/ReentrancyMock.sol +59 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/ReentrancyTransientMock.sol +59 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/RegressionImplementation.sol +61 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/SingleInheritanceInitializableMocks.sol +49 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/Stateless.sol +62 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/StorageSlotMock.sol +87 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/TimelockReentrant.sol +26 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/TransientSlotMock.sol +61 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/UpgradeableBeaconMock.sol +27 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/VotesExtendedMock.sol +42 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/VotesMock.sol +42 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/account/AccountMock.sol +181 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/account/modules/ERC7579Mock.sol +128 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/account/utils/ERC7579UtilsMock.sol +23 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/compound/CompTimelock.sol +174 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/crosschain/ERC7786GatewayMock.sol +56 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/crosschain/ERC7786RecipientMock.sol +31 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorCountingOverridableMock.sol +18 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorFractionalMock.sol +14 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorMock.sol +14 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorNoncesKeyedMock.sol +44 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorPreventLateQuorumMock.sol +40 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorProposalGuardianMock.sol +27 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorSequentialProposalIdMock.sol +39 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorStorageMock.sol +79 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorSuperQuorumMock.sol +95 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorTimelockAccessMock.sol +70 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorTimelockCompoundMock.sol +69 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorTimelockControlMock.sol +69 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorVoteMock.sol +20 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorVotesSuperQuorumFractionMock.sol +37 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorWithParamsMock.sol +51 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/proxy/BadBeacon.sol +11 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/proxy/ClashingImplementation.sol +19 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/proxy/ERC1967ProxyUnsafe.sol +13 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/proxy/UUPSUpgradeableMock.sol +35 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC1155ReceiverMock.sol +74 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC1363ForceApproveMock.sol +13 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC1363NoReturnMock.sol +33 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC1363ReceiverMock.sol +52 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC1363ReturnFalseMock.sol +34 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC1363SpenderMock.sol +47 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20ApprovalMock.sol +10 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20BridgeableMock.sol +30 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20DecimalsMock.sol +17 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20ExcessDecimalsMock.sol +9 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20FlashMintMock.sol +26 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20ForceApproveMock.sol +13 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20GetterHelper.sol +38 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20Mock.sol +16 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20MulticallMock.sol +8 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20NoReturnMock.sol +30 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20Reentrant.sol +39 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20ReturnFalseMock.sol +19 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20VotesAdditionalCheckpointsMock.sol +31 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20VotesLegacyMock.sol +253 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20VotesTimestampMock.sol +29 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC4626LimitsMock.sol +23 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC4626Mock.sol +17 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC4626OffsetMock.sol +17 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC4646FeesMock.sol +40 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC721ConsecutiveEnumerableMock.sol +42 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC721ConsecutiveMock.sol +61 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC721ReceiverMock.sol +47 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC721URIStorageMock.sol +17 -0
- package/contracts/lib/openzeppelin-contracts/contracts/mocks/utils/cryptography/ERC7739Mock.sol +12 -0
- package/contracts/lib/openzeppelin-contracts/contracts/package.json +32 -0
- package/contracts/lib/openzeppelin-contracts/contracts/proxy/Clones.sol +294 -0
- package/contracts/lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol +62 -0
- package/contracts/lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol +177 -0
- package/contracts/lib/openzeppelin-contracts/contracts/proxy/Proxy.sol +69 -0
- package/contracts/lib/openzeppelin-contracts/contracts/proxy/README.adoc +87 -0
- package/contracts/lib/openzeppelin-contracts/contracts/proxy/beacon/BeaconProxy.sol +57 -0
- package/contracts/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol +16 -0
- package/contracts/lib/openzeppelin-contracts/contracts/proxy/beacon/UpgradeableBeacon.sol +70 -0
- package/contracts/lib/openzeppelin-contracts/contracts/proxy/transparent/ProxyAdmin.sol +45 -0
- package/contracts/lib/openzeppelin-contracts/contracts/proxy/transparent/TransparentUpgradeableProxy.sol +118 -0
- package/contracts/lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol +238 -0
- package/contracts/lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol +148 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/ERC1155.sol +417 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol +123 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol +59 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/README.adoc +43 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/ERC1155Burnable.sol +28 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/ERC1155Pausable.sol +38 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/ERC1155Supply.sol +88 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/ERC1155URIStorage.sol +58 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol +20 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Holder.sol +42 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Utils.sol +88 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol +305 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol +79 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/README.adoc +81 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC1363.sol +135 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol +39 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Capped.sol +54 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Crosschain.sol +39 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20FlashMint.sol +130 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Pausable.sol +33 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Permit.sol +77 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Votes.sol +83 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Wrapper.sol +89 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC4626.sol +315 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol +26 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol +90 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-ERC20Bridgeable.sol +51 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-ERC20TemporaryApproval.sol +119 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/utils/ERC1363Utils.sol +95 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol +280 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC6909/ERC6909.sol +224 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC6909/README.adoc +27 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC6909/extensions/ERC6909ContentURI.sol +59 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC6909/extensions/ERC6909Metadata.sol +83 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC6909/extensions/ERC6909TokenSupply.sol +41 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol +433 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol +135 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol +28 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/README.adoc +69 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Burnable.sol +26 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Consecutive.sol +176 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Enumerable.sol +165 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Pausable.sol +37 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Royalty.sol +26 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721URIStorage.sol +62 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Votes.sol +47 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Wrapper.sol +102 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol +29 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol +27 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol +26 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol +50 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/common/ERC2981.sol +139 -0
- package/contracts/lib/openzeppelin-contracts/contracts/token/common/README.adoc +10 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/Address.sol +167 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/Arrays.sol +888 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/Base58.sol +240 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/Base64.sol +234 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/Blockhash.sol +54 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/Bytes.sol +332 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/CAIP10.sol +54 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/CAIP2.sol +51 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/Calldata.sol +25 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/Comparators.sol +19 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/Context.sol +28 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/Create2.sol +91 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/Errors.sol +34 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol +127 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/Memory.sol +149 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/Multicall.sol +37 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/Nonces.sol +46 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/NoncesKeyed.sol +74 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/Packing.sol +1656 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/Panic.sol +57 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/Pausable.sol +112 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/README.adoc +160 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/RLP.sol +487 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol +119 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol +84 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/RelayedCall.sol +137 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol +122 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol +155 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol +143 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/Strings.sol +532 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol +183 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol +284 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol +160 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/Hashes.sol +31 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol +510 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol +228 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/P256.sol +408 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/README.adoc +76 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/RSA.sol +154 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol +191 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/TrieProof.sol +255 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/WebAuthn.sol +269 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/draft-ERC7739Utils.sol +207 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/signers/AbstractSigner.sol +23 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/signers/MultiSignerERC7913.sol +259 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/signers/MultiSignerERC7913Weighted.sol +208 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/signers/SignerECDSA.sol +56 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/signers/SignerEIP7702.sol +25 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/signers/SignerERC7913.sol +63 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/signers/SignerP256.sol +64 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/signers/SignerRSA.sol +65 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/signers/SignerWebAuthn.sol +46 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/signers/draft-ERC7739.sol +98 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/verifiers/ERC7913P256Verifier.sol +29 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/verifiers/ERC7913RSAVerifier.sol +23 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/verifiers/ERC7913WebAuthnVerifier.sol +35 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/draft-InteroperableAddress.sol +245 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol +25 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol +142 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol +25 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/math/Math.sol +763 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol +1162 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol +68 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/structs/Accumulators.sol +135 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/structs/BitMaps.sol +60 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol +833 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/structs/CircularBuffer.sol +152 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/structs/DoubleEndedQueue.sol +237 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol +1443 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol +895 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/structs/Heap.sol +259 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/structs/MerkleTree.sol +267 -0
- package/contracts/lib/openzeppelin-contracts/contracts/utils/types/Time.sol +133 -0
- package/contracts/lib/openzeppelin-contracts/contracts/vendor/compound/ICompoundTimelock.sol +86 -0
- package/contracts/lib/openzeppelin-contracts/contracts/vendor/compound/LICENSE +11 -0
- package/contracts/lib/openzeppelin-contracts/eslint.config.mjs +29 -0
- package/contracts/lib/openzeppelin-contracts/foundry.toml +20 -0
- package/contracts/lib/openzeppelin-contracts/fv/Makefile +54 -0
- package/contracts/lib/openzeppelin-contracts/fv/README.md +60 -0
- package/contracts/lib/openzeppelin-contracts/fv/diff/access_manager_AccessManager.sol.patch +97 -0
- package/contracts/lib/openzeppelin-contracts/fv/diff/account_extensions_draft-AccountERC7579.sol.patch +25 -0
- package/contracts/lib/openzeppelin-contracts/fv/diff/token_ERC721_ERC721.sol.patch +11 -0
- package/contracts/lib/openzeppelin-contracts/fv/harnesses/AccessControlDefaultAdminRulesHarness.sol +46 -0
- package/contracts/lib/openzeppelin-contracts/fv/harnesses/AccessControlHarness.sol +6 -0
- package/contracts/lib/openzeppelin-contracts/fv/harnesses/AccessManagedHarness.sol +36 -0
- package/contracts/lib/openzeppelin-contracts/fv/harnesses/AccessManagerHarness.sol +116 -0
- package/contracts/lib/openzeppelin-contracts/fv/harnesses/AccountHarness.sol +60 -0
- package/contracts/lib/openzeppelin-contracts/fv/harnesses/DoubleEndedQueueHarness.sol +58 -0
- package/contracts/lib/openzeppelin-contracts/fv/harnesses/ERC20FlashMintHarness.sol +36 -0
- package/contracts/lib/openzeppelin-contracts/fv/harnesses/ERC20PermitHarness.sol +16 -0
- package/contracts/lib/openzeppelin-contracts/fv/harnesses/ERC20WrapperHarness.sol +22 -0
- package/contracts/lib/openzeppelin-contracts/fv/harnesses/ERC3156FlashBorrowerHarness.sol +13 -0
- package/contracts/lib/openzeppelin-contracts/fv/harnesses/ERC721Harness.sol +37 -0
- package/contracts/lib/openzeppelin-contracts/fv/harnesses/ERC721ReceiverHarness.sol +11 -0
- package/contracts/lib/openzeppelin-contracts/fv/harnesses/EnumerableMapHarness.sol +55 -0
- package/contracts/lib/openzeppelin-contracts/fv/harnesses/EnumerableSetHarness.sol +35 -0
- package/contracts/lib/openzeppelin-contracts/fv/harnesses/InitializableHarness.sol +23 -0
- package/contracts/lib/openzeppelin-contracts/fv/harnesses/NoncesHarness.sol +14 -0
- package/contracts/lib/openzeppelin-contracts/fv/harnesses/Ownable2StepHarness.sol +10 -0
- package/contracts/lib/openzeppelin-contracts/fv/harnesses/OwnableHarness.sol +10 -0
- package/contracts/lib/openzeppelin-contracts/fv/harnesses/PausableHarness.sol +18 -0
- package/contracts/lib/openzeppelin-contracts/fv/harnesses/TimelockControllerHarness.sol +13 -0
- package/contracts/lib/openzeppelin-contracts/fv/reports/2021-10.pdf +0 -0
- package/contracts/lib/openzeppelin-contracts/fv/reports/2022-03.pdf +0 -0
- package/contracts/lib/openzeppelin-contracts/fv/reports/2022-05.pdf +0 -0
- package/contracts/lib/openzeppelin-contracts/fv/run.js +68 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/AccessControl.conf +8 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/AccessControl.spec +119 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/AccessControlDefaultAdminRules.conf +8 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/AccessControlDefaultAdminRules.spec +467 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/AccessManaged.conf +14 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/AccessManaged.spec +49 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/AccessManager.conf +10 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/AccessManager.spec +837 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/Account.conf +9 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/Account.spec +490 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/DoubleEndedQueue.conf +8 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/DoubleEndedQueue.spec +300 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/ERC20.conf +9 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/ERC20.spec +352 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/ERC20FlashMint.conf +10 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/ERC20FlashMint.spec +55 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/ERC20Wrapper.conf +13 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/ERC20Wrapper.spec +226 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/ERC721.conf +10 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/ERC721.spec +695 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/EnumerableMap.conf +8 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/EnumerableMap.spec +364 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/EnumerableSet.conf +8 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/EnumerableSet.spec +272 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/Initializable.conf +8 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/Initializable.spec +176 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/Nonces.conf +8 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/Nonces.spec +92 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/Ownable.conf +8 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/Ownable.spec +77 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/Ownable2Step.conf +8 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/Ownable2Step.spec +108 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/Pausable.conf +8 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/Pausable.spec +96 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/TimelockController.conf +10 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/TimelockController.spec +299 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/helpers/helpers.spec +13 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/methods/IAccessControl.spec +8 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/methods/IAccessControlDefaultAdminRules.spec +36 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/methods/IAccessManaged.spec +5 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/methods/IAccessManager.spec +33 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/methods/IAccount.spec +34 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/methods/IERC20.spec +11 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/methods/IERC2612.spec +5 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/methods/IERC3156FlashBorrower.spec +3 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/methods/IERC3156FlashLender.spec +5 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/methods/IERC5313.spec +3 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/methods/IERC721.spec +17 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/methods/IERC721Receiver.spec +3 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/methods/IOwnable.spec +5 -0
- package/contracts/lib/openzeppelin-contracts/fv/specs/methods/IOwnable2Step.spec +7 -0
- package/contracts/lib/openzeppelin-contracts/fv-requirements.txt +4 -0
- package/contracts/lib/openzeppelin-contracts/hardhat/async-test-sanity.js +10 -0
- package/contracts/lib/openzeppelin-contracts/hardhat/env-artifacts.js +29 -0
- package/contracts/lib/openzeppelin-contracts/hardhat/ignore-unreachable-warnings.js +45 -0
- package/contracts/lib/openzeppelin-contracts/hardhat/remappings.js +18 -0
- package/contracts/lib/openzeppelin-contracts/hardhat/skip-foundry-tests.js +6 -0
- package/contracts/lib/openzeppelin-contracts/hardhat/task-test-get-files.js +25 -0
- package/contracts/lib/openzeppelin-contracts/hardhat.config.js +124 -0
- package/contracts/lib/openzeppelin-contracts/lib/erc4626-tests/ERC4626.prop.sol +404 -0
- package/contracts/lib/openzeppelin-contracts/lib/erc4626-tests/ERC4626.test.sol +356 -0
- package/contracts/lib/openzeppelin-contracts/lib/erc4626-tests/LICENSE +661 -0
- package/contracts/lib/openzeppelin-contracts/lib/erc4626-tests/README.md +116 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/.gitattributes +1 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/.github/workflows/ci.yml +128 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/.github/workflows/sync.yml +31 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/CONTRIBUTING.md +193 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/LICENSE-APACHE +203 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/LICENSE-MIT +25 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/README.md +266 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/foundry.toml +23 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/package.json +16 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/scripts/vm.py +646 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/src/Base.sol +35 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/src/Script.sol +27 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdAssertions.sol +669 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdChains.sol +287 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdCheats.sol +829 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdError.sol +15 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdInvariant.sol +122 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdJson.sol +283 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdMath.sol +43 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol +473 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdStyle.sol +333 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdToml.sol +283 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdUtils.sol +209 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/src/Test.sol +33 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol +2263 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/src/console.sol +1560 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/src/console2.sol +4 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IERC1155.sol +105 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IERC165.sol +12 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IERC20.sol +43 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IERC4626.sol +190 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IERC721.sol +164 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IMulticall3.sol +73 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/src/safeconsole.sol +13937 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdAssertions.t.sol +141 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdChains.t.sol +227 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdCheats.t.sol +618 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdError.t.sol +120 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdJson.t.sol +49 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdMath.t.sol +202 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdStorage.t.sol +488 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdStyle.t.sol +110 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdToml.t.sol +49 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdUtils.t.sol +342 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/test/Vm.t.sol +18 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/test/compilation/CompilationScript.sol +10 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/test/compilation/CompilationScriptBase.sol +10 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/test/compilation/CompilationTest.sol +10 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/test/compilation/CompilationTestBase.sol +10 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/test/fixtures/broadcast.log.json +187 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/test/fixtures/test.json +8 -0
- package/contracts/lib/openzeppelin-contracts/lib/forge-std/test/fixtures/test.toml +6 -0
- package/contracts/lib/openzeppelin-contracts/lib/halmos-cheatcodes/LICENSE +661 -0
- package/contracts/lib/openzeppelin-contracts/lib/halmos-cheatcodes/README.md +97 -0
- package/contracts/lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/SVM.sol +49 -0
- package/contracts/lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/SymTest.sol +11 -0
- package/contracts/lib/openzeppelin-contracts/logo.svg +15 -0
- package/contracts/lib/openzeppelin-contracts/netlify.toml +3 -0
- package/contracts/lib/openzeppelin-contracts/package-lock.json +11150 -0
- package/contracts/lib/openzeppelin-contracts/package.json +108 -0
- package/contracts/lib/openzeppelin-contracts/remappings.txt +1 -0
- package/contracts/lib/openzeppelin-contracts/renovate.json +4 -0
- package/contracts/lib/openzeppelin-contracts/scripts/checks/compare-layout.js +28 -0
- package/contracts/lib/openzeppelin-contracts/scripts/checks/compareGasReports.js +249 -0
- package/contracts/lib/openzeppelin-contracts/scripts/checks/coverage.sh +24 -0
- package/contracts/lib/openzeppelin-contracts/scripts/checks/extract-layout.js +39 -0
- package/contracts/lib/openzeppelin-contracts/scripts/checks/generation.sh +6 -0
- package/contracts/lib/openzeppelin-contracts/scripts/checks/inheritance-ordering.js +55 -0
- package/contracts/lib/openzeppelin-contracts/scripts/checks/pragma-validity.js +45 -0
- package/contracts/lib/openzeppelin-contracts/scripts/fetch-common-contracts.js +50 -0
- package/contracts/lib/openzeppelin-contracts/scripts/gen-nav.js +81 -0
- package/contracts/lib/openzeppelin-contracts/scripts/generate/format-lines.js +16 -0
- package/contracts/lib/openzeppelin-contracts/scripts/generate/helpers/sanitize.js +5 -0
- package/contracts/lib/openzeppelin-contracts/scripts/generate/run.js +61 -0
- package/contracts/lib/openzeppelin-contracts/scripts/generate/templates/Arrays.js +505 -0
- package/contracts/lib/openzeppelin-contracts/scripts/generate/templates/Arrays.opts.js +9 -0
- package/contracts/lib/openzeppelin-contracts/scripts/generate/templates/Checkpoints.js +242 -0
- package/contracts/lib/openzeppelin-contracts/scripts/generate/templates/Checkpoints.opts.js +18 -0
- package/contracts/lib/openzeppelin-contracts/scripts/generate/templates/Checkpoints.t.js +141 -0
- package/contracts/lib/openzeppelin-contracts/scripts/generate/templates/Enumerable.opts.js +56 -0
- package/contracts/lib/openzeppelin-contracts/scripts/generate/templates/EnumerableMap.js +464 -0
- package/contracts/lib/openzeppelin-contracts/scripts/generate/templates/EnumerableSet.js +470 -0
- package/contracts/lib/openzeppelin-contracts/scripts/generate/templates/MerkleProof.js +186 -0
- package/contracts/lib/openzeppelin-contracts/scripts/generate/templates/MerkleProof.opts.js +11 -0
- package/contracts/lib/openzeppelin-contracts/scripts/generate/templates/Packing.js +92 -0
- package/contracts/lib/openzeppelin-contracts/scripts/generate/templates/Packing.opts.js +3 -0
- package/contracts/lib/openzeppelin-contracts/scripts/generate/templates/Packing.t.js +48 -0
- package/contracts/lib/openzeppelin-contracts/scripts/generate/templates/SafeCast.js +136 -0
- package/contracts/lib/openzeppelin-contracts/scripts/generate/templates/Slot.opts.js +15 -0
- package/contracts/lib/openzeppelin-contracts/scripts/generate/templates/SlotDerivation.js +119 -0
- package/contracts/lib/openzeppelin-contracts/scripts/generate/templates/SlotDerivation.t.js +127 -0
- package/contracts/lib/openzeppelin-contracts/scripts/generate/templates/StorageSlot.js +77 -0
- package/contracts/lib/openzeppelin-contracts/scripts/generate/templates/StorageSlotMock.js +57 -0
- package/contracts/lib/openzeppelin-contracts/scripts/generate/templates/TransientSlot.js +80 -0
- package/contracts/lib/openzeppelin-contracts/scripts/generate/templates/TransientSlotMock.js +35 -0
- package/contracts/lib/openzeppelin-contracts/scripts/generate/templates/conversion.js +34 -0
- package/contracts/lib/openzeppelin-contracts/scripts/get-contracts-metadata.js +55 -0
- package/contracts/lib/openzeppelin-contracts/scripts/git-user-config.sh +6 -0
- package/contracts/lib/openzeppelin-contracts/scripts/helpers.js +7 -0
- package/contracts/lib/openzeppelin-contracts/scripts/minimize-pragma.js +140 -0
- package/contracts/lib/openzeppelin-contracts/scripts/prepack.sh +23 -0
- package/contracts/lib/openzeppelin-contracts/scripts/prepare-docs.sh +26 -0
- package/contracts/lib/openzeppelin-contracts/scripts/release/format-changelog.js +33 -0
- package/contracts/lib/openzeppelin-contracts/scripts/release/synchronize-versions.js +15 -0
- package/contracts/lib/openzeppelin-contracts/scripts/release/update-comment.js +34 -0
- package/contracts/lib/openzeppelin-contracts/scripts/release/version.sh +11 -0
- package/contracts/lib/openzeppelin-contracts/scripts/release/workflow/check-upgradeable.sh +27 -0
- package/contracts/lib/openzeppelin-contracts/scripts/release/workflow/exit-prerelease.sh +8 -0
- package/contracts/lib/openzeppelin-contracts/scripts/release/workflow/github-release.js +48 -0
- package/contracts/lib/openzeppelin-contracts/scripts/release/workflow/integrity-check.sh +20 -0
- package/contracts/lib/openzeppelin-contracts/scripts/release/workflow/pack.sh +26 -0
- package/contracts/lib/openzeppelin-contracts/scripts/release/workflow/publish.sh +26 -0
- package/contracts/lib/openzeppelin-contracts/scripts/release/workflow/rerun.js +7 -0
- package/contracts/lib/openzeppelin-contracts/scripts/release/workflow/set-changesets-pr-title.js +17 -0
- package/contracts/lib/openzeppelin-contracts/scripts/release/workflow/start.sh +35 -0
- package/contracts/lib/openzeppelin-contracts/scripts/release/workflow/state.js +112 -0
- package/contracts/lib/openzeppelin-contracts/scripts/remove-ignored-artifacts.js +45 -0
- package/contracts/lib/openzeppelin-contracts/scripts/set-max-old-space-size.sh +10 -0
- package/contracts/lib/openzeppelin-contracts/scripts/solc-versions.js +15 -0
- package/contracts/lib/openzeppelin-contracts/scripts/solhint-custom/index.js +118 -0
- package/contracts/lib/openzeppelin-contracts/scripts/solhint-custom/package.json +8 -0
- package/contracts/lib/openzeppelin-contracts/scripts/update-docs-branch.js +65 -0
- package/contracts/lib/openzeppelin-contracts/scripts/upgradeable/README.md +21 -0
- package/contracts/lib/openzeppelin-contracts/scripts/upgradeable/alias/Initializable.sol +5 -0
- package/contracts/lib/openzeppelin-contracts/scripts/upgradeable/alias/UUPSUpgradeable.sol +5 -0
- package/contracts/lib/openzeppelin-contracts/scripts/upgradeable/patch-apply.sh +19 -0
- package/contracts/lib/openzeppelin-contracts/scripts/upgradeable/patch-save.sh +18 -0
- package/contracts/lib/openzeppelin-contracts/scripts/upgradeable/transpile-onto.sh +54 -0
- package/contracts/lib/openzeppelin-contracts/scripts/upgradeable/transpile.sh +50 -0
- package/contracts/lib/openzeppelin-contracts/scripts/upgradeable/upgradeable.patch +390 -0
- package/contracts/lib/openzeppelin-contracts/slither.config.json +4 -0
- package/contracts/lib/openzeppelin-contracts/solhint.config.js +29 -0
- package/contracts/lib/openzeppelin-contracts/test/TESTING.md +3 -0
- package/contracts/lib/openzeppelin-contracts/test/access/AccessControl.behavior.js +874 -0
- package/contracts/lib/openzeppelin-contracts/test/access/AccessControl.test.js +19 -0
- package/contracts/lib/openzeppelin-contracts/test/access/Ownable.test.js +79 -0
- package/contracts/lib/openzeppelin-contracts/test/access/Ownable2Step.test.js +102 -0
- package/contracts/lib/openzeppelin-contracts/test/access/extensions/AccessControlDefaultAdminRules.test.js +32 -0
- package/contracts/lib/openzeppelin-contracts/test/access/extensions/AccessControlEnumerable.test.js +24 -0
- package/contracts/lib/openzeppelin-contracts/test/access/manager/AccessManaged.test.js +146 -0
- package/contracts/lib/openzeppelin-contracts/test/access/manager/AccessManager.behavior.js +257 -0
- package/contracts/lib/openzeppelin-contracts/test/access/manager/AccessManager.predicate.js +456 -0
- package/contracts/lib/openzeppelin-contracts/test/access/manager/AccessManager.test.js +2489 -0
- package/contracts/lib/openzeppelin-contracts/test/access/manager/AuthorityUtils.test.js +112 -0
- package/contracts/lib/openzeppelin-contracts/test/account/Account.behavior.js +144 -0
- package/contracts/lib/openzeppelin-contracts/test/account/Account.test.js +48 -0
- package/contracts/lib/openzeppelin-contracts/test/account/AccountECDSA.test.js +52 -0
- package/contracts/lib/openzeppelin-contracts/test/account/AccountEIP7702.t.sol +116 -0
- package/contracts/lib/openzeppelin-contracts/test/account/AccountEIP7702.test.js +52 -0
- package/contracts/lib/openzeppelin-contracts/test/account/AccountERC7913.test.js +138 -0
- package/contracts/lib/openzeppelin-contracts/test/account/AccountMultiSigner.test.js +326 -0
- package/contracts/lib/openzeppelin-contracts/test/account/AccountMultiSignerWeighted.test.js +312 -0
- package/contracts/lib/openzeppelin-contracts/test/account/AccountP256.test.js +58 -0
- package/contracts/lib/openzeppelin-contracts/test/account/AccountRSA.test.js +58 -0
- package/contracts/lib/openzeppelin-contracts/test/account/AccountWebAuthn.test.js +75 -0
- package/contracts/lib/openzeppelin-contracts/test/account/examples/AccountEIP7702WithModulesMock.test.js +99 -0
- package/contracts/lib/openzeppelin-contracts/test/account/extensions/AccountERC7579.behavior.js +621 -0
- package/contracts/lib/openzeppelin-contracts/test/account/extensions/AccountERC7579.test.js +60 -0
- package/contracts/lib/openzeppelin-contracts/test/account/extensions/AccountERC7579Hooked.test.js +60 -0
- package/contracts/lib/openzeppelin-contracts/test/account/extensions/ERC7821.behavior.js +145 -0
- package/contracts/lib/openzeppelin-contracts/test/account/utils/EIP7702Utils.test.js +53 -0
- package/contracts/lib/openzeppelin-contracts/test/account/utils/draft-ERC4337Utils.test.js +594 -0
- package/contracts/lib/openzeppelin-contracts/test/account/utils/draft-ERC7579Utils.t.sol +434 -0
- package/contracts/lib/openzeppelin-contracts/test/account/utils/draft-ERC7579Utils.test.js +399 -0
- package/contracts/lib/openzeppelin-contracts/test/crosschain/BridgeERC20.behavior.js +144 -0
- package/contracts/lib/openzeppelin-contracts/test/crosschain/BridgeERC20.test.js +46 -0
- package/contracts/lib/openzeppelin-contracts/test/crosschain/ERC7786Recipient.test.js +55 -0
- package/contracts/lib/openzeppelin-contracts/test/finance/VestingWallet.behavior.js +87 -0
- package/contracts/lib/openzeppelin-contracts/test/finance/VestingWallet.test.js +65 -0
- package/contracts/lib/openzeppelin-contracts/test/finance/VestingWalletCliff.test.js +70 -0
- package/contracts/lib/openzeppelin-contracts/test/governance/Governor.t.sol +59 -0
- package/contracts/lib/openzeppelin-contracts/test/governance/Governor.test.js +980 -0
- package/contracts/lib/openzeppelin-contracts/test/governance/TimelockController.test.js +1279 -0
- package/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorCountingFractional.test.js +248 -0
- package/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorCountingOverridable.test.js +346 -0
- package/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorERC721.test.js +131 -0
- package/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorNoncesKeyed.test.js +243 -0
- package/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorPreventLateQuorum.test.js +185 -0
- package/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorProposalGuardian.test.js +132 -0
- package/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorSequentialProposalId.test.js +202 -0
- package/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorStorage.test.js +175 -0
- package/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorSuperQuorum.test.js +168 -0
- package/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorSuperQuorumGreaterThanQuorum.t.sol +83 -0
- package/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorTimelockAccess.test.js +864 -0
- package/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorTimelockCompound.test.js +448 -0
- package/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorTimelockControl.test.js +504 -0
- package/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorVotesQuorumFraction.test.js +165 -0
- package/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorVotesSuperQuorumFraction.test.js +160 -0
- package/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorWithParams.test.js +245 -0
- package/contracts/lib/openzeppelin-contracts/test/governance/utils/ERC6372.behavior.js +28 -0
- package/contracts/lib/openzeppelin-contracts/test/governance/utils/Votes.behavior.js +325 -0
- package/contracts/lib/openzeppelin-contracts/test/governance/utils/Votes.test.js +102 -0
- package/contracts/lib/openzeppelin-contracts/test/governance/utils/VotesExtended.test.js +152 -0
- package/contracts/lib/openzeppelin-contracts/test/helpers/access-manager.js +85 -0
- package/contracts/lib/openzeppelin-contracts/test/helpers/account.js +16 -0
- package/contracts/lib/openzeppelin-contracts/test/helpers/chains.js +56 -0
- package/contracts/lib/openzeppelin-contracts/test/helpers/constants.js +7 -0
- package/contracts/lib/openzeppelin-contracts/test/helpers/deploy.js +14 -0
- package/contracts/lib/openzeppelin-contracts/test/helpers/eip712-types.js +61 -0
- package/contracts/lib/openzeppelin-contracts/test/helpers/eip712.js +45 -0
- package/contracts/lib/openzeppelin-contracts/test/helpers/enums.js +15 -0
- package/contracts/lib/openzeppelin-contracts/test/helpers/erc4337.js +244 -0
- package/contracts/lib/openzeppelin-contracts/test/helpers/erc7579.js +58 -0
- package/contracts/lib/openzeppelin-contracts/test/helpers/erc7739.js +118 -0
- package/contracts/lib/openzeppelin-contracts/test/helpers/governance.js +218 -0
- package/contracts/lib/openzeppelin-contracts/test/helpers/iterate.js +41 -0
- package/contracts/lib/openzeppelin-contracts/test/helpers/math.js +33 -0
- package/contracts/lib/openzeppelin-contracts/test/helpers/methods.js +14 -0
- package/contracts/lib/openzeppelin-contracts/test/helpers/precompiles.js +12 -0
- package/contracts/lib/openzeppelin-contracts/test/helpers/random.js +26 -0
- package/contracts/lib/openzeppelin-contracts/test/helpers/signers.js +222 -0
- package/contracts/lib/openzeppelin-contracts/test/helpers/storage.js +48 -0
- package/contracts/lib/openzeppelin-contracts/test/helpers/strings.js +5 -0
- package/contracts/lib/openzeppelin-contracts/test/helpers/time.js +33 -0
- package/contracts/lib/openzeppelin-contracts/test/helpers/trie.js +80 -0
- package/contracts/lib/openzeppelin-contracts/test/helpers/txpool.js +28 -0
- package/contracts/lib/openzeppelin-contracts/test/metatx/ERC2771Context.test.js +109 -0
- package/contracts/lib/openzeppelin-contracts/test/metatx/ERC2771Forwarder.t.sol +279 -0
- package/contracts/lib/openzeppelin-contracts/test/metatx/ERC2771Forwarder.test.js +384 -0
- package/contracts/lib/openzeppelin-contracts/test/proxy/Clones.behaviour.js +160 -0
- package/contracts/lib/openzeppelin-contracts/test/proxy/Clones.t.sol +91 -0
- package/contracts/lib/openzeppelin-contracts/test/proxy/Clones.test.js +177 -0
- package/contracts/lib/openzeppelin-contracts/test/proxy/ERC1967/ERC1967Proxy.test.js +36 -0
- package/contracts/lib/openzeppelin-contracts/test/proxy/ERC1967/ERC1967Utils.test.js +162 -0
- package/contracts/lib/openzeppelin-contracts/test/proxy/Proxy.behaviour.js +198 -0
- package/contracts/lib/openzeppelin-contracts/test/proxy/beacon/BeaconProxy.test.js +141 -0
- package/contracts/lib/openzeppelin-contracts/test/proxy/beacon/UpgradeableBeacon.test.js +55 -0
- package/contracts/lib/openzeppelin-contracts/test/proxy/transparent/ProxyAdmin.test.js +82 -0
- package/contracts/lib/openzeppelin-contracts/test/proxy/transparent/TransparentUpgradeableProxy.behaviour.js +367 -0
- package/contracts/lib/openzeppelin-contracts/test/proxy/transparent/TransparentUpgradeableProxy.test.js +28 -0
- package/contracts/lib/openzeppelin-contracts/test/proxy/utils/Initializable.test.js +216 -0
- package/contracts/lib/openzeppelin-contracts/test/proxy/utils/UUPSUpgradeable.test.js +120 -0
- package/contracts/lib/openzeppelin-contracts/test/sanity.test.js +27 -0
- package/contracts/lib/openzeppelin-contracts/test/token/ERC1155/ERC1155.behavior.js +865 -0
- package/contracts/lib/openzeppelin-contracts/test/token/ERC1155/ERC1155.test.js +258 -0
- package/contracts/lib/openzeppelin-contracts/test/token/ERC1155/extensions/ERC1155Burnable.test.js +66 -0
- package/contracts/lib/openzeppelin-contracts/test/token/ERC1155/extensions/ERC1155Pausable.test.js +105 -0
- package/contracts/lib/openzeppelin-contracts/test/token/ERC1155/extensions/ERC1155Supply.test.js +119 -0
- package/contracts/lib/openzeppelin-contracts/test/token/ERC1155/extensions/ERC1155URIStorage.test.js +70 -0
- package/contracts/lib/openzeppelin-contracts/test/token/ERC1155/utils/ERC1155Holder.test.js +56 -0
- package/contracts/lib/openzeppelin-contracts/test/token/ERC1155/utils/ERC1155Utils.test.js +299 -0
- package/contracts/lib/openzeppelin-contracts/test/token/ERC20/ERC20.behavior.js +269 -0
- package/contracts/lib/openzeppelin-contracts/test/token/ERC20/ERC20.test.js +199 -0
- package/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC1363.test.js +370 -0
- package/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Burnable.test.js +105 -0
- package/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Capped.test.js +55 -0
- package/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Crosschain.test.js +83 -0
- package/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20FlashMint.test.js +164 -0
- package/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Pausable.test.js +129 -0
- package/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Permit.test.js +109 -0
- package/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Votes.test.js +546 -0
- package/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Wrapper.test.js +203 -0
- package/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC4626.t.sol +41 -0
- package/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC4626.test.js +888 -0
- package/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/draft-ERC20Bridgeable.test.js +89 -0
- package/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/draft-ERC20TemporaryApproval.test.js +142 -0
- package/contracts/lib/openzeppelin-contracts/test/token/ERC20/utils/SafeERC20.test.js +463 -0
- package/contracts/lib/openzeppelin-contracts/test/token/ERC6909/ERC6909.behavior.js +216 -0
- package/contracts/lib/openzeppelin-contracts/test/token/ERC6909/ERC6909.test.js +104 -0
- package/contracts/lib/openzeppelin-contracts/test/token/ERC6909/extensions/ERC6909ContentURI.test.js +52 -0
- package/contracts/lib/openzeppelin-contracts/test/token/ERC6909/extensions/ERC6909Metadata.test.js +62 -0
- package/contracts/lib/openzeppelin-contracts/test/token/ERC6909/extensions/ERC6909TokenSupply.test.js +56 -0
- package/contracts/lib/openzeppelin-contracts/test/token/ERC721/ERC721.behavior.js +954 -0
- package/contracts/lib/openzeppelin-contracts/test/token/ERC721/ERC721.test.js +23 -0
- package/contracts/lib/openzeppelin-contracts/test/token/ERC721/ERC721Enumerable.test.js +28 -0
- package/contracts/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Burnable.test.js +77 -0
- package/contracts/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Consecutive.t.sol +187 -0
- package/contracts/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Consecutive.test.js +228 -0
- package/contracts/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Pausable.test.js +81 -0
- package/contracts/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Royalty.test.js +57 -0
- package/contracts/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721URIStorage.test.js +134 -0
- package/contracts/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Votes.test.js +194 -0
- package/contracts/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Wrapper.test.js +201 -0
- package/contracts/lib/openzeppelin-contracts/test/token/ERC721/utils/ERC721Holder.test.js +20 -0
- package/contracts/lib/openzeppelin-contracts/test/token/ERC721/utils/ERC721Utils.test.js +94 -0
- package/contracts/lib/openzeppelin-contracts/test/token/common/ERC2981.behavior.js +152 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/Address.test.js +332 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/Arrays.t.sol +416 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/Arrays.test.js +284 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/Base58.t.sol +24 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/Base58.test.js +65 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/Base64.t.sol +36 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/Base64.test.js +79 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/Blockhash.t.sol +101 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/Blockhash.test.js +59 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/Bytes.t.sol +322 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/Bytes.test.js +371 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/CAIP.test.js +56 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/Calldata.test.js +22 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/Context.behavior.js +48 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/Context.test.js +18 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/Create2.t.sol +17 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/Create2.test.js +190 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/LowLevelCall.test.js +257 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/Memory.t.sol +90 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/Memory.test.js +94 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/Multicall.test.js +72 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/Nonces.behavior.js +189 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/Nonces.test.js +16 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/NoncesKeyed.t.sol +51 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/NoncesKeyed.test.js +17 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/Packing.t.sol +993 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/Packing.test.js +70 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/Panic.test.js +37 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/Pausable.test.js +90 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/RLP.t.sol +144 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/RLP.test.js +224 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/ReentrancyGuard.test.js +58 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/RelayedCall.test.js +217 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/ShortStrings.t.sol +109 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/ShortStrings.test.js +64 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/SlotDerivation.t.sol +248 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/SlotDerivation.test.js +58 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/StorageSlot.test.js +73 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/Strings.t.sol +50 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/Strings.test.js +366 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/TransientSlot.test.js +59 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/cryptography/ECDSA.test.js +322 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/cryptography/EIP712.test.js +105 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/cryptography/ERC1271.behavior.js +111 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/cryptography/ERC7739.test.js +42 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/cryptography/ERC7739Utils.test.js +203 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/cryptography/MerkleProof.test.js +213 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/cryptography/MessageHashUtils.t.sol +33 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/cryptography/MessageHashUtils.test.js +149 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/cryptography/P256.t.sol +45 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/cryptography/P256.test.js +182 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/cryptography/RSA.helper.js +17 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/cryptography/RSA.test.js +102 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/cryptography/SigVer15_186-3.rsp +3850 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/cryptography/SignatureChecker.test.js +427 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/cryptography/TrieProof.test.js +719 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/cryptography/WebAuthn.t.sol +340 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/cryptography/ecdsa_secp256r1_sha256_p1363_test.json +3719 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/draft-InteroperableAddress.t.sol +99 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/draft-InteroperableAddress.test.js +217 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/introspection/ERC165.test.js +18 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/introspection/ERC165Checker.test.js +272 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/introspection/SupportsInterface.behavior.js +169 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/math/Math.t.sol +370 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/math/Math.test.js +746 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/math/SafeCast.test.js +159 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/math/SignedMath.t.sol +81 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/math/SignedMath.test.js +53 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/structs/Accumulators.t.sol +35 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/structs/BitMap.test.js +149 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/structs/Checkpoints.t.sol +440 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/structs/Checkpoints.test.js +147 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/structs/CircularBuffer.test.js +83 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/structs/DoubleEndedQueue.test.js +144 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/structs/EnumerableMap.behavior.js +214 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/structs/EnumerableMap.test.js +83 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/structs/EnumerableSet.behavior.js +175 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/structs/EnumerableSet.test.js +66 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/structs/Heap.t.sol +74 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/structs/Heap.test.js +113 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/structs/MerkleTree.test.js +180 -0
- package/contracts/lib/openzeppelin-contracts/test/utils/types/Time.test.js +135 -0
- package/contracts/script/Deploy.s.sol +16 -0
- package/contracts/src/MintFactory.sol +74 -0
- package/contracts/test/MintFactory.t.sol +149 -0
- package/dist/index.js +12 -21
- package/dist/services/metadata.js +11 -23
- package/dist/tools/mint-check.js +7 -30
- package/dist/tools/mint-resolve.js +9 -31
- package/dist/tools/mint.d.ts +6 -9
- package/dist/tools/mint.js +108 -173
- package/docs/superpowers/plans/2026-03-15-agent-mint-service.md +950 -0
- package/package.json +1 -5
- package/scripts/deploy-mainnet.html +118 -0
- package/scripts/e2e-sponsored.mjs +80 -0
- package/scripts/e2e-test.sh +64 -0
- package/scripts/fund-wallet.html +107 -0
- package/site/.well-known/agent.json +25 -0
- package/site/admin.html +711 -0
- package/site/assets/logo.png +0 -0
- package/site/assets/screenshot-feed.png +0 -0
- package/site/assets/screenshot-home.png +0 -0
- package/site/feed.html +438 -0
- package/site/index.html +544 -0
- package/site/llms.txt +100 -0
- package/site/og.html +216 -0
- package/site/og.png +0 -0
- package/site/shared.css +152 -0
- package/site/shared.js +222 -0
- package/src/index.ts +99 -0
- package/src/services/calldata.ts +70 -0
- package/src/services/classifier.ts +96 -0
- package/src/services/ens.ts +36 -0
- package/src/services/image-upload.ts +82 -0
- package/src/services/metadata.ts +128 -0
- package/src/tools/mint-check.ts +182 -0
- package/src/tools/mint-resolve.ts +110 -0
- package/src/tools/mint.ts +395 -0
- package/src/types.ts +43 -0
- package/tsconfig.json +14 -0
- package/vercel.json +4 -0
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
// OpenZeppelin Contracts (last updated v5.4.0) (vendor/compound/ICompoundTimelock.sol)
|
|
3
|
+
|
|
4
|
+
pragma solidity >=0.6.9;
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* https://github.com/compound-finance/compound-protocol/blob/master/contracts/Timelock.sol[Compound timelock] interface
|
|
8
|
+
*/
|
|
9
|
+
interface ICompoundTimelock {
|
|
10
|
+
event NewAdmin(address indexed newAdmin);
|
|
11
|
+
event NewPendingAdmin(address indexed newPendingAdmin);
|
|
12
|
+
event NewDelay(uint256 indexed newDelay);
|
|
13
|
+
event CancelTransaction(
|
|
14
|
+
bytes32 indexed txHash,
|
|
15
|
+
address indexed target,
|
|
16
|
+
uint256 value,
|
|
17
|
+
string signature,
|
|
18
|
+
bytes data,
|
|
19
|
+
uint256 eta
|
|
20
|
+
);
|
|
21
|
+
event ExecuteTransaction(
|
|
22
|
+
bytes32 indexed txHash,
|
|
23
|
+
address indexed target,
|
|
24
|
+
uint256 value,
|
|
25
|
+
string signature,
|
|
26
|
+
bytes data,
|
|
27
|
+
uint256 eta
|
|
28
|
+
);
|
|
29
|
+
event QueueTransaction(
|
|
30
|
+
bytes32 indexed txHash,
|
|
31
|
+
address indexed target,
|
|
32
|
+
uint256 value,
|
|
33
|
+
string signature,
|
|
34
|
+
bytes data,
|
|
35
|
+
uint256 eta
|
|
36
|
+
);
|
|
37
|
+
|
|
38
|
+
receive() external payable;
|
|
39
|
+
|
|
40
|
+
// solhint-disable-next-line func-name-mixedcase
|
|
41
|
+
function GRACE_PERIOD() external view returns (uint256);
|
|
42
|
+
|
|
43
|
+
// solhint-disable-next-line func-name-mixedcase
|
|
44
|
+
function MINIMUM_DELAY() external view returns (uint256);
|
|
45
|
+
|
|
46
|
+
// solhint-disable-next-line func-name-mixedcase
|
|
47
|
+
function MAXIMUM_DELAY() external view returns (uint256);
|
|
48
|
+
|
|
49
|
+
function admin() external view returns (address);
|
|
50
|
+
|
|
51
|
+
function pendingAdmin() external view returns (address);
|
|
52
|
+
|
|
53
|
+
function delay() external view returns (uint256);
|
|
54
|
+
|
|
55
|
+
function queuedTransactions(bytes32) external view returns (bool);
|
|
56
|
+
|
|
57
|
+
function setDelay(uint256) external;
|
|
58
|
+
|
|
59
|
+
function acceptAdmin() external;
|
|
60
|
+
|
|
61
|
+
function setPendingAdmin(address) external;
|
|
62
|
+
|
|
63
|
+
function queueTransaction(
|
|
64
|
+
address target,
|
|
65
|
+
uint256 value,
|
|
66
|
+
string memory signature,
|
|
67
|
+
bytes memory data,
|
|
68
|
+
uint256 eta
|
|
69
|
+
) external returns (bytes32);
|
|
70
|
+
|
|
71
|
+
function cancelTransaction(
|
|
72
|
+
address target,
|
|
73
|
+
uint256 value,
|
|
74
|
+
string memory signature,
|
|
75
|
+
bytes memory data,
|
|
76
|
+
uint256 eta
|
|
77
|
+
) external;
|
|
78
|
+
|
|
79
|
+
function executeTransaction(
|
|
80
|
+
address target,
|
|
81
|
+
uint256 value,
|
|
82
|
+
string memory signature,
|
|
83
|
+
bytes memory data,
|
|
84
|
+
uint256 eta
|
|
85
|
+
) external payable returns (bytes memory);
|
|
86
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
Copyright 2020 Compound Labs, Inc.
|
|
2
|
+
|
|
3
|
+
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
|
4
|
+
|
|
5
|
+
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
|
6
|
+
|
|
7
|
+
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
|
8
|
+
|
|
9
|
+
3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
|
|
10
|
+
|
|
11
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import js from '@eslint/js';
|
|
2
|
+
import { includeIgnoreFile } from '@eslint/compat';
|
|
3
|
+
import prettier from 'eslint-config-prettier';
|
|
4
|
+
import globals from 'globals';
|
|
5
|
+
import path from 'path';
|
|
6
|
+
import { fileURLToPath } from 'node:url';
|
|
7
|
+
|
|
8
|
+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
9
|
+
|
|
10
|
+
export default [
|
|
11
|
+
js.configs.recommended,
|
|
12
|
+
prettier,
|
|
13
|
+
{
|
|
14
|
+
languageOptions: {
|
|
15
|
+
ecmaVersion: 2022,
|
|
16
|
+
globals: {
|
|
17
|
+
...globals.browser,
|
|
18
|
+
...globals.mocha,
|
|
19
|
+
...globals.node,
|
|
20
|
+
artifacts: 'readonly',
|
|
21
|
+
contract: 'readonly',
|
|
22
|
+
web3: 'readonly',
|
|
23
|
+
extendEnvironment: 'readonly',
|
|
24
|
+
expect: 'readonly',
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
includeIgnoreFile(path.resolve(__dirname, '.gitignore')),
|
|
29
|
+
];
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
[profile.default]
|
|
2
|
+
solc_version = '0.8.31'
|
|
3
|
+
evm_version = 'osaka'
|
|
4
|
+
optimizer = true
|
|
5
|
+
optimizer_runs = 200
|
|
6
|
+
src = 'contracts'
|
|
7
|
+
out = 'out'
|
|
8
|
+
libs = ['node_modules', 'lib']
|
|
9
|
+
test = 'test'
|
|
10
|
+
cache_path = 'cache_forge'
|
|
11
|
+
fs_permissions = [{ access = "read", path = "./node_modules/hardhat-predeploy/bin" }]
|
|
12
|
+
|
|
13
|
+
[lint]
|
|
14
|
+
exclude_lints = ["mixed-case-function", "asm-keccak256", "screaming-snake-case-immutable", "incorrect-shift", "mixed-case-variable"]
|
|
15
|
+
ignore = ["./contracts/interfaces/**/*.sol", "./contracts/mocks/Stateless.sol"]
|
|
16
|
+
lint_on_build = false
|
|
17
|
+
|
|
18
|
+
[fuzz]
|
|
19
|
+
runs = 5000
|
|
20
|
+
max_test_rejects = 150000
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
default: help
|
|
2
|
+
|
|
3
|
+
SRC := ../contracts
|
|
4
|
+
DST := patched
|
|
5
|
+
DIFF := diff
|
|
6
|
+
SRCS := $(shell find $(SRC) -type f)
|
|
7
|
+
DSTS := $(shell find $(DST) -type f)
|
|
8
|
+
DIFFS := $(shell find $(DIFF) -type f)
|
|
9
|
+
|
|
10
|
+
###############################################################################
|
|
11
|
+
# Apply all patches in the $DIFF folder to the $DST folder
|
|
12
|
+
apply: $(DST) $(patsubst $(DIFF)/%.patch,$(DST)/%,$(subst _,/,$(DIFFS)))
|
|
13
|
+
|
|
14
|
+
# Reset the $DST folder
|
|
15
|
+
$(DST): FORCE
|
|
16
|
+
@rm -rf $@
|
|
17
|
+
@cp -r $(SRC) $@
|
|
18
|
+
|
|
19
|
+
# Update a solidity file in the $DST directory using the corresponding patch
|
|
20
|
+
$(DST)/%.sol: FORCE | $(DST)
|
|
21
|
+
@echo Applying patch to $@
|
|
22
|
+
@patch -p0 -d $(DST) < $(patsubst $(DST)_%,$(DIFF)/%.patch,$(subst /,_,$@))
|
|
23
|
+
|
|
24
|
+
###############################################################################
|
|
25
|
+
# Record all difference between $SRC and $DST in patches
|
|
26
|
+
record: $(DIFF) $(patsubst %,$(DIFF)/%.patch,$(subst /,_,$(subst $(SRC)/,,$(SRCS)) $(subst $(DST)/,,$(DSTS))))
|
|
27
|
+
|
|
28
|
+
# Create the $DIFF folder
|
|
29
|
+
$(DIFF): FORCE
|
|
30
|
+
@rm -rf $@
|
|
31
|
+
@mkdir $@
|
|
32
|
+
|
|
33
|
+
# Create the patch file by comparing the source and the destination
|
|
34
|
+
$(DIFF)/%.patch: FORCE | $(DIFF)
|
|
35
|
+
@echo Generating patch $@
|
|
36
|
+
@diff -ruN \
|
|
37
|
+
$(patsubst $(DIFF)/%.patch,$(SRC)/%,$(subst _,/,$@)) \
|
|
38
|
+
$(patsubst $(DIFF)/%.patch,$(DST)/%,$(subst _,/,$@)) \
|
|
39
|
+
| sed 's+$(SRC)/++g' \
|
|
40
|
+
| sed 's+$(DST)/++g' \
|
|
41
|
+
> $@
|
|
42
|
+
@[ -s $@ ] || rm $@
|
|
43
|
+
|
|
44
|
+
###############################################################################
|
|
45
|
+
help:
|
|
46
|
+
@echo "usage:"
|
|
47
|
+
@echo " make apply: create $(DST) directory by applying the patches to $(SRC)"
|
|
48
|
+
@echo " make record: record the patches capturing the differences between $(SRC) and $(DST)"
|
|
49
|
+
@echo " make clean: remove all generated files (those ignored by git)"
|
|
50
|
+
|
|
51
|
+
clean:
|
|
52
|
+
git clean -fdX
|
|
53
|
+
|
|
54
|
+
FORCE: ;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# Running formal verification tool
|
|
2
|
+
|
|
3
|
+
These instructions detail the process for running Formal Verification Tool on OpenZeppelin Contracts.
|
|
4
|
+
|
|
5
|
+
Documentation for CVT and the specification language is available [here](https://certora.atlassian.net/wiki/spaces/CPD/overview).
|
|
6
|
+
|
|
7
|
+
## Prerequisites
|
|
8
|
+
|
|
9
|
+
Follow the [Certora installation guide](https://docs.certora.com/en/latest/docs/user-guide/getting-started/install.html) in order to get the Certora Prover Package and the `solc` executable folder in your path.
|
|
10
|
+
|
|
11
|
+
> **Note**
|
|
12
|
+
> An API Key is required for local testing. Although the prover will run on a GitHub Actions' CI environment on selected Pull Requests.
|
|
13
|
+
|
|
14
|
+
## Running the verification
|
|
15
|
+
|
|
16
|
+
The Formal Verification Tool proves specs for contracts, which are defined by per-spec `.conf` files located under `fv/specs/` along with their pre-configured options.
|
|
17
|
+
|
|
18
|
+
The verification script `./run.js` is used to submit verification jobs to the Certora Verification service.
|
|
19
|
+
|
|
20
|
+
You can run it from the root of the repository with the following command:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
node fv/run.js [SPEC_NAME | fv/specs/NAME.conf] [--all] [-p N] [-v]
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Where:
|
|
27
|
+
|
|
28
|
+
- `SPEC_NAME` is the base name of a configuration file in `fv/specs/` without extension. For example, `AccessControl` maps to `fv/specs/AccessControl.conf`.
|
|
29
|
+
- Alternatively, you may pass an explicit path to a `.conf` file under `fv/specs/`.
|
|
30
|
+
- Supported script options are `--all`, `--parallel/-p`, and `--verbose/-v`.
|
|
31
|
+
|
|
32
|
+
> **Note**
|
|
33
|
+
> A single spec may be configured to run for multiple contracts, whereas a single contract may run multiple specs.
|
|
34
|
+
|
|
35
|
+
Example usage:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
node fv/run.js AccessControl # Run the AccessControl configuration (fv/specs/AccessControl.conf) using its harness and spec
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Adapting to changes in the contracts
|
|
42
|
+
|
|
43
|
+
Some of our rules require the code to be simplified in various ways. Our primary tool for performing these simplifications is to run verification on a contract that extends the original contracts and overrides some of the methods. These "harness" contracts can be found in the `fv/harnesses` directory.
|
|
44
|
+
|
|
45
|
+
This pattern does require some modifications to the original code: some methods need to be made virtual or public, for example. These changes are handled by applying a patch
|
|
46
|
+
to the code before verification by running:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
make -C fv apply
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Before running the `fv/run.js` script, it's required to apply the corresponding patches to the `contracts` directory, placing the output in the `fv/patched` directory. Then, the contracts are verified by running the verification for the `fv/patched` directory.
|
|
53
|
+
|
|
54
|
+
If the original contracts change, it is possible to create a conflict with the patch. In this case, the verify scripts will report an error message and output rejected changes in the `patched` directory. After merging the changes, run `make record` in the `fv` directory; this will regenerate the patch file, which can then be checked into git.
|
|
55
|
+
|
|
56
|
+
For more information about the `make` scripts available, run:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
make -C fv help
|
|
60
|
+
```
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
--- access/manager/AccessManager.sol 2025-08-16 15:15:34
|
|
2
|
+
+++ access/manager/AccessManager.sol 2025-08-16 15:17:51
|
|
3
|
+
@@ -7,7 +7,6 @@
|
|
4
|
+
import {IAccessManaged} from "./IAccessManaged.sol";
|
|
5
|
+
import {Address} from "../../utils/Address.sol";
|
|
6
|
+
import {Context} from "../../utils/Context.sol";
|
|
7
|
+
-import {Multicall} from "../../utils/Multicall.sol";
|
|
8
|
+
import {Math} from "../../utils/math/Math.sol";
|
|
9
|
+
import {Time} from "../../utils/types/Time.sol";
|
|
10
|
+
import {Hashes} from "../../utils/cryptography/Hashes.sol";
|
|
11
|
+
@@ -59,7 +58,8 @@
|
|
12
|
+
* mindful of the danger associated with functions such as {Ownable-renounceOwnership} or
|
|
13
|
+
* {AccessControl-renounceRole}.
|
|
14
|
+
*/
|
|
15
|
+
-contract AccessManager is Context, Multicall, IAccessManager {
|
|
16
|
+
+// NOTE: The FV version of this contract doesn't include Multicall because CVL HAVOCs on any `delegatecall`.
|
|
17
|
+
+contract AccessManager is Context, IAccessManager {
|
|
18
|
+
using Time for *;
|
|
19
|
+
|
|
20
|
+
// Structure that stores the details for a target contract.
|
|
21
|
+
@@ -115,7 +115,7 @@
|
|
22
|
+
|
|
23
|
+
// Used to identify operations that are currently being executed via {execute}.
|
|
24
|
+
// This should be transient storage when supported by the EVM.
|
|
25
|
+
- bytes32 private _executionId;
|
|
26
|
+
+ bytes32 internal _executionId; // private → internal for FV
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* @dev Check that the caller is authorized to perform the operation.
|
|
30
|
+
@@ -263,6 +263,11 @@
|
|
31
|
+
_setGrantDelay(roleId, newDelay);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
+ // Exposed for FV
|
|
35
|
+
+ function _getTargetAdminDelayFull(address target) internal view virtual returns (uint32, uint32, uint48) {
|
|
36
|
+
+ return _targets[target].adminDelay.getFull();
|
|
37
|
+
+ }
|
|
38
|
+
+
|
|
39
|
+
/**
|
|
40
|
+
* @dev Internal version of {grantRole} without access control. Returns true if the role was newly granted.
|
|
41
|
+
*
|
|
42
|
+
@@ -295,6 +300,11 @@
|
|
43
|
+
|
|
44
|
+
emit RoleGranted(roleId, account, executionDelay, since, newMember);
|
|
45
|
+
return newMember;
|
|
46
|
+
+ }
|
|
47
|
+
+
|
|
48
|
+
+ // Exposed for FV
|
|
49
|
+
+ function _getRoleGrantDelayFull(uint64 roleId) internal view virtual returns (uint32, uint32, uint48) {
|
|
50
|
+
+ return _roles[roleId].grantDelay.getFull();
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
@@ -596,7 +606,7 @@
|
|
55
|
+
*
|
|
56
|
+
* WARNING: Carefully review the considerations of {AccessManaged-restricted} since they apply to this modifier.
|
|
57
|
+
*/
|
|
58
|
+
- function _checkAuthorized() private {
|
|
59
|
+
+ function _checkAuthorized() internal virtual { // private → internal virtual for FV
|
|
60
|
+
address caller = _msgSender();
|
|
61
|
+
(bool immediate, uint32 delay) = _canCallSelf(caller, _msgData());
|
|
62
|
+
if (!immediate) {
|
|
63
|
+
@@ -619,7 +629,7 @@
|
|
64
|
+
*/
|
|
65
|
+
function _getAdminRestrictions(
|
|
66
|
+
bytes calldata data
|
|
67
|
+
- ) private view returns (bool adminRestricted, uint64 roleAdminId, uint32 executionDelay) {
|
|
68
|
+
+ ) internal view returns (bool adminRestricted, uint64 roleAdminId, uint32 executionDelay) { // private → internal for FV
|
|
69
|
+
if (data.length < 4) {
|
|
70
|
+
return (false, 0, 0);
|
|
71
|
+
}
|
|
72
|
+
@@ -672,7 +682,7 @@
|
|
73
|
+
address caller,
|
|
74
|
+
address target,
|
|
75
|
+
bytes calldata data
|
|
76
|
+
- ) private view returns (bool immediate, uint32 delay) {
|
|
77
|
+
+ ) internal view returns (bool immediate, uint32 delay) { // private → internal for FV
|
|
78
|
+
if (target == address(this)) {
|
|
79
|
+
return _canCallSelf(caller, data);
|
|
80
|
+
} else {
|
|
81
|
+
@@ -728,14 +738,14 @@
|
|
82
|
+
/**
|
|
83
|
+
* @dev Extracts the selector from calldata. Panics if data is not at least 4 bytes
|
|
84
|
+
*/
|
|
85
|
+
- function _checkSelector(bytes calldata data) private pure returns (bytes4) {
|
|
86
|
+
+ function _checkSelector(bytes calldata data) internal pure returns (bytes4) { // private → internal for FV
|
|
87
|
+
return bytes4(data[0:4]);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* @dev Hashing function for execute protection
|
|
92
|
+
*/
|
|
93
|
+
- function _hashExecutionId(address target, bytes4 selector) private pure returns (bytes32) {
|
|
94
|
+
+ function _hashExecutionId(address target, bytes4 selector) internal pure returns (bytes32) { // private → internal for FV
|
|
95
|
+
return Hashes.efficientKeccak256(bytes32(uint256(uint160(target))), selector);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
--- account/extensions/draft-AccountERC7579.sol 2025-07-22 11:18:42.944504471 +0200
|
|
2
|
+
+++ account/extensions/draft-AccountERC7579.sol 2025-07-22 13:57:03.670277084 +0200
|
|
3
|
+
@@ -60,8 +60,8 @@
|
|
4
|
+
using EnumerableSet for *;
|
|
5
|
+
using Packing for bytes32;
|
|
6
|
+
|
|
7
|
+
- EnumerableSet.AddressSet private _validators;
|
|
8
|
+
- EnumerableSet.AddressSet private _executors;
|
|
9
|
+
+ EnumerableSet.AddressSet internal _validators; // private → internal for FV
|
|
10
|
+
+ EnumerableSet.AddressSet internal _executors; // private → internal for FV
|
|
11
|
+
mapping(bytes4 selector => address) private _fallbacks;
|
|
12
|
+
|
|
13
|
+
/// @dev The account's {fallback} was called with a selector that doesn't have an installed handler.
|
|
14
|
+
@@ -308,8 +308,9 @@
|
|
15
|
+
* the ERC-2771 format.
|
|
16
|
+
*/
|
|
17
|
+
function _fallback() internal virtual returns (bytes memory) {
|
|
18
|
+
- address handler = _fallbackHandler(msg.sig);
|
|
19
|
+
- require(handler != address(0), ERC7579MissingFallbackHandler(msg.sig));
|
|
20
|
+
+ bytes4 selector = bytes4(msg.data[0:4]);
|
|
21
|
+
+ address handler = _fallbackHandler(selector);
|
|
22
|
+
+ require(handler != address(0), ERC7579MissingFallbackHandler(selector));
|
|
23
|
+
|
|
24
|
+
// From https://eips.ethereum.org/EIPS/eip-7579#fallback[ERC-7579 specifications]:
|
|
25
|
+
// - MUST utilize ERC-2771 to add the original msg.sender to the calldata sent to the fallback handler
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
--- token/ERC721/ERC721.sol 2025-08-19 17:23:33.436823903 +0200
|
|
2
|
+
+++ token/ERC721/ERC721.sol 2025-08-19 17:23:07.328925282 +0200
|
|
3
|
+
@@ -27,7 +27,7 @@
|
|
4
|
+
|
|
5
|
+
mapping(uint256 tokenId => address) private _owners;
|
|
6
|
+
|
|
7
|
+
- mapping(address owner => uint256) private _balances;
|
|
8
|
+
+ mapping(address owner => uint256) internal _balances; // private → internal for FV
|
|
9
|
+
|
|
10
|
+
mapping(uint256 tokenId => address) private _tokenApprovals;
|
|
11
|
+
|
package/contracts/lib/openzeppelin-contracts/fv/harnesses/AccessControlDefaultAdminRulesHarness.sol
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.20;
|
|
3
|
+
|
|
4
|
+
import {AccessControlDefaultAdminRules} from "../patched/access/extensions/AccessControlDefaultAdminRules.sol";
|
|
5
|
+
|
|
6
|
+
contract AccessControlDefaultAdminRulesHarness is AccessControlDefaultAdminRules {
|
|
7
|
+
uint48 private _delayIncreaseWait;
|
|
8
|
+
|
|
9
|
+
constructor(
|
|
10
|
+
uint48 initialDelay,
|
|
11
|
+
address initialDefaultAdmin,
|
|
12
|
+
uint48 delayIncreaseWait
|
|
13
|
+
) AccessControlDefaultAdminRules(initialDelay, initialDefaultAdmin) {
|
|
14
|
+
_delayIncreaseWait = delayIncreaseWait;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
// FV
|
|
18
|
+
function pendingDefaultAdmin_() external view returns (address) {
|
|
19
|
+
(address newAdmin, ) = pendingDefaultAdmin();
|
|
20
|
+
return newAdmin;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function pendingDefaultAdminSchedule_() external view returns (uint48) {
|
|
24
|
+
(, uint48 schedule) = pendingDefaultAdmin();
|
|
25
|
+
return schedule;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function pendingDelay_() external view returns (uint48) {
|
|
29
|
+
(uint48 newDelay, ) = pendingDefaultAdminDelay();
|
|
30
|
+
return newDelay;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function pendingDelaySchedule_() external view returns (uint48) {
|
|
34
|
+
(, uint48 schedule) = pendingDefaultAdminDelay();
|
|
35
|
+
return schedule;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function delayChangeWait_(uint48 newDelay) external view returns (uint48) {
|
|
39
|
+
return _delayChangeWait(newDelay);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// Overrides
|
|
43
|
+
function defaultAdminDelayIncreaseWait() public view override returns (uint48) {
|
|
44
|
+
return _delayIncreaseWait;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
|
|
3
|
+
pragma solidity ^0.8.20;
|
|
4
|
+
|
|
5
|
+
import "../patched/access/manager/IAccessManager.sol";
|
|
6
|
+
import "../patched/access/manager/AccessManaged.sol";
|
|
7
|
+
|
|
8
|
+
contract AccessManagedHarness is AccessManaged {
|
|
9
|
+
bytes internal SOME_FUNCTION_CALLDATA = abi.encodeCall(this.someFunction, ());
|
|
10
|
+
|
|
11
|
+
constructor(address initialAuthority) AccessManaged(initialAuthority) {}
|
|
12
|
+
|
|
13
|
+
function someFunction() public restricted() {
|
|
14
|
+
// Sanity for FV: the msg.data when calling this function should be the same as the data used when checking
|
|
15
|
+
// the schedule. This is a reformulation of `msg.data == SOME_FUNCTION_CALLDATA` that focuses on the operation
|
|
16
|
+
// hash for this call.
|
|
17
|
+
require(
|
|
18
|
+
IAccessManager(authority()).hashOperation(_msgSender(), address(this), msg.data)
|
|
19
|
+
==
|
|
20
|
+
IAccessManager(authority()).hashOperation(_msgSender(), address(this), SOME_FUNCTION_CALLDATA)
|
|
21
|
+
);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function authority_canCall_immediate(address caller) public view returns (bool result) {
|
|
25
|
+
(result,) = AuthorityUtils.canCallWithDelay(authority(), caller, address(this), this.someFunction.selector);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function authority_canCall_delay(address caller) public view returns (uint32 result) {
|
|
29
|
+
(,result) = AuthorityUtils.canCallWithDelay(authority(), caller, address(this), this.someFunction.selector);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
function authority_getSchedule(address caller) public view returns (uint48) {
|
|
33
|
+
IAccessManager manager = IAccessManager(authority());
|
|
34
|
+
return manager.getSchedule(manager.hashOperation(caller, address(this), SOME_FUNCTION_CALLDATA));
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
|
|
3
|
+
pragma solidity ^0.8.20;
|
|
4
|
+
|
|
5
|
+
import "../patched/access/manager/AccessManager.sol";
|
|
6
|
+
|
|
7
|
+
contract AccessManagerHarness is AccessManager {
|
|
8
|
+
// override with a storage slot that can basically take any value.
|
|
9
|
+
uint32 private _minSetback;
|
|
10
|
+
|
|
11
|
+
constructor(address initialAdmin) AccessManager(initialAdmin) {}
|
|
12
|
+
|
|
13
|
+
// FV
|
|
14
|
+
function minSetback() public view override returns (uint32) {
|
|
15
|
+
return _minSetback;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
function canCall_immediate(address caller, address target, bytes4 selector) external view returns (bool result) {
|
|
19
|
+
(result,) = canCall(caller, target, selector);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
function canCall_delay(address caller, address target, bytes4 selector) external view returns (uint32 result) {
|
|
23
|
+
(,result) = canCall(caller, target, selector);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function canCallExtended(address caller, address target, bytes calldata data) external view returns (bool, uint32) {
|
|
27
|
+
return _canCallExtended(caller, target, data);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function canCallExtended_immediate(address caller, address target, bytes calldata data) external view returns (bool result) {
|
|
31
|
+
(result,) = _canCallExtended(caller, target, data);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
function canCallExtended_delay(address caller, address target, bytes calldata data) external view returns (uint32 result) {
|
|
35
|
+
(,result) = _canCallExtended(caller, target, data);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function getAdminRestrictions_restricted(bytes calldata data) external view returns (bool result) {
|
|
39
|
+
(result,,) = _getAdminRestrictions(data);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function getAdminRestrictions_roleAdminId(bytes calldata data) external view returns (uint64 result) {
|
|
43
|
+
(,result,) = _getAdminRestrictions(data);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function getAdminRestrictions_executionDelay(bytes calldata data) external view returns (uint32 result) {
|
|
47
|
+
(,,result) = _getAdminRestrictions(data);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function hasRole_isMember(uint64 roleId, address account) external view returns (bool result) {
|
|
51
|
+
(result,) = hasRole(roleId, account);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function hasRole_executionDelay(uint64 roleId, address account) external view returns (uint32 result) {
|
|
55
|
+
(,result) = hasRole(roleId, account);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
function getAccess_since(uint64 roleId, address account) external view returns (uint48 result) {
|
|
59
|
+
(result,,,) = getAccess(roleId, account);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
function getAccess_currentDelay(uint64 roleId, address account) external view returns (uint32 result) {
|
|
63
|
+
(,result,,) = getAccess(roleId, account);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
function getAccess_pendingDelay(uint64 roleId, address account) external view returns (uint32 result) {
|
|
67
|
+
(,,result,) = getAccess(roleId, account);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
function getAccess_effect(uint64 roleId, address account) external view returns (uint48 result) {
|
|
71
|
+
(,,,result) = getAccess(roleId, account);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
function getTargetAdminDelay_after(address target) public view virtual returns (uint32 result) {
|
|
75
|
+
(,result,) = _getTargetAdminDelayFull(target);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
function getTargetAdminDelay_effect(address target) public view virtual returns (uint48 result) {
|
|
79
|
+
(,,result) = _getTargetAdminDelayFull(target);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
function getRoleGrantDelay_after(uint64 roleId) public view virtual returns (uint32 result) {
|
|
83
|
+
(,result,) = _getRoleGrantDelayFull(roleId);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
function getRoleGrantDelay_effect(uint64 roleId) public view virtual returns (uint48 result) {
|
|
87
|
+
(,,result) = _getRoleGrantDelayFull(roleId);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
function hashExecutionId(address target, bytes4 selector) external pure returns (bytes32) {
|
|
91
|
+
return _hashExecutionId(target, selector);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
function executionId() external view returns (bytes32) {
|
|
95
|
+
return _executionId;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
// Pad with zeros (and don't revert) if data is too short.
|
|
99
|
+
function getSelector(bytes calldata data) external pure returns (bytes4) {
|
|
100
|
+
return bytes4(data);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
function getFirstArgumentAsAddress(bytes calldata data) external pure returns (address) {
|
|
104
|
+
return abi.decode(data[0x04:0x24], (address));
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
function getFirstArgumentAsUint64(bytes calldata data) external pure returns (uint64) {
|
|
108
|
+
return abi.decode(data[0x04:0x24], (uint64));
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
function _checkAuthorized() internal override {
|
|
112
|
+
// We need this hack otherwise certora will assume _checkSelector(_msgData()) can return anything :/
|
|
113
|
+
require(msg.sig == _checkSelector(_msgData()));
|
|
114
|
+
super._checkAuthorized();
|
|
115
|
+
}
|
|
116
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.26;
|
|
3
|
+
|
|
4
|
+
import {AccountEIP7702WithModulesMock} from "../patched/mocks/account/AccountMock.sol";
|
|
5
|
+
import {EIP712} from "../patched/utils/cryptography/EIP712.sol";
|
|
6
|
+
import {EnumerableSet} from "../patched/utils/structs/EnumerableSet.sol";
|
|
7
|
+
|
|
8
|
+
contract AccountHarness is AccountEIP7702WithModulesMock {
|
|
9
|
+
using EnumerableSet for EnumerableSet.AddressSet;
|
|
10
|
+
|
|
11
|
+
constructor(string memory name, string memory version) EIP712(name, version) {}
|
|
12
|
+
|
|
13
|
+
function getFallbackHandler(bytes4 selector) external view returns (address) {
|
|
14
|
+
return _fallbackHandler(selector);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
function getDataSelector(bytes memory data) external pure returns (bytes4) {
|
|
18
|
+
return bytes4(data);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function _validatorContains(address module) external view returns (bool) {
|
|
22
|
+
return _validators.contains(module);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function _validatorLength() external view returns (uint256) {
|
|
26
|
+
return _validators.length();
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
function _validatorAt(uint256 index) external view returns (address) {
|
|
30
|
+
return _validators.at(index);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function _validatorAtFull(uint256 index) external view returns (bytes32) {
|
|
34
|
+
return _validators._inner._values[index];
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function _validatorPositionOf(address module) external view returns (uint256) {
|
|
38
|
+
return _validators._inner._positions[bytes32(uint256(uint160(module)))];
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function _executorContains(address module) external view returns (bool) {
|
|
42
|
+
return _executors.contains(module);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
function _executorLength() external view returns (uint256) {
|
|
46
|
+
return _executors.length();
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
function _executorAt(uint256 index) external view returns (address) {
|
|
50
|
+
return _executors.at(index);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
function _executorAtFull(uint256 index) external view returns (bytes32) {
|
|
54
|
+
return _executors._inner._values[index];
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
function _executorPositionOf(address module) external view returns (uint256) {
|
|
58
|
+
return _executors._inner._positions[bytes32(uint256(uint160(module)))];
|
|
59
|
+
}
|
|
60
|
+
}
|