@elizaos/autonomous 2.0.0-alpha.21 → 2.0.0-alpha.22
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/.turbo/turbo-build.log +0 -140
- package/.turbo/turbo-lint$colon$check.log +89 -0
- package/.turbo/turbo-typecheck.log +1 -0
- package/dist/package.json +986 -0
- package/dist/packages/autonomous/src/config/zod-schema.core.d.ts +1 -1
- package/dist/packages/autonomous/src/config/zod-schema.d.ts +41 -41
- package/dist/packages/autonomous/src/config/zod-schema.providers-core.d.ts +37 -37
- package/dist/packages/autonomous/src/config/zod-schema.session.d.ts +1 -1
- package/dist/packages/autonomous/src/services/coding-agent-context.d.ts +4 -4
- package/package.json +14 -6
- package/test/agent-export.e2e.test.ts +376 -0
- package/test/agent-orchestration.e2e.test.ts +1568 -0
- package/test/agent-restart-recovery.e2e.test.ts +149 -0
- package/test/agent-runtime.e2e.test.ts +1515 -0
- package/test/anvil-contracts.e2e.test.ts +533 -0
- package/test/anvil-helper.ts +285 -0
- package/test/api-auth-live.e2e.test.ts +519 -0
- package/test/api-auth.e2e.test.ts +1039 -0
- package/test/api-server.e2e.test.ts +4582 -0
- package/test/apps-e2e.e2e.test.ts +1108 -0
- package/test/auth-modules.e2e.test.ts +71 -0
- package/test/cloud-auth-state.e2e.test.ts +145 -0
- package/test/cloud-persistence.e2e.test.ts +260 -0
- package/test/cloud-providers.e2e.test.ts +781 -0
- package/test/config-hot-reload.e2e.test.ts +131 -0
- package/test/contract-deployer.ts +151 -0
- package/test/contracts/MockMiladyAgentRegistry.sol +216 -0
- package/test/contracts/MockMiladyCollection.sol +195 -0
- package/test/contracts/cache/solidity-files-cache.json +1 -0
- package/test/contracts/foundry.toml +14 -0
- package/test/contracts/lib/openzeppelin-contracts/.changeset/config.json +12 -0
- package/test/contracts/lib/openzeppelin-contracts/.codecov.yml +12 -0
- package/test/contracts/lib/openzeppelin-contracts/.editorconfig +21 -0
- package/test/contracts/lib/openzeppelin-contracts/.eslintrc +20 -0
- package/test/contracts/lib/openzeppelin-contracts/.github/ISSUE_TEMPLATE/bug_report.md +21 -0
- package/test/contracts/lib/openzeppelin-contracts/.github/ISSUE_TEMPLATE/config.yml +4 -0
- package/test/contracts/lib/openzeppelin-contracts/.github/ISSUE_TEMPLATE/feature_request.md +14 -0
- package/test/contracts/lib/openzeppelin-contracts/.github/PULL_REQUEST_TEMPLATE.md +20 -0
- package/test/contracts/lib/openzeppelin-contracts/.github/actions/gas-compare/action.yml +49 -0
- package/test/contracts/lib/openzeppelin-contracts/.github/actions/setup/action.yml +19 -0
- package/test/contracts/lib/openzeppelin-contracts/.github/actions/storage-layout/action.yml +55 -0
- package/test/contracts/lib/openzeppelin-contracts/.github/workflows/actionlint.yml +18 -0
- package/test/contracts/lib/openzeppelin-contracts/.github/workflows/changeset.yml +28 -0
- package/test/contracts/lib/openzeppelin-contracts/.github/workflows/checks.yml +111 -0
- package/test/contracts/lib/openzeppelin-contracts/.github/workflows/docs.yml +19 -0
- package/test/contracts/lib/openzeppelin-contracts/.github/workflows/formal-verification.yml +68 -0
- package/test/contracts/lib/openzeppelin-contracts/.github/workflows/release-cycle.yml +218 -0
- package/test/contracts/lib/openzeppelin-contracts/.github/workflows/upgradeable.yml +30 -0
- package/test/contracts/lib/openzeppelin-contracts/.gitmodules +7 -0
- package/test/contracts/lib/openzeppelin-contracts/.mocharc.js +4 -0
- package/test/contracts/lib/openzeppelin-contracts/.prettierrc +14 -0
- package/test/contracts/lib/openzeppelin-contracts/.solcover.js +13 -0
- package/test/contracts/lib/openzeppelin-contracts/.solhint.json +14 -0
- package/test/contracts/lib/openzeppelin-contracts/CHANGELOG.md +743 -0
- package/test/contracts/lib/openzeppelin-contracts/CODE_OF_CONDUCT.md +73 -0
- package/test/contracts/lib/openzeppelin-contracts/CONTRIBUTING.md +36 -0
- package/test/contracts/lib/openzeppelin-contracts/GUIDELINES.md +117 -0
- package/test/contracts/lib/openzeppelin-contracts/LICENSE +22 -0
- package/test/contracts/lib/openzeppelin-contracts/README.md +90 -0
- package/test/contracts/lib/openzeppelin-contracts/RELEASING.md +47 -0
- package/test/contracts/lib/openzeppelin-contracts/SECURITY.md +42 -0
- package/test/contracts/lib/openzeppelin-contracts/audits/2017-03.md +292 -0
- package/test/contracts/lib/openzeppelin-contracts/audits/2018-10.pdf +0 -0
- package/test/contracts/lib/openzeppelin-contracts/audits/2022-10-Checkpoints.pdf +0 -0
- package/test/contracts/lib/openzeppelin-contracts/audits/2022-10-ERC4626.pdf +0 -0
- package/test/contracts/lib/openzeppelin-contracts/audits/2023-05-v4.9.pdf +0 -0
- package/test/contracts/lib/openzeppelin-contracts/audits/README.md +16 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/Makefile +54 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/README.md +60 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/diff/token_ERC721_ERC721.sol.patch +14 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/AccessControlDefaultAdminRulesHarness.sol +47 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/AccessControlHarness.sol +7 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/DoubleEndedQueueHarness.sol +59 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/ERC20FlashMintHarness.sol +36 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/ERC20PermitHarness.sol +17 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/ERC20WrapperHarness.sol +25 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/ERC3156FlashBorrowerHarness.sol +13 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/ERC721Harness.sol +37 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/ERC721ReceiverHarness.sol +11 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/EnumerableMapHarness.sol +55 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/EnumerableSetHarness.sol +35 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/InitializableHarness.sol +23 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/Ownable2StepHarness.sol +9 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/OwnableHarness.sol +9 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/PausableHarness.sol +19 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/TimelockControllerHarness.sol +12 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/reports/2021-10.pdf +0 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/reports/2022-03.pdf +0 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/reports/2022-05.pdf +0 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/run.js +146 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs/AccessControl.spec +126 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs/AccessControlDefaultAdminRules.spec +500 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs/DoubleEndedQueue.spec +366 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs/ERC20.spec +414 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs/ERC20FlashMint.spec +48 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs/ERC20Wrapper.spec +198 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs/ERC721.spec +589 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs/EnumerableMap.spec +334 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs/EnumerableSet.spec +247 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs/Initializable.spec +165 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs/Ownable.spec +78 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs/Ownable2Step.spec +108 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs/Pausable.spec +96 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs/TimelockController.spec +275 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs/helpers/helpers.spec +1 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs/methods/IAccessControl.spec +7 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs/methods/IAccessControlDefaultAdminRules.spec +36 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs/methods/IERC20.spec +11 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs/methods/IERC2612.spec +5 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs/methods/IERC3156.spec +5 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs/methods/IERC5313.spec +3 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs/methods/IERC721.spec +20 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs/methods/IOwnable.spec +5 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs/methods/IOwnable2Step.spec +7 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs.json +86 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/access/AccessControl.sol +248 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/access/AccessControlCrossChain.sol +45 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/access/AccessControlDefaultAdminRules.sol +383 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/access/AccessControlEnumerable.sol +64 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol +88 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/access/IAccessControlDefaultAdminRules.sol +172 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/access/IAccessControlEnumerable.sol +31 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/access/Ownable.sol +83 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol +57 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/access/README.adoc +27 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/CrossChainEnabled.sol +54 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/README.adoc +34 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/amb/CrossChainEnabledAMB.sol +49 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/amb/LibAMB.sol +35 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/arbitrum/CrossChainEnabledArbitrumL1.sol +44 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/arbitrum/CrossChainEnabledArbitrumL2.sol +40 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/arbitrum/LibArbitrumL1.sol +42 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/arbitrum/LibArbitrumL2.sol +45 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/errors.sol +7 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/optimism/CrossChainEnabledOptimism.sol +41 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/optimism/LibOptimism.sol +36 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/polygon/CrossChainEnabledPolygonChild.sol +72 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/finance/PaymentSplitter.sol +214 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/finance/README.adoc +20 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/finance/VestingWallet.sol +145 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/governance/Governor.sol +723 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/governance/IGovernor.sol +313 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/governance/README.adoc +176 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/governance/TimelockController.sol +422 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/governance/compatibility/GovernorCompatibilityBravo.sol +333 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/governance/compatibility/IGovernorCompatibilityBravo.sol +118 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorCountingSimple.sol +100 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorPreventLateQuorum.sol +105 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorProposalThreshold.sol +23 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorSettings.sol +110 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorTimelockCompound.sol +190 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorTimelockControl.sol +166 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorVotes.sol +55 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorVotesComp.sol +55 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorVotesQuorumFraction.sol +121 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/IGovernorTimelock.sol +26 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/governance/utils/IVotes.sol +56 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/governance/utils/Votes.sol +244 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1155.sol +6 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1155MetadataURI.sol +6 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1155Receiver.sol +6 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol +19 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol +80 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1363Receiver.sol +35 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1363Spender.sol +29 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol +6 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1820Implementer.sol +6 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1820Registry.sol +6 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol +26 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol +6 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC20Metadata.sol +6 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC2309.sol +21 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC2612.sol +8 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC2981.sol +25 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC3156.sol +7 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC3156FlashBorrower.sol +29 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC3156FlashLender.sol +43 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol +232 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC4906.sol +20 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol +28 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC5313.sol +18 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC5805.sol +9 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC6372.sol +17 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC721.sol +6 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC721Enumerable.sol +6 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC721Metadata.sol +6 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC721Receiver.sol +6 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC777.sol +6 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC777Recipient.sol +6 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC777Sender.sol +6 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/README.adoc +73 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol +20 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC2612.sol +8 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/metatx/ERC2771Context.sol +54 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/metatx/MinimalForwarder.sol +72 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/metatx/README.adoc +12 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/AccessControlCrossChainMock.sol +8 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ArraysMock.sol +51 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/Base64Dirty.sol +19 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/CallReceiverMock.sol +61 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ConditionalEscrowMock.sol +18 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ContextMock.sol +35 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/DummyImplementation.sol +57 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/EIP712Verifier.sol +16 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC1271WalletMock.sol +26 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165MaliciousData.sol +12 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165MissingData.sol +7 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165NotSupported.sol +5 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165ReturnBomb.sol +18 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC20Mock.sol +16 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC20Reentrant.sol +43 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC2771ContextMock.sol +27 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC3156FlashBorrowerMock.sol +53 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC4626Mock.sol +16 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/EtherReceiverMock.sol +17 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/InitializableMock.sol +130 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/MulticallTest.sol +23 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/MultipleInheritanceInitializableMocks.sol +131 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/PausableMock.sol +31 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/PullPaymentMock.sol +15 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ReentrancyAttack.sol +12 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ReentrancyMock.sol +51 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/RegressionImplementation.sol +61 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/SafeMathMemoryCheck.sol +72 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/SingleInheritanceInitializableMocks.sol +49 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/StorageSlotMock.sol +77 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/TimelockReentrant.sol +26 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/TimersBlockNumberImpl.sol +39 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/TimersTimestampImpl.sol +39 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/VotesMock.sol +45 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/compound/CompTimelock.sol +174 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/crosschain/bridges.sol +94 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/crosschain/receivers.sol +54 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/docs/ERC4626Fees.sol +100 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/docs/governance/MyGovernor.sol +88 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/docs/governance/MyToken.sol +24 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/docs/governance/MyTokenTimestampBased.sol +35 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/docs/governance/MyTokenWrapped.sol +31 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorCompMock.sol +20 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorCompatibilityBravoMock.sol +100 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorMock.sol +28 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorPreventLateQuorumMock.sol +45 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorTimelockCompoundMock.sol +60 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorTimelockControlMock.sol +60 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorVoteMock.sol +20 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorWithParamsMock.sol +50 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/proxy/BadBeacon.sol +11 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/proxy/ClashingImplementation.sol +17 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/proxy/UUPSLegacy.sol +54 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/proxy/UUPSUpgradeableMock.sol +33 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC1155ReceiverMock.sol +47 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20DecimalsMock.sol +17 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20ExcessDecimalsMock.sol +9 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20FlashMintMock.sol +26 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20ForceApproveMock.sol +13 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20MulticallMock.sol +8 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20NoReturnMock.sol +28 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20PermitNoRevertMock.sol +36 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20ReturnFalseMock.sol +19 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20VotesLegacyMock.sol +262 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC4626OffsetMock.sol +17 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC4646FeesMock.sol +40 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC721ConsecutiveEnumerableMock.sol +51 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC721ConsecutiveMock.sol +61 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC721ReceiverMock.sol +42 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC721URIStorageMock.sol +17 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC777Mock.sol +13 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC777SenderRecipientMock.sol +152 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/VotesTimestamp.sol +40 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/wizard/MyGovernor1.sol +79 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/wizard/MyGovernor2.sol +85 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/wizard/MyGovernor3.sol +94 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/package.json +32 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/Clones.sol +88 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol +32 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol +157 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/Proxy.sol +86 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/README.adoc +87 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/beacon/BeaconProxy.sol +61 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol +16 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/beacon/UpgradeableBeacon.sol +65 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/transparent/ProxyAdmin.sol +81 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/transparent/TransparentUpgradeableProxy.sol +191 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol +166 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol +99 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/security/Pausable.sol +105 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/security/PullPayment.sol +74 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/security/README.adoc +20 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol +77 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/ERC1155.sol +497 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol +119 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol +58 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/README.adoc +49 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/ERC1155Burnable.sol +32 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/ERC1155Pausable.sol +44 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/ERC1155Supply.sol +64 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/ERC1155URIStorage.sol +63 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol +22 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/presets/ERC1155PresetMinterPauser.sol +114 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/presets/README.md +1 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Holder.sol +36 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Receiver.sol +19 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol +365 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol +78 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/README.adoc +80 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol +39 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Capped.sol +37 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20FlashMint.sol +109 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Pausable.sol +35 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Permit.sol +95 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Snapshot.sol +191 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Votes.sol +290 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20VotesComp.sol +46 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Wrapper.sol +73 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC4626.sol +256 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol +28 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol +90 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-ERC20Permit.sol +8 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol +8 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/presets/ERC20PresetFixedSupply.sol +30 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/presets/ERC20PresetMinterPauser.sol +94 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/presets/README.md +1 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol +143 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/utils/TokenTimelock.sol +72 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol +466 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol +132 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol +27 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/README.adoc +73 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Burnable.sol +26 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Consecutive.sol +148 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Enumerable.sol +159 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Pausable.sol +40 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Royalty.sol +38 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721URIStorage.sol +74 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Votes.sol +43 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Wrapper.sol +97 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol +29 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol +27 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/draft-ERC721Votes.sol +9 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/presets/ERC721PresetMinterPauserAutoId.sol +132 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/presets/README.md +1 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol +23 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC777/ERC777.sol +514 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC777/IERC777.sol +200 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC777/IERC777Recipient.sol +35 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC777/IERC777Sender.sol +35 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC777/README.adoc +32 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC777/presets/ERC777PresetFixedSupply.sol +30 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/common/ERC2981.sol +107 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/common/README.adoc +10 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Address.sol +244 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Arrays.sol +105 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Base64.sol +101 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Checkpoints.sol +560 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Context.sol +28 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Counters.sol +43 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Create2.sol +75 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Multicall.sol +39 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/README.adoc +113 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol +122 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol +138 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Strings.sol +85 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Timers.sol +75 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol +217 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol +142 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol +227 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol +50 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol +8 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/escrow/ConditionalEscrow.sol +25 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/escrow/Escrow.sol +67 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/escrow/RefundEscrow.sol +100 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol +29 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol +126 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Storage.sol +42 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/introspection/ERC1820Implementer.sol +43 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol +25 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/introspection/IERC1820Implementer.sol +20 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/introspection/IERC1820Registry.sol +112 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/math/Math.sol +339 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol +1136 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/math/SafeMath.sol +215 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol +43 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/math/SignedSafeMath.sol +68 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/structs/BitMaps.sol +51 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/structs/DoubleEndedQueue.sol +170 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol +598 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol +378 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/amb/IAMB.sol +41 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/arbitrum/IArbSys.sol +134 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/arbitrum/IBridge.sol +102 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/arbitrum/IDelayedMessageProvider.sol +16 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/arbitrum/IInbox.sol +152 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/arbitrum/IOutbox.sol +117 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/compound/ICompoundTimelock.sol +86 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/compound/LICENSE +11 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/optimism/ICrossDomainMessenger.sol +34 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/optimism/LICENSE +22 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/polygon/IFxMessageProcessor.sol +7 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/README.md +16 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/antora.yml +6 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/config.js +21 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-3a.png +0 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-3b.png +0 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-6.png +0 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack.png +0 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-deposit.png +0 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-mint.png +0 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-linear.png +0 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-loglog.png +0 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-loglogext.png +0 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/tally-exec.png +0 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/tally-vote.png +0 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/nav.adoc +23 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/access-control.adoc +219 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/crosschain.adoc +210 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/crowdsales.adoc +11 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/drafts.adoc +19 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc1155.adoc +153 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc20-supply.adoc +113 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc20.adoc +85 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc4626.adoc +214 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc721.adoc +90 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc777.adoc +75 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/extending-contracts.adoc +131 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/governance.adoc +237 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/index.adoc +65 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/releases-stability.adoc +85 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/tokens.adoc +32 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/upgradeable.adoc +73 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/utilities.adoc +190 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/templates/contract.hbs +85 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/templates/helpers.js +46 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/templates/page.hbs +4 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/templates/properties.js +45 -0
- package/test/contracts/lib/openzeppelin-contracts/foundry.toml +3 -0
- package/test/contracts/lib/openzeppelin-contracts/hardhat/env-artifacts.js +24 -0
- package/test/contracts/lib/openzeppelin-contracts/hardhat/env-contract.js +10 -0
- package/test/contracts/lib/openzeppelin-contracts/hardhat/ignore-unreachable-warnings.js +45 -0
- package/test/contracts/lib/openzeppelin-contracts/hardhat/skip-foundry-tests.js +6 -0
- package/test/contracts/lib/openzeppelin-contracts/hardhat/task-test-get-files.js +25 -0
- package/test/contracts/lib/openzeppelin-contracts/hardhat.config.js +118 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/erc4626-tests/ERC4626.prop.sol +404 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/erc4626-tests/ERC4626.test.sol +349 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/erc4626-tests/LICENSE +661 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/erc4626-tests/README.md +116 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/.github/workflows/ci.yml +92 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/.gitmodules +3 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/LICENSE-APACHE +203 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/LICENSE-MIT +25 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/README.md +250 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/foundry.toml +21 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/.github/workflows/build.yml +41 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/LICENSE +674 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/Makefile +14 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/default.nix +4 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/demo/demo.sol +222 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/package.json +15 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/test.sol +469 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/test.t.sol +313 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/package.json +16 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/Base.sol +33 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/Script.sol +26 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdAssertions.sol +376 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdChains.sol +233 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdCheats.sol +624 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdError.sol +15 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdInvariant.sol +92 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdJson.sol +179 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdMath.sol +43 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol +327 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdStyle.sol +333 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdUtils.sol +189 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/Test.sol +32 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol +409 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/console.sol +1533 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/console2.sol +1546 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IERC1155.sol +105 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IERC165.sol +12 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IERC20.sol +43 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IERC4626.sol +190 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IERC721.sol +164 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IMulticall3.sol +73 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdAssertions.t.sol +954 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdChains.t.sol +160 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdCheats.t.sol +401 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdError.t.sol +118 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdMath.t.sol +197 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdStorage.t.sol +283 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdStyle.t.sol +110 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdUtils.t.sol +297 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/compilation/CompilationScript.sol +10 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/compilation/CompilationScriptBase.sol +10 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/compilation/CompilationTest.sol +10 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/compilation/CompilationTestBase.sol +10 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/fixtures/broadcast.log.json +187 -0
- package/test/contracts/lib/openzeppelin-contracts/logo.svg +15 -0
- package/test/contracts/lib/openzeppelin-contracts/netlify.toml +3 -0
- package/test/contracts/lib/openzeppelin-contracts/package-lock.json +28833 -0
- package/test/contracts/lib/openzeppelin-contracts/package.json +96 -0
- package/test/contracts/lib/openzeppelin-contracts/remappings.txt +1 -0
- package/test/contracts/lib/openzeppelin-contracts/renovate.json +4 -0
- package/test/contracts/lib/openzeppelin-contracts/requirements.txt +1 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/checks/compare-layout.js +19 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/checks/compareGasReports.js +243 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/checks/extract-layout.js +40 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/checks/generation.sh +6 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/checks/inheritance-ordering.js +54 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/gen-nav.js +41 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/generate/format-lines.js +16 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/generate/run.js +49 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/generate/templates/Checkpoints.js +304 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/generate/templates/Checkpoints.opts.js +22 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/generate/templates/Checkpoints.t.js +256 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/generate/templates/EnumerableMap.js +310 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/generate/templates/EnumerableSet.js +250 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/generate/templates/SafeCast.js +163 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/generate/templates/StorageSlot.js +87 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/generate/templates/conversion.js +30 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/git-user-config.sh +6 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/helpers.js +37 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/migrate-imports.js +180 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/prepack.sh +12 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/prepare-contracts-package.sh +15 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/prepare-docs.sh +26 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/prepare.sh +10 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/release/format-changelog.js +33 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/release/synchronize-versions.js +15 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/release/update-comment.js +34 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/release/version.sh +11 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/release/workflow/exit-prerelease.sh +8 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/release/workflow/github-release.js +47 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/release/workflow/integrity-check.sh +20 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/release/workflow/pack.sh +26 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/release/workflow/publish.sh +26 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/release/workflow/rerun.js +7 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/release/workflow/set-changesets-pr-title.js +17 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/release/workflow/start.sh +35 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/release/workflow/state.js +112 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/remove-ignored-artifacts.js +45 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/update-docs-branch.js +63 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/upgradeable/README.md +21 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/upgradeable/patch-apply.sh +19 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/upgradeable/patch-save.sh +18 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/upgradeable/transpile-onto.sh +44 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/upgradeable/transpile.sh +35 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/upgradeable/upgradeable.patch +481 -0
- package/test/contracts/lib/openzeppelin-contracts/slither.config.json +5 -0
- package/test/contracts/lib/openzeppelin-contracts/test/TESTING.md +3 -0
- package/test/contracts/lib/openzeppelin-contracts/test/access/AccessControl.behavior.js +867 -0
- package/test/contracts/lib/openzeppelin-contracts/test/access/AccessControl.test.js +12 -0
- package/test/contracts/lib/openzeppelin-contracts/test/access/AccessControlCrossChain.test.js +49 -0
- package/test/contracts/lib/openzeppelin-contracts/test/access/AccessControlDefaultAdminRules.test.js +25 -0
- package/test/contracts/lib/openzeppelin-contracts/test/access/AccessControlEnumerable.test.js +17 -0
- package/test/contracts/lib/openzeppelin-contracts/test/access/Ownable.test.js +59 -0
- package/test/contracts/lib/openzeppelin-contracts/test/access/Ownable2Step.test.js +67 -0
- package/test/contracts/lib/openzeppelin-contracts/test/crosschain/CrossChainEnabled.test.js +78 -0
- package/test/contracts/lib/openzeppelin-contracts/test/finance/PaymentSplitter.test.js +217 -0
- package/test/contracts/lib/openzeppelin-contracts/test/finance/VestingWallet.behavior.js +59 -0
- package/test/contracts/lib/openzeppelin-contracts/test/finance/VestingWallet.test.js +67 -0
- package/test/contracts/lib/openzeppelin-contracts/test/governance/Governor.t.sol +55 -0
- package/test/contracts/lib/openzeppelin-contracts/test/governance/Governor.test.js +782 -0
- package/test/contracts/lib/openzeppelin-contracts/test/governance/TimelockController.test.js +1254 -0
- package/test/contracts/lib/openzeppelin-contracts/test/governance/compatibility/GovernorCompatibilityBravo.test.js +283 -0
- package/test/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorComp.test.js +88 -0
- package/test/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorERC721.test.js +115 -0
- package/test/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorPreventLateQuorum.test.js +189 -0
- package/test/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorTimelockCompound.test.js +352 -0
- package/test/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorTimelockControl.test.js +445 -0
- package/test/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorVotesQuorumFraction.test.js +154 -0
- package/test/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorWithParams.test.js +173 -0
- package/test/contracts/lib/openzeppelin-contracts/test/governance/utils/EIP6372.behavior.js +23 -0
- package/test/contracts/lib/openzeppelin-contracts/test/governance/utils/Votes.behavior.js +361 -0
- package/test/contracts/lib/openzeppelin-contracts/test/governance/utils/Votes.test.js +71 -0
- package/test/contracts/lib/openzeppelin-contracts/test/helpers/chainid.js +10 -0
- package/test/contracts/lib/openzeppelin-contracts/test/helpers/create2.js +11 -0
- package/test/contracts/lib/openzeppelin-contracts/test/helpers/crosschain.js +61 -0
- package/test/contracts/lib/openzeppelin-contracts/test/helpers/customError.js +24 -0
- package/test/contracts/lib/openzeppelin-contracts/test/helpers/eip712.js +67 -0
- package/test/contracts/lib/openzeppelin-contracts/test/helpers/enums.js +12 -0
- package/test/contracts/lib/openzeppelin-contracts/test/helpers/erc1967.js +24 -0
- package/test/contracts/lib/openzeppelin-contracts/test/helpers/governance.js +201 -0
- package/test/contracts/lib/openzeppelin-contracts/test/helpers/map-values.js +7 -0
- package/test/contracts/lib/openzeppelin-contracts/test/helpers/sign.js +63 -0
- package/test/contracts/lib/openzeppelin-contracts/test/helpers/time.js +17 -0
- package/test/contracts/lib/openzeppelin-contracts/test/helpers/txpool.js +38 -0
- package/test/contracts/lib/openzeppelin-contracts/test/metatx/ERC2771Context.test.js +175 -0
- package/test/contracts/lib/openzeppelin-contracts/test/metatx/MinimalForwarder.test.js +169 -0
- package/test/contracts/lib/openzeppelin-contracts/test/migrate-imports.test.js +33 -0
- package/test/contracts/lib/openzeppelin-contracts/test/proxy/Clones.behaviour.js +136 -0
- package/test/contracts/lib/openzeppelin-contracts/test/proxy/Clones.test.js +61 -0
- package/test/contracts/lib/openzeppelin-contracts/test/proxy/ERC1967/ERC1967Proxy.test.js +13 -0
- package/test/contracts/lib/openzeppelin-contracts/test/proxy/Proxy.behaviour.js +225 -0
- package/test/contracts/lib/openzeppelin-contracts/test/proxy/beacon/BeaconProxy.test.js +139 -0
- package/test/contracts/lib/openzeppelin-contracts/test/proxy/beacon/UpgradeableBeacon.test.js +44 -0
- package/test/contracts/lib/openzeppelin-contracts/test/proxy/transparent/ProxyAdmin.test.js +127 -0
- package/test/contracts/lib/openzeppelin-contracts/test/proxy/transparent/TransparentUpgradeableProxy.behaviour.js +433 -0
- package/test/contracts/lib/openzeppelin-contracts/test/proxy/transparent/TransparentUpgradeableProxy.test.js +17 -0
- package/test/contracts/lib/openzeppelin-contracts/test/proxy/utils/Initializable.test.js +218 -0
- package/test/contracts/lib/openzeppelin-contracts/test/proxy/utils/UUPSUpgradeable.test.js +85 -0
- package/test/contracts/lib/openzeppelin-contracts/test/security/Pausable.test.js +85 -0
- package/test/contracts/lib/openzeppelin-contracts/test/security/PullPayment.test.js +51 -0
- package/test/contracts/lib/openzeppelin-contracts/test/security/ReentrancyGuard.test.js +43 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC1155/ERC1155.behavior.js +767 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC1155/ERC1155.test.js +235 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC1155/extensions/ERC1155Burnable.test.js +67 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC1155/extensions/ERC1155Pausable.test.js +108 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC1155/extensions/ERC1155Supply.test.js +107 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC1155/extensions/ERC1155URIStorage.test.js +66 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC1155/presets/ERC1155PresetMinterPauser.test.js +156 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC1155/utils/ERC1155Holder.test.js +64 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/ERC20.behavior.js +322 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/ERC20.test.js +305 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Burnable.behavior.js +106 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Burnable.test.js +20 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Capped.behavior.js +32 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Capped.test.js +23 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20FlashMint.test.js +204 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Pausable.test.js +133 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Snapshot.test.js +207 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Votes.test.js +578 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20VotesComp.test.js +543 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Wrapper.test.js +190 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC4626.t.sol +42 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC4626.test.js +1031 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/draft-ERC20Permit.test.js +103 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/presets/ERC20PresetFixedSupply.test.js +42 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/presets/ERC20PresetMinterPauser.test.js +110 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/utils/SafeERC20.test.js +350 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/utils/TokenTimelock.test.js +71 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/ERC721.behavior.js +893 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/ERC721.test.js +15 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/ERC721Enumerable.test.js +20 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Burnable.test.js +70 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Consecutive.t.sol +122 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Consecutive.test.js +206 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Pausable.test.js +92 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Royalty.test.js +41 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721URIStorage.test.js +100 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Votes.test.js +184 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Wrapper.test.js +283 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/presets/ERC721PresetMinterPauserAutoId.test.js +122 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/utils/ERC721Holder.test.js +22 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC777/ERC777.behavior.js +597 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC777/ERC777.test.js +556 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC777/presets/ERC777PresetFixedSupply.test.js +49 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/common/ERC2981.behavior.js +157 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/Address.test.js +361 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/Arrays.test.js +123 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/Base64.test.js +43 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/Checkpoints.t.sol +347 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/Checkpoints.test.js +255 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/Context.behavior.js +42 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/Context.test.js +17 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/Counters.test.js +84 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/Create2.test.js +89 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/Multicall.test.js +68 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/ShortStrings.t.sol +55 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/ShortStrings.test.js +55 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/StorageSlot.test.js +210 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/Strings.test.js +150 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/TimersBlockNumberImpl.test.js +55 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/TimersTimestamp.test.js +55 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/cryptography/ECDSA.test.js +260 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/cryptography/EIP712.test.js +103 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/cryptography/MerkleProof.test.js +200 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/cryptography/SignatureChecker.test.js +87 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/escrow/ConditionalEscrow.test.js +37 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/escrow/Escrow.behavior.js +90 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/escrow/Escrow.test.js +14 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/escrow/RefundEscrow.test.js +143 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/introspection/ERC165.test.js +11 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/introspection/ERC165Checker.test.js +302 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/introspection/ERC165Storage.test.js +23 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/introspection/ERC1820Implementer.test.js +71 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/introspection/SupportsInterface.behavior.js +146 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/math/Math.t.sol +217 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/math/Math.test.js +289 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/math/SafeCast.test.js +152 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/math/SafeMath.test.js +433 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/math/SignedMath.test.js +95 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/math/SignedSafeMath.test.js +152 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/structs/BitMap.test.js +145 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/structs/DoubleEndedQueue.test.js +99 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/structs/EnumerableMap.behavior.js +185 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/structs/EnumerableMap.test.js +154 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/structs/EnumerableSet.behavior.js +129 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/structs/EnumerableSet.test.js +79 -0
- package/test/contracts/out/AccessControl.sol/AccessControl.json +1 -0
- package/test/contracts/out/AccessControlCrossChain.sol/AccessControlCrossChain.json +1 -0
- package/test/contracts/out/AccessControlCrossChainMock.sol/AccessControlCrossChainMock.json +1 -0
- package/test/contracts/out/AccessControlDefaultAdminRules.sol/AccessControlDefaultAdminRules.json +1 -0
- package/test/contracts/out/AccessControlEnumerable.sol/AccessControlEnumerable.json +1 -0
- package/test/contracts/out/Address.sol/Address.json +1 -0
- package/test/contracts/out/Arrays.sol/Arrays.json +1 -0
- package/test/contracts/out/ArraysMock.sol/AddressArraysMock.json +1 -0
- package/test/contracts/out/ArraysMock.sol/Bytes32ArraysMock.json +1 -0
- package/test/contracts/out/ArraysMock.sol/Uint256ArraysMock.json +1 -0
- package/test/contracts/out/BadBeacon.sol/BadBeaconNoImpl.json +1 -0
- package/test/contracts/out/BadBeacon.sol/BadBeaconNotContract.json +1 -0
- package/test/contracts/out/Base.sol/CommonBase.json +1 -0
- package/test/contracts/out/Base.sol/ScriptBase.json +1 -0
- package/test/contracts/out/Base.sol/TestBase.json +1 -0
- package/test/contracts/out/Base64.sol/Base64.json +1 -0
- package/test/contracts/out/Base64Dirty.sol/Base64Dirty.json +1 -0
- package/test/contracts/out/BeaconProxy.sol/BeaconProxy.json +1 -0
- package/test/contracts/out/BitMaps.sol/BitMaps.json +1 -0
- package/test/contracts/out/CallReceiverMock.sol/CallReceiverMock.json +1 -0
- package/test/contracts/out/Checkpoints.sol/Checkpoints.json +1 -0
- package/test/contracts/out/Checkpoints.t.sol/CheckpointsHistoryTest.json +1 -0
- package/test/contracts/out/Checkpoints.t.sol/CheckpointsTrace160Test.json +1 -0
- package/test/contracts/out/Checkpoints.t.sol/CheckpointsTrace224Test.json +1 -0
- package/test/contracts/out/ClashingImplementation.sol/ClashingImplementation.json +1 -0
- package/test/contracts/out/Clones.sol/Clones.json +1 -0
- package/test/contracts/out/CompTimelock.sol/CompTimelock.json +1 -0
- package/test/contracts/out/CompilationScript.sol/CompilationScript.json +1 -0
- package/test/contracts/out/CompilationScriptBase.sol/CompilationScriptBase.json +1 -0
- package/test/contracts/out/CompilationTest.sol/CompilationTest.json +1 -0
- package/test/contracts/out/CompilationTestBase.sol/CompilationTestBase.json +1 -0
- package/test/contracts/out/ConditionalEscrow.sol/ConditionalEscrow.json +1 -0
- package/test/contracts/out/ConditionalEscrowMock.sol/ConditionalEscrowMock.json +1 -0
- package/test/contracts/out/Context.sol/Context.json +1 -0
- package/test/contracts/out/ContextMock.sol/ContextMock.json +1 -0
- package/test/contracts/out/ContextMock.sol/ContextMockCaller.json +1 -0
- package/test/contracts/out/Counters.sol/Counters.json +1 -0
- package/test/contracts/out/Create2.sol/Create2.json +1 -0
- package/test/contracts/out/CrossChainEnabled.sol/CrossChainEnabled.json +1 -0
- package/test/contracts/out/CrossChainEnabledAMB.sol/CrossChainEnabledAMB.json +1 -0
- package/test/contracts/out/CrossChainEnabledArbitrumL1.sol/CrossChainEnabledArbitrumL1.json +1 -0
- package/test/contracts/out/CrossChainEnabledArbitrumL2.sol/CrossChainEnabledArbitrumL2.json +1 -0
- package/test/contracts/out/CrossChainEnabledOptimism.sol/CrossChainEnabledOptimism.json +1 -0
- package/test/contracts/out/CrossChainEnabledPolygonChild.sol/CrossChainEnabledPolygonChild.json +1 -0
- package/test/contracts/out/DoubleEndedQueue.sol/DoubleEndedQueue.json +1 -0
- package/test/contracts/out/DummyImplementation.sol/DummyImplementation.json +1 -0
- package/test/contracts/out/DummyImplementation.sol/DummyImplementationV2.json +1 -0
- package/test/contracts/out/DummyImplementation.sol/Impl.json +1 -0
- package/test/contracts/out/ECDSA.sol/ECDSA.json +1 -0
- package/test/contracts/out/EIP712.sol/EIP712.json +1 -0
- package/test/contracts/out/EIP712Verifier.sol/EIP712Verifier.json +1 -0
- package/test/contracts/out/ERC1155.sol/ERC1155.json +1 -0
- package/test/contracts/out/ERC1155Burnable.sol/ERC1155Burnable.json +1 -0
- package/test/contracts/out/ERC1155Holder.sol/ERC1155Holder.json +1 -0
- package/test/contracts/out/ERC1155Pausable.sol/ERC1155Pausable.json +1 -0
- package/test/contracts/out/ERC1155PresetMinterPauser.sol/ERC1155PresetMinterPauser.json +1 -0
- package/test/contracts/out/ERC1155Receiver.sol/ERC1155Receiver.json +1 -0
- package/test/contracts/out/ERC1155ReceiverMock.sol/ERC1155ReceiverMock.json +1 -0
- package/test/contracts/out/ERC1155Supply.sol/ERC1155Supply.json +1 -0
- package/test/contracts/out/ERC1155URIStorage.sol/ERC1155URIStorage.json +1 -0
- package/test/contracts/out/ERC1271WalletMock.sol/ERC1271MaliciousMock.json +1 -0
- package/test/contracts/out/ERC1271WalletMock.sol/ERC1271WalletMock.json +1 -0
- package/test/contracts/out/ERC165.sol/ERC165.json +1 -0
- package/test/contracts/out/ERC165Checker.sol/ERC165Checker.json +1 -0
- package/test/contracts/out/ERC165MaliciousData.sol/ERC165MaliciousData.json +1 -0
- package/test/contracts/out/ERC165MissingData.sol/ERC165MissingData.json +1 -0
- package/test/contracts/out/ERC165NotSupported.sol/ERC165NotSupported.json +1 -0
- package/test/contracts/out/ERC165ReturnBomb.sol/ERC165ReturnBombMock.json +1 -0
- package/test/contracts/out/ERC165Storage.sol/ERC165Storage.json +1 -0
- package/test/contracts/out/ERC1820Implementer.sol/ERC1820Implementer.json +1 -0
- package/test/contracts/out/ERC1967Proxy.sol/ERC1967Proxy.json +1 -0
- package/test/contracts/out/ERC1967Upgrade.sol/ERC1967Upgrade.json +1 -0
- package/test/contracts/out/ERC20.sol/ERC20.json +1 -0
- package/test/contracts/out/ERC20Burnable.sol/ERC20Burnable.json +1 -0
- package/test/contracts/out/ERC20Capped.sol/ERC20Capped.json +1 -0
- package/test/contracts/out/ERC20DecimalsMock.sol/ERC20DecimalsMock.json +1 -0
- package/test/contracts/out/ERC20ExcessDecimalsMock.sol/ERC20ExcessDecimalsMock.json +1 -0
- package/test/contracts/out/ERC20FlashMint.sol/ERC20FlashMint.json +1 -0
- package/test/contracts/out/ERC20FlashMintMock.sol/ERC20FlashMintMock.json +1 -0
- package/test/contracts/out/ERC20ForceApproveMock.sol/ERC20ForceApproveMock.json +1 -0
- package/test/contracts/out/ERC20Mock.sol/ERC20Mock.json +1 -0
- package/test/contracts/out/ERC20MulticallMock.sol/ERC20MulticallMock.json +1 -0
- package/test/contracts/out/ERC20NoReturnMock.sol/ERC20NoReturnMock.json +1 -0
- package/test/contracts/out/ERC20Pausable.sol/ERC20Pausable.json +1 -0
- package/test/contracts/out/ERC20Permit.sol/ERC20Permit.json +1 -0
- package/test/contracts/out/ERC20PermitNoRevertMock.sol/ERC20PermitNoRevertMock.json +1 -0
- package/test/contracts/out/ERC20PresetFixedSupply.sol/ERC20PresetFixedSupply.json +1 -0
- package/test/contracts/out/ERC20PresetMinterPauser.sol/ERC20PresetMinterPauser.json +1 -0
- package/test/contracts/out/ERC20Reentrant.sol/ERC20Reentrant.json +1 -0
- package/test/contracts/out/ERC20ReturnFalseMock.sol/ERC20ReturnFalseMock.json +1 -0
- package/test/contracts/out/ERC20Snapshot.sol/ERC20Snapshot.json +1 -0
- package/test/contracts/out/ERC20Votes.sol/ERC20Votes.json +1 -0
- package/test/contracts/out/ERC20VotesComp.sol/ERC20VotesComp.json +1 -0
- package/test/contracts/out/ERC20VotesLegacyMock.sol/ERC20VotesLegacyMock.json +1 -0
- package/test/contracts/out/ERC20Wrapper.sol/ERC20Wrapper.json +1 -0
- package/test/contracts/out/ERC2771Context.sol/ERC2771Context.json +1 -0
- package/test/contracts/out/ERC2771ContextMock.sol/ERC2771ContextMock.json +1 -0
- package/test/contracts/out/ERC2981.sol/ERC2981.json +1 -0
- package/test/contracts/out/ERC3156FlashBorrowerMock.sol/ERC3156FlashBorrowerMock.json +1 -0
- package/test/contracts/out/ERC4626.prop.sol/ERC4626Prop.json +1 -0
- package/test/contracts/out/ERC4626.prop.sol/IERC20.json +1 -0
- package/test/contracts/out/ERC4626.prop.sol/IERC4626.json +1 -0
- package/test/contracts/out/ERC4626.sol/ERC4626.json +1 -0
- package/test/contracts/out/ERC4626.t.sol/ERC4626StdTest.json +1 -0
- package/test/contracts/out/ERC4626.t.sol/ERC4626VaultOffsetMock.json +1 -0
- package/test/contracts/out/ERC4626.test.sol/ERC4626Test.json +1 -0
- package/test/contracts/out/ERC4626.test.sol/IMockERC20.json +1 -0
- package/test/contracts/out/ERC4626Fees.sol/ERC4626Fees.json +1 -0
- package/test/contracts/out/ERC4626Mock.sol/ERC4626Mock.json +1 -0
- package/test/contracts/out/ERC4626OffsetMock.sol/ERC4626OffsetMock.json +1 -0
- package/test/contracts/out/ERC4646FeesMock.sol/ERC4626FeesMock.json +1 -0
- package/test/contracts/out/ERC721.sol/ERC721.json +1 -0
- package/test/contracts/out/ERC721Burnable.sol/ERC721Burnable.json +1 -0
- package/test/contracts/out/ERC721Consecutive.sol/ERC721Consecutive.json +1 -0
- package/test/contracts/out/ERC721Consecutive.t.sol/ERC721ConsecutiveTarget.json +1 -0
- package/test/contracts/out/ERC721Consecutive.t.sol/ERC721ConsecutiveTest.json +1 -0
- package/test/contracts/out/ERC721ConsecutiveEnumerableMock.sol/ERC721ConsecutiveEnumerableMock.json +1 -0
- package/test/contracts/out/ERC721ConsecutiveMock.sol/ERC721ConsecutiveMock.json +1 -0
- package/test/contracts/out/ERC721ConsecutiveMock.sol/ERC721ConsecutiveNoConstructorMintMock.json +1 -0
- package/test/contracts/out/ERC721Enumerable.sol/ERC721Enumerable.json +1 -0
- package/test/contracts/out/ERC721Holder.sol/ERC721Holder.json +1 -0
- package/test/contracts/out/ERC721Pausable.sol/ERC721Pausable.json +1 -0
- package/test/contracts/out/ERC721PresetMinterPauserAutoId.sol/ERC721PresetMinterPauserAutoId.json +1 -0
- package/test/contracts/out/ERC721ReceiverMock.sol/ERC721ReceiverMock.json +1 -0
- package/test/contracts/out/ERC721Royalty.sol/ERC721Royalty.json +1 -0
- package/test/contracts/out/ERC721URIStorage.sol/ERC721URIStorage.json +1 -0
- package/test/contracts/out/ERC721URIStorageMock.sol/ERC721URIStorageMock.json +1 -0
- package/test/contracts/out/ERC721Votes.sol/ERC721Votes.json +1 -0
- package/test/contracts/out/ERC721Wrapper.sol/ERC721Wrapper.json +1 -0
- package/test/contracts/out/ERC777.sol/ERC777.json +1 -0
- package/test/contracts/out/ERC777Mock.sol/ERC777Mock.json +1 -0
- package/test/contracts/out/ERC777PresetFixedSupply.sol/ERC777PresetFixedSupply.json +1 -0
- package/test/contracts/out/ERC777SenderRecipientMock.sol/ERC777SenderRecipientMock.json +1 -0
- package/test/contracts/out/EnumerableMap.sol/EnumerableMap.json +1 -0
- package/test/contracts/out/EnumerableSet.sol/EnumerableSet.json +1 -0
- package/test/contracts/out/Escrow.sol/Escrow.json +1 -0
- package/test/contracts/out/EtherReceiverMock.sol/EtherReceiverMock.json +1 -0
- package/test/contracts/out/Governor.sol/Governor.json +1 -0
- package/test/contracts/out/Governor.t.sol/GovernorInternalTest.json +1 -0
- package/test/contracts/out/GovernorCompMock.sol/GovernorCompMock.json +1 -0
- package/test/contracts/out/GovernorCompatibilityBravo.sol/GovernorCompatibilityBravo.json +1 -0
- package/test/contracts/out/GovernorCompatibilityBravoMock.sol/GovernorCompatibilityBravoMock.json +1 -0
- package/test/contracts/out/GovernorCountingSimple.sol/GovernorCountingSimple.json +1 -0
- package/test/contracts/out/GovernorMock.sol/GovernorMock.json +1 -0
- package/test/contracts/out/GovernorPreventLateQuorum.sol/GovernorPreventLateQuorum.json +1 -0
- package/test/contracts/out/GovernorPreventLateQuorumMock.sol/GovernorPreventLateQuorumMock.json +1 -0
- package/test/contracts/out/GovernorProposalThreshold.sol/GovernorProposalThreshold.json +1 -0
- package/test/contracts/out/GovernorSettings.sol/GovernorSettings.json +1 -0
- package/test/contracts/out/GovernorTimelockCompound.sol/GovernorTimelockCompound.json +1 -0
- package/test/contracts/out/GovernorTimelockCompoundMock.sol/GovernorTimelockCompoundMock.json +1 -0
- package/test/contracts/out/GovernorTimelockControl.sol/GovernorTimelockControl.json +1 -0
- package/test/contracts/out/GovernorTimelockControlMock.sol/GovernorTimelockControlMock.json +1 -0
- package/test/contracts/out/GovernorVoteMock.sol/GovernorVoteMocks.json +1 -0
- package/test/contracts/out/GovernorVotes.sol/GovernorVotes.json +1 -0
- package/test/contracts/out/GovernorVotesComp.sol/GovernorVotesComp.json +1 -0
- package/test/contracts/out/GovernorVotesQuorumFraction.sol/GovernorVotesQuorumFraction.json +1 -0
- package/test/contracts/out/GovernorWithParamsMock.sol/GovernorWithParamsMock.json +1 -0
- package/test/contracts/out/IAMB.sol/IAMB.json +1 -0
- package/test/contracts/out/IAccessControl.sol/IAccessControl.json +1 -0
- package/test/contracts/out/IAccessControlDefaultAdminRules.sol/IAccessControlDefaultAdminRules.json +1 -0
- package/test/contracts/out/IAccessControlEnumerable.sol/IAccessControlEnumerable.json +1 -0
- package/test/contracts/out/IArbSys.sol/IArbSys.json +1 -0
- package/test/contracts/out/IBeacon.sol/IBeacon.json +1 -0
- package/test/contracts/out/IBridge.sol/IBridge.json +1 -0
- package/test/contracts/out/ICompoundTimelock.sol/ICompoundTimelock.json +1 -0
- package/test/contracts/out/ICrossDomainMessenger.sol/ICrossDomainMessenger.json +1 -0
- package/test/contracts/out/IDelayedMessageProvider.sol/IDelayedMessageProvider.json +1 -0
- package/test/contracts/out/IERC1155.sol/IERC1155.json +1 -0
- package/test/contracts/out/IERC1155MetadataURI.sol/IERC1155MetadataURI.json +1 -0
- package/test/contracts/out/IERC1155Receiver.sol/IERC1155Receiver.json +1 -0
- package/test/contracts/out/IERC1271.sol/IERC1271.json +1 -0
- package/test/contracts/out/IERC1363.sol/IERC1363.json +1 -0
- package/test/contracts/out/IERC1363Receiver.sol/IERC1363Receiver.json +1 -0
- package/test/contracts/out/IERC1363Spender.sol/IERC1363Spender.json +1 -0
- package/test/contracts/out/IERC165.sol/IERC165.json +1 -0
- package/test/contracts/out/IERC1820Implementer.sol/IERC1820Implementer.json +1 -0
- package/test/contracts/out/IERC1820Registry.sol/IERC1820Registry.json +1 -0
- package/test/contracts/out/IERC1967.sol/IERC1967.json +1 -0
- package/test/contracts/out/IERC20.sol/IERC20.json +1 -0
- package/test/contracts/out/IERC20Metadata.sol/IERC20Metadata.json +1 -0
- package/test/contracts/out/IERC20Permit.sol/IERC20Permit.json +1 -0
- package/test/contracts/out/IERC2309.sol/IERC2309.json +1 -0
- package/test/contracts/out/IERC2612.sol/IERC2612.json +1 -0
- package/test/contracts/out/IERC2981.sol/IERC2981.json +1 -0
- package/test/contracts/out/IERC3156FlashBorrower.sol/IERC3156FlashBorrower.json +1 -0
- package/test/contracts/out/IERC3156FlashLender.sol/IERC3156FlashLender.json +1 -0
- package/test/contracts/out/IERC4626.sol/IERC4626.json +1 -0
- package/test/contracts/out/IERC4906.sol/IERC4906.json +1 -0
- package/test/contracts/out/IERC5267.sol/IERC5267.json +1 -0
- package/test/contracts/out/IERC5313.sol/IERC5313.json +1 -0
- package/test/contracts/out/IERC5805.sol/IERC5805.json +1 -0
- package/test/contracts/out/IERC6372.sol/IERC6372.json +1 -0
- package/test/contracts/out/IERC721.sol/IERC721.json +1 -0
- package/test/contracts/out/IERC721.sol/IERC721Enumerable.json +1 -0
- package/test/contracts/out/IERC721.sol/IERC721Metadata.json +1 -0
- package/test/contracts/out/IERC721.sol/IERC721TokenReceiver.json +1 -0
- package/test/contracts/out/IERC721Enumerable.sol/IERC721Enumerable.json +1 -0
- package/test/contracts/out/IERC721Metadata.sol/IERC721Metadata.json +1 -0
- package/test/contracts/out/IERC721Receiver.sol/IERC721Receiver.json +1 -0
- package/test/contracts/out/IERC777.sol/IERC777.json +1 -0
- package/test/contracts/out/IERC777Recipient.sol/IERC777Recipient.json +1 -0
- package/test/contracts/out/IERC777Sender.sol/IERC777Sender.json +1 -0
- package/test/contracts/out/IFxMessageProcessor.sol/IFxMessageProcessor.json +1 -0
- package/test/contracts/out/IGovernor.sol/IGovernor.json +1 -0
- package/test/contracts/out/IGovernorCompatibilityBravo.sol/IGovernorCompatibilityBravo.json +1 -0
- package/test/contracts/out/IGovernorTimelock.sol/IGovernorTimelock.json +1 -0
- package/test/contracts/out/IInbox.sol/IInbox.json +1 -0
- package/test/contracts/out/IMulticall3.sol/IMulticall3.json +1 -0
- package/test/contracts/out/IOutbox.sol/IOutbox.json +1 -0
- package/test/contracts/out/IVotes.sol/IVotes.json +1 -0
- package/test/contracts/out/Initializable.sol/Initializable.json +1 -0
- package/test/contracts/out/InitializableMock.sol/ChildConstructorInitializableMock.json +1 -0
- package/test/contracts/out/InitializableMock.sol/ConstructorInitializableMock.json +1 -0
- package/test/contracts/out/InitializableMock.sol/DisableBad1.json +1 -0
- package/test/contracts/out/InitializableMock.sol/DisableBad2.json +1 -0
- package/test/contracts/out/InitializableMock.sol/DisableNew.json +1 -0
- package/test/contracts/out/InitializableMock.sol/DisableOk.json +1 -0
- package/test/contracts/out/InitializableMock.sol/DisableOld.json +1 -0
- package/test/contracts/out/InitializableMock.sol/InitializableMock.json +1 -0
- package/test/contracts/out/InitializableMock.sol/ReinitializerMock.json +1 -0
- package/test/contracts/out/LibAMB.sol/LibAMB.json +1 -0
- package/test/contracts/out/LibArbitrumL1.sol/LibArbitrumL1.json +1 -0
- package/test/contracts/out/LibArbitrumL2.sol/LibArbitrumL2.json +1 -0
- package/test/contracts/out/LibOptimism.sol/LibOptimism.json +1 -0
- package/test/contracts/out/Math.sol/Math.json +1 -0
- package/test/contracts/out/Math.t.sol/MathTest.json +1 -0
- package/test/contracts/out/MerkleProof.sol/MerkleProof.json +1 -0
- package/test/contracts/out/MinimalForwarder.sol/MinimalForwarder.json +1 -0
- package/test/contracts/out/MockMiladyAgentRegistry.sol/MockMiladyAgentRegistry.json +1 -0
- package/test/contracts/out/MockMiladyCollection.sol/MockMiladyCollection.json +1 -0
- package/test/contracts/out/Multicall.sol/Multicall.json +1 -0
- package/test/contracts/out/MulticallTest.sol/MulticallTest.json +1 -0
- package/test/contracts/out/MultipleInheritanceInitializableMocks.sol/SampleChild.json +1 -0
- package/test/contracts/out/MultipleInheritanceInitializableMocks.sol/SampleFather.json +1 -0
- package/test/contracts/out/MultipleInheritanceInitializableMocks.sol/SampleGramps.json +1 -0
- package/test/contracts/out/MultipleInheritanceInitializableMocks.sol/SampleHuman.json +1 -0
- package/test/contracts/out/MultipleInheritanceInitializableMocks.sol/SampleMother.json +1 -0
- package/test/contracts/out/MyGovernor.sol/MyGovernor.json +1 -0
- package/test/contracts/out/MyGovernor1.sol/MyGovernor1.json +1 -0
- package/test/contracts/out/MyGovernor2.sol/MyGovernor2.json +1 -0
- package/test/contracts/out/MyGovernor3.sol/MyGovernor3.json +1 -0
- package/test/contracts/out/MyToken.sol/MyToken.json +1 -0
- package/test/contracts/out/MyTokenTimestampBased.sol/MyTokenTimestampBased.json +1 -0
- package/test/contracts/out/MyTokenWrapped.sol/MyTokenWrapped.json +1 -0
- package/test/contracts/out/Ownable.sol/Ownable.json +1 -0
- package/test/contracts/out/Ownable2Step.sol/Ownable2Step.json +1 -0
- package/test/contracts/out/Pausable.sol/Pausable.json +1 -0
- package/test/contracts/out/PausableMock.sol/PausableMock.json +1 -0
- package/test/contracts/out/PaymentSplitter.sol/PaymentSplitter.json +1 -0
- package/test/contracts/out/Proxy.sol/Proxy.json +1 -0
- package/test/contracts/out/ProxyAdmin.sol/ProxyAdmin.json +1 -0
- package/test/contracts/out/PullPayment.sol/PullPayment.json +1 -0
- package/test/contracts/out/PullPaymentMock.sol/PullPaymentMock.json +1 -0
- package/test/contracts/out/ReentrancyAttack.sol/ReentrancyAttack.json +1 -0
- package/test/contracts/out/ReentrancyGuard.sol/ReentrancyGuard.json +1 -0
- package/test/contracts/out/ReentrancyMock.sol/ReentrancyMock.json +1 -0
- package/test/contracts/out/RefundEscrow.sol/RefundEscrow.json +1 -0
- package/test/contracts/out/RegressionImplementation.sol/Implementation1.json +1 -0
- package/test/contracts/out/RegressionImplementation.sol/Implementation2.json +1 -0
- package/test/contracts/out/RegressionImplementation.sol/Implementation3.json +1 -0
- package/test/contracts/out/RegressionImplementation.sol/Implementation4.json +1 -0
- package/test/contracts/out/SafeCast.sol/SafeCast.json +1 -0
- package/test/contracts/out/SafeERC20.sol/SafeERC20.json +1 -0
- package/test/contracts/out/SafeMath.sol/SafeMath.json +1 -0
- package/test/contracts/out/SafeMathMemoryCheck.sol/SafeMathMemoryCheck.json +1 -0
- package/test/contracts/out/Script.sol/Script.json +1 -0
- package/test/contracts/out/ShortStrings.sol/ShortStrings.json +1 -0
- package/test/contracts/out/ShortStrings.t.sol/ShortStringsTest.json +1 -0
- package/test/contracts/out/SignatureChecker.sol/SignatureChecker.json +1 -0
- package/test/contracts/out/SignedMath.sol/SignedMath.json +1 -0
- package/test/contracts/out/SignedSafeMath.sol/SignedSafeMath.json +1 -0
- package/test/contracts/out/SingleInheritanceInitializableMocks.sol/MigratableMockV1.json +1 -0
- package/test/contracts/out/SingleInheritanceInitializableMocks.sol/MigratableMockV2.json +1 -0
- package/test/contracts/out/SingleInheritanceInitializableMocks.sol/MigratableMockV3.json +1 -0
- package/test/contracts/out/StdAssertions.sol/StdAssertions.json +1 -0
- package/test/contracts/out/StdAssertions.t.sol/StdAssertionsTest.json +1 -0
- package/test/contracts/out/StdAssertions.t.sol/TestMockCall.json +1 -0
- package/test/contracts/out/StdAssertions.t.sol/TestTest.json +1 -0
- package/test/contracts/out/StdChains.sol/StdChains.json +1 -0
- package/test/contracts/out/StdChains.t.sol/StdChainsTest.json +1 -0
- package/test/contracts/out/StdCheats.sol/StdCheats.json +1 -0
- package/test/contracts/out/StdCheats.sol/StdCheatsSafe.json +1 -0
- package/test/contracts/out/StdCheats.t.sol/Bar.json +1 -0
- package/test/contracts/out/StdCheats.t.sol/BarERC1155.json +1 -0
- package/test/contracts/out/StdCheats.t.sol/BarERC721.json +1 -0
- package/test/contracts/out/StdCheats.t.sol/RevertingContract.json +1 -0
- package/test/contracts/out/StdCheats.t.sol/StdCheatsTest.json +1 -0
- package/test/contracts/out/StdError.sol/stdError.json +1 -0
- package/test/contracts/out/StdError.t.sol/ErrorsTest.json +1 -0
- package/test/contracts/out/StdError.t.sol/StdErrorsTest.json +1 -0
- package/test/contracts/out/StdInvariant.sol/StdInvariant.json +1 -0
- package/test/contracts/out/StdJson.sol/stdJson.json +1 -0
- package/test/contracts/out/StdMath.sol/stdMath.json +1 -0
- package/test/contracts/out/StdMath.t.sol/StdMathTest.json +1 -0
- package/test/contracts/out/StdStorage.sol/stdStorage.json +1 -0
- package/test/contracts/out/StdStorage.sol/stdStorageSafe.json +1 -0
- package/test/contracts/out/StdStorage.t.sol/StdStorageTest.json +1 -0
- package/test/contracts/out/StdStorage.t.sol/StorageTest.json +1 -0
- package/test/contracts/out/StdStyle.sol/StdStyle.json +1 -0
- package/test/contracts/out/StdStyle.t.sol/StdStyleTest.json +1 -0
- package/test/contracts/out/StdUtils.sol/StdUtils.json +1 -0
- package/test/contracts/out/StdUtils.t.sol/StdUtilsForkTest.json +1 -0
- package/test/contracts/out/StdUtils.t.sol/StdUtilsMock.json +1 -0
- package/test/contracts/out/StdUtils.t.sol/StdUtilsTest.json +1 -0
- package/test/contracts/out/StorageSlot.sol/StorageSlot.json +1 -0
- package/test/contracts/out/StorageSlotMock.sol/StorageSlotMock.json +1 -0
- package/test/contracts/out/Strings.sol/Strings.json +1 -0
- package/test/contracts/out/TimelockController.sol/TimelockController.json +1 -0
- package/test/contracts/out/TimelockReentrant.sol/TimelockReentrant.json +1 -0
- package/test/contracts/out/Timers.sol/Timers.json +1 -0
- package/test/contracts/out/TimersBlockNumberImpl.sol/TimersBlockNumberImpl.json +1 -0
- package/test/contracts/out/TimersTimestampImpl.sol/TimersTimestampImpl.json +1 -0
- package/test/contracts/out/TokenTimelock.sol/TokenTimelock.json +1 -0
- package/test/contracts/out/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.json +1 -0
- package/test/contracts/out/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +1 -0
- package/test/contracts/out/UUPSLegacy.sol/UUPSUpgradeableLegacyMock.json +1 -0
- package/test/contracts/out/UUPSUpgradeable.sol/UUPSUpgradeable.json +1 -0
- package/test/contracts/out/UUPSUpgradeableMock.sol/NonUpgradeableMock.json +1 -0
- package/test/contracts/out/UUPSUpgradeableMock.sol/UUPSUpgradeableMock.json +1 -0
- package/test/contracts/out/UUPSUpgradeableMock.sol/UUPSUpgradeableUnsafeMock.json +1 -0
- package/test/contracts/out/UpgradeableBeacon.sol/UpgradeableBeacon.json +1 -0
- package/test/contracts/out/VestingWallet.sol/VestingWallet.json +1 -0
- package/test/contracts/out/Vm.sol/Vm.json +1 -0
- package/test/contracts/out/Vm.sol/VmSafe.json +1 -0
- package/test/contracts/out/Votes.sol/Votes.json +1 -0
- package/test/contracts/out/VotesMock.sol/VotesMock.json +1 -0
- package/test/contracts/out/VotesMock.sol/VotesTimestampMock.json +1 -0
- package/test/contracts/out/VotesTimestamp.sol/ERC20VotesCompTimestampMock.json +1 -0
- package/test/contracts/out/VotesTimestamp.sol/ERC20VotesTimestampMock.json +1 -0
- package/test/contracts/out/VotesTimestamp.sol/ERC721VotesTimestampMock.json +1 -0
- package/test/contracts/out/bridges.sol/BaseRelayMock.json +1 -0
- package/test/contracts/out/bridges.sol/BridgeAMBMock.json +1 -0
- package/test/contracts/out/bridges.sol/BridgeArbitrumL1Inbox.json +1 -0
- package/test/contracts/out/bridges.sol/BridgeArbitrumL1Mock.json +1 -0
- package/test/contracts/out/bridges.sol/BridgeArbitrumL1Outbox.json +1 -0
- package/test/contracts/out/bridges.sol/BridgeArbitrumL2Mock.json +1 -0
- package/test/contracts/out/bridges.sol/BridgeOptimismMock.json +1 -0
- package/test/contracts/out/bridges.sol/BridgePolygonChildMock.json +1 -0
- package/test/contracts/out/build-info/2be03bb8eb1ccda1.json +1 -0
- package/test/contracts/out/console.sol/console.json +1 -0
- package/test/contracts/out/console2.sol/console2.json +1 -0
- package/test/contracts/out/demo.sol/DemoTest.json +1 -0
- package/test/contracts/out/demo.sol/DemoTestWithSetUp.json +1 -0
- package/test/contracts/out/draft-IERC1822.sol/IERC1822Proxiable.json +1 -0
- package/test/contracts/out/interfaces/IERC1155.sol/IERC1155.json +1 -0
- package/test/contracts/out/interfaces/IERC165.sol/IERC165.json +1 -0
- package/test/contracts/out/interfaces/IERC20.sol/IERC20.json +1 -0
- package/test/contracts/out/interfaces/IERC4626.sol/IERC4626.json +1 -0
- package/test/contracts/out/interfaces/IERC721.sol/IERC721.json +1 -0
- package/test/contracts/out/receivers.sol/CrossChainEnabledAMBMock.json +1 -0
- package/test/contracts/out/receivers.sol/CrossChainEnabledArbitrumL1Mock.json +1 -0
- package/test/contracts/out/receivers.sol/CrossChainEnabledArbitrumL2Mock.json +1 -0
- package/test/contracts/out/receivers.sol/CrossChainEnabledOptimismMock.json +1 -0
- package/test/contracts/out/receivers.sol/CrossChainEnabledPolygonChildMock.json +1 -0
- package/test/contracts/out/receivers.sol/Receiver.json +1 -0
- package/test/contracts/out/test.sol/DSTest.json +1 -0
- package/test/contracts/out/test.sol/Test.json +1 -0
- package/test/contracts/out/test.t.sol/DemoTest.json +1 -0
- package/test/database-api.e2e.test.ts +666 -0
- package/test/debug-anvil.ts +44 -0
- package/test/deferred-restart.e2e.test.ts +368 -0
- package/test/discord-connector.e2e.test.ts +463 -0
- package/test/e2e-global-setup.ts +29 -0
- package/test/e2e-validation.e2e.test.ts +1588 -0
- package/test/health-endpoint.e2e.test.ts +95 -0
- package/test/knowledge-e2e-flow.e2e.test.ts +134 -0
- package/test/knowledge-live.e2e.test.ts +405 -0
- package/test/mcp-config.e2e.test.ts +630 -0
- package/test/native-modules.e2e.test.ts +470 -0
- package/test/permissions-api.e2e.test.ts +637 -0
- package/test/plugin-install.e2e.test.ts +645 -0
- package/test/plugin-lifecycle.e2e.test.ts +617 -0
- package/test/plugin-management.e2e.test.ts +308 -0
- package/test/provider-switch.e2e.test.ts +322 -0
- package/test/scripts/test-force.ts +139 -0
- package/test/scripts/test-parallel.mjs +192 -0
- package/test/scripts/validate-all-features.sh +557 -0
- package/test/setup.ts +122 -0
- package/test/signal-connector.e2e.test.ts +229 -0
- package/test/skills-marketplace-api.e2e.test.ts +585 -0
- package/test/skills-marketplace-services.e2e.test.ts +518 -0
- package/test/skills-marketplace.e2e.test.ts +268 -0
- package/test/stubs/coding-agent-module.ts +18 -0
- package/test/stubs/electron-module.ts +17 -0
- package/test/stubs/empty-module.mjs +4 -0
- package/test/stubs/pi-ai-module.ts +12 -0
- package/test/subscription-auth.e2e.test.ts +747 -0
- package/test/terminal-execution.e2e.test.ts +134 -0
- package/test/terminal-run-limits.e2e.test.ts +132 -0
- package/test/test-env.ts +156 -0
- package/test/trajectory-collection.e2e.test.ts +800 -0
- package/test/trajectory-database.e2e.test.ts +209 -0
- package/test/trajectory-embedding-filter.e2e.test.ts +317 -0
- package/test/trajectory-restart-carryover.e2e.test.ts +306 -0
- package/test/trigger-execution-flow.e2e.test.ts +132 -0
- package/test/trigger-runtime.e2e.test.ts +247 -0
- package/test/wallet-api.e2e.test.ts +1295 -0
- package/test/wallet-live.e2e.test.ts +428 -0
- package/vitest.config.ts +23 -0
- package/vitest.e2e.config.ts +71 -0
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
// OpenZeppelin Contracts (last updated v4.9.0) (utils/cryptography/ECDSA.sol)
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.8.0;
|
|
5
|
+
|
|
6
|
+
import "../Strings.sol";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.
|
|
10
|
+
*
|
|
11
|
+
* These functions can be used to verify that a message was signed by the holder
|
|
12
|
+
* of the private keys of a given address.
|
|
13
|
+
*/
|
|
14
|
+
library ECDSA {
|
|
15
|
+
enum RecoverError {
|
|
16
|
+
NoError,
|
|
17
|
+
InvalidSignature,
|
|
18
|
+
InvalidSignatureLength,
|
|
19
|
+
InvalidSignatureS,
|
|
20
|
+
InvalidSignatureV // Deprecated in v4.8
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function _throwError(RecoverError error) private pure {
|
|
24
|
+
if (error == RecoverError.NoError) {
|
|
25
|
+
return; // no error: do nothing
|
|
26
|
+
} else if (error == RecoverError.InvalidSignature) {
|
|
27
|
+
revert("ECDSA: invalid signature");
|
|
28
|
+
} else if (error == RecoverError.InvalidSignatureLength) {
|
|
29
|
+
revert("ECDSA: invalid signature length");
|
|
30
|
+
} else if (error == RecoverError.InvalidSignatureS) {
|
|
31
|
+
revert("ECDSA: invalid signature 's' value");
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* @dev Returns the address that signed a hashed message (`hash`) with
|
|
37
|
+
* `signature` or error string. This address can then be used for verification purposes.
|
|
38
|
+
*
|
|
39
|
+
* The `ecrecover` EVM opcode allows for malleable (non-unique) signatures:
|
|
40
|
+
* this function rejects them by requiring the `s` value to be in the lower
|
|
41
|
+
* half order, and the `v` value to be either 27 or 28.
|
|
42
|
+
*
|
|
43
|
+
* IMPORTANT: `hash` _must_ be the result of a hash operation for the
|
|
44
|
+
* verification to be secure: it is possible to craft signatures that
|
|
45
|
+
* recover to arbitrary addresses for non-hashed data. A safe way to ensure
|
|
46
|
+
* this is by receiving a hash of the original message (which may otherwise
|
|
47
|
+
* be too long), and then calling {toEthSignedMessageHash} on it.
|
|
48
|
+
*
|
|
49
|
+
* Documentation for signature generation:
|
|
50
|
+
* - with https://web3js.readthedocs.io/en/v1.3.4/web3-eth-accounts.html#sign[Web3.js]
|
|
51
|
+
* - with https://docs.ethers.io/v5/api/signer/#Signer-signMessage[ethers]
|
|
52
|
+
*
|
|
53
|
+
* _Available since v4.3._
|
|
54
|
+
*/
|
|
55
|
+
function tryRecover(bytes32 hash, bytes memory signature) internal pure returns (address, RecoverError) {
|
|
56
|
+
if (signature.length == 65) {
|
|
57
|
+
bytes32 r;
|
|
58
|
+
bytes32 s;
|
|
59
|
+
uint8 v;
|
|
60
|
+
// ecrecover takes the signature parameters, and the only way to get them
|
|
61
|
+
// currently is to use assembly.
|
|
62
|
+
/// @solidity memory-safe-assembly
|
|
63
|
+
assembly {
|
|
64
|
+
r := mload(add(signature, 0x20))
|
|
65
|
+
s := mload(add(signature, 0x40))
|
|
66
|
+
v := byte(0, mload(add(signature, 0x60)))
|
|
67
|
+
}
|
|
68
|
+
return tryRecover(hash, v, r, s);
|
|
69
|
+
} else {
|
|
70
|
+
return (address(0), RecoverError.InvalidSignatureLength);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* @dev Returns the address that signed a hashed message (`hash`) with
|
|
76
|
+
* `signature`. This address can then be used for verification purposes.
|
|
77
|
+
*
|
|
78
|
+
* The `ecrecover` EVM opcode allows for malleable (non-unique) signatures:
|
|
79
|
+
* this function rejects them by requiring the `s` value to be in the lower
|
|
80
|
+
* half order, and the `v` value to be either 27 or 28.
|
|
81
|
+
*
|
|
82
|
+
* IMPORTANT: `hash` _must_ be the result of a hash operation for the
|
|
83
|
+
* verification to be secure: it is possible to craft signatures that
|
|
84
|
+
* recover to arbitrary addresses for non-hashed data. A safe way to ensure
|
|
85
|
+
* this is by receiving a hash of the original message (which may otherwise
|
|
86
|
+
* be too long), and then calling {toEthSignedMessageHash} on it.
|
|
87
|
+
*/
|
|
88
|
+
function recover(bytes32 hash, bytes memory signature) internal pure returns (address) {
|
|
89
|
+
(address recovered, RecoverError error) = tryRecover(hash, signature);
|
|
90
|
+
_throwError(error);
|
|
91
|
+
return recovered;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* @dev Overload of {ECDSA-tryRecover} that receives the `r` and `vs` short-signature fields separately.
|
|
96
|
+
*
|
|
97
|
+
* See https://eips.ethereum.org/EIPS/eip-2098[EIP-2098 short signatures]
|
|
98
|
+
*
|
|
99
|
+
* _Available since v4.3._
|
|
100
|
+
*/
|
|
101
|
+
function tryRecover(bytes32 hash, bytes32 r, bytes32 vs) internal pure returns (address, RecoverError) {
|
|
102
|
+
bytes32 s = vs & bytes32(0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff);
|
|
103
|
+
uint8 v = uint8((uint256(vs) >> 255) + 27);
|
|
104
|
+
return tryRecover(hash, v, r, s);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* @dev Overload of {ECDSA-recover} that receives the `r and `vs` short-signature fields separately.
|
|
109
|
+
*
|
|
110
|
+
* _Available since v4.2._
|
|
111
|
+
*/
|
|
112
|
+
function recover(bytes32 hash, bytes32 r, bytes32 vs) internal pure returns (address) {
|
|
113
|
+
(address recovered, RecoverError error) = tryRecover(hash, r, vs);
|
|
114
|
+
_throwError(error);
|
|
115
|
+
return recovered;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* @dev Overload of {ECDSA-tryRecover} that receives the `v`,
|
|
120
|
+
* `r` and `s` signature fields separately.
|
|
121
|
+
*
|
|
122
|
+
* _Available since v4.3._
|
|
123
|
+
*/
|
|
124
|
+
function tryRecover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) internal pure returns (address, RecoverError) {
|
|
125
|
+
// EIP-2 still allows signature malleability for ecrecover(). Remove this possibility and make the signature
|
|
126
|
+
// unique. Appendix F in the Ethereum Yellow paper (https://ethereum.github.io/yellowpaper/paper.pdf), defines
|
|
127
|
+
// the valid range for s in (301): 0 < s < secp256k1n ÷ 2 + 1, and for v in (302): v ∈ {27, 28}. Most
|
|
128
|
+
// signatures from current libraries generate a unique signature with an s-value in the lower half order.
|
|
129
|
+
//
|
|
130
|
+
// If your library generates malleable signatures, such as s-values in the upper range, calculate a new s-value
|
|
131
|
+
// with 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141 - s1 and flip v from 27 to 28 or
|
|
132
|
+
// vice versa. If your library also generates signatures with 0/1 for v instead 27/28, add 27 to v to accept
|
|
133
|
+
// these malleable signatures as well.
|
|
134
|
+
if (uint256(s) > 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0) {
|
|
135
|
+
return (address(0), RecoverError.InvalidSignatureS);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
// If the signature is valid (and not malleable), return the signer address
|
|
139
|
+
address signer = ecrecover(hash, v, r, s);
|
|
140
|
+
if (signer == address(0)) {
|
|
141
|
+
return (address(0), RecoverError.InvalidSignature);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
return (signer, RecoverError.NoError);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* @dev Overload of {ECDSA-recover} that receives the `v`,
|
|
149
|
+
* `r` and `s` signature fields separately.
|
|
150
|
+
*/
|
|
151
|
+
function recover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) internal pure returns (address) {
|
|
152
|
+
(address recovered, RecoverError error) = tryRecover(hash, v, r, s);
|
|
153
|
+
_throwError(error);
|
|
154
|
+
return recovered;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* @dev Returns an Ethereum Signed Message, created from a `hash`. This
|
|
159
|
+
* produces hash corresponding to the one signed with the
|
|
160
|
+
* https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`]
|
|
161
|
+
* JSON-RPC method as part of EIP-191.
|
|
162
|
+
*
|
|
163
|
+
* See {recover}.
|
|
164
|
+
*/
|
|
165
|
+
function toEthSignedMessageHash(bytes32 hash) internal pure returns (bytes32 message) {
|
|
166
|
+
// 32 is the length in bytes of hash,
|
|
167
|
+
// enforced by the type signature above
|
|
168
|
+
/// @solidity memory-safe-assembly
|
|
169
|
+
assembly {
|
|
170
|
+
mstore(0x00, "\x19Ethereum Signed Message:\n32")
|
|
171
|
+
mstore(0x1c, hash)
|
|
172
|
+
message := keccak256(0x00, 0x3c)
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* @dev Returns an Ethereum Signed Message, created from `s`. This
|
|
178
|
+
* produces hash corresponding to the one signed with the
|
|
179
|
+
* https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`]
|
|
180
|
+
* JSON-RPC method as part of EIP-191.
|
|
181
|
+
*
|
|
182
|
+
* See {recover}.
|
|
183
|
+
*/
|
|
184
|
+
function toEthSignedMessageHash(bytes memory s) internal pure returns (bytes32) {
|
|
185
|
+
return keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n", Strings.toString(s.length), s));
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* @dev Returns an Ethereum Signed Typed Data, created from a
|
|
190
|
+
* `domainSeparator` and a `structHash`. This produces hash corresponding
|
|
191
|
+
* to the one signed with the
|
|
192
|
+
* https://eips.ethereum.org/EIPS/eip-712[`eth_signTypedData`]
|
|
193
|
+
* JSON-RPC method as part of EIP-712.
|
|
194
|
+
*
|
|
195
|
+
* See {recover}.
|
|
196
|
+
*/
|
|
197
|
+
function toTypedDataHash(bytes32 domainSeparator, bytes32 structHash) internal pure returns (bytes32 data) {
|
|
198
|
+
/// @solidity memory-safe-assembly
|
|
199
|
+
assembly {
|
|
200
|
+
let ptr := mload(0x40)
|
|
201
|
+
mstore(ptr, "\x19\x01")
|
|
202
|
+
mstore(add(ptr, 0x02), domainSeparator)
|
|
203
|
+
mstore(add(ptr, 0x22), structHash)
|
|
204
|
+
data := keccak256(ptr, 0x42)
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
/**
|
|
209
|
+
* @dev Returns an Ethereum Signed Data with intended validator, created from a
|
|
210
|
+
* `validator` and `data` according to the version 0 of EIP-191.
|
|
211
|
+
*
|
|
212
|
+
* See {recover}.
|
|
213
|
+
*/
|
|
214
|
+
function toDataWithIntendedValidatorHash(address validator, bytes memory data) internal pure returns (bytes32) {
|
|
215
|
+
return keccak256(abi.encodePacked("\x19\x00", validator, data));
|
|
216
|
+
}
|
|
217
|
+
}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
// OpenZeppelin Contracts (last updated v4.9.0) (utils/cryptography/EIP712.sol)
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.8.8;
|
|
5
|
+
|
|
6
|
+
import "./ECDSA.sol";
|
|
7
|
+
import "../ShortStrings.sol";
|
|
8
|
+
import "../../interfaces/IERC5267.sol";
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* @dev https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data.
|
|
12
|
+
*
|
|
13
|
+
* The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible,
|
|
14
|
+
* thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding
|
|
15
|
+
* they need in their contracts using a combination of `abi.encode` and `keccak256`.
|
|
16
|
+
*
|
|
17
|
+
* This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding
|
|
18
|
+
* scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA
|
|
19
|
+
* ({_hashTypedDataV4}).
|
|
20
|
+
*
|
|
21
|
+
* The implementation of the domain separator was designed to be as efficient as possible while still properly updating
|
|
22
|
+
* the chain id to protect against replay attacks on an eventual fork of the chain.
|
|
23
|
+
*
|
|
24
|
+
* NOTE: This contract implements the version of the encoding known as "v4", as implemented by the JSON RPC method
|
|
25
|
+
* https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask].
|
|
26
|
+
*
|
|
27
|
+
* NOTE: In the upgradeable version of this contract, the cached values will correspond to the address, and the domain
|
|
28
|
+
* separator of the implementation contract. This will cause the `_domainSeparatorV4` function to always rebuild the
|
|
29
|
+
* separator from the immutable values, which is cheaper than accessing a cached version in cold storage.
|
|
30
|
+
*
|
|
31
|
+
* _Available since v3.4._
|
|
32
|
+
*
|
|
33
|
+
* @custom:oz-upgrades-unsafe-allow state-variable-immutable state-variable-assignment
|
|
34
|
+
*/
|
|
35
|
+
abstract contract EIP712 is IERC5267 {
|
|
36
|
+
using ShortStrings for *;
|
|
37
|
+
|
|
38
|
+
bytes32 private constant _TYPE_HASH =
|
|
39
|
+
keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)");
|
|
40
|
+
|
|
41
|
+
// Cache the domain separator as an immutable value, but also store the chain id that it corresponds to, in order to
|
|
42
|
+
// invalidate the cached domain separator if the chain id changes.
|
|
43
|
+
bytes32 private immutable _cachedDomainSeparator;
|
|
44
|
+
uint256 private immutable _cachedChainId;
|
|
45
|
+
address private immutable _cachedThis;
|
|
46
|
+
|
|
47
|
+
bytes32 private immutable _hashedName;
|
|
48
|
+
bytes32 private immutable _hashedVersion;
|
|
49
|
+
|
|
50
|
+
ShortString private immutable _name;
|
|
51
|
+
ShortString private immutable _version;
|
|
52
|
+
string private _nameFallback;
|
|
53
|
+
string private _versionFallback;
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* @dev Initializes the domain separator and parameter caches.
|
|
57
|
+
*
|
|
58
|
+
* The meaning of `name` and `version` is specified in
|
|
59
|
+
* https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]:
|
|
60
|
+
*
|
|
61
|
+
* - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol.
|
|
62
|
+
* - `version`: the current major version of the signing domain.
|
|
63
|
+
*
|
|
64
|
+
* NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart
|
|
65
|
+
* contract upgrade].
|
|
66
|
+
*/
|
|
67
|
+
constructor(string memory name, string memory version) {
|
|
68
|
+
_name = name.toShortStringWithFallback(_nameFallback);
|
|
69
|
+
_version = version.toShortStringWithFallback(_versionFallback);
|
|
70
|
+
_hashedName = keccak256(bytes(name));
|
|
71
|
+
_hashedVersion = keccak256(bytes(version));
|
|
72
|
+
|
|
73
|
+
_cachedChainId = block.chainid;
|
|
74
|
+
_cachedDomainSeparator = _buildDomainSeparator();
|
|
75
|
+
_cachedThis = address(this);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* @dev Returns the domain separator for the current chain.
|
|
80
|
+
*/
|
|
81
|
+
function _domainSeparatorV4() internal view returns (bytes32) {
|
|
82
|
+
if (address(this) == _cachedThis && block.chainid == _cachedChainId) {
|
|
83
|
+
return _cachedDomainSeparator;
|
|
84
|
+
} else {
|
|
85
|
+
return _buildDomainSeparator();
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
function _buildDomainSeparator() private view returns (bytes32) {
|
|
90
|
+
return keccak256(abi.encode(_TYPE_HASH, _hashedName, _hashedVersion, block.chainid, address(this)));
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* @dev Given an already https://eips.ethereum.org/EIPS/eip-712#definition-of-hashstruct[hashed struct], this
|
|
95
|
+
* function returns the hash of the fully encoded EIP712 message for this domain.
|
|
96
|
+
*
|
|
97
|
+
* This hash can be used together with {ECDSA-recover} to obtain the signer of a message. For example:
|
|
98
|
+
*
|
|
99
|
+
* ```solidity
|
|
100
|
+
* bytes32 digest = _hashTypedDataV4(keccak256(abi.encode(
|
|
101
|
+
* keccak256("Mail(address to,string contents)"),
|
|
102
|
+
* mailTo,
|
|
103
|
+
* keccak256(bytes(mailContents))
|
|
104
|
+
* )));
|
|
105
|
+
* address signer = ECDSA.recover(digest, signature);
|
|
106
|
+
* ```
|
|
107
|
+
*/
|
|
108
|
+
function _hashTypedDataV4(bytes32 structHash) internal view virtual returns (bytes32) {
|
|
109
|
+
return ECDSA.toTypedDataHash(_domainSeparatorV4(), structHash);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* @dev See {EIP-5267}.
|
|
114
|
+
*
|
|
115
|
+
* _Available since v4.9._
|
|
116
|
+
*/
|
|
117
|
+
function eip712Domain()
|
|
118
|
+
public
|
|
119
|
+
view
|
|
120
|
+
virtual
|
|
121
|
+
override
|
|
122
|
+
returns (
|
|
123
|
+
bytes1 fields,
|
|
124
|
+
string memory name,
|
|
125
|
+
string memory version,
|
|
126
|
+
uint256 chainId,
|
|
127
|
+
address verifyingContract,
|
|
128
|
+
bytes32 salt,
|
|
129
|
+
uint256[] memory extensions
|
|
130
|
+
)
|
|
131
|
+
{
|
|
132
|
+
return (
|
|
133
|
+
hex"0f", // 01111
|
|
134
|
+
_name.toStringWithFallback(_nameFallback),
|
|
135
|
+
_version.toStringWithFallback(_versionFallback),
|
|
136
|
+
block.chainid,
|
|
137
|
+
address(this),
|
|
138
|
+
bytes32(0),
|
|
139
|
+
new uint256[](0)
|
|
140
|
+
);
|
|
141
|
+
}
|
|
142
|
+
}
|
package/test/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol
ADDED
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
// OpenZeppelin Contracts (last updated v4.9.2) (utils/cryptography/MerkleProof.sol)
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.8.0;
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @dev These functions deal with verification of Merkle Tree proofs.
|
|
8
|
+
*
|
|
9
|
+
* The tree and the proofs can be generated using our
|
|
10
|
+
* https://github.com/OpenZeppelin/merkle-tree[JavaScript library].
|
|
11
|
+
* You will find a quickstart guide in the readme.
|
|
12
|
+
*
|
|
13
|
+
* WARNING: You should avoid using leaf values that are 64 bytes long prior to
|
|
14
|
+
* hashing, or use a hash function other than keccak256 for hashing leaves.
|
|
15
|
+
* This is because the concatenation of a sorted pair of internal nodes in
|
|
16
|
+
* the merkle tree could be reinterpreted as a leaf value.
|
|
17
|
+
* OpenZeppelin's JavaScript library generates merkle trees that are safe
|
|
18
|
+
* against this attack out of the box.
|
|
19
|
+
*/
|
|
20
|
+
library MerkleProof {
|
|
21
|
+
/**
|
|
22
|
+
* @dev Returns true if a `leaf` can be proved to be a part of a Merkle tree
|
|
23
|
+
* defined by `root`. For this, a `proof` must be provided, containing
|
|
24
|
+
* sibling hashes on the branch from the leaf to the root of the tree. Each
|
|
25
|
+
* pair of leaves and each pair of pre-images are assumed to be sorted.
|
|
26
|
+
*/
|
|
27
|
+
function verify(bytes32[] memory proof, bytes32 root, bytes32 leaf) internal pure returns (bool) {
|
|
28
|
+
return processProof(proof, leaf) == root;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* @dev Calldata version of {verify}
|
|
33
|
+
*
|
|
34
|
+
* _Available since v4.7._
|
|
35
|
+
*/
|
|
36
|
+
function verifyCalldata(bytes32[] calldata proof, bytes32 root, bytes32 leaf) internal pure returns (bool) {
|
|
37
|
+
return processProofCalldata(proof, leaf) == root;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* @dev Returns the rebuilt hash obtained by traversing a Merkle tree up
|
|
42
|
+
* from `leaf` using `proof`. A `proof` is valid if and only if the rebuilt
|
|
43
|
+
* hash matches the root of the tree. When processing the proof, the pairs
|
|
44
|
+
* of leafs & pre-images are assumed to be sorted.
|
|
45
|
+
*
|
|
46
|
+
* _Available since v4.4._
|
|
47
|
+
*/
|
|
48
|
+
function processProof(bytes32[] memory proof, bytes32 leaf) internal pure returns (bytes32) {
|
|
49
|
+
bytes32 computedHash = leaf;
|
|
50
|
+
for (uint256 i = 0; i < proof.length; i++) {
|
|
51
|
+
computedHash = _hashPair(computedHash, proof[i]);
|
|
52
|
+
}
|
|
53
|
+
return computedHash;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* @dev Calldata version of {processProof}
|
|
58
|
+
*
|
|
59
|
+
* _Available since v4.7._
|
|
60
|
+
*/
|
|
61
|
+
function processProofCalldata(bytes32[] calldata proof, bytes32 leaf) internal pure returns (bytes32) {
|
|
62
|
+
bytes32 computedHash = leaf;
|
|
63
|
+
for (uint256 i = 0; i < proof.length; i++) {
|
|
64
|
+
computedHash = _hashPair(computedHash, proof[i]);
|
|
65
|
+
}
|
|
66
|
+
return computedHash;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* @dev Returns true if the `leaves` can be simultaneously proven to be a part of a merkle tree defined by
|
|
71
|
+
* `root`, according to `proof` and `proofFlags` as described in {processMultiProof}.
|
|
72
|
+
*
|
|
73
|
+
* CAUTION: Not all merkle trees admit multiproofs. See {processMultiProof} for details.
|
|
74
|
+
*
|
|
75
|
+
* _Available since v4.7._
|
|
76
|
+
*/
|
|
77
|
+
function multiProofVerify(
|
|
78
|
+
bytes32[] memory proof,
|
|
79
|
+
bool[] memory proofFlags,
|
|
80
|
+
bytes32 root,
|
|
81
|
+
bytes32[] memory leaves
|
|
82
|
+
) internal pure returns (bool) {
|
|
83
|
+
return processMultiProof(proof, proofFlags, leaves) == root;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* @dev Calldata version of {multiProofVerify}
|
|
88
|
+
*
|
|
89
|
+
* CAUTION: Not all merkle trees admit multiproofs. See {processMultiProof} for details.
|
|
90
|
+
*
|
|
91
|
+
* _Available since v4.7._
|
|
92
|
+
*/
|
|
93
|
+
function multiProofVerifyCalldata(
|
|
94
|
+
bytes32[] calldata proof,
|
|
95
|
+
bool[] calldata proofFlags,
|
|
96
|
+
bytes32 root,
|
|
97
|
+
bytes32[] memory leaves
|
|
98
|
+
) internal pure returns (bool) {
|
|
99
|
+
return processMultiProofCalldata(proof, proofFlags, leaves) == root;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* @dev Returns the root of a tree reconstructed from `leaves` and sibling nodes in `proof`. The reconstruction
|
|
104
|
+
* proceeds by incrementally reconstructing all inner nodes by combining a leaf/inner node with either another
|
|
105
|
+
* leaf/inner node or a proof sibling node, depending on whether each `proofFlags` item is true or false
|
|
106
|
+
* respectively.
|
|
107
|
+
*
|
|
108
|
+
* CAUTION: Not all merkle trees admit multiproofs. To use multiproofs, it is sufficient to ensure that: 1) the tree
|
|
109
|
+
* is complete (but not necessarily perfect), 2) the leaves to be proven are in the opposite order they are in the
|
|
110
|
+
* tree (i.e., as seen from right to left starting at the deepest layer and continuing at the next layer).
|
|
111
|
+
*
|
|
112
|
+
* _Available since v4.7._
|
|
113
|
+
*/
|
|
114
|
+
function processMultiProof(
|
|
115
|
+
bytes32[] memory proof,
|
|
116
|
+
bool[] memory proofFlags,
|
|
117
|
+
bytes32[] memory leaves
|
|
118
|
+
) internal pure returns (bytes32 merkleRoot) {
|
|
119
|
+
// This function rebuilds the root hash by traversing the tree up from the leaves. The root is rebuilt by
|
|
120
|
+
// consuming and producing values on a queue. The queue starts with the `leaves` array, then goes onto the
|
|
121
|
+
// `hashes` array. At the end of the process, the last hash in the `hashes` array should contain the root of
|
|
122
|
+
// the merkle tree.
|
|
123
|
+
uint256 leavesLen = leaves.length;
|
|
124
|
+
uint256 proofLen = proof.length;
|
|
125
|
+
uint256 totalHashes = proofFlags.length;
|
|
126
|
+
|
|
127
|
+
// Check proof validity.
|
|
128
|
+
require(leavesLen + proofLen - 1 == totalHashes, "MerkleProof: invalid multiproof");
|
|
129
|
+
|
|
130
|
+
// The xxxPos values are "pointers" to the next value to consume in each array. All accesses are done using
|
|
131
|
+
// `xxx[xxxPos++]`, which return the current value and increment the pointer, thus mimicking a queue's "pop".
|
|
132
|
+
bytes32[] memory hashes = new bytes32[](totalHashes);
|
|
133
|
+
uint256 leafPos = 0;
|
|
134
|
+
uint256 hashPos = 0;
|
|
135
|
+
uint256 proofPos = 0;
|
|
136
|
+
// At each step, we compute the next hash using two values:
|
|
137
|
+
// - a value from the "main queue". If not all leaves have been consumed, we get the next leaf, otherwise we
|
|
138
|
+
// get the next hash.
|
|
139
|
+
// - depending on the flag, either another value from the "main queue" (merging branches) or an element from the
|
|
140
|
+
// `proof` array.
|
|
141
|
+
for (uint256 i = 0; i < totalHashes; i++) {
|
|
142
|
+
bytes32 a = leafPos < leavesLen ? leaves[leafPos++] : hashes[hashPos++];
|
|
143
|
+
bytes32 b = proofFlags[i]
|
|
144
|
+
? (leafPos < leavesLen ? leaves[leafPos++] : hashes[hashPos++])
|
|
145
|
+
: proof[proofPos++];
|
|
146
|
+
hashes[i] = _hashPair(a, b);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
if (totalHashes > 0) {
|
|
150
|
+
require(proofPos == proofLen, "MerkleProof: invalid multiproof");
|
|
151
|
+
unchecked {
|
|
152
|
+
return hashes[totalHashes - 1];
|
|
153
|
+
}
|
|
154
|
+
} else if (leavesLen > 0) {
|
|
155
|
+
return leaves[0];
|
|
156
|
+
} else {
|
|
157
|
+
return proof[0];
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* @dev Calldata version of {processMultiProof}.
|
|
163
|
+
*
|
|
164
|
+
* CAUTION: Not all merkle trees admit multiproofs. See {processMultiProof} for details.
|
|
165
|
+
*
|
|
166
|
+
* _Available since v4.7._
|
|
167
|
+
*/
|
|
168
|
+
function processMultiProofCalldata(
|
|
169
|
+
bytes32[] calldata proof,
|
|
170
|
+
bool[] calldata proofFlags,
|
|
171
|
+
bytes32[] memory leaves
|
|
172
|
+
) internal pure returns (bytes32 merkleRoot) {
|
|
173
|
+
// This function rebuilds the root hash by traversing the tree up from the leaves. The root is rebuilt by
|
|
174
|
+
// consuming and producing values on a queue. The queue starts with the `leaves` array, then goes onto the
|
|
175
|
+
// `hashes` array. At the end of the process, the last hash in the `hashes` array should contain the root of
|
|
176
|
+
// the merkle tree.
|
|
177
|
+
uint256 leavesLen = leaves.length;
|
|
178
|
+
uint256 proofLen = proof.length;
|
|
179
|
+
uint256 totalHashes = proofFlags.length;
|
|
180
|
+
|
|
181
|
+
// Check proof validity.
|
|
182
|
+
require(leavesLen + proofLen - 1 == totalHashes, "MerkleProof: invalid multiproof");
|
|
183
|
+
|
|
184
|
+
// The xxxPos values are "pointers" to the next value to consume in each array. All accesses are done using
|
|
185
|
+
// `xxx[xxxPos++]`, which return the current value and increment the pointer, thus mimicking a queue's "pop".
|
|
186
|
+
bytes32[] memory hashes = new bytes32[](totalHashes);
|
|
187
|
+
uint256 leafPos = 0;
|
|
188
|
+
uint256 hashPos = 0;
|
|
189
|
+
uint256 proofPos = 0;
|
|
190
|
+
// At each step, we compute the next hash using two values:
|
|
191
|
+
// - a value from the "main queue". If not all leaves have been consumed, we get the next leaf, otherwise we
|
|
192
|
+
// get the next hash.
|
|
193
|
+
// - depending on the flag, either another value from the "main queue" (merging branches) or an element from the
|
|
194
|
+
// `proof` array.
|
|
195
|
+
for (uint256 i = 0; i < totalHashes; i++) {
|
|
196
|
+
bytes32 a = leafPos < leavesLen ? leaves[leafPos++] : hashes[hashPos++];
|
|
197
|
+
bytes32 b = proofFlags[i]
|
|
198
|
+
? (leafPos < leavesLen ? leaves[leafPos++] : hashes[hashPos++])
|
|
199
|
+
: proof[proofPos++];
|
|
200
|
+
hashes[i] = _hashPair(a, b);
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
if (totalHashes > 0) {
|
|
204
|
+
require(proofPos == proofLen, "MerkleProof: invalid multiproof");
|
|
205
|
+
unchecked {
|
|
206
|
+
return hashes[totalHashes - 1];
|
|
207
|
+
}
|
|
208
|
+
} else if (leavesLen > 0) {
|
|
209
|
+
return leaves[0];
|
|
210
|
+
} else {
|
|
211
|
+
return proof[0];
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
function _hashPair(bytes32 a, bytes32 b) private pure returns (bytes32) {
|
|
216
|
+
return a < b ? _efficientHash(a, b) : _efficientHash(b, a);
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
function _efficientHash(bytes32 a, bytes32 b) private pure returns (bytes32 value) {
|
|
220
|
+
/// @solidity memory-safe-assembly
|
|
221
|
+
assembly {
|
|
222
|
+
mstore(0x00, a)
|
|
223
|
+
mstore(0x20, b)
|
|
224
|
+
value := keccak256(0x00, 0x40)
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}
|
package/test/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
// OpenZeppelin Contracts (last updated v4.9.0) (utils/cryptography/SignatureChecker.sol)
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.8.0;
|
|
5
|
+
|
|
6
|
+
import "./ECDSA.sol";
|
|
7
|
+
import "../../interfaces/IERC1271.sol";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @dev Signature verification helper that can be used instead of `ECDSA.recover` to seamlessly support both ECDSA
|
|
11
|
+
* signatures from externally owned accounts (EOAs) as well as ERC1271 signatures from smart contract wallets like
|
|
12
|
+
* Argent and Gnosis Safe.
|
|
13
|
+
*
|
|
14
|
+
* _Available since v4.1._
|
|
15
|
+
*/
|
|
16
|
+
library SignatureChecker {
|
|
17
|
+
/**
|
|
18
|
+
* @dev Checks if a signature is valid for a given signer and data hash. If the signer is a smart contract, the
|
|
19
|
+
* signature is validated against that smart contract using ERC1271, otherwise it's validated using `ECDSA.recover`.
|
|
20
|
+
*
|
|
21
|
+
* NOTE: Unlike ECDSA signatures, contract signatures are revocable, and the outcome of this function can thus
|
|
22
|
+
* change through time. It could return true at block N and false at block N+1 (or the opposite).
|
|
23
|
+
*/
|
|
24
|
+
function isValidSignatureNow(address signer, bytes32 hash, bytes memory signature) internal view returns (bool) {
|
|
25
|
+
(address recovered, ECDSA.RecoverError error) = ECDSA.tryRecover(hash, signature);
|
|
26
|
+
return
|
|
27
|
+
(error == ECDSA.RecoverError.NoError && recovered == signer) ||
|
|
28
|
+
isValidERC1271SignatureNow(signer, hash, signature);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* @dev Checks if a signature is valid for a given signer and data hash. The signature is validated
|
|
33
|
+
* against the signer smart contract using ERC1271.
|
|
34
|
+
*
|
|
35
|
+
* NOTE: Unlike ECDSA signatures, contract signatures are revocable, and the outcome of this function can thus
|
|
36
|
+
* change through time. It could return true at block N and false at block N+1 (or the opposite).
|
|
37
|
+
*/
|
|
38
|
+
function isValidERC1271SignatureNow(
|
|
39
|
+
address signer,
|
|
40
|
+
bytes32 hash,
|
|
41
|
+
bytes memory signature
|
|
42
|
+
) internal view returns (bool) {
|
|
43
|
+
(bool success, bytes memory result) = signer.staticcall(
|
|
44
|
+
abi.encodeWithSelector(IERC1271.isValidSignature.selector, hash, signature)
|
|
45
|
+
);
|
|
46
|
+
return (success &&
|
|
47
|
+
result.length >= 32 &&
|
|
48
|
+
abi.decode(result, (bytes32)) == bytes32(IERC1271.isValidSignature.selector));
|
|
49
|
+
}
|
|
50
|
+
}
|
package/test/contracts/lib/openzeppelin-contracts/contracts/utils/escrow/ConditionalEscrow.sol
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
// OpenZeppelin Contracts v4.4.1 (utils/escrow/ConditionalEscrow.sol)
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.8.0;
|
|
5
|
+
|
|
6
|
+
import "./Escrow.sol";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @title ConditionalEscrow
|
|
10
|
+
* @dev Base abstract escrow to only allow withdrawal if a condition is met.
|
|
11
|
+
* @dev Intended usage: See {Escrow}. Same usage guidelines apply here.
|
|
12
|
+
*/
|
|
13
|
+
abstract contract ConditionalEscrow is Escrow {
|
|
14
|
+
/**
|
|
15
|
+
* @dev Returns whether an address is allowed to withdraw their funds. To be
|
|
16
|
+
* implemented by derived contracts.
|
|
17
|
+
* @param payee The destination address of the funds.
|
|
18
|
+
*/
|
|
19
|
+
function withdrawalAllowed(address payee) public view virtual returns (bool);
|
|
20
|
+
|
|
21
|
+
function withdraw(address payable payee) public virtual override {
|
|
22
|
+
require(withdrawalAllowed(payee), "ConditionalEscrow: payee is not allowed to withdraw");
|
|
23
|
+
super.withdraw(payee);
|
|
24
|
+
}
|
|
25
|
+
}
|