@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.
Files changed (1087) hide show
  1. package/.turbo/turbo-build.log +0 -140
  2. package/.turbo/turbo-lint$colon$check.log +89 -0
  3. package/.turbo/turbo-typecheck.log +1 -0
  4. package/dist/package.json +986 -0
  5. package/dist/packages/autonomous/src/config/zod-schema.core.d.ts +1 -1
  6. package/dist/packages/autonomous/src/config/zod-schema.d.ts +41 -41
  7. package/dist/packages/autonomous/src/config/zod-schema.providers-core.d.ts +37 -37
  8. package/dist/packages/autonomous/src/config/zod-schema.session.d.ts +1 -1
  9. package/dist/packages/autonomous/src/services/coding-agent-context.d.ts +4 -4
  10. package/package.json +14 -6
  11. package/test/agent-export.e2e.test.ts +376 -0
  12. package/test/agent-orchestration.e2e.test.ts +1568 -0
  13. package/test/agent-restart-recovery.e2e.test.ts +149 -0
  14. package/test/agent-runtime.e2e.test.ts +1515 -0
  15. package/test/anvil-contracts.e2e.test.ts +533 -0
  16. package/test/anvil-helper.ts +285 -0
  17. package/test/api-auth-live.e2e.test.ts +519 -0
  18. package/test/api-auth.e2e.test.ts +1039 -0
  19. package/test/api-server.e2e.test.ts +4582 -0
  20. package/test/apps-e2e.e2e.test.ts +1108 -0
  21. package/test/auth-modules.e2e.test.ts +71 -0
  22. package/test/cloud-auth-state.e2e.test.ts +145 -0
  23. package/test/cloud-persistence.e2e.test.ts +260 -0
  24. package/test/cloud-providers.e2e.test.ts +781 -0
  25. package/test/config-hot-reload.e2e.test.ts +131 -0
  26. package/test/contract-deployer.ts +151 -0
  27. package/test/contracts/MockMiladyAgentRegistry.sol +216 -0
  28. package/test/contracts/MockMiladyCollection.sol +195 -0
  29. package/test/contracts/cache/solidity-files-cache.json +1 -0
  30. package/test/contracts/foundry.toml +14 -0
  31. package/test/contracts/lib/openzeppelin-contracts/.changeset/config.json +12 -0
  32. package/test/contracts/lib/openzeppelin-contracts/.codecov.yml +12 -0
  33. package/test/contracts/lib/openzeppelin-contracts/.editorconfig +21 -0
  34. package/test/contracts/lib/openzeppelin-contracts/.eslintrc +20 -0
  35. package/test/contracts/lib/openzeppelin-contracts/.github/ISSUE_TEMPLATE/bug_report.md +21 -0
  36. package/test/contracts/lib/openzeppelin-contracts/.github/ISSUE_TEMPLATE/config.yml +4 -0
  37. package/test/contracts/lib/openzeppelin-contracts/.github/ISSUE_TEMPLATE/feature_request.md +14 -0
  38. package/test/contracts/lib/openzeppelin-contracts/.github/PULL_REQUEST_TEMPLATE.md +20 -0
  39. package/test/contracts/lib/openzeppelin-contracts/.github/actions/gas-compare/action.yml +49 -0
  40. package/test/contracts/lib/openzeppelin-contracts/.github/actions/setup/action.yml +19 -0
  41. package/test/contracts/lib/openzeppelin-contracts/.github/actions/storage-layout/action.yml +55 -0
  42. package/test/contracts/lib/openzeppelin-contracts/.github/workflows/actionlint.yml +18 -0
  43. package/test/contracts/lib/openzeppelin-contracts/.github/workflows/changeset.yml +28 -0
  44. package/test/contracts/lib/openzeppelin-contracts/.github/workflows/checks.yml +111 -0
  45. package/test/contracts/lib/openzeppelin-contracts/.github/workflows/docs.yml +19 -0
  46. package/test/contracts/lib/openzeppelin-contracts/.github/workflows/formal-verification.yml +68 -0
  47. package/test/contracts/lib/openzeppelin-contracts/.github/workflows/release-cycle.yml +218 -0
  48. package/test/contracts/lib/openzeppelin-contracts/.github/workflows/upgradeable.yml +30 -0
  49. package/test/contracts/lib/openzeppelin-contracts/.gitmodules +7 -0
  50. package/test/contracts/lib/openzeppelin-contracts/.mocharc.js +4 -0
  51. package/test/contracts/lib/openzeppelin-contracts/.prettierrc +14 -0
  52. package/test/contracts/lib/openzeppelin-contracts/.solcover.js +13 -0
  53. package/test/contracts/lib/openzeppelin-contracts/.solhint.json +14 -0
  54. package/test/contracts/lib/openzeppelin-contracts/CHANGELOG.md +743 -0
  55. package/test/contracts/lib/openzeppelin-contracts/CODE_OF_CONDUCT.md +73 -0
  56. package/test/contracts/lib/openzeppelin-contracts/CONTRIBUTING.md +36 -0
  57. package/test/contracts/lib/openzeppelin-contracts/GUIDELINES.md +117 -0
  58. package/test/contracts/lib/openzeppelin-contracts/LICENSE +22 -0
  59. package/test/contracts/lib/openzeppelin-contracts/README.md +90 -0
  60. package/test/contracts/lib/openzeppelin-contracts/RELEASING.md +47 -0
  61. package/test/contracts/lib/openzeppelin-contracts/SECURITY.md +42 -0
  62. package/test/contracts/lib/openzeppelin-contracts/audits/2017-03.md +292 -0
  63. package/test/contracts/lib/openzeppelin-contracts/audits/2018-10.pdf +0 -0
  64. package/test/contracts/lib/openzeppelin-contracts/audits/2022-10-Checkpoints.pdf +0 -0
  65. package/test/contracts/lib/openzeppelin-contracts/audits/2022-10-ERC4626.pdf +0 -0
  66. package/test/contracts/lib/openzeppelin-contracts/audits/2023-05-v4.9.pdf +0 -0
  67. package/test/contracts/lib/openzeppelin-contracts/audits/README.md +16 -0
  68. package/test/contracts/lib/openzeppelin-contracts/certora/Makefile +54 -0
  69. package/test/contracts/lib/openzeppelin-contracts/certora/README.md +60 -0
  70. package/test/contracts/lib/openzeppelin-contracts/certora/diff/token_ERC721_ERC721.sol.patch +14 -0
  71. package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/AccessControlDefaultAdminRulesHarness.sol +47 -0
  72. package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/AccessControlHarness.sol +7 -0
  73. package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/DoubleEndedQueueHarness.sol +59 -0
  74. package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/ERC20FlashMintHarness.sol +36 -0
  75. package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/ERC20PermitHarness.sol +17 -0
  76. package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/ERC20WrapperHarness.sol +25 -0
  77. package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/ERC3156FlashBorrowerHarness.sol +13 -0
  78. package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/ERC721Harness.sol +37 -0
  79. package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/ERC721ReceiverHarness.sol +11 -0
  80. package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/EnumerableMapHarness.sol +55 -0
  81. package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/EnumerableSetHarness.sol +35 -0
  82. package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/InitializableHarness.sol +23 -0
  83. package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/Ownable2StepHarness.sol +9 -0
  84. package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/OwnableHarness.sol +9 -0
  85. package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/PausableHarness.sol +19 -0
  86. package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/TimelockControllerHarness.sol +12 -0
  87. package/test/contracts/lib/openzeppelin-contracts/certora/reports/2021-10.pdf +0 -0
  88. package/test/contracts/lib/openzeppelin-contracts/certora/reports/2022-03.pdf +0 -0
  89. package/test/contracts/lib/openzeppelin-contracts/certora/reports/2022-05.pdf +0 -0
  90. package/test/contracts/lib/openzeppelin-contracts/certora/run.js +146 -0
  91. package/test/contracts/lib/openzeppelin-contracts/certora/specs/AccessControl.spec +126 -0
  92. package/test/contracts/lib/openzeppelin-contracts/certora/specs/AccessControlDefaultAdminRules.spec +500 -0
  93. package/test/contracts/lib/openzeppelin-contracts/certora/specs/DoubleEndedQueue.spec +366 -0
  94. package/test/contracts/lib/openzeppelin-contracts/certora/specs/ERC20.spec +414 -0
  95. package/test/contracts/lib/openzeppelin-contracts/certora/specs/ERC20FlashMint.spec +48 -0
  96. package/test/contracts/lib/openzeppelin-contracts/certora/specs/ERC20Wrapper.spec +198 -0
  97. package/test/contracts/lib/openzeppelin-contracts/certora/specs/ERC721.spec +589 -0
  98. package/test/contracts/lib/openzeppelin-contracts/certora/specs/EnumerableMap.spec +334 -0
  99. package/test/contracts/lib/openzeppelin-contracts/certora/specs/EnumerableSet.spec +247 -0
  100. package/test/contracts/lib/openzeppelin-contracts/certora/specs/Initializable.spec +165 -0
  101. package/test/contracts/lib/openzeppelin-contracts/certora/specs/Ownable.spec +78 -0
  102. package/test/contracts/lib/openzeppelin-contracts/certora/specs/Ownable2Step.spec +108 -0
  103. package/test/contracts/lib/openzeppelin-contracts/certora/specs/Pausable.spec +96 -0
  104. package/test/contracts/lib/openzeppelin-contracts/certora/specs/TimelockController.spec +275 -0
  105. package/test/contracts/lib/openzeppelin-contracts/certora/specs/helpers/helpers.spec +1 -0
  106. package/test/contracts/lib/openzeppelin-contracts/certora/specs/methods/IAccessControl.spec +7 -0
  107. package/test/contracts/lib/openzeppelin-contracts/certora/specs/methods/IAccessControlDefaultAdminRules.spec +36 -0
  108. package/test/contracts/lib/openzeppelin-contracts/certora/specs/methods/IERC20.spec +11 -0
  109. package/test/contracts/lib/openzeppelin-contracts/certora/specs/methods/IERC2612.spec +5 -0
  110. package/test/contracts/lib/openzeppelin-contracts/certora/specs/methods/IERC3156.spec +5 -0
  111. package/test/contracts/lib/openzeppelin-contracts/certora/specs/methods/IERC5313.spec +3 -0
  112. package/test/contracts/lib/openzeppelin-contracts/certora/specs/methods/IERC721.spec +20 -0
  113. package/test/contracts/lib/openzeppelin-contracts/certora/specs/methods/IOwnable.spec +5 -0
  114. package/test/contracts/lib/openzeppelin-contracts/certora/specs/methods/IOwnable2Step.spec +7 -0
  115. package/test/contracts/lib/openzeppelin-contracts/certora/specs.json +86 -0
  116. package/test/contracts/lib/openzeppelin-contracts/contracts/access/AccessControl.sol +248 -0
  117. package/test/contracts/lib/openzeppelin-contracts/contracts/access/AccessControlCrossChain.sol +45 -0
  118. package/test/contracts/lib/openzeppelin-contracts/contracts/access/AccessControlDefaultAdminRules.sol +383 -0
  119. package/test/contracts/lib/openzeppelin-contracts/contracts/access/AccessControlEnumerable.sol +64 -0
  120. package/test/contracts/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol +88 -0
  121. package/test/contracts/lib/openzeppelin-contracts/contracts/access/IAccessControlDefaultAdminRules.sol +172 -0
  122. package/test/contracts/lib/openzeppelin-contracts/contracts/access/IAccessControlEnumerable.sol +31 -0
  123. package/test/contracts/lib/openzeppelin-contracts/contracts/access/Ownable.sol +83 -0
  124. package/test/contracts/lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol +57 -0
  125. package/test/contracts/lib/openzeppelin-contracts/contracts/access/README.adoc +27 -0
  126. package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/CrossChainEnabled.sol +54 -0
  127. package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/README.adoc +34 -0
  128. package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/amb/CrossChainEnabledAMB.sol +49 -0
  129. package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/amb/LibAMB.sol +35 -0
  130. package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/arbitrum/CrossChainEnabledArbitrumL1.sol +44 -0
  131. package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/arbitrum/CrossChainEnabledArbitrumL2.sol +40 -0
  132. package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/arbitrum/LibArbitrumL1.sol +42 -0
  133. package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/arbitrum/LibArbitrumL2.sol +45 -0
  134. package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/errors.sol +7 -0
  135. package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/optimism/CrossChainEnabledOptimism.sol +41 -0
  136. package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/optimism/LibOptimism.sol +36 -0
  137. package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/polygon/CrossChainEnabledPolygonChild.sol +72 -0
  138. package/test/contracts/lib/openzeppelin-contracts/contracts/finance/PaymentSplitter.sol +214 -0
  139. package/test/contracts/lib/openzeppelin-contracts/contracts/finance/README.adoc +20 -0
  140. package/test/contracts/lib/openzeppelin-contracts/contracts/finance/VestingWallet.sol +145 -0
  141. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/Governor.sol +723 -0
  142. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/IGovernor.sol +313 -0
  143. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/README.adoc +176 -0
  144. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/TimelockController.sol +422 -0
  145. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/compatibility/GovernorCompatibilityBravo.sol +333 -0
  146. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/compatibility/IGovernorCompatibilityBravo.sol +118 -0
  147. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorCountingSimple.sol +100 -0
  148. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorPreventLateQuorum.sol +105 -0
  149. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorProposalThreshold.sol +23 -0
  150. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorSettings.sol +110 -0
  151. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorTimelockCompound.sol +190 -0
  152. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorTimelockControl.sol +166 -0
  153. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorVotes.sol +55 -0
  154. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorVotesComp.sol +55 -0
  155. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorVotesQuorumFraction.sol +121 -0
  156. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/IGovernorTimelock.sol +26 -0
  157. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/utils/IVotes.sol +56 -0
  158. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/utils/Votes.sol +244 -0
  159. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1155.sol +6 -0
  160. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1155MetadataURI.sol +6 -0
  161. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1155Receiver.sol +6 -0
  162. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol +19 -0
  163. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol +80 -0
  164. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1363Receiver.sol +35 -0
  165. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1363Spender.sol +29 -0
  166. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol +6 -0
  167. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1820Implementer.sol +6 -0
  168. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1820Registry.sol +6 -0
  169. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol +26 -0
  170. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol +6 -0
  171. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC20Metadata.sol +6 -0
  172. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC2309.sol +21 -0
  173. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC2612.sol +8 -0
  174. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC2981.sol +25 -0
  175. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC3156.sol +7 -0
  176. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC3156FlashBorrower.sol +29 -0
  177. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC3156FlashLender.sol +43 -0
  178. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol +232 -0
  179. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC4906.sol +20 -0
  180. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol +28 -0
  181. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC5313.sol +18 -0
  182. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC5805.sol +9 -0
  183. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC6372.sol +17 -0
  184. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC721.sol +6 -0
  185. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC721Enumerable.sol +6 -0
  186. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC721Metadata.sol +6 -0
  187. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC721Receiver.sol +6 -0
  188. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC777.sol +6 -0
  189. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC777Recipient.sol +6 -0
  190. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC777Sender.sol +6 -0
  191. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/README.adoc +73 -0
  192. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol +20 -0
  193. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC2612.sol +8 -0
  194. package/test/contracts/lib/openzeppelin-contracts/contracts/metatx/ERC2771Context.sol +54 -0
  195. package/test/contracts/lib/openzeppelin-contracts/contracts/metatx/MinimalForwarder.sol +72 -0
  196. package/test/contracts/lib/openzeppelin-contracts/contracts/metatx/README.adoc +12 -0
  197. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/AccessControlCrossChainMock.sol +8 -0
  198. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ArraysMock.sol +51 -0
  199. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/Base64Dirty.sol +19 -0
  200. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/CallReceiverMock.sol +61 -0
  201. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ConditionalEscrowMock.sol +18 -0
  202. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ContextMock.sol +35 -0
  203. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/DummyImplementation.sol +57 -0
  204. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/EIP712Verifier.sol +16 -0
  205. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC1271WalletMock.sol +26 -0
  206. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165MaliciousData.sol +12 -0
  207. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165MissingData.sol +7 -0
  208. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165NotSupported.sol +5 -0
  209. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165ReturnBomb.sol +18 -0
  210. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC20Mock.sol +16 -0
  211. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC20Reentrant.sol +43 -0
  212. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC2771ContextMock.sol +27 -0
  213. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC3156FlashBorrowerMock.sol +53 -0
  214. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC4626Mock.sol +16 -0
  215. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/EtherReceiverMock.sol +17 -0
  216. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/InitializableMock.sol +130 -0
  217. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/MulticallTest.sol +23 -0
  218. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/MultipleInheritanceInitializableMocks.sol +131 -0
  219. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/PausableMock.sol +31 -0
  220. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/PullPaymentMock.sol +15 -0
  221. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ReentrancyAttack.sol +12 -0
  222. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ReentrancyMock.sol +51 -0
  223. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/RegressionImplementation.sol +61 -0
  224. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/SafeMathMemoryCheck.sol +72 -0
  225. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/SingleInheritanceInitializableMocks.sol +49 -0
  226. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/StorageSlotMock.sol +77 -0
  227. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/TimelockReentrant.sol +26 -0
  228. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/TimersBlockNumberImpl.sol +39 -0
  229. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/TimersTimestampImpl.sol +39 -0
  230. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/VotesMock.sol +45 -0
  231. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/compound/CompTimelock.sol +174 -0
  232. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/crosschain/bridges.sol +94 -0
  233. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/crosschain/receivers.sol +54 -0
  234. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/docs/ERC4626Fees.sol +100 -0
  235. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/docs/governance/MyGovernor.sol +88 -0
  236. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/docs/governance/MyToken.sol +24 -0
  237. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/docs/governance/MyTokenTimestampBased.sol +35 -0
  238. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/docs/governance/MyTokenWrapped.sol +31 -0
  239. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorCompMock.sol +20 -0
  240. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorCompatibilityBravoMock.sol +100 -0
  241. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorMock.sol +28 -0
  242. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorPreventLateQuorumMock.sol +45 -0
  243. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorTimelockCompoundMock.sol +60 -0
  244. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorTimelockControlMock.sol +60 -0
  245. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorVoteMock.sol +20 -0
  246. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorWithParamsMock.sol +50 -0
  247. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/proxy/BadBeacon.sol +11 -0
  248. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/proxy/ClashingImplementation.sol +17 -0
  249. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/proxy/UUPSLegacy.sol +54 -0
  250. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/proxy/UUPSUpgradeableMock.sol +33 -0
  251. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC1155ReceiverMock.sol +47 -0
  252. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20DecimalsMock.sol +17 -0
  253. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20ExcessDecimalsMock.sol +9 -0
  254. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20FlashMintMock.sol +26 -0
  255. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20ForceApproveMock.sol +13 -0
  256. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20MulticallMock.sol +8 -0
  257. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20NoReturnMock.sol +28 -0
  258. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20PermitNoRevertMock.sol +36 -0
  259. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20ReturnFalseMock.sol +19 -0
  260. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20VotesLegacyMock.sol +262 -0
  261. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC4626OffsetMock.sol +17 -0
  262. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC4646FeesMock.sol +40 -0
  263. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC721ConsecutiveEnumerableMock.sol +51 -0
  264. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC721ConsecutiveMock.sol +61 -0
  265. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC721ReceiverMock.sol +42 -0
  266. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC721URIStorageMock.sol +17 -0
  267. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC777Mock.sol +13 -0
  268. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC777SenderRecipientMock.sol +152 -0
  269. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/VotesTimestamp.sol +40 -0
  270. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/wizard/MyGovernor1.sol +79 -0
  271. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/wizard/MyGovernor2.sol +85 -0
  272. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/wizard/MyGovernor3.sol +94 -0
  273. package/test/contracts/lib/openzeppelin-contracts/contracts/package.json +32 -0
  274. package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/Clones.sol +88 -0
  275. package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol +32 -0
  276. package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol +157 -0
  277. package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/Proxy.sol +86 -0
  278. package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/README.adoc +87 -0
  279. package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/beacon/BeaconProxy.sol +61 -0
  280. package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol +16 -0
  281. package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/beacon/UpgradeableBeacon.sol +65 -0
  282. package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/transparent/ProxyAdmin.sol +81 -0
  283. package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/transparent/TransparentUpgradeableProxy.sol +191 -0
  284. package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol +166 -0
  285. package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol +99 -0
  286. package/test/contracts/lib/openzeppelin-contracts/contracts/security/Pausable.sol +105 -0
  287. package/test/contracts/lib/openzeppelin-contracts/contracts/security/PullPayment.sol +74 -0
  288. package/test/contracts/lib/openzeppelin-contracts/contracts/security/README.adoc +20 -0
  289. package/test/contracts/lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol +77 -0
  290. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/ERC1155.sol +497 -0
  291. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol +119 -0
  292. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol +58 -0
  293. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/README.adoc +49 -0
  294. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/ERC1155Burnable.sol +32 -0
  295. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/ERC1155Pausable.sol +44 -0
  296. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/ERC1155Supply.sol +64 -0
  297. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/ERC1155URIStorage.sol +63 -0
  298. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol +22 -0
  299. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/presets/ERC1155PresetMinterPauser.sol +114 -0
  300. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/presets/README.md +1 -0
  301. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Holder.sol +36 -0
  302. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Receiver.sol +19 -0
  303. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol +365 -0
  304. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol +78 -0
  305. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/README.adoc +80 -0
  306. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol +39 -0
  307. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Capped.sol +37 -0
  308. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20FlashMint.sol +109 -0
  309. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Pausable.sol +35 -0
  310. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Permit.sol +95 -0
  311. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Snapshot.sol +191 -0
  312. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Votes.sol +290 -0
  313. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20VotesComp.sol +46 -0
  314. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Wrapper.sol +73 -0
  315. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC4626.sol +256 -0
  316. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol +28 -0
  317. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol +90 -0
  318. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-ERC20Permit.sol +8 -0
  319. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol +8 -0
  320. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/presets/ERC20PresetFixedSupply.sol +30 -0
  321. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/presets/ERC20PresetMinterPauser.sol +94 -0
  322. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/presets/README.md +1 -0
  323. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol +143 -0
  324. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/utils/TokenTimelock.sol +72 -0
  325. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol +466 -0
  326. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol +132 -0
  327. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol +27 -0
  328. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/README.adoc +73 -0
  329. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Burnable.sol +26 -0
  330. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Consecutive.sol +148 -0
  331. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Enumerable.sol +159 -0
  332. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Pausable.sol +40 -0
  333. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Royalty.sol +38 -0
  334. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721URIStorage.sol +74 -0
  335. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Votes.sol +43 -0
  336. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Wrapper.sol +97 -0
  337. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol +29 -0
  338. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol +27 -0
  339. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/draft-ERC721Votes.sol +9 -0
  340. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/presets/ERC721PresetMinterPauserAutoId.sol +132 -0
  341. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/presets/README.md +1 -0
  342. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol +23 -0
  343. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC777/ERC777.sol +514 -0
  344. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC777/IERC777.sol +200 -0
  345. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC777/IERC777Recipient.sol +35 -0
  346. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC777/IERC777Sender.sol +35 -0
  347. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC777/README.adoc +32 -0
  348. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC777/presets/ERC777PresetFixedSupply.sol +30 -0
  349. package/test/contracts/lib/openzeppelin-contracts/contracts/token/common/ERC2981.sol +107 -0
  350. package/test/contracts/lib/openzeppelin-contracts/contracts/token/common/README.adoc +10 -0
  351. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Address.sol +244 -0
  352. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Arrays.sol +105 -0
  353. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Base64.sol +101 -0
  354. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Checkpoints.sol +560 -0
  355. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Context.sol +28 -0
  356. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Counters.sol +43 -0
  357. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Create2.sol +75 -0
  358. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Multicall.sol +39 -0
  359. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/README.adoc +113 -0
  360. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol +122 -0
  361. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol +138 -0
  362. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Strings.sol +85 -0
  363. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Timers.sol +75 -0
  364. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol +217 -0
  365. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol +142 -0
  366. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol +227 -0
  367. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol +50 -0
  368. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol +8 -0
  369. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/escrow/ConditionalEscrow.sol +25 -0
  370. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/escrow/Escrow.sol +67 -0
  371. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/escrow/RefundEscrow.sol +100 -0
  372. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol +29 -0
  373. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol +126 -0
  374. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Storage.sol +42 -0
  375. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/introspection/ERC1820Implementer.sol +43 -0
  376. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol +25 -0
  377. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/introspection/IERC1820Implementer.sol +20 -0
  378. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/introspection/IERC1820Registry.sol +112 -0
  379. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/math/Math.sol +339 -0
  380. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol +1136 -0
  381. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/math/SafeMath.sol +215 -0
  382. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol +43 -0
  383. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/math/SignedSafeMath.sol +68 -0
  384. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/structs/BitMaps.sol +51 -0
  385. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/structs/DoubleEndedQueue.sol +170 -0
  386. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol +598 -0
  387. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol +378 -0
  388. package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/amb/IAMB.sol +41 -0
  389. package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/arbitrum/IArbSys.sol +134 -0
  390. package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/arbitrum/IBridge.sol +102 -0
  391. package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/arbitrum/IDelayedMessageProvider.sol +16 -0
  392. package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/arbitrum/IInbox.sol +152 -0
  393. package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/arbitrum/IOutbox.sol +117 -0
  394. package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/compound/ICompoundTimelock.sol +86 -0
  395. package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/compound/LICENSE +11 -0
  396. package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/optimism/ICrossDomainMessenger.sol +34 -0
  397. package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/optimism/LICENSE +22 -0
  398. package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/polygon/IFxMessageProcessor.sol +7 -0
  399. package/test/contracts/lib/openzeppelin-contracts/docs/README.md +16 -0
  400. package/test/contracts/lib/openzeppelin-contracts/docs/antora.yml +6 -0
  401. package/test/contracts/lib/openzeppelin-contracts/docs/config.js +21 -0
  402. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-3a.png +0 -0
  403. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-3b.png +0 -0
  404. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-6.png +0 -0
  405. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack.png +0 -0
  406. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-deposit.png +0 -0
  407. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-mint.png +0 -0
  408. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-linear.png +0 -0
  409. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-loglog.png +0 -0
  410. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-loglogext.png +0 -0
  411. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/tally-exec.png +0 -0
  412. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/tally-vote.png +0 -0
  413. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/nav.adoc +23 -0
  414. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/access-control.adoc +219 -0
  415. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/crosschain.adoc +210 -0
  416. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/crowdsales.adoc +11 -0
  417. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/drafts.adoc +19 -0
  418. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc1155.adoc +153 -0
  419. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc20-supply.adoc +113 -0
  420. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc20.adoc +85 -0
  421. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc4626.adoc +214 -0
  422. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc721.adoc +90 -0
  423. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc777.adoc +75 -0
  424. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/extending-contracts.adoc +131 -0
  425. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/governance.adoc +237 -0
  426. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/index.adoc +65 -0
  427. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/releases-stability.adoc +85 -0
  428. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/tokens.adoc +32 -0
  429. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/upgradeable.adoc +73 -0
  430. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/utilities.adoc +190 -0
  431. package/test/contracts/lib/openzeppelin-contracts/docs/templates/contract.hbs +85 -0
  432. package/test/contracts/lib/openzeppelin-contracts/docs/templates/helpers.js +46 -0
  433. package/test/contracts/lib/openzeppelin-contracts/docs/templates/page.hbs +4 -0
  434. package/test/contracts/lib/openzeppelin-contracts/docs/templates/properties.js +45 -0
  435. package/test/contracts/lib/openzeppelin-contracts/foundry.toml +3 -0
  436. package/test/contracts/lib/openzeppelin-contracts/hardhat/env-artifacts.js +24 -0
  437. package/test/contracts/lib/openzeppelin-contracts/hardhat/env-contract.js +10 -0
  438. package/test/contracts/lib/openzeppelin-contracts/hardhat/ignore-unreachable-warnings.js +45 -0
  439. package/test/contracts/lib/openzeppelin-contracts/hardhat/skip-foundry-tests.js +6 -0
  440. package/test/contracts/lib/openzeppelin-contracts/hardhat/task-test-get-files.js +25 -0
  441. package/test/contracts/lib/openzeppelin-contracts/hardhat.config.js +118 -0
  442. package/test/contracts/lib/openzeppelin-contracts/lib/erc4626-tests/ERC4626.prop.sol +404 -0
  443. package/test/contracts/lib/openzeppelin-contracts/lib/erc4626-tests/ERC4626.test.sol +349 -0
  444. package/test/contracts/lib/openzeppelin-contracts/lib/erc4626-tests/LICENSE +661 -0
  445. package/test/contracts/lib/openzeppelin-contracts/lib/erc4626-tests/README.md +116 -0
  446. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/.github/workflows/ci.yml +92 -0
  447. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/.gitmodules +3 -0
  448. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/LICENSE-APACHE +203 -0
  449. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/LICENSE-MIT +25 -0
  450. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/README.md +250 -0
  451. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/foundry.toml +21 -0
  452. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/.github/workflows/build.yml +41 -0
  453. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/LICENSE +674 -0
  454. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/Makefile +14 -0
  455. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/default.nix +4 -0
  456. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/demo/demo.sol +222 -0
  457. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/package.json +15 -0
  458. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/test.sol +469 -0
  459. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/test.t.sol +313 -0
  460. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/package.json +16 -0
  461. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/Base.sol +33 -0
  462. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/Script.sol +26 -0
  463. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdAssertions.sol +376 -0
  464. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdChains.sol +233 -0
  465. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdCheats.sol +624 -0
  466. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdError.sol +15 -0
  467. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdInvariant.sol +92 -0
  468. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdJson.sol +179 -0
  469. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdMath.sol +43 -0
  470. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol +327 -0
  471. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdStyle.sol +333 -0
  472. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdUtils.sol +189 -0
  473. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/Test.sol +32 -0
  474. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol +409 -0
  475. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/console.sol +1533 -0
  476. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/console2.sol +1546 -0
  477. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IERC1155.sol +105 -0
  478. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IERC165.sol +12 -0
  479. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IERC20.sol +43 -0
  480. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IERC4626.sol +190 -0
  481. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IERC721.sol +164 -0
  482. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IMulticall3.sol +73 -0
  483. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdAssertions.t.sol +954 -0
  484. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdChains.t.sol +160 -0
  485. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdCheats.t.sol +401 -0
  486. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdError.t.sol +118 -0
  487. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdMath.t.sol +197 -0
  488. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdStorage.t.sol +283 -0
  489. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdStyle.t.sol +110 -0
  490. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdUtils.t.sol +297 -0
  491. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/compilation/CompilationScript.sol +10 -0
  492. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/compilation/CompilationScriptBase.sol +10 -0
  493. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/compilation/CompilationTest.sol +10 -0
  494. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/compilation/CompilationTestBase.sol +10 -0
  495. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/fixtures/broadcast.log.json +187 -0
  496. package/test/contracts/lib/openzeppelin-contracts/logo.svg +15 -0
  497. package/test/contracts/lib/openzeppelin-contracts/netlify.toml +3 -0
  498. package/test/contracts/lib/openzeppelin-contracts/package-lock.json +28833 -0
  499. package/test/contracts/lib/openzeppelin-contracts/package.json +96 -0
  500. package/test/contracts/lib/openzeppelin-contracts/remappings.txt +1 -0
  501. package/test/contracts/lib/openzeppelin-contracts/renovate.json +4 -0
  502. package/test/contracts/lib/openzeppelin-contracts/requirements.txt +1 -0
  503. package/test/contracts/lib/openzeppelin-contracts/scripts/checks/compare-layout.js +19 -0
  504. package/test/contracts/lib/openzeppelin-contracts/scripts/checks/compareGasReports.js +243 -0
  505. package/test/contracts/lib/openzeppelin-contracts/scripts/checks/extract-layout.js +40 -0
  506. package/test/contracts/lib/openzeppelin-contracts/scripts/checks/generation.sh +6 -0
  507. package/test/contracts/lib/openzeppelin-contracts/scripts/checks/inheritance-ordering.js +54 -0
  508. package/test/contracts/lib/openzeppelin-contracts/scripts/gen-nav.js +41 -0
  509. package/test/contracts/lib/openzeppelin-contracts/scripts/generate/format-lines.js +16 -0
  510. package/test/contracts/lib/openzeppelin-contracts/scripts/generate/run.js +49 -0
  511. package/test/contracts/lib/openzeppelin-contracts/scripts/generate/templates/Checkpoints.js +304 -0
  512. package/test/contracts/lib/openzeppelin-contracts/scripts/generate/templates/Checkpoints.opts.js +22 -0
  513. package/test/contracts/lib/openzeppelin-contracts/scripts/generate/templates/Checkpoints.t.js +256 -0
  514. package/test/contracts/lib/openzeppelin-contracts/scripts/generate/templates/EnumerableMap.js +310 -0
  515. package/test/contracts/lib/openzeppelin-contracts/scripts/generate/templates/EnumerableSet.js +250 -0
  516. package/test/contracts/lib/openzeppelin-contracts/scripts/generate/templates/SafeCast.js +163 -0
  517. package/test/contracts/lib/openzeppelin-contracts/scripts/generate/templates/StorageSlot.js +87 -0
  518. package/test/contracts/lib/openzeppelin-contracts/scripts/generate/templates/conversion.js +30 -0
  519. package/test/contracts/lib/openzeppelin-contracts/scripts/git-user-config.sh +6 -0
  520. package/test/contracts/lib/openzeppelin-contracts/scripts/helpers.js +37 -0
  521. package/test/contracts/lib/openzeppelin-contracts/scripts/migrate-imports.js +180 -0
  522. package/test/contracts/lib/openzeppelin-contracts/scripts/prepack.sh +12 -0
  523. package/test/contracts/lib/openzeppelin-contracts/scripts/prepare-contracts-package.sh +15 -0
  524. package/test/contracts/lib/openzeppelin-contracts/scripts/prepare-docs.sh +26 -0
  525. package/test/contracts/lib/openzeppelin-contracts/scripts/prepare.sh +10 -0
  526. package/test/contracts/lib/openzeppelin-contracts/scripts/release/format-changelog.js +33 -0
  527. package/test/contracts/lib/openzeppelin-contracts/scripts/release/synchronize-versions.js +15 -0
  528. package/test/contracts/lib/openzeppelin-contracts/scripts/release/update-comment.js +34 -0
  529. package/test/contracts/lib/openzeppelin-contracts/scripts/release/version.sh +11 -0
  530. package/test/contracts/lib/openzeppelin-contracts/scripts/release/workflow/exit-prerelease.sh +8 -0
  531. package/test/contracts/lib/openzeppelin-contracts/scripts/release/workflow/github-release.js +47 -0
  532. package/test/contracts/lib/openzeppelin-contracts/scripts/release/workflow/integrity-check.sh +20 -0
  533. package/test/contracts/lib/openzeppelin-contracts/scripts/release/workflow/pack.sh +26 -0
  534. package/test/contracts/lib/openzeppelin-contracts/scripts/release/workflow/publish.sh +26 -0
  535. package/test/contracts/lib/openzeppelin-contracts/scripts/release/workflow/rerun.js +7 -0
  536. package/test/contracts/lib/openzeppelin-contracts/scripts/release/workflow/set-changesets-pr-title.js +17 -0
  537. package/test/contracts/lib/openzeppelin-contracts/scripts/release/workflow/start.sh +35 -0
  538. package/test/contracts/lib/openzeppelin-contracts/scripts/release/workflow/state.js +112 -0
  539. package/test/contracts/lib/openzeppelin-contracts/scripts/remove-ignored-artifacts.js +45 -0
  540. package/test/contracts/lib/openzeppelin-contracts/scripts/update-docs-branch.js +63 -0
  541. package/test/contracts/lib/openzeppelin-contracts/scripts/upgradeable/README.md +21 -0
  542. package/test/contracts/lib/openzeppelin-contracts/scripts/upgradeable/patch-apply.sh +19 -0
  543. package/test/contracts/lib/openzeppelin-contracts/scripts/upgradeable/patch-save.sh +18 -0
  544. package/test/contracts/lib/openzeppelin-contracts/scripts/upgradeable/transpile-onto.sh +44 -0
  545. package/test/contracts/lib/openzeppelin-contracts/scripts/upgradeable/transpile.sh +35 -0
  546. package/test/contracts/lib/openzeppelin-contracts/scripts/upgradeable/upgradeable.patch +481 -0
  547. package/test/contracts/lib/openzeppelin-contracts/slither.config.json +5 -0
  548. package/test/contracts/lib/openzeppelin-contracts/test/TESTING.md +3 -0
  549. package/test/contracts/lib/openzeppelin-contracts/test/access/AccessControl.behavior.js +867 -0
  550. package/test/contracts/lib/openzeppelin-contracts/test/access/AccessControl.test.js +12 -0
  551. package/test/contracts/lib/openzeppelin-contracts/test/access/AccessControlCrossChain.test.js +49 -0
  552. package/test/contracts/lib/openzeppelin-contracts/test/access/AccessControlDefaultAdminRules.test.js +25 -0
  553. package/test/contracts/lib/openzeppelin-contracts/test/access/AccessControlEnumerable.test.js +17 -0
  554. package/test/contracts/lib/openzeppelin-contracts/test/access/Ownable.test.js +59 -0
  555. package/test/contracts/lib/openzeppelin-contracts/test/access/Ownable2Step.test.js +67 -0
  556. package/test/contracts/lib/openzeppelin-contracts/test/crosschain/CrossChainEnabled.test.js +78 -0
  557. package/test/contracts/lib/openzeppelin-contracts/test/finance/PaymentSplitter.test.js +217 -0
  558. package/test/contracts/lib/openzeppelin-contracts/test/finance/VestingWallet.behavior.js +59 -0
  559. package/test/contracts/lib/openzeppelin-contracts/test/finance/VestingWallet.test.js +67 -0
  560. package/test/contracts/lib/openzeppelin-contracts/test/governance/Governor.t.sol +55 -0
  561. package/test/contracts/lib/openzeppelin-contracts/test/governance/Governor.test.js +782 -0
  562. package/test/contracts/lib/openzeppelin-contracts/test/governance/TimelockController.test.js +1254 -0
  563. package/test/contracts/lib/openzeppelin-contracts/test/governance/compatibility/GovernorCompatibilityBravo.test.js +283 -0
  564. package/test/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorComp.test.js +88 -0
  565. package/test/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorERC721.test.js +115 -0
  566. package/test/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorPreventLateQuorum.test.js +189 -0
  567. package/test/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorTimelockCompound.test.js +352 -0
  568. package/test/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorTimelockControl.test.js +445 -0
  569. package/test/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorVotesQuorumFraction.test.js +154 -0
  570. package/test/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorWithParams.test.js +173 -0
  571. package/test/contracts/lib/openzeppelin-contracts/test/governance/utils/EIP6372.behavior.js +23 -0
  572. package/test/contracts/lib/openzeppelin-contracts/test/governance/utils/Votes.behavior.js +361 -0
  573. package/test/contracts/lib/openzeppelin-contracts/test/governance/utils/Votes.test.js +71 -0
  574. package/test/contracts/lib/openzeppelin-contracts/test/helpers/chainid.js +10 -0
  575. package/test/contracts/lib/openzeppelin-contracts/test/helpers/create2.js +11 -0
  576. package/test/contracts/lib/openzeppelin-contracts/test/helpers/crosschain.js +61 -0
  577. package/test/contracts/lib/openzeppelin-contracts/test/helpers/customError.js +24 -0
  578. package/test/contracts/lib/openzeppelin-contracts/test/helpers/eip712.js +67 -0
  579. package/test/contracts/lib/openzeppelin-contracts/test/helpers/enums.js +12 -0
  580. package/test/contracts/lib/openzeppelin-contracts/test/helpers/erc1967.js +24 -0
  581. package/test/contracts/lib/openzeppelin-contracts/test/helpers/governance.js +201 -0
  582. package/test/contracts/lib/openzeppelin-contracts/test/helpers/map-values.js +7 -0
  583. package/test/contracts/lib/openzeppelin-contracts/test/helpers/sign.js +63 -0
  584. package/test/contracts/lib/openzeppelin-contracts/test/helpers/time.js +17 -0
  585. package/test/contracts/lib/openzeppelin-contracts/test/helpers/txpool.js +38 -0
  586. package/test/contracts/lib/openzeppelin-contracts/test/metatx/ERC2771Context.test.js +175 -0
  587. package/test/contracts/lib/openzeppelin-contracts/test/metatx/MinimalForwarder.test.js +169 -0
  588. package/test/contracts/lib/openzeppelin-contracts/test/migrate-imports.test.js +33 -0
  589. package/test/contracts/lib/openzeppelin-contracts/test/proxy/Clones.behaviour.js +136 -0
  590. package/test/contracts/lib/openzeppelin-contracts/test/proxy/Clones.test.js +61 -0
  591. package/test/contracts/lib/openzeppelin-contracts/test/proxy/ERC1967/ERC1967Proxy.test.js +13 -0
  592. package/test/contracts/lib/openzeppelin-contracts/test/proxy/Proxy.behaviour.js +225 -0
  593. package/test/contracts/lib/openzeppelin-contracts/test/proxy/beacon/BeaconProxy.test.js +139 -0
  594. package/test/contracts/lib/openzeppelin-contracts/test/proxy/beacon/UpgradeableBeacon.test.js +44 -0
  595. package/test/contracts/lib/openzeppelin-contracts/test/proxy/transparent/ProxyAdmin.test.js +127 -0
  596. package/test/contracts/lib/openzeppelin-contracts/test/proxy/transparent/TransparentUpgradeableProxy.behaviour.js +433 -0
  597. package/test/contracts/lib/openzeppelin-contracts/test/proxy/transparent/TransparentUpgradeableProxy.test.js +17 -0
  598. package/test/contracts/lib/openzeppelin-contracts/test/proxy/utils/Initializable.test.js +218 -0
  599. package/test/contracts/lib/openzeppelin-contracts/test/proxy/utils/UUPSUpgradeable.test.js +85 -0
  600. package/test/contracts/lib/openzeppelin-contracts/test/security/Pausable.test.js +85 -0
  601. package/test/contracts/lib/openzeppelin-contracts/test/security/PullPayment.test.js +51 -0
  602. package/test/contracts/lib/openzeppelin-contracts/test/security/ReentrancyGuard.test.js +43 -0
  603. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC1155/ERC1155.behavior.js +767 -0
  604. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC1155/ERC1155.test.js +235 -0
  605. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC1155/extensions/ERC1155Burnable.test.js +67 -0
  606. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC1155/extensions/ERC1155Pausable.test.js +108 -0
  607. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC1155/extensions/ERC1155Supply.test.js +107 -0
  608. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC1155/extensions/ERC1155URIStorage.test.js +66 -0
  609. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC1155/presets/ERC1155PresetMinterPauser.test.js +156 -0
  610. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC1155/utils/ERC1155Holder.test.js +64 -0
  611. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/ERC20.behavior.js +322 -0
  612. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/ERC20.test.js +305 -0
  613. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Burnable.behavior.js +106 -0
  614. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Burnable.test.js +20 -0
  615. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Capped.behavior.js +32 -0
  616. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Capped.test.js +23 -0
  617. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20FlashMint.test.js +204 -0
  618. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Pausable.test.js +133 -0
  619. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Snapshot.test.js +207 -0
  620. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Votes.test.js +578 -0
  621. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20VotesComp.test.js +543 -0
  622. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Wrapper.test.js +190 -0
  623. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC4626.t.sol +42 -0
  624. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC4626.test.js +1031 -0
  625. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/draft-ERC20Permit.test.js +103 -0
  626. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/presets/ERC20PresetFixedSupply.test.js +42 -0
  627. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/presets/ERC20PresetMinterPauser.test.js +110 -0
  628. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/utils/SafeERC20.test.js +350 -0
  629. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/utils/TokenTimelock.test.js +71 -0
  630. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/ERC721.behavior.js +893 -0
  631. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/ERC721.test.js +15 -0
  632. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/ERC721Enumerable.test.js +20 -0
  633. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Burnable.test.js +70 -0
  634. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Consecutive.t.sol +122 -0
  635. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Consecutive.test.js +206 -0
  636. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Pausable.test.js +92 -0
  637. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Royalty.test.js +41 -0
  638. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721URIStorage.test.js +100 -0
  639. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Votes.test.js +184 -0
  640. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Wrapper.test.js +283 -0
  641. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/presets/ERC721PresetMinterPauserAutoId.test.js +122 -0
  642. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/utils/ERC721Holder.test.js +22 -0
  643. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC777/ERC777.behavior.js +597 -0
  644. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC777/ERC777.test.js +556 -0
  645. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC777/presets/ERC777PresetFixedSupply.test.js +49 -0
  646. package/test/contracts/lib/openzeppelin-contracts/test/token/common/ERC2981.behavior.js +157 -0
  647. package/test/contracts/lib/openzeppelin-contracts/test/utils/Address.test.js +361 -0
  648. package/test/contracts/lib/openzeppelin-contracts/test/utils/Arrays.test.js +123 -0
  649. package/test/contracts/lib/openzeppelin-contracts/test/utils/Base64.test.js +43 -0
  650. package/test/contracts/lib/openzeppelin-contracts/test/utils/Checkpoints.t.sol +347 -0
  651. package/test/contracts/lib/openzeppelin-contracts/test/utils/Checkpoints.test.js +255 -0
  652. package/test/contracts/lib/openzeppelin-contracts/test/utils/Context.behavior.js +42 -0
  653. package/test/contracts/lib/openzeppelin-contracts/test/utils/Context.test.js +17 -0
  654. package/test/contracts/lib/openzeppelin-contracts/test/utils/Counters.test.js +84 -0
  655. package/test/contracts/lib/openzeppelin-contracts/test/utils/Create2.test.js +89 -0
  656. package/test/contracts/lib/openzeppelin-contracts/test/utils/Multicall.test.js +68 -0
  657. package/test/contracts/lib/openzeppelin-contracts/test/utils/ShortStrings.t.sol +55 -0
  658. package/test/contracts/lib/openzeppelin-contracts/test/utils/ShortStrings.test.js +55 -0
  659. package/test/contracts/lib/openzeppelin-contracts/test/utils/StorageSlot.test.js +210 -0
  660. package/test/contracts/lib/openzeppelin-contracts/test/utils/Strings.test.js +150 -0
  661. package/test/contracts/lib/openzeppelin-contracts/test/utils/TimersBlockNumberImpl.test.js +55 -0
  662. package/test/contracts/lib/openzeppelin-contracts/test/utils/TimersTimestamp.test.js +55 -0
  663. package/test/contracts/lib/openzeppelin-contracts/test/utils/cryptography/ECDSA.test.js +260 -0
  664. package/test/contracts/lib/openzeppelin-contracts/test/utils/cryptography/EIP712.test.js +103 -0
  665. package/test/contracts/lib/openzeppelin-contracts/test/utils/cryptography/MerkleProof.test.js +200 -0
  666. package/test/contracts/lib/openzeppelin-contracts/test/utils/cryptography/SignatureChecker.test.js +87 -0
  667. package/test/contracts/lib/openzeppelin-contracts/test/utils/escrow/ConditionalEscrow.test.js +37 -0
  668. package/test/contracts/lib/openzeppelin-contracts/test/utils/escrow/Escrow.behavior.js +90 -0
  669. package/test/contracts/lib/openzeppelin-contracts/test/utils/escrow/Escrow.test.js +14 -0
  670. package/test/contracts/lib/openzeppelin-contracts/test/utils/escrow/RefundEscrow.test.js +143 -0
  671. package/test/contracts/lib/openzeppelin-contracts/test/utils/introspection/ERC165.test.js +11 -0
  672. package/test/contracts/lib/openzeppelin-contracts/test/utils/introspection/ERC165Checker.test.js +302 -0
  673. package/test/contracts/lib/openzeppelin-contracts/test/utils/introspection/ERC165Storage.test.js +23 -0
  674. package/test/contracts/lib/openzeppelin-contracts/test/utils/introspection/ERC1820Implementer.test.js +71 -0
  675. package/test/contracts/lib/openzeppelin-contracts/test/utils/introspection/SupportsInterface.behavior.js +146 -0
  676. package/test/contracts/lib/openzeppelin-contracts/test/utils/math/Math.t.sol +217 -0
  677. package/test/contracts/lib/openzeppelin-contracts/test/utils/math/Math.test.js +289 -0
  678. package/test/contracts/lib/openzeppelin-contracts/test/utils/math/SafeCast.test.js +152 -0
  679. package/test/contracts/lib/openzeppelin-contracts/test/utils/math/SafeMath.test.js +433 -0
  680. package/test/contracts/lib/openzeppelin-contracts/test/utils/math/SignedMath.test.js +95 -0
  681. package/test/contracts/lib/openzeppelin-contracts/test/utils/math/SignedSafeMath.test.js +152 -0
  682. package/test/contracts/lib/openzeppelin-contracts/test/utils/structs/BitMap.test.js +145 -0
  683. package/test/contracts/lib/openzeppelin-contracts/test/utils/structs/DoubleEndedQueue.test.js +99 -0
  684. package/test/contracts/lib/openzeppelin-contracts/test/utils/structs/EnumerableMap.behavior.js +185 -0
  685. package/test/contracts/lib/openzeppelin-contracts/test/utils/structs/EnumerableMap.test.js +154 -0
  686. package/test/contracts/lib/openzeppelin-contracts/test/utils/structs/EnumerableSet.behavior.js +129 -0
  687. package/test/contracts/lib/openzeppelin-contracts/test/utils/structs/EnumerableSet.test.js +79 -0
  688. package/test/contracts/out/AccessControl.sol/AccessControl.json +1 -0
  689. package/test/contracts/out/AccessControlCrossChain.sol/AccessControlCrossChain.json +1 -0
  690. package/test/contracts/out/AccessControlCrossChainMock.sol/AccessControlCrossChainMock.json +1 -0
  691. package/test/contracts/out/AccessControlDefaultAdminRules.sol/AccessControlDefaultAdminRules.json +1 -0
  692. package/test/contracts/out/AccessControlEnumerable.sol/AccessControlEnumerable.json +1 -0
  693. package/test/contracts/out/Address.sol/Address.json +1 -0
  694. package/test/contracts/out/Arrays.sol/Arrays.json +1 -0
  695. package/test/contracts/out/ArraysMock.sol/AddressArraysMock.json +1 -0
  696. package/test/contracts/out/ArraysMock.sol/Bytes32ArraysMock.json +1 -0
  697. package/test/contracts/out/ArraysMock.sol/Uint256ArraysMock.json +1 -0
  698. package/test/contracts/out/BadBeacon.sol/BadBeaconNoImpl.json +1 -0
  699. package/test/contracts/out/BadBeacon.sol/BadBeaconNotContract.json +1 -0
  700. package/test/contracts/out/Base.sol/CommonBase.json +1 -0
  701. package/test/contracts/out/Base.sol/ScriptBase.json +1 -0
  702. package/test/contracts/out/Base.sol/TestBase.json +1 -0
  703. package/test/contracts/out/Base64.sol/Base64.json +1 -0
  704. package/test/contracts/out/Base64Dirty.sol/Base64Dirty.json +1 -0
  705. package/test/contracts/out/BeaconProxy.sol/BeaconProxy.json +1 -0
  706. package/test/contracts/out/BitMaps.sol/BitMaps.json +1 -0
  707. package/test/contracts/out/CallReceiverMock.sol/CallReceiverMock.json +1 -0
  708. package/test/contracts/out/Checkpoints.sol/Checkpoints.json +1 -0
  709. package/test/contracts/out/Checkpoints.t.sol/CheckpointsHistoryTest.json +1 -0
  710. package/test/contracts/out/Checkpoints.t.sol/CheckpointsTrace160Test.json +1 -0
  711. package/test/contracts/out/Checkpoints.t.sol/CheckpointsTrace224Test.json +1 -0
  712. package/test/contracts/out/ClashingImplementation.sol/ClashingImplementation.json +1 -0
  713. package/test/contracts/out/Clones.sol/Clones.json +1 -0
  714. package/test/contracts/out/CompTimelock.sol/CompTimelock.json +1 -0
  715. package/test/contracts/out/CompilationScript.sol/CompilationScript.json +1 -0
  716. package/test/contracts/out/CompilationScriptBase.sol/CompilationScriptBase.json +1 -0
  717. package/test/contracts/out/CompilationTest.sol/CompilationTest.json +1 -0
  718. package/test/contracts/out/CompilationTestBase.sol/CompilationTestBase.json +1 -0
  719. package/test/contracts/out/ConditionalEscrow.sol/ConditionalEscrow.json +1 -0
  720. package/test/contracts/out/ConditionalEscrowMock.sol/ConditionalEscrowMock.json +1 -0
  721. package/test/contracts/out/Context.sol/Context.json +1 -0
  722. package/test/contracts/out/ContextMock.sol/ContextMock.json +1 -0
  723. package/test/contracts/out/ContextMock.sol/ContextMockCaller.json +1 -0
  724. package/test/contracts/out/Counters.sol/Counters.json +1 -0
  725. package/test/contracts/out/Create2.sol/Create2.json +1 -0
  726. package/test/contracts/out/CrossChainEnabled.sol/CrossChainEnabled.json +1 -0
  727. package/test/contracts/out/CrossChainEnabledAMB.sol/CrossChainEnabledAMB.json +1 -0
  728. package/test/contracts/out/CrossChainEnabledArbitrumL1.sol/CrossChainEnabledArbitrumL1.json +1 -0
  729. package/test/contracts/out/CrossChainEnabledArbitrumL2.sol/CrossChainEnabledArbitrumL2.json +1 -0
  730. package/test/contracts/out/CrossChainEnabledOptimism.sol/CrossChainEnabledOptimism.json +1 -0
  731. package/test/contracts/out/CrossChainEnabledPolygonChild.sol/CrossChainEnabledPolygonChild.json +1 -0
  732. package/test/contracts/out/DoubleEndedQueue.sol/DoubleEndedQueue.json +1 -0
  733. package/test/contracts/out/DummyImplementation.sol/DummyImplementation.json +1 -0
  734. package/test/contracts/out/DummyImplementation.sol/DummyImplementationV2.json +1 -0
  735. package/test/contracts/out/DummyImplementation.sol/Impl.json +1 -0
  736. package/test/contracts/out/ECDSA.sol/ECDSA.json +1 -0
  737. package/test/contracts/out/EIP712.sol/EIP712.json +1 -0
  738. package/test/contracts/out/EIP712Verifier.sol/EIP712Verifier.json +1 -0
  739. package/test/contracts/out/ERC1155.sol/ERC1155.json +1 -0
  740. package/test/contracts/out/ERC1155Burnable.sol/ERC1155Burnable.json +1 -0
  741. package/test/contracts/out/ERC1155Holder.sol/ERC1155Holder.json +1 -0
  742. package/test/contracts/out/ERC1155Pausable.sol/ERC1155Pausable.json +1 -0
  743. package/test/contracts/out/ERC1155PresetMinterPauser.sol/ERC1155PresetMinterPauser.json +1 -0
  744. package/test/contracts/out/ERC1155Receiver.sol/ERC1155Receiver.json +1 -0
  745. package/test/contracts/out/ERC1155ReceiverMock.sol/ERC1155ReceiverMock.json +1 -0
  746. package/test/contracts/out/ERC1155Supply.sol/ERC1155Supply.json +1 -0
  747. package/test/contracts/out/ERC1155URIStorage.sol/ERC1155URIStorage.json +1 -0
  748. package/test/contracts/out/ERC1271WalletMock.sol/ERC1271MaliciousMock.json +1 -0
  749. package/test/contracts/out/ERC1271WalletMock.sol/ERC1271WalletMock.json +1 -0
  750. package/test/contracts/out/ERC165.sol/ERC165.json +1 -0
  751. package/test/contracts/out/ERC165Checker.sol/ERC165Checker.json +1 -0
  752. package/test/contracts/out/ERC165MaliciousData.sol/ERC165MaliciousData.json +1 -0
  753. package/test/contracts/out/ERC165MissingData.sol/ERC165MissingData.json +1 -0
  754. package/test/contracts/out/ERC165NotSupported.sol/ERC165NotSupported.json +1 -0
  755. package/test/contracts/out/ERC165ReturnBomb.sol/ERC165ReturnBombMock.json +1 -0
  756. package/test/contracts/out/ERC165Storage.sol/ERC165Storage.json +1 -0
  757. package/test/contracts/out/ERC1820Implementer.sol/ERC1820Implementer.json +1 -0
  758. package/test/contracts/out/ERC1967Proxy.sol/ERC1967Proxy.json +1 -0
  759. package/test/contracts/out/ERC1967Upgrade.sol/ERC1967Upgrade.json +1 -0
  760. package/test/contracts/out/ERC20.sol/ERC20.json +1 -0
  761. package/test/contracts/out/ERC20Burnable.sol/ERC20Burnable.json +1 -0
  762. package/test/contracts/out/ERC20Capped.sol/ERC20Capped.json +1 -0
  763. package/test/contracts/out/ERC20DecimalsMock.sol/ERC20DecimalsMock.json +1 -0
  764. package/test/contracts/out/ERC20ExcessDecimalsMock.sol/ERC20ExcessDecimalsMock.json +1 -0
  765. package/test/contracts/out/ERC20FlashMint.sol/ERC20FlashMint.json +1 -0
  766. package/test/contracts/out/ERC20FlashMintMock.sol/ERC20FlashMintMock.json +1 -0
  767. package/test/contracts/out/ERC20ForceApproveMock.sol/ERC20ForceApproveMock.json +1 -0
  768. package/test/contracts/out/ERC20Mock.sol/ERC20Mock.json +1 -0
  769. package/test/contracts/out/ERC20MulticallMock.sol/ERC20MulticallMock.json +1 -0
  770. package/test/contracts/out/ERC20NoReturnMock.sol/ERC20NoReturnMock.json +1 -0
  771. package/test/contracts/out/ERC20Pausable.sol/ERC20Pausable.json +1 -0
  772. package/test/contracts/out/ERC20Permit.sol/ERC20Permit.json +1 -0
  773. package/test/contracts/out/ERC20PermitNoRevertMock.sol/ERC20PermitNoRevertMock.json +1 -0
  774. package/test/contracts/out/ERC20PresetFixedSupply.sol/ERC20PresetFixedSupply.json +1 -0
  775. package/test/contracts/out/ERC20PresetMinterPauser.sol/ERC20PresetMinterPauser.json +1 -0
  776. package/test/contracts/out/ERC20Reentrant.sol/ERC20Reentrant.json +1 -0
  777. package/test/contracts/out/ERC20ReturnFalseMock.sol/ERC20ReturnFalseMock.json +1 -0
  778. package/test/contracts/out/ERC20Snapshot.sol/ERC20Snapshot.json +1 -0
  779. package/test/contracts/out/ERC20Votes.sol/ERC20Votes.json +1 -0
  780. package/test/contracts/out/ERC20VotesComp.sol/ERC20VotesComp.json +1 -0
  781. package/test/contracts/out/ERC20VotesLegacyMock.sol/ERC20VotesLegacyMock.json +1 -0
  782. package/test/contracts/out/ERC20Wrapper.sol/ERC20Wrapper.json +1 -0
  783. package/test/contracts/out/ERC2771Context.sol/ERC2771Context.json +1 -0
  784. package/test/contracts/out/ERC2771ContextMock.sol/ERC2771ContextMock.json +1 -0
  785. package/test/contracts/out/ERC2981.sol/ERC2981.json +1 -0
  786. package/test/contracts/out/ERC3156FlashBorrowerMock.sol/ERC3156FlashBorrowerMock.json +1 -0
  787. package/test/contracts/out/ERC4626.prop.sol/ERC4626Prop.json +1 -0
  788. package/test/contracts/out/ERC4626.prop.sol/IERC20.json +1 -0
  789. package/test/contracts/out/ERC4626.prop.sol/IERC4626.json +1 -0
  790. package/test/contracts/out/ERC4626.sol/ERC4626.json +1 -0
  791. package/test/contracts/out/ERC4626.t.sol/ERC4626StdTest.json +1 -0
  792. package/test/contracts/out/ERC4626.t.sol/ERC4626VaultOffsetMock.json +1 -0
  793. package/test/contracts/out/ERC4626.test.sol/ERC4626Test.json +1 -0
  794. package/test/contracts/out/ERC4626.test.sol/IMockERC20.json +1 -0
  795. package/test/contracts/out/ERC4626Fees.sol/ERC4626Fees.json +1 -0
  796. package/test/contracts/out/ERC4626Mock.sol/ERC4626Mock.json +1 -0
  797. package/test/contracts/out/ERC4626OffsetMock.sol/ERC4626OffsetMock.json +1 -0
  798. package/test/contracts/out/ERC4646FeesMock.sol/ERC4626FeesMock.json +1 -0
  799. package/test/contracts/out/ERC721.sol/ERC721.json +1 -0
  800. package/test/contracts/out/ERC721Burnable.sol/ERC721Burnable.json +1 -0
  801. package/test/contracts/out/ERC721Consecutive.sol/ERC721Consecutive.json +1 -0
  802. package/test/contracts/out/ERC721Consecutive.t.sol/ERC721ConsecutiveTarget.json +1 -0
  803. package/test/contracts/out/ERC721Consecutive.t.sol/ERC721ConsecutiveTest.json +1 -0
  804. package/test/contracts/out/ERC721ConsecutiveEnumerableMock.sol/ERC721ConsecutiveEnumerableMock.json +1 -0
  805. package/test/contracts/out/ERC721ConsecutiveMock.sol/ERC721ConsecutiveMock.json +1 -0
  806. package/test/contracts/out/ERC721ConsecutiveMock.sol/ERC721ConsecutiveNoConstructorMintMock.json +1 -0
  807. package/test/contracts/out/ERC721Enumerable.sol/ERC721Enumerable.json +1 -0
  808. package/test/contracts/out/ERC721Holder.sol/ERC721Holder.json +1 -0
  809. package/test/contracts/out/ERC721Pausable.sol/ERC721Pausable.json +1 -0
  810. package/test/contracts/out/ERC721PresetMinterPauserAutoId.sol/ERC721PresetMinterPauserAutoId.json +1 -0
  811. package/test/contracts/out/ERC721ReceiverMock.sol/ERC721ReceiverMock.json +1 -0
  812. package/test/contracts/out/ERC721Royalty.sol/ERC721Royalty.json +1 -0
  813. package/test/contracts/out/ERC721URIStorage.sol/ERC721URIStorage.json +1 -0
  814. package/test/contracts/out/ERC721URIStorageMock.sol/ERC721URIStorageMock.json +1 -0
  815. package/test/contracts/out/ERC721Votes.sol/ERC721Votes.json +1 -0
  816. package/test/contracts/out/ERC721Wrapper.sol/ERC721Wrapper.json +1 -0
  817. package/test/contracts/out/ERC777.sol/ERC777.json +1 -0
  818. package/test/contracts/out/ERC777Mock.sol/ERC777Mock.json +1 -0
  819. package/test/contracts/out/ERC777PresetFixedSupply.sol/ERC777PresetFixedSupply.json +1 -0
  820. package/test/contracts/out/ERC777SenderRecipientMock.sol/ERC777SenderRecipientMock.json +1 -0
  821. package/test/contracts/out/EnumerableMap.sol/EnumerableMap.json +1 -0
  822. package/test/contracts/out/EnumerableSet.sol/EnumerableSet.json +1 -0
  823. package/test/contracts/out/Escrow.sol/Escrow.json +1 -0
  824. package/test/contracts/out/EtherReceiverMock.sol/EtherReceiverMock.json +1 -0
  825. package/test/contracts/out/Governor.sol/Governor.json +1 -0
  826. package/test/contracts/out/Governor.t.sol/GovernorInternalTest.json +1 -0
  827. package/test/contracts/out/GovernorCompMock.sol/GovernorCompMock.json +1 -0
  828. package/test/contracts/out/GovernorCompatibilityBravo.sol/GovernorCompatibilityBravo.json +1 -0
  829. package/test/contracts/out/GovernorCompatibilityBravoMock.sol/GovernorCompatibilityBravoMock.json +1 -0
  830. package/test/contracts/out/GovernorCountingSimple.sol/GovernorCountingSimple.json +1 -0
  831. package/test/contracts/out/GovernorMock.sol/GovernorMock.json +1 -0
  832. package/test/contracts/out/GovernorPreventLateQuorum.sol/GovernorPreventLateQuorum.json +1 -0
  833. package/test/contracts/out/GovernorPreventLateQuorumMock.sol/GovernorPreventLateQuorumMock.json +1 -0
  834. package/test/contracts/out/GovernorProposalThreshold.sol/GovernorProposalThreshold.json +1 -0
  835. package/test/contracts/out/GovernorSettings.sol/GovernorSettings.json +1 -0
  836. package/test/contracts/out/GovernorTimelockCompound.sol/GovernorTimelockCompound.json +1 -0
  837. package/test/contracts/out/GovernorTimelockCompoundMock.sol/GovernorTimelockCompoundMock.json +1 -0
  838. package/test/contracts/out/GovernorTimelockControl.sol/GovernorTimelockControl.json +1 -0
  839. package/test/contracts/out/GovernorTimelockControlMock.sol/GovernorTimelockControlMock.json +1 -0
  840. package/test/contracts/out/GovernorVoteMock.sol/GovernorVoteMocks.json +1 -0
  841. package/test/contracts/out/GovernorVotes.sol/GovernorVotes.json +1 -0
  842. package/test/contracts/out/GovernorVotesComp.sol/GovernorVotesComp.json +1 -0
  843. package/test/contracts/out/GovernorVotesQuorumFraction.sol/GovernorVotesQuorumFraction.json +1 -0
  844. package/test/contracts/out/GovernorWithParamsMock.sol/GovernorWithParamsMock.json +1 -0
  845. package/test/contracts/out/IAMB.sol/IAMB.json +1 -0
  846. package/test/contracts/out/IAccessControl.sol/IAccessControl.json +1 -0
  847. package/test/contracts/out/IAccessControlDefaultAdminRules.sol/IAccessControlDefaultAdminRules.json +1 -0
  848. package/test/contracts/out/IAccessControlEnumerable.sol/IAccessControlEnumerable.json +1 -0
  849. package/test/contracts/out/IArbSys.sol/IArbSys.json +1 -0
  850. package/test/contracts/out/IBeacon.sol/IBeacon.json +1 -0
  851. package/test/contracts/out/IBridge.sol/IBridge.json +1 -0
  852. package/test/contracts/out/ICompoundTimelock.sol/ICompoundTimelock.json +1 -0
  853. package/test/contracts/out/ICrossDomainMessenger.sol/ICrossDomainMessenger.json +1 -0
  854. package/test/contracts/out/IDelayedMessageProvider.sol/IDelayedMessageProvider.json +1 -0
  855. package/test/contracts/out/IERC1155.sol/IERC1155.json +1 -0
  856. package/test/contracts/out/IERC1155MetadataURI.sol/IERC1155MetadataURI.json +1 -0
  857. package/test/contracts/out/IERC1155Receiver.sol/IERC1155Receiver.json +1 -0
  858. package/test/contracts/out/IERC1271.sol/IERC1271.json +1 -0
  859. package/test/contracts/out/IERC1363.sol/IERC1363.json +1 -0
  860. package/test/contracts/out/IERC1363Receiver.sol/IERC1363Receiver.json +1 -0
  861. package/test/contracts/out/IERC1363Spender.sol/IERC1363Spender.json +1 -0
  862. package/test/contracts/out/IERC165.sol/IERC165.json +1 -0
  863. package/test/contracts/out/IERC1820Implementer.sol/IERC1820Implementer.json +1 -0
  864. package/test/contracts/out/IERC1820Registry.sol/IERC1820Registry.json +1 -0
  865. package/test/contracts/out/IERC1967.sol/IERC1967.json +1 -0
  866. package/test/contracts/out/IERC20.sol/IERC20.json +1 -0
  867. package/test/contracts/out/IERC20Metadata.sol/IERC20Metadata.json +1 -0
  868. package/test/contracts/out/IERC20Permit.sol/IERC20Permit.json +1 -0
  869. package/test/contracts/out/IERC2309.sol/IERC2309.json +1 -0
  870. package/test/contracts/out/IERC2612.sol/IERC2612.json +1 -0
  871. package/test/contracts/out/IERC2981.sol/IERC2981.json +1 -0
  872. package/test/contracts/out/IERC3156FlashBorrower.sol/IERC3156FlashBorrower.json +1 -0
  873. package/test/contracts/out/IERC3156FlashLender.sol/IERC3156FlashLender.json +1 -0
  874. package/test/contracts/out/IERC4626.sol/IERC4626.json +1 -0
  875. package/test/contracts/out/IERC4906.sol/IERC4906.json +1 -0
  876. package/test/contracts/out/IERC5267.sol/IERC5267.json +1 -0
  877. package/test/contracts/out/IERC5313.sol/IERC5313.json +1 -0
  878. package/test/contracts/out/IERC5805.sol/IERC5805.json +1 -0
  879. package/test/contracts/out/IERC6372.sol/IERC6372.json +1 -0
  880. package/test/contracts/out/IERC721.sol/IERC721.json +1 -0
  881. package/test/contracts/out/IERC721.sol/IERC721Enumerable.json +1 -0
  882. package/test/contracts/out/IERC721.sol/IERC721Metadata.json +1 -0
  883. package/test/contracts/out/IERC721.sol/IERC721TokenReceiver.json +1 -0
  884. package/test/contracts/out/IERC721Enumerable.sol/IERC721Enumerable.json +1 -0
  885. package/test/contracts/out/IERC721Metadata.sol/IERC721Metadata.json +1 -0
  886. package/test/contracts/out/IERC721Receiver.sol/IERC721Receiver.json +1 -0
  887. package/test/contracts/out/IERC777.sol/IERC777.json +1 -0
  888. package/test/contracts/out/IERC777Recipient.sol/IERC777Recipient.json +1 -0
  889. package/test/contracts/out/IERC777Sender.sol/IERC777Sender.json +1 -0
  890. package/test/contracts/out/IFxMessageProcessor.sol/IFxMessageProcessor.json +1 -0
  891. package/test/contracts/out/IGovernor.sol/IGovernor.json +1 -0
  892. package/test/contracts/out/IGovernorCompatibilityBravo.sol/IGovernorCompatibilityBravo.json +1 -0
  893. package/test/contracts/out/IGovernorTimelock.sol/IGovernorTimelock.json +1 -0
  894. package/test/contracts/out/IInbox.sol/IInbox.json +1 -0
  895. package/test/contracts/out/IMulticall3.sol/IMulticall3.json +1 -0
  896. package/test/contracts/out/IOutbox.sol/IOutbox.json +1 -0
  897. package/test/contracts/out/IVotes.sol/IVotes.json +1 -0
  898. package/test/contracts/out/Initializable.sol/Initializable.json +1 -0
  899. package/test/contracts/out/InitializableMock.sol/ChildConstructorInitializableMock.json +1 -0
  900. package/test/contracts/out/InitializableMock.sol/ConstructorInitializableMock.json +1 -0
  901. package/test/contracts/out/InitializableMock.sol/DisableBad1.json +1 -0
  902. package/test/contracts/out/InitializableMock.sol/DisableBad2.json +1 -0
  903. package/test/contracts/out/InitializableMock.sol/DisableNew.json +1 -0
  904. package/test/contracts/out/InitializableMock.sol/DisableOk.json +1 -0
  905. package/test/contracts/out/InitializableMock.sol/DisableOld.json +1 -0
  906. package/test/contracts/out/InitializableMock.sol/InitializableMock.json +1 -0
  907. package/test/contracts/out/InitializableMock.sol/ReinitializerMock.json +1 -0
  908. package/test/contracts/out/LibAMB.sol/LibAMB.json +1 -0
  909. package/test/contracts/out/LibArbitrumL1.sol/LibArbitrumL1.json +1 -0
  910. package/test/contracts/out/LibArbitrumL2.sol/LibArbitrumL2.json +1 -0
  911. package/test/contracts/out/LibOptimism.sol/LibOptimism.json +1 -0
  912. package/test/contracts/out/Math.sol/Math.json +1 -0
  913. package/test/contracts/out/Math.t.sol/MathTest.json +1 -0
  914. package/test/contracts/out/MerkleProof.sol/MerkleProof.json +1 -0
  915. package/test/contracts/out/MinimalForwarder.sol/MinimalForwarder.json +1 -0
  916. package/test/contracts/out/MockMiladyAgentRegistry.sol/MockMiladyAgentRegistry.json +1 -0
  917. package/test/contracts/out/MockMiladyCollection.sol/MockMiladyCollection.json +1 -0
  918. package/test/contracts/out/Multicall.sol/Multicall.json +1 -0
  919. package/test/contracts/out/MulticallTest.sol/MulticallTest.json +1 -0
  920. package/test/contracts/out/MultipleInheritanceInitializableMocks.sol/SampleChild.json +1 -0
  921. package/test/contracts/out/MultipleInheritanceInitializableMocks.sol/SampleFather.json +1 -0
  922. package/test/contracts/out/MultipleInheritanceInitializableMocks.sol/SampleGramps.json +1 -0
  923. package/test/contracts/out/MultipleInheritanceInitializableMocks.sol/SampleHuman.json +1 -0
  924. package/test/contracts/out/MultipleInheritanceInitializableMocks.sol/SampleMother.json +1 -0
  925. package/test/contracts/out/MyGovernor.sol/MyGovernor.json +1 -0
  926. package/test/contracts/out/MyGovernor1.sol/MyGovernor1.json +1 -0
  927. package/test/contracts/out/MyGovernor2.sol/MyGovernor2.json +1 -0
  928. package/test/contracts/out/MyGovernor3.sol/MyGovernor3.json +1 -0
  929. package/test/contracts/out/MyToken.sol/MyToken.json +1 -0
  930. package/test/contracts/out/MyTokenTimestampBased.sol/MyTokenTimestampBased.json +1 -0
  931. package/test/contracts/out/MyTokenWrapped.sol/MyTokenWrapped.json +1 -0
  932. package/test/contracts/out/Ownable.sol/Ownable.json +1 -0
  933. package/test/contracts/out/Ownable2Step.sol/Ownable2Step.json +1 -0
  934. package/test/contracts/out/Pausable.sol/Pausable.json +1 -0
  935. package/test/contracts/out/PausableMock.sol/PausableMock.json +1 -0
  936. package/test/contracts/out/PaymentSplitter.sol/PaymentSplitter.json +1 -0
  937. package/test/contracts/out/Proxy.sol/Proxy.json +1 -0
  938. package/test/contracts/out/ProxyAdmin.sol/ProxyAdmin.json +1 -0
  939. package/test/contracts/out/PullPayment.sol/PullPayment.json +1 -0
  940. package/test/contracts/out/PullPaymentMock.sol/PullPaymentMock.json +1 -0
  941. package/test/contracts/out/ReentrancyAttack.sol/ReentrancyAttack.json +1 -0
  942. package/test/contracts/out/ReentrancyGuard.sol/ReentrancyGuard.json +1 -0
  943. package/test/contracts/out/ReentrancyMock.sol/ReentrancyMock.json +1 -0
  944. package/test/contracts/out/RefundEscrow.sol/RefundEscrow.json +1 -0
  945. package/test/contracts/out/RegressionImplementation.sol/Implementation1.json +1 -0
  946. package/test/contracts/out/RegressionImplementation.sol/Implementation2.json +1 -0
  947. package/test/contracts/out/RegressionImplementation.sol/Implementation3.json +1 -0
  948. package/test/contracts/out/RegressionImplementation.sol/Implementation4.json +1 -0
  949. package/test/contracts/out/SafeCast.sol/SafeCast.json +1 -0
  950. package/test/contracts/out/SafeERC20.sol/SafeERC20.json +1 -0
  951. package/test/contracts/out/SafeMath.sol/SafeMath.json +1 -0
  952. package/test/contracts/out/SafeMathMemoryCheck.sol/SafeMathMemoryCheck.json +1 -0
  953. package/test/contracts/out/Script.sol/Script.json +1 -0
  954. package/test/contracts/out/ShortStrings.sol/ShortStrings.json +1 -0
  955. package/test/contracts/out/ShortStrings.t.sol/ShortStringsTest.json +1 -0
  956. package/test/contracts/out/SignatureChecker.sol/SignatureChecker.json +1 -0
  957. package/test/contracts/out/SignedMath.sol/SignedMath.json +1 -0
  958. package/test/contracts/out/SignedSafeMath.sol/SignedSafeMath.json +1 -0
  959. package/test/contracts/out/SingleInheritanceInitializableMocks.sol/MigratableMockV1.json +1 -0
  960. package/test/contracts/out/SingleInheritanceInitializableMocks.sol/MigratableMockV2.json +1 -0
  961. package/test/contracts/out/SingleInheritanceInitializableMocks.sol/MigratableMockV3.json +1 -0
  962. package/test/contracts/out/StdAssertions.sol/StdAssertions.json +1 -0
  963. package/test/contracts/out/StdAssertions.t.sol/StdAssertionsTest.json +1 -0
  964. package/test/contracts/out/StdAssertions.t.sol/TestMockCall.json +1 -0
  965. package/test/contracts/out/StdAssertions.t.sol/TestTest.json +1 -0
  966. package/test/contracts/out/StdChains.sol/StdChains.json +1 -0
  967. package/test/contracts/out/StdChains.t.sol/StdChainsTest.json +1 -0
  968. package/test/contracts/out/StdCheats.sol/StdCheats.json +1 -0
  969. package/test/contracts/out/StdCheats.sol/StdCheatsSafe.json +1 -0
  970. package/test/contracts/out/StdCheats.t.sol/Bar.json +1 -0
  971. package/test/contracts/out/StdCheats.t.sol/BarERC1155.json +1 -0
  972. package/test/contracts/out/StdCheats.t.sol/BarERC721.json +1 -0
  973. package/test/contracts/out/StdCheats.t.sol/RevertingContract.json +1 -0
  974. package/test/contracts/out/StdCheats.t.sol/StdCheatsTest.json +1 -0
  975. package/test/contracts/out/StdError.sol/stdError.json +1 -0
  976. package/test/contracts/out/StdError.t.sol/ErrorsTest.json +1 -0
  977. package/test/contracts/out/StdError.t.sol/StdErrorsTest.json +1 -0
  978. package/test/contracts/out/StdInvariant.sol/StdInvariant.json +1 -0
  979. package/test/contracts/out/StdJson.sol/stdJson.json +1 -0
  980. package/test/contracts/out/StdMath.sol/stdMath.json +1 -0
  981. package/test/contracts/out/StdMath.t.sol/StdMathTest.json +1 -0
  982. package/test/contracts/out/StdStorage.sol/stdStorage.json +1 -0
  983. package/test/contracts/out/StdStorage.sol/stdStorageSafe.json +1 -0
  984. package/test/contracts/out/StdStorage.t.sol/StdStorageTest.json +1 -0
  985. package/test/contracts/out/StdStorage.t.sol/StorageTest.json +1 -0
  986. package/test/contracts/out/StdStyle.sol/StdStyle.json +1 -0
  987. package/test/contracts/out/StdStyle.t.sol/StdStyleTest.json +1 -0
  988. package/test/contracts/out/StdUtils.sol/StdUtils.json +1 -0
  989. package/test/contracts/out/StdUtils.t.sol/StdUtilsForkTest.json +1 -0
  990. package/test/contracts/out/StdUtils.t.sol/StdUtilsMock.json +1 -0
  991. package/test/contracts/out/StdUtils.t.sol/StdUtilsTest.json +1 -0
  992. package/test/contracts/out/StorageSlot.sol/StorageSlot.json +1 -0
  993. package/test/contracts/out/StorageSlotMock.sol/StorageSlotMock.json +1 -0
  994. package/test/contracts/out/Strings.sol/Strings.json +1 -0
  995. package/test/contracts/out/TimelockController.sol/TimelockController.json +1 -0
  996. package/test/contracts/out/TimelockReentrant.sol/TimelockReentrant.json +1 -0
  997. package/test/contracts/out/Timers.sol/Timers.json +1 -0
  998. package/test/contracts/out/TimersBlockNumberImpl.sol/TimersBlockNumberImpl.json +1 -0
  999. package/test/contracts/out/TimersTimestampImpl.sol/TimersTimestampImpl.json +1 -0
  1000. package/test/contracts/out/TokenTimelock.sol/TokenTimelock.json +1 -0
  1001. package/test/contracts/out/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.json +1 -0
  1002. package/test/contracts/out/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +1 -0
  1003. package/test/contracts/out/UUPSLegacy.sol/UUPSUpgradeableLegacyMock.json +1 -0
  1004. package/test/contracts/out/UUPSUpgradeable.sol/UUPSUpgradeable.json +1 -0
  1005. package/test/contracts/out/UUPSUpgradeableMock.sol/NonUpgradeableMock.json +1 -0
  1006. package/test/contracts/out/UUPSUpgradeableMock.sol/UUPSUpgradeableMock.json +1 -0
  1007. package/test/contracts/out/UUPSUpgradeableMock.sol/UUPSUpgradeableUnsafeMock.json +1 -0
  1008. package/test/contracts/out/UpgradeableBeacon.sol/UpgradeableBeacon.json +1 -0
  1009. package/test/contracts/out/VestingWallet.sol/VestingWallet.json +1 -0
  1010. package/test/contracts/out/Vm.sol/Vm.json +1 -0
  1011. package/test/contracts/out/Vm.sol/VmSafe.json +1 -0
  1012. package/test/contracts/out/Votes.sol/Votes.json +1 -0
  1013. package/test/contracts/out/VotesMock.sol/VotesMock.json +1 -0
  1014. package/test/contracts/out/VotesMock.sol/VotesTimestampMock.json +1 -0
  1015. package/test/contracts/out/VotesTimestamp.sol/ERC20VotesCompTimestampMock.json +1 -0
  1016. package/test/contracts/out/VotesTimestamp.sol/ERC20VotesTimestampMock.json +1 -0
  1017. package/test/contracts/out/VotesTimestamp.sol/ERC721VotesTimestampMock.json +1 -0
  1018. package/test/contracts/out/bridges.sol/BaseRelayMock.json +1 -0
  1019. package/test/contracts/out/bridges.sol/BridgeAMBMock.json +1 -0
  1020. package/test/contracts/out/bridges.sol/BridgeArbitrumL1Inbox.json +1 -0
  1021. package/test/contracts/out/bridges.sol/BridgeArbitrumL1Mock.json +1 -0
  1022. package/test/contracts/out/bridges.sol/BridgeArbitrumL1Outbox.json +1 -0
  1023. package/test/contracts/out/bridges.sol/BridgeArbitrumL2Mock.json +1 -0
  1024. package/test/contracts/out/bridges.sol/BridgeOptimismMock.json +1 -0
  1025. package/test/contracts/out/bridges.sol/BridgePolygonChildMock.json +1 -0
  1026. package/test/contracts/out/build-info/2be03bb8eb1ccda1.json +1 -0
  1027. package/test/contracts/out/console.sol/console.json +1 -0
  1028. package/test/contracts/out/console2.sol/console2.json +1 -0
  1029. package/test/contracts/out/demo.sol/DemoTest.json +1 -0
  1030. package/test/contracts/out/demo.sol/DemoTestWithSetUp.json +1 -0
  1031. package/test/contracts/out/draft-IERC1822.sol/IERC1822Proxiable.json +1 -0
  1032. package/test/contracts/out/interfaces/IERC1155.sol/IERC1155.json +1 -0
  1033. package/test/contracts/out/interfaces/IERC165.sol/IERC165.json +1 -0
  1034. package/test/contracts/out/interfaces/IERC20.sol/IERC20.json +1 -0
  1035. package/test/contracts/out/interfaces/IERC4626.sol/IERC4626.json +1 -0
  1036. package/test/contracts/out/interfaces/IERC721.sol/IERC721.json +1 -0
  1037. package/test/contracts/out/receivers.sol/CrossChainEnabledAMBMock.json +1 -0
  1038. package/test/contracts/out/receivers.sol/CrossChainEnabledArbitrumL1Mock.json +1 -0
  1039. package/test/contracts/out/receivers.sol/CrossChainEnabledArbitrumL2Mock.json +1 -0
  1040. package/test/contracts/out/receivers.sol/CrossChainEnabledOptimismMock.json +1 -0
  1041. package/test/contracts/out/receivers.sol/CrossChainEnabledPolygonChildMock.json +1 -0
  1042. package/test/contracts/out/receivers.sol/Receiver.json +1 -0
  1043. package/test/contracts/out/test.sol/DSTest.json +1 -0
  1044. package/test/contracts/out/test.sol/Test.json +1 -0
  1045. package/test/contracts/out/test.t.sol/DemoTest.json +1 -0
  1046. package/test/database-api.e2e.test.ts +666 -0
  1047. package/test/debug-anvil.ts +44 -0
  1048. package/test/deferred-restart.e2e.test.ts +368 -0
  1049. package/test/discord-connector.e2e.test.ts +463 -0
  1050. package/test/e2e-global-setup.ts +29 -0
  1051. package/test/e2e-validation.e2e.test.ts +1588 -0
  1052. package/test/health-endpoint.e2e.test.ts +95 -0
  1053. package/test/knowledge-e2e-flow.e2e.test.ts +134 -0
  1054. package/test/knowledge-live.e2e.test.ts +405 -0
  1055. package/test/mcp-config.e2e.test.ts +630 -0
  1056. package/test/native-modules.e2e.test.ts +470 -0
  1057. package/test/permissions-api.e2e.test.ts +637 -0
  1058. package/test/plugin-install.e2e.test.ts +645 -0
  1059. package/test/plugin-lifecycle.e2e.test.ts +617 -0
  1060. package/test/plugin-management.e2e.test.ts +308 -0
  1061. package/test/provider-switch.e2e.test.ts +322 -0
  1062. package/test/scripts/test-force.ts +139 -0
  1063. package/test/scripts/test-parallel.mjs +192 -0
  1064. package/test/scripts/validate-all-features.sh +557 -0
  1065. package/test/setup.ts +122 -0
  1066. package/test/signal-connector.e2e.test.ts +229 -0
  1067. package/test/skills-marketplace-api.e2e.test.ts +585 -0
  1068. package/test/skills-marketplace-services.e2e.test.ts +518 -0
  1069. package/test/skills-marketplace.e2e.test.ts +268 -0
  1070. package/test/stubs/coding-agent-module.ts +18 -0
  1071. package/test/stubs/electron-module.ts +17 -0
  1072. package/test/stubs/empty-module.mjs +4 -0
  1073. package/test/stubs/pi-ai-module.ts +12 -0
  1074. package/test/subscription-auth.e2e.test.ts +747 -0
  1075. package/test/terminal-execution.e2e.test.ts +134 -0
  1076. package/test/terminal-run-limits.e2e.test.ts +132 -0
  1077. package/test/test-env.ts +156 -0
  1078. package/test/trajectory-collection.e2e.test.ts +800 -0
  1079. package/test/trajectory-database.e2e.test.ts +209 -0
  1080. package/test/trajectory-embedding-filter.e2e.test.ts +317 -0
  1081. package/test/trajectory-restart-carryover.e2e.test.ts +306 -0
  1082. package/test/trigger-execution-flow.e2e.test.ts +132 -0
  1083. package/test/trigger-runtime.e2e.test.ts +247 -0
  1084. package/test/wallet-api.e2e.test.ts +1295 -0
  1085. package/test/wallet-live.e2e.test.ts +428 -0
  1086. package/vitest.config.ts +23 -0
  1087. 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
+ }
@@ -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
+ }
@@ -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
+ }
@@ -0,0 +1,8 @@
1
+ // SPDX-License-Identifier: MIT
2
+ // OpenZeppelin Contracts (last updated v4.8.0) (utils/cryptography/draft-EIP712.sol)
3
+
4
+ pragma solidity ^0.8.0;
5
+
6
+ // EIP-712 is Final as of 2022-08-11. This file is deprecated.
7
+
8
+ import "./EIP712.sol";
@@ -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
+ }