polkamarkets-js 3.1.11 → 3.2.0

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 (3390) hide show
  1. package/.gitmodules +18 -0
  2. package/README.md +356 -53
  3. package/abis/AccessControl.json +1 -0
  4. package/abis/Address.json +1 -0
  5. package/abis/BalanceHolder_ERC20.json +1 -0
  6. package/abis/CeilDiv.json +1 -0
  7. package/abis/CeilDivBad.json +1 -0
  8. package/abis/CeilDivGood.json +1 -0
  9. package/abis/Clones.json +1 -0
  10. package/abis/CommonBase.json +1 -0
  11. package/abis/Context.json +1 -0
  12. package/abis/ContextUpgradeable.json +1 -0
  13. package/abis/Create2.json +1 -0
  14. package/abis/CreateMarketLib.json +1 -0
  15. package/abis/DeployProxy.json +1 -0
  16. package/abis/DeployUpgradeablePM.json +1 -0
  17. package/abis/ERC165.json +1 -0
  18. package/abis/ERC1967Proxy.json +1 -0
  19. package/abis/ERC1967Utils.json +1 -0
  20. package/abis/ERC20.json +1 -0
  21. package/abis/ERC20Burnable.json +1 -0
  22. package/abis/ERC20MinterPauser.json +1 -0
  23. package/abis/ERC20Pausable.json +1 -0
  24. package/abis/Errors.json +1 -0
  25. package/abis/FantasyERC20.json +1 -0
  26. package/abis/IAccessControl.json +1 -0
  27. package/abis/IBalanceHolder_ERC20.json +1 -0
  28. package/abis/IBeacon.json +1 -0
  29. package/abis/IERC1155Errors.json +1 -0
  30. package/abis/IERC1363.json +1 -0
  31. package/abis/IERC165.json +1 -0
  32. package/abis/IERC1822Proxiable.json +1 -0
  33. package/abis/IERC1967.json +1 -0
  34. package/abis/IERC20.json +1 -0
  35. package/abis/IERC20Errors.json +1 -0
  36. package/abis/IERC20Metadata.json +1 -0
  37. package/abis/IERC721.json +1 -0
  38. package/abis/IERC721Enumerable.json +1 -0
  39. package/abis/IERC721Errors.json +1 -0
  40. package/abis/IERC721Metadata.json +1 -0
  41. package/abis/IERC721TokenReceiver.json +1 -0
  42. package/abis/IFantasyERC20.json +1 -0
  43. package/abis/IMulticall3.json +1 -0
  44. package/abis/IPredictionMarketV3Factory.json +1 -0
  45. package/abis/IPredictionMarketV3Manager.json +1 -0
  46. package/abis/IPredictionMarketV3_2.json +1 -0
  47. package/abis/IPredictionMarketV3_4.json +1 -0
  48. package/abis/IRealityETH_ERC20.json +1 -0
  49. package/abis/IRealityETH_IERC20.json +1 -0
  50. package/abis/IWETH.json +1 -0
  51. package/abis/Initializable.json +1 -0
  52. package/abis/LandFactory.json +1 -0
  53. package/abis/MockERC20.json +1 -0
  54. package/abis/MockERC721.json +1 -0
  55. package/abis/Ownable.json +1 -0
  56. package/abis/Ownable2StepUpgradeable.json +1 -0
  57. package/abis/OwnableUpgradeable.json +1 -0
  58. package/abis/Pausable.json +1 -0
  59. package/abis/PredictionMarketManagerTest.json +1 -0
  60. package/abis/PredictionMarketTest.json +1 -0
  61. package/abis/PredictionMarketV33Flow.json +1 -0
  62. package/abis/PredictionMarketV3Controller.json +1 -0
  63. package/abis/PredictionMarketV3Factory.json +1 -0
  64. package/abis/PredictionMarketV3Manager.json +1 -0
  65. package/abis/PredictionMarketV3Querier.json +1 -0
  66. package/abis/PredictionMarketV3_2.json +1 -0
  67. package/abis/PredictionMarketV3_4.json +1 -0
  68. package/abis/PredictionMarketV3_4Bad.json +1 -0
  69. package/abis/PredictionMarketV3_4Good.json +1 -0
  70. package/abis/Proxy.json +1 -0
  71. package/abis/RealityETH_ERC20_Factory.json +1 -0
  72. package/abis/RealityETH_ERC20_v3_0.json +1 -0
  73. package/abis/ReentrancyGuard.json +1 -0
  74. package/abis/ReentrancyGuardUpgradeable.json +1 -0
  75. package/abis/SafeERC20.json +1 -0
  76. package/abis/Script.json +1 -0
  77. package/abis/ScriptBase.json +1 -0
  78. package/abis/StdAssertions.json +1 -0
  79. package/abis/StdChains.json +1 -0
  80. package/abis/StdCheats.json +1 -0
  81. package/abis/StdCheatsSafe.json +1 -0
  82. package/abis/StdInvariant.json +1 -0
  83. package/abis/StdStyle.json +1 -0
  84. package/abis/StdUtils.json +1 -0
  85. package/abis/StorageSlot.json +1 -0
  86. package/abis/TestBase.json +1 -0
  87. package/abis/UUPSUpgradeable.json +1 -0
  88. package/abis/Vm.json +1 -0
  89. package/abis/VmSafe.json +1 -0
  90. package/abis/Voting.json +1 -0
  91. package/abis/WETH.json +1 -0
  92. package/abis/console.json +1 -0
  93. package/abis/safeconsole.json +1 -0
  94. package/abis/stdError.json +1 -0
  95. package/abis/stdJson.json +1 -0
  96. package/abis/stdMath.json +1 -0
  97. package/abis/stdStorage.json +1 -0
  98. package/abis/stdStorageSafe.json +1 -0
  99. package/abis/stdToml.json +1 -0
  100. package/abis/test.json +1 -0
  101. package/contracts/ERC20MinterPauser.sol +100 -0
  102. package/contracts/FantasyERC20.sol +12 -10
  103. package/contracts/IFantasyERC20.sol +1 -1
  104. package/contracts/IPredictionMarketV3Factory.sol +1 -1
  105. package/contracts/IPredictionMarketV3Manager.sol +5 -1
  106. package/contracts/IPredictionMarketV3_4.sol +219 -0
  107. package/contracts/IRealityETH_ERC20.sol +1 -1
  108. package/contracts/IWETH.sol +12 -0
  109. package/contracts/LandFactory.sol +71 -27
  110. package/contracts/PredictionMarketV3Controller.sol +7 -7
  111. package/contracts/PredictionMarketV3Factory.sol +7 -5
  112. package/contracts/PredictionMarketV3Manager.sol +7 -7
  113. package/contracts/PredictionMarketV3Querier.sol +14 -4
  114. package/contracts/PredictionMarketV3_4.sol +1492 -0
  115. package/contracts/PredictionMarketV3_4Bad.sol +1487 -0
  116. package/contracts/PredictionMarketV3_4Good.sol +1508 -0
  117. package/contracts/Proxy.sol +35 -0
  118. package/contracts/RealityETH_ERC20_Factory.sol +4 -11
  119. package/contracts/Voting.sol +4 -7
  120. package/contracts/WETH.sol +58 -0
  121. package/dist/Application.d.ts +201 -0
  122. package/dist/Application.d.ts.map +1 -0
  123. package/dist/Application.js +411 -0
  124. package/dist/Application.js.map +1 -0
  125. package/dist/index.d.ts +7 -0
  126. package/dist/index.d.ts.map +1 -0
  127. package/dist/index.js +16 -0
  128. package/dist/index.js.map +1 -0
  129. package/dist/interfaces/index.d.ts +4 -0
  130. package/dist/interfaces/index.d.ts.map +1 -0
  131. package/dist/interfaces/index.js +22 -0
  132. package/dist/interfaces/index.js.map +1 -0
  133. package/dist/models/AchievementsContract.d.ts +43 -0
  134. package/dist/models/AchievementsContract.d.ts.map +1 -0
  135. package/dist/models/AchievementsContract.js +177 -0
  136. package/dist/models/AchievementsContract.js.map +1 -0
  137. package/dist/models/ArbitrationContract.d.ts +23 -0
  138. package/dist/models/ArbitrationContract.d.ts.map +1 -0
  139. package/dist/models/ArbitrationContract.js +47 -0
  140. package/dist/models/ArbitrationContract.js.map +1 -0
  141. package/dist/models/ArbitrationProxyContract.d.ts +14 -0
  142. package/dist/models/ArbitrationProxyContract.d.ts.map +1 -0
  143. package/dist/models/ArbitrationProxyContract.js +26 -0
  144. package/dist/models/ArbitrationProxyContract.js.map +1 -0
  145. package/dist/models/ERC20Contract.d.ts +50 -0
  146. package/dist/models/ERC20Contract.d.ts.map +1 -0
  147. package/dist/models/ERC20Contract.js +99 -0
  148. package/dist/models/ERC20Contract.js.map +1 -0
  149. package/dist/models/FantasyERC20Contract.d.ts +13 -0
  150. package/dist/models/FantasyERC20Contract.d.ts.map +1 -0
  151. package/dist/models/FantasyERC20Contract.js +43 -0
  152. package/dist/models/FantasyERC20Contract.js.map +1 -0
  153. package/dist/models/IContract.d.ts +57 -0
  154. package/dist/models/IContract.d.ts.map +1 -0
  155. package/dist/models/IContract.js +515 -0
  156. package/dist/models/IContract.js.map +1 -0
  157. package/dist/models/PolkamarketsSmartAccount.d.ts +26 -0
  158. package/dist/models/PolkamarketsSmartAccount.d.ts.map +1 -0
  159. package/dist/models/PolkamarketsSmartAccount.js +100 -0
  160. package/dist/models/PolkamarketsSmartAccount.js.map +1 -0
  161. package/dist/models/PredictionMarketContract.d.ts +113 -0
  162. package/dist/models/PredictionMarketContract.d.ts.map +1 -0
  163. package/dist/models/PredictionMarketContract.js +298 -0
  164. package/dist/models/PredictionMarketContract.js.map +1 -0
  165. package/dist/models/PredictionMarketV2Contract.d.ts +157 -0
  166. package/dist/models/PredictionMarketV2Contract.d.ts.map +1 -0
  167. package/dist/models/PredictionMarketV2Contract.js +431 -0
  168. package/dist/models/PredictionMarketV2Contract.js.map +1 -0
  169. package/dist/models/PredictionMarketV3Contract.d.ts +42 -0
  170. package/dist/models/PredictionMarketV3Contract.d.ts.map +1 -0
  171. package/dist/models/PredictionMarketV3Contract.js +277 -0
  172. package/dist/models/PredictionMarketV3Contract.js.map +1 -0
  173. package/dist/models/PredictionMarketV3ControllerContract.d.ts +128 -0
  174. package/dist/models/PredictionMarketV3ControllerContract.d.ts.map +1 -0
  175. package/dist/models/PredictionMarketV3ControllerContract.js +174 -0
  176. package/dist/models/PredictionMarketV3ControllerContract.js.map +1 -0
  177. package/dist/models/PredictionMarketV3FactoryContract.d.ts +31 -0
  178. package/dist/models/PredictionMarketV3FactoryContract.d.ts.map +1 -0
  179. package/dist/models/PredictionMarketV3FactoryContract.js +81 -0
  180. package/dist/models/PredictionMarketV3FactoryContract.js.map +1 -0
  181. package/dist/models/PredictionMarketV3ManagerContract.d.ts +67 -0
  182. package/dist/models/PredictionMarketV3ManagerContract.d.ts.map +1 -0
  183. package/dist/models/PredictionMarketV3ManagerContract.js +97 -0
  184. package/dist/models/PredictionMarketV3ManagerContract.js.map +1 -0
  185. package/dist/models/PredictionMarketV3QuerierContract.d.ts +33 -0
  186. package/dist/models/PredictionMarketV3QuerierContract.d.ts.map +1 -0
  187. package/dist/models/PredictionMarketV3QuerierContract.js +61 -0
  188. package/dist/models/PredictionMarketV3QuerierContract.js.map +1 -0
  189. package/dist/models/PredictionMarketV3_2Contract.d.ts +32 -0
  190. package/dist/models/PredictionMarketV3_2Contract.d.ts.map +1 -0
  191. package/dist/models/PredictionMarketV3_2Contract.js +169 -0
  192. package/dist/models/PredictionMarketV3_2Contract.js.map +1 -0
  193. package/dist/models/RealitioERC20Contract.d.ts +16 -0
  194. package/dist/models/RealitioERC20Contract.d.ts.map +1 -0
  195. package/dist/models/RealitioERC20Contract.js +18 -0
  196. package/dist/models/RealitioERC20Contract.js.map +1 -0
  197. package/dist/models/VotingContract.d.ts +38 -0
  198. package/dist/models/VotingContract.d.ts.map +1 -0
  199. package/dist/models/VotingContract.js +85 -0
  200. package/dist/models/VotingContract.js.map +1 -0
  201. package/dist/models/WETH9Contract.d.ts +29 -0
  202. package/dist/models/WETH9Contract.d.ts.map +1 -0
  203. package/dist/models/WETH9Contract.js +44 -0
  204. package/dist/models/WETH9Contract.js.map +1 -0
  205. package/dist/models/index.d.ts +18 -0
  206. package/dist/models/index.d.ts.map +1 -0
  207. package/dist/models/index.js +37 -0
  208. package/dist/models/index.js.map +1 -0
  209. package/dist/types/contracts.d.ts +46 -0
  210. package/dist/types/contracts.d.ts.map +1 -0
  211. package/dist/types/contracts.js +3 -0
  212. package/dist/types/contracts.js.map +1 -0
  213. package/dist/types/index.d.ts +1 -0
  214. package/dist/types/index.d.ts.map +1 -0
  215. package/dist/types/index.js +3 -0
  216. package/dist/types/index.js.map +1 -0
  217. package/dist/utils/Account.d.ts +34 -0
  218. package/dist/utils/Account.d.ts.map +1 -0
  219. package/dist/utils/Account.js +38 -0
  220. package/dist/utils/Account.js.map +1 -0
  221. package/dist/utils/Contract.d.ts +31 -0
  222. package/dist/utils/Contract.d.ts.map +1 -0
  223. package/dist/utils/Contract.js +123 -0
  224. package/dist/utils/Contract.js.map +1 -0
  225. package/dist/utils/Numbers.d.ts +27 -0
  226. package/dist/utils/Numbers.d.ts.map +1 -0
  227. package/dist/utils/Numbers.js +87 -0
  228. package/dist/utils/Numbers.js.map +1 -0
  229. package/foundry.toml +11 -0
  230. package/lib/openzeppelin-contracts/.changeset/all-geese-stand.md +5 -0
  231. package/lib/openzeppelin-contracts/.changeset/clean-ways-push.md +5 -0
  232. package/lib/openzeppelin-contracts/.changeset/config.json +12 -0
  233. package/lib/openzeppelin-contracts/.changeset/dull-students-eat.md +5 -0
  234. package/lib/openzeppelin-contracts/.changeset/eight-radios-check.md +5 -0
  235. package/lib/openzeppelin-contracts/.changeset/fine-frogs-bake.md +5 -0
  236. package/lib/openzeppelin-contracts/.changeset/full-ways-help.md +5 -0
  237. package/lib/openzeppelin-contracts/.changeset/funny-years-yawn.md +5 -0
  238. package/lib/openzeppelin-contracts/.changeset/hot-grapes-lie.md +5 -0
  239. package/lib/openzeppelin-contracts/.changeset/lazy-poets-cheer.md +5 -0
  240. package/lib/openzeppelin-contracts/.changeset/long-hornets-mate.md +5 -0
  241. package/lib/openzeppelin-contracts/.changeset/lucky-donuts-scream.md +5 -0
  242. package/lib/openzeppelin-contracts/.changeset/major-feet-write.md +5 -0
  243. package/lib/openzeppelin-contracts/.changeset/new-days-tease.md +5 -0
  244. package/lib/openzeppelin-contracts/.changeset/nice-rings-wish.md +5 -0
  245. package/lib/openzeppelin-contracts/.changeset/pink-dolls-shop.md +5 -0
  246. package/lib/openzeppelin-contracts/.changeset/popular-geese-tan.md +5 -0
  247. package/lib/openzeppelin-contracts/.changeset/proud-tables-sip.md +5 -0
  248. package/lib/openzeppelin-contracts/.changeset/public-crabs-heal.md +5 -0
  249. package/lib/openzeppelin-contracts/.changeset/quiet-kiwis-feel.md +5 -0
  250. package/lib/openzeppelin-contracts/.changeset/rare-shirts-unite.md +5 -0
  251. package/lib/openzeppelin-contracts/.changeset/rich-cows-repair.md +5 -0
  252. package/lib/openzeppelin-contracts/.changeset/ripe-bears-hide.md +5 -0
  253. package/lib/openzeppelin-contracts/.changeset/rotten-apes-lie.md +5 -0
  254. package/lib/openzeppelin-contracts/.changeset/social-walls-obey.md +5 -0
  255. package/lib/openzeppelin-contracts/.changeset/sour-pens-shake.md +5 -0
  256. package/lib/openzeppelin-contracts/.changeset/strong-points-change.md +5 -0
  257. package/lib/openzeppelin-contracts/.changeset/tame-bears-mix.md +5 -0
  258. package/lib/openzeppelin-contracts/.changeset/violet-turtles-like.md +5 -0
  259. package/lib/openzeppelin-contracts/.changeset/wet-dodos-reply.md +5 -0
  260. package/lib/openzeppelin-contracts/.changeset/whole-plums-speak.md +5 -0
  261. package/lib/openzeppelin-contracts/.changeset/wild-baths-buy.md +5 -0
  262. package/lib/openzeppelin-contracts/.codecov.yml +4 -0
  263. package/lib/openzeppelin-contracts/.github/CODEOWNERS +10 -0
  264. package/lib/openzeppelin-contracts/.github/ISSUE_TEMPLATE/bug_report.md +1 -1
  265. package/lib/openzeppelin-contracts/.github/PULL_REQUEST_TEMPLATE.md +1 -1
  266. package/lib/openzeppelin-contracts/.github/actions/gas-compare/action.yml +7 -5
  267. package/lib/openzeppelin-contracts/.github/actions/setup/action.yml +9 -7
  268. package/lib/openzeppelin-contracts/.github/actions/storage-layout/action.yml +57 -0
  269. package/lib/openzeppelin-contracts/.github/workflows/actionlint.yml +18 -0
  270. package/lib/openzeppelin-contracts/.github/workflows/changeset.yml +28 -0
  271. package/lib/openzeppelin-contracts/.github/workflows/checks.yml +67 -25
  272. package/lib/openzeppelin-contracts/.github/workflows/docs.yml +1 -1
  273. package/lib/openzeppelin-contracts/.github/workflows/formal-verification.yml +86 -0
  274. package/lib/openzeppelin-contracts/.github/workflows/release-cycle.yml +214 -0
  275. package/lib/openzeppelin-contracts/.github/workflows/upgradeable.yml +23 -12
  276. package/lib/openzeppelin-contracts/.gitmodules +7 -0
  277. package/lib/openzeppelin-contracts/.husky/pre-commit +2 -0
  278. package/lib/openzeppelin-contracts/.prettierrc +5 -4
  279. package/lib/openzeppelin-contracts/.solcover.js +19 -13
  280. package/lib/openzeppelin-contracts/CHANGELOG.md +918 -325
  281. package/lib/openzeppelin-contracts/CODE_OF_CONDUCT.md +2 -2
  282. package/lib/openzeppelin-contracts/CONTRIBUTING.md +19 -47
  283. package/lib/openzeppelin-contracts/FUNDING.json +10 -0
  284. package/lib/openzeppelin-contracts/GUIDELINES.md +115 -65
  285. package/lib/openzeppelin-contracts/LICENSE +1 -1
  286. package/lib/openzeppelin-contracts/README.md +40 -16
  287. package/lib/openzeppelin-contracts/RELEASING.md +32 -23
  288. package/lib/openzeppelin-contracts/SECURITY.md +34 -11
  289. package/lib/openzeppelin-contracts/audits/2017-03.md +292 -0
  290. package/lib/openzeppelin-contracts/audits/2018-10.pdf +0 -0
  291. package/lib/openzeppelin-contracts/audits/2022-10-Checkpoints.pdf +0 -0
  292. package/lib/openzeppelin-contracts/audits/2022-10-ERC4626.pdf +0 -0
  293. package/lib/openzeppelin-contracts/audits/2023-05-v4.9.pdf +0 -0
  294. package/lib/openzeppelin-contracts/audits/2023-10-v5.0.pdf +0 -0
  295. package/lib/openzeppelin-contracts/audits/2024-10-v5.1.pdf +0 -0
  296. package/lib/openzeppelin-contracts/audits/2024-12-v5.2.pdf +0 -0
  297. package/lib/openzeppelin-contracts/audits/2025-04-v5.3.pdf +0 -0
  298. package/lib/openzeppelin-contracts/audits/README.md +20 -0
  299. package/lib/openzeppelin-contracts/certora/Makefile +44 -14
  300. package/lib/openzeppelin-contracts/certora/README.md +43 -39
  301. package/lib/openzeppelin-contracts/certora/diff/access_manager_AccessManager.sol.patch +97 -0
  302. package/lib/openzeppelin-contracts/certora/harnesses/AccessControlDefaultAdminRulesHarness.sol +46 -0
  303. package/lib/openzeppelin-contracts/certora/harnesses/AccessControlHarness.sol +6 -0
  304. package/lib/openzeppelin-contracts/certora/harnesses/AccessManagedHarness.sol +36 -0
  305. package/lib/openzeppelin-contracts/certora/harnesses/AccessManagerHarness.sol +116 -0
  306. package/lib/openzeppelin-contracts/certora/harnesses/DoubleEndedQueueHarness.sol +58 -0
  307. package/lib/openzeppelin-contracts/certora/harnesses/ERC20FlashMintHarness.sol +36 -0
  308. package/lib/openzeppelin-contracts/certora/harnesses/ERC20PermitHarness.sol +16 -0
  309. package/lib/openzeppelin-contracts/certora/harnesses/ERC20WrapperHarness.sol +34 -0
  310. package/lib/openzeppelin-contracts/certora/harnesses/ERC3156FlashBorrowerHarness.sol +13 -0
  311. package/lib/openzeppelin-contracts/certora/harnesses/ERC721Harness.sol +33 -0
  312. package/lib/openzeppelin-contracts/certora/harnesses/ERC721ReceiverHarness.sol +11 -0
  313. package/lib/openzeppelin-contracts/certora/harnesses/EnumerableMapHarness.sol +55 -0
  314. package/lib/openzeppelin-contracts/certora/harnesses/EnumerableSetHarness.sol +35 -0
  315. package/lib/openzeppelin-contracts/certora/harnesses/InitializableHarness.sol +23 -0
  316. package/lib/openzeppelin-contracts/certora/harnesses/NoncesHarness.sol +14 -0
  317. package/lib/openzeppelin-contracts/certora/harnesses/Ownable2StepHarness.sol +10 -0
  318. package/lib/openzeppelin-contracts/certora/harnesses/OwnableHarness.sol +10 -0
  319. package/lib/openzeppelin-contracts/certora/harnesses/PausableHarness.sol +18 -0
  320. package/lib/openzeppelin-contracts/certora/harnesses/TimelockControllerHarness.sol +13 -0
  321. package/lib/openzeppelin-contracts/certora/reports/2021-10.pdf +0 -0
  322. package/lib/openzeppelin-contracts/certora/reports/2022-03.pdf +0 -0
  323. package/lib/openzeppelin-contracts/certora/reports/2022-05.pdf +0 -0
  324. package/lib/openzeppelin-contracts/certora/run.js +168 -0
  325. package/lib/openzeppelin-contracts/certora/specs/AccessControl.spec +119 -0
  326. package/lib/openzeppelin-contracts/certora/specs/AccessControlDefaultAdminRules.spec +464 -0
  327. package/lib/openzeppelin-contracts/certora/specs/AccessManaged.spec +34 -0
  328. package/lib/openzeppelin-contracts/certora/specs/AccessManager.spec +826 -0
  329. package/lib/openzeppelin-contracts/certora/specs/DoubleEndedQueue.spec +300 -0
  330. package/lib/openzeppelin-contracts/certora/specs/ERC20.spec +352 -0
  331. package/lib/openzeppelin-contracts/certora/specs/ERC20FlashMint.spec +55 -0
  332. package/lib/openzeppelin-contracts/certora/specs/ERC20Wrapper.spec +198 -0
  333. package/lib/openzeppelin-contracts/certora/specs/ERC721.spec +679 -0
  334. package/lib/openzeppelin-contracts/certora/specs/EnumerableMap.spec +333 -0
  335. package/lib/openzeppelin-contracts/certora/specs/EnumerableSet.spec +246 -0
  336. package/lib/openzeppelin-contracts/certora/specs/Initializable.spec +165 -0
  337. package/lib/openzeppelin-contracts/certora/specs/Nonces.spec +92 -0
  338. package/lib/openzeppelin-contracts/certora/specs/Ownable.spec +77 -0
  339. package/lib/openzeppelin-contracts/certora/specs/Ownable2Step.spec +108 -0
  340. package/lib/openzeppelin-contracts/certora/specs/Pausable.spec +96 -0
  341. package/lib/openzeppelin-contracts/certora/specs/TimelockController.spec +274 -0
  342. package/lib/openzeppelin-contracts/certora/specs/helpers/helpers.spec +12 -0
  343. package/lib/openzeppelin-contracts/certora/specs/methods/IAccessControl.spec +8 -0
  344. package/lib/openzeppelin-contracts/certora/specs/methods/IAccessControlDefaultAdminRules.spec +36 -0
  345. package/lib/openzeppelin-contracts/certora/specs/methods/IAccessManaged.spec +5 -0
  346. package/lib/openzeppelin-contracts/certora/specs/methods/IAccessManager.spec +33 -0
  347. package/lib/openzeppelin-contracts/certora/specs/methods/IERC20.spec +11 -0
  348. package/lib/openzeppelin-contracts/certora/specs/methods/IERC2612.spec +5 -0
  349. package/lib/openzeppelin-contracts/certora/specs/methods/IERC3156FlashBorrower.spec +3 -0
  350. package/lib/openzeppelin-contracts/certora/specs/methods/IERC3156FlashLender.spec +5 -0
  351. package/lib/openzeppelin-contracts/certora/specs/methods/IERC5313.spec +3 -0
  352. package/lib/openzeppelin-contracts/certora/specs/methods/IERC721.spec +17 -0
  353. package/lib/openzeppelin-contracts/certora/specs/methods/IERC721Receiver.spec +3 -0
  354. package/lib/openzeppelin-contracts/certora/specs/methods/IOwnable.spec +5 -0
  355. package/lib/openzeppelin-contracts/certora/specs/methods/IOwnable2Step.spec +7 -0
  356. package/lib/openzeppelin-contracts/certora/specs.json +110 -0
  357. package/lib/openzeppelin-contracts/contracts/access/AccessControl.sol +41 -81
  358. package/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol +20 -10
  359. package/lib/openzeppelin-contracts/contracts/access/Ownable.sol +29 -12
  360. package/lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol +16 -6
  361. package/lib/openzeppelin-contracts/contracts/access/README.adoc +23 -3
  362. package/lib/openzeppelin-contracts/contracts/access/extensions/AccessControlDefaultAdminRules.sol +372 -0
  363. package/lib/openzeppelin-contracts/contracts/access/extensions/AccessControlEnumerable.sol +81 -0
  364. package/lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlDefaultAdminRules.sol +192 -0
  365. package/lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlEnumerable.sol +31 -0
  366. package/lib/openzeppelin-contracts/contracts/access/manager/AccessManaged.sol +112 -0
  367. package/lib/openzeppelin-contracts/contracts/access/manager/AccessManager.sol +740 -0
  368. package/lib/openzeppelin-contracts/contracts/access/manager/AuthorityUtils.sol +36 -0
  369. package/lib/openzeppelin-contracts/contracts/access/manager/IAccessManaged.sol +32 -0
  370. package/lib/openzeppelin-contracts/contracts/access/manager/IAccessManager.sol +399 -0
  371. package/lib/openzeppelin-contracts/contracts/access/manager/IAuthority.sol +14 -0
  372. package/lib/openzeppelin-contracts/contracts/account/Account.sol +144 -0
  373. package/lib/openzeppelin-contracts/contracts/account/README.adoc +30 -0
  374. package/lib/openzeppelin-contracts/contracts/account/extensions/draft-AccountERC7579.sol +413 -0
  375. package/lib/openzeppelin-contracts/contracts/account/extensions/draft-AccountERC7579Hooked.sol +106 -0
  376. package/lib/openzeppelin-contracts/contracts/account/extensions/draft-ERC7821.sol +69 -0
  377. package/lib/openzeppelin-contracts/contracts/account/utils/EIP7702Utils.sol +20 -0
  378. package/lib/openzeppelin-contracts/contracts/account/utils/draft-ERC4337Utils.sol +159 -0
  379. package/lib/openzeppelin-contracts/contracts/account/utils/draft-ERC7579Utils.sol +280 -0
  380. package/lib/openzeppelin-contracts/contracts/finance/README.adoc +1 -7
  381. package/lib/openzeppelin-contracts/contracts/finance/VestingWallet.sol +42 -32
  382. package/lib/openzeppelin-contracts/contracts/finance/VestingWalletCliff.sol +54 -0
  383. package/lib/openzeppelin-contracts/contracts/governance/Governor.sol +474 -253
  384. package/lib/openzeppelin-contracts/contracts/governance/IGovernor.sol +236 -58
  385. package/lib/openzeppelin-contracts/contracts/governance/README.adoc +37 -16
  386. package/lib/openzeppelin-contracts/contracts/governance/TimelockController.sol +153 -108
  387. package/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorCountingFractional.sol +190 -0
  388. package/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorCountingOverridable.sol +222 -0
  389. package/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorCountingSimple.sol +22 -33
  390. package/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorNoncesKeyed.sol +90 -0
  391. package/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorPreventLateQuorum.sol +24 -40
  392. package/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorProposalGuardian.sol +58 -0
  393. package/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorSequentialProposalId.sol +75 -0
  394. package/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorSettings.sol +19 -27
  395. package/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorStorage.sol +125 -0
  396. package/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorSuperQuorum.sol +58 -0
  397. package/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorTimelockAccess.sol +346 -0
  398. package/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorTimelockCompound.sol +47 -75
  399. package/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorTimelockControl.sol +57 -56
  400. package/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorVotes.sol +43 -11
  401. package/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorVotesQuorumFraction.sol +38 -44
  402. package/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorVotesSuperQuorumFraction.sol +134 -0
  403. package/lib/openzeppelin-contracts/contracts/governance/utils/IVotes.sol +16 -18
  404. package/lib/openzeppelin-contracts/contracts/governance/utils/Votes.sol +116 -75
  405. package/lib/openzeppelin-contracts/contracts/governance/utils/VotesExtended.sol +84 -0
  406. package/lib/openzeppelin-contracts/contracts/interfaces/IERC1155.sol +3 -3
  407. package/lib/openzeppelin-contracts/contracts/interfaces/IERC1155MetadataURI.sol +3 -3
  408. package/lib/openzeppelin-contracts/contracts/interfaces/IERC1155Receiver.sol +3 -3
  409. package/lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol +5 -7
  410. package/lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol +54 -63
  411. package/lib/openzeppelin-contracts/contracts/interfaces/IERC1363Receiver.sol +20 -20
  412. package/lib/openzeppelin-contracts/contracts/interfaces/IERC1363Spender.sol +19 -23
  413. package/lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol +3 -3
  414. package/lib/openzeppelin-contracts/contracts/interfaces/IERC1820Implementer.sol +17 -3
  415. package/lib/openzeppelin-contracts/contracts/interfaces/IERC1820Registry.sol +109 -3
  416. package/lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol +24 -0
  417. package/lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol +3 -3
  418. package/lib/openzeppelin-contracts/contracts/interfaces/IERC20Metadata.sol +3 -3
  419. package/lib/openzeppelin-contracts/contracts/interfaces/IERC2309.sol +2 -4
  420. package/lib/openzeppelin-contracts/contracts/interfaces/IERC2612.sol +8 -0
  421. package/lib/openzeppelin-contracts/contracts/interfaces/IERC2981.sol +10 -9
  422. package/lib/openzeppelin-contracts/contracts/interfaces/IERC3156.sol +4 -4
  423. package/lib/openzeppelin-contracts/contracts/interfaces/IERC3156FlashBorrower.sol +4 -6
  424. package/lib/openzeppelin-contracts/contracts/interfaces/IERC3156FlashLender.sol +4 -6
  425. package/lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol +8 -18
  426. package/lib/openzeppelin-contracts/contracts/interfaces/IERC4906.sol +20 -0
  427. package/lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol +28 -0
  428. package/lib/openzeppelin-contracts/contracts/interfaces/IERC5313.sol +16 -0
  429. package/lib/openzeppelin-contracts/contracts/interfaces/IERC5805.sol +9 -0
  430. package/lib/openzeppelin-contracts/contracts/interfaces/IERC6372.sol +17 -0
  431. package/lib/openzeppelin-contracts/contracts/interfaces/IERC721.sol +3 -3
  432. package/lib/openzeppelin-contracts/contracts/interfaces/IERC721Enumerable.sol +3 -3
  433. package/lib/openzeppelin-contracts/contracts/interfaces/IERC721Metadata.sol +3 -3
  434. package/lib/openzeppelin-contracts/contracts/interfaces/IERC721Receiver.sol +3 -3
  435. package/lib/openzeppelin-contracts/contracts/interfaces/IERC777.sol +197 -3
  436. package/lib/openzeppelin-contracts/contracts/interfaces/IERC777Recipient.sol +32 -3
  437. package/lib/openzeppelin-contracts/contracts/interfaces/IERC777Sender.sol +32 -3
  438. package/lib/openzeppelin-contracts/contracts/interfaces/IERC7913.sol +17 -0
  439. package/lib/openzeppelin-contracts/contracts/interfaces/README.adoc +50 -1
  440. package/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol +3 -3
  441. package/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC4337.sol +253 -0
  442. package/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol +161 -0
  443. package/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6909.sol +125 -0
  444. package/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC7579.sol +226 -0
  445. package/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC7674.sol +17 -0
  446. package/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC7786.sol +64 -0
  447. package/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC7802.sol +30 -0
  448. package/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC7821.sol +43 -0
  449. package/lib/openzeppelin-contracts/contracts/metatx/ERC2771Context.sol +62 -15
  450. package/lib/openzeppelin-contracts/contracts/metatx/ERC2771Forwarder.sol +372 -0
  451. package/lib/openzeppelin-contracts/contracts/metatx/README.adoc +6 -1
  452. package/lib/openzeppelin-contracts/contracts/mocks/AccessManagedTarget.sol +34 -0
  453. package/lib/openzeppelin-contracts/contracts/mocks/AccessManagerMock.sol +20 -0
  454. package/lib/openzeppelin-contracts/contracts/mocks/ArraysMock.sol +124 -4
  455. package/lib/openzeppelin-contracts/contracts/mocks/AuthorityMock.sol +69 -0
  456. package/lib/openzeppelin-contracts/contracts/mocks/Base64Dirty.sol +19 -0
  457. package/lib/openzeppelin-contracts/contracts/mocks/BatchCaller.sol +20 -0
  458. package/lib/openzeppelin-contracts/contracts/mocks/CallReceiverMock.sol +26 -5
  459. package/lib/openzeppelin-contracts/contracts/mocks/ConstructorMock.sol +34 -0
  460. package/lib/openzeppelin-contracts/contracts/mocks/ContextMock.sol +9 -7
  461. package/lib/openzeppelin-contracts/contracts/mocks/DummyImplementation.sol +10 -6
  462. package/lib/openzeppelin-contracts/contracts/mocks/EIP712Verifier.sol +16 -0
  463. package/lib/openzeppelin-contracts/contracts/mocks/ERC1271WalletMock.sol +7 -9
  464. package/lib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165InterfacesSupported.sol +4 -4
  465. package/lib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165MaliciousData.sol +1 -1
  466. package/lib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165MissingData.sol +1 -1
  467. package/lib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165NotSupported.sol +1 -1
  468. package/lib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165ReturnBomb.sol +2 -2
  469. package/lib/openzeppelin-contracts/contracts/mocks/ERC2771ContextMock.sol +10 -4
  470. package/lib/openzeppelin-contracts/contracts/mocks/ERC3156FlashBorrowerMock.sol +6 -6
  471. package/lib/openzeppelin-contracts/contracts/mocks/EtherReceiverMock.sol +1 -1
  472. package/lib/openzeppelin-contracts/contracts/mocks/InitializableMock.sol +6 -6
  473. package/lib/openzeppelin-contracts/contracts/mocks/MerkleProofCustomHashMock.sol +62 -0
  474. package/lib/openzeppelin-contracts/contracts/mocks/MerkleTreeMock.sol +52 -0
  475. package/lib/openzeppelin-contracts/contracts/mocks/MulticallHelper.sol +23 -0
  476. package/lib/openzeppelin-contracts/contracts/mocks/MultipleInheritanceInitializableMocks.sol +7 -12
  477. package/lib/openzeppelin-contracts/contracts/mocks/PausableMock.sol +2 -2
  478. package/lib/openzeppelin-contracts/contracts/mocks/ReentrancyAttack.sol +4 -4
  479. package/lib/openzeppelin-contracts/contracts/mocks/ReentrancyMock.sol +13 -6
  480. package/lib/openzeppelin-contracts/contracts/mocks/ReentrancyTransientMock.sol +50 -0
  481. package/lib/openzeppelin-contracts/contracts/mocks/RegressionImplementation.sol +2 -2
  482. package/lib/openzeppelin-contracts/contracts/mocks/SingleInheritanceInitializableMocks.sol +2 -2
  483. package/lib/openzeppelin-contracts/contracts/mocks/Stateless.sol +55 -0
  484. package/lib/openzeppelin-contracts/contracts/mocks/StorageSlotMock.sol +61 -15
  485. package/lib/openzeppelin-contracts/contracts/mocks/TimelockReentrant.sol +26 -0
  486. package/lib/openzeppelin-contracts/contracts/mocks/TransientSlotMock.sol +61 -0
  487. package/lib/openzeppelin-contracts/contracts/mocks/UpgradeableBeaconMock.sol +27 -0
  488. package/lib/openzeppelin-contracts/contracts/mocks/VotesExtendedMock.sol +42 -0
  489. package/lib/openzeppelin-contracts/contracts/mocks/VotesMock.sol +20 -18
  490. package/lib/openzeppelin-contracts/contracts/mocks/account/AccountMock.sol +169 -0
  491. package/lib/openzeppelin-contracts/contracts/mocks/account/modules/ERC7579Mock.sol +122 -0
  492. package/lib/openzeppelin-contracts/contracts/mocks/account/utils/ERC7579UtilsMock.sol +23 -0
  493. package/lib/openzeppelin-contracts/contracts/mocks/compound/CompTimelock.sol +1 -1
  494. package/lib/openzeppelin-contracts/contracts/mocks/docs/ERC20WithAutoMinerReward.sol +22 -0
  495. package/lib/openzeppelin-contracts/contracts/mocks/docs/ERC4626Fees.sol +109 -0
  496. package/lib/openzeppelin-contracts/contracts/mocks/docs/MyNFT.sol +9 -0
  497. package/lib/openzeppelin-contracts/contracts/mocks/docs/access-control/AccessControlERC20MintBase.sol +25 -0
  498. package/lib/openzeppelin-contracts/contracts/mocks/docs/access-control/AccessControlERC20MintMissing.sol +24 -0
  499. package/lib/openzeppelin-contracts/contracts/mocks/docs/access-control/AccessControlERC20MintOnlyRole.sol +23 -0
  500. package/lib/openzeppelin-contracts/contracts/mocks/docs/access-control/AccessControlModified.sol +14 -0
  501. package/lib/openzeppelin-contracts/contracts/mocks/docs/access-control/AccessManagedERC20MintBase.sol +16 -0
  502. package/lib/openzeppelin-contracts/contracts/mocks/docs/access-control/MyContractOwnable.sol +17 -0
  503. package/lib/openzeppelin-contracts/contracts/mocks/docs/account/MyAccountERC7702.sol +20 -0
  504. package/lib/openzeppelin-contracts/contracts/mocks/docs/account/MyFactoryAccount.sol +37 -0
  505. package/lib/openzeppelin-contracts/contracts/mocks/docs/governance/MyGovernor.sol +80 -0
  506. package/lib/openzeppelin-contracts/contracts/mocks/docs/governance/MyToken.sol +21 -0
  507. package/lib/openzeppelin-contracts/contracts/mocks/docs/governance/MyTokenTimestampBased.sol +32 -0
  508. package/lib/openzeppelin-contracts/contracts/mocks/docs/governance/MyTokenWrapped.sol +28 -0
  509. package/lib/openzeppelin-contracts/contracts/mocks/docs/token/ERC1155/GameItems.sol +21 -0
  510. package/lib/openzeppelin-contracts/contracts/mocks/docs/token/ERC1155/MyERC115HolderContract.sol +7 -0
  511. package/lib/openzeppelin-contracts/contracts/mocks/docs/token/ERC20/GLDToken.sol +11 -0
  512. package/lib/openzeppelin-contracts/contracts/mocks/docs/token/ERC6909/ERC6909GameItems.sol +26 -0
  513. package/lib/openzeppelin-contracts/contracts/mocks/docs/token/ERC721/GameItem.sol +19 -0
  514. package/lib/openzeppelin-contracts/contracts/mocks/docs/utilities/Base64NFT.sol +27 -0
  515. package/lib/openzeppelin-contracts/contracts/mocks/docs/utilities/Multicall.sol +15 -0
  516. package/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorCountingOverridableMock.sol +18 -0
  517. package/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorFractionalMock.sol +14 -0
  518. package/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorMock.sol +14 -0
  519. package/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorNoncesKeyedMock.sol +45 -0
  520. package/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorPreventLateQuorumMock.sol +40 -0
  521. package/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorProposalGuardianMock.sol +27 -0
  522. package/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorSequentialProposalIdMock.sol +39 -0
  523. package/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorStorageMock.sol +79 -0
  524. package/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorSuperQuorumMock.sol +95 -0
  525. package/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorTimelockAccessMock.sol +70 -0
  526. package/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorTimelockCompoundMock.sol +69 -0
  527. package/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorTimelockControlMock.sol +69 -0
  528. package/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorVoteMock.sol +20 -0
  529. package/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorVotesSuperQuorumFractionMock.sol +37 -0
  530. package/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorWithParamsMock.sol +51 -0
  531. package/lib/openzeppelin-contracts/contracts/mocks/proxy/BadBeacon.sol +11 -0
  532. package/lib/openzeppelin-contracts/contracts/mocks/proxy/ClashingImplementation.sol +19 -0
  533. package/lib/openzeppelin-contracts/contracts/mocks/proxy/UUPSUpgradeableMock.sol +35 -0
  534. package/lib/openzeppelin-contracts/contracts/mocks/token/ERC1155ReceiverMock.sol +74 -0
  535. package/lib/openzeppelin-contracts/contracts/mocks/token/ERC1363ForceApproveMock.sol +13 -0
  536. package/lib/openzeppelin-contracts/contracts/mocks/token/ERC1363NoReturnMock.sol +33 -0
  537. package/lib/openzeppelin-contracts/contracts/mocks/token/ERC1363ReceiverMock.sol +52 -0
  538. package/lib/openzeppelin-contracts/contracts/mocks/token/ERC1363ReturnFalseMock.sol +34 -0
  539. package/lib/openzeppelin-contracts/contracts/mocks/token/ERC1363SpenderMock.sol +47 -0
  540. package/lib/openzeppelin-contracts/contracts/mocks/token/ERC20ApprovalMock.sol +10 -0
  541. package/lib/openzeppelin-contracts/contracts/mocks/token/ERC20BridgeableMock.sol +26 -0
  542. package/lib/openzeppelin-contracts/contracts/mocks/token/ERC20DecimalsMock.sol +17 -0
  543. package/lib/openzeppelin-contracts/contracts/mocks/token/ERC20ExcessDecimalsMock.sol +9 -0
  544. package/lib/openzeppelin-contracts/contracts/mocks/token/ERC20FlashMintMock.sol +26 -0
  545. package/lib/openzeppelin-contracts/contracts/mocks/token/ERC20ForceApproveMock.sol +13 -0
  546. package/lib/openzeppelin-contracts/contracts/mocks/token/ERC20GetterHelper.sol +38 -0
  547. package/lib/openzeppelin-contracts/contracts/mocks/token/ERC20Mock.sol +16 -0
  548. package/lib/openzeppelin-contracts/contracts/mocks/token/ERC20MulticallMock.sol +8 -0
  549. package/lib/openzeppelin-contracts/contracts/mocks/token/ERC20NoReturnMock.sol +28 -0
  550. package/lib/openzeppelin-contracts/contracts/mocks/token/ERC20Reentrant.sol +39 -0
  551. package/lib/openzeppelin-contracts/contracts/mocks/token/ERC20ReturnFalseMock.sol +19 -0
  552. package/lib/openzeppelin-contracts/contracts/mocks/token/ERC20VotesAdditionalCheckpointsMock.sol +31 -0
  553. package/lib/openzeppelin-contracts/contracts/mocks/token/ERC20VotesLegacyMock.sol +253 -0
  554. package/lib/openzeppelin-contracts/contracts/mocks/token/ERC20VotesTimestampMock.sol +29 -0
  555. package/lib/openzeppelin-contracts/contracts/mocks/token/ERC4626LimitsMock.sol +23 -0
  556. package/lib/openzeppelin-contracts/contracts/mocks/token/ERC4626Mock.sol +17 -0
  557. package/lib/openzeppelin-contracts/contracts/mocks/token/ERC4626OffsetMock.sol +17 -0
  558. package/lib/openzeppelin-contracts/contracts/mocks/token/ERC4646FeesMock.sol +40 -0
  559. package/lib/openzeppelin-contracts/contracts/mocks/token/ERC721ConsecutiveEnumerableMock.sol +42 -0
  560. package/lib/openzeppelin-contracts/contracts/mocks/token/ERC721ConsecutiveMock.sol +61 -0
  561. package/lib/openzeppelin-contracts/contracts/mocks/token/ERC721ReceiverMock.sol +47 -0
  562. package/lib/openzeppelin-contracts/contracts/mocks/token/ERC721URIStorageMock.sol +17 -0
  563. package/lib/openzeppelin-contracts/contracts/mocks/utils/cryptography/ERC7739Mock.sol +13 -0
  564. package/lib/openzeppelin-contracts/contracts/package.json +2 -2
  565. package/lib/openzeppelin-contracts/contracts/proxy/Clones.sol +197 -24
  566. package/lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol +21 -13
  567. package/lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol +177 -0
  568. package/lib/openzeppelin-contracts/contracts/proxy/Proxy.sol +4 -21
  569. package/lib/openzeppelin-contracts/contracts/proxy/README.adoc +13 -11
  570. package/lib/openzeppelin-contracts/contracts/proxy/beacon/BeaconProxy.sol +23 -27
  571. package/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol +3 -3
  572. package/lib/openzeppelin-contracts/contracts/proxy/beacon/UpgradeableBeacon.sol +16 -11
  573. package/lib/openzeppelin-contracts/contracts/proxy/transparent/ProxyAdmin.sol +17 -53
  574. package/lib/openzeppelin-contracts/contracts/proxy/transparent/TransparentUpgradeableProxy.sol +80 -86
  575. package/lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol +108 -35
  576. package/lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol +81 -30
  577. package/lib/openzeppelin-contracts/contracts/token/ERC1155/ERC1155.sol +197 -325
  578. package/lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol +28 -30
  579. package/lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol +7 -6
  580. package/lib/openzeppelin-contracts/contracts/token/ERC1155/README.adoc +6 -12
  581. package/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/ERC1155Burnable.sol +11 -23
  582. package/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/ERC1155Pausable.sol +11 -17
  583. package/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/ERC1155Supply.sol +45 -21
  584. package/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/ERC1155URIStorage.sol +9 -11
  585. package/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol +4 -6
  586. package/lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Holder.sol +11 -7
  587. package/lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Utils.sol +88 -0
  588. package/lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol +137 -221
  589. package/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol +13 -16
  590. package/lib/openzeppelin-contracts/contracts/token/ERC20/README.adoc +28 -36
  591. package/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC1363.sol +135 -0
  592. package/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol +13 -13
  593. package/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Capped.sol +27 -10
  594. package/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20FlashMint.sol +56 -31
  595. package/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Pausable.sol +9 -15
  596. package/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Permit.sol +77 -0
  597. package/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Votes.sol +43 -235
  598. package/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Wrapper.sol +48 -22
  599. package/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC4626.sol +130 -132
  600. package/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol +4 -6
  601. package/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol +90 -0
  602. package/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-ERC20Bridgeable.sol +50 -0
  603. package/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-ERC20TemporaryApproval.sol +119 -0
  604. package/lib/openzeppelin-contracts/contracts/token/ERC20/utils/ERC1363Utils.sol +95 -0
  605. package/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol +241 -77
  606. package/lib/openzeppelin-contracts/contracts/token/ERC6909/README.adoc +27 -0
  607. package/lib/openzeppelin-contracts/contracts/token/ERC6909/draft-ERC6909.sol +224 -0
  608. package/lib/openzeppelin-contracts/contracts/token/ERC6909/extensions/draft-ERC6909ContentURI.sol +53 -0
  609. package/lib/openzeppelin-contracts/contracts/token/ERC6909/extensions/draft-ERC6909Metadata.sol +77 -0
  610. package/lib/openzeppelin-contracts/contracts/token/ERC6909/extensions/draft-ERC6909TokenSupply.sol +35 -0
  611. package/lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol +250 -326
  612. package/lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol +17 -27
  613. package/lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol +6 -5
  614. package/lib/openzeppelin-contracts/contracts/token/ERC721/README.adoc +11 -12
  615. package/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Burnable.sol +9 -9
  616. package/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Consecutive.sol +82 -54
  617. package/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Enumerable.sol +61 -56
  618. package/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Pausable.sol +12 -15
  619. package/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Royalty.sol +10 -22
  620. package/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721URIStorage.sol +25 -29
  621. package/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Votes.sol +22 -16
  622. package/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Wrapper.sol +102 -0
  623. package/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol +3 -3
  624. package/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol +3 -3
  625. package/lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol +7 -11
  626. package/lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol +50 -0
  627. package/lib/openzeppelin-contracts/contracts/token/common/ERC2981.sol +56 -28
  628. package/lib/openzeppelin-contracts/contracts/token/common/README.adoc +2 -2
  629. package/lib/openzeppelin-contracts/contracts/utils/Address.sol +51 -146
  630. package/lib/openzeppelin-contracts/contracts/utils/Arrays.sol +481 -25
  631. package/lib/openzeppelin-contracts/contracts/utils/Base64.sol +65 -38
  632. package/lib/openzeppelin-contracts/contracts/utils/Blockhash.sol +52 -0
  633. package/lib/openzeppelin-contracts/contracts/utils/Bytes.sol +166 -0
  634. package/lib/openzeppelin-contracts/contracts/utils/CAIP10.sol +54 -0
  635. package/lib/openzeppelin-contracts/contracts/utils/CAIP2.sol +51 -0
  636. package/lib/openzeppelin-contracts/contracts/utils/Calldata.sol +25 -0
  637. package/lib/openzeppelin-contracts/contracts/utils/Comparators.sol +19 -0
  638. package/lib/openzeppelin-contracts/contracts/utils/Context.sol +6 -2
  639. package/lib/openzeppelin-contracts/contracts/utils/Create2.sol +29 -20
  640. package/lib/openzeppelin-contracts/contracts/utils/Errors.sol +34 -0
  641. package/lib/openzeppelin-contracts/contracts/utils/Memory.sol +44 -0
  642. package/lib/openzeppelin-contracts/contracts/utils/Multicall.sol +19 -6
  643. package/lib/openzeppelin-contracts/contracts/utils/Nonces.sol +46 -0
  644. package/lib/openzeppelin-contracts/contracts/utils/NoncesKeyed.sol +74 -0
  645. package/lib/openzeppelin-contracts/contracts/utils/Packing.sol +1656 -0
  646. package/lib/openzeppelin-contracts/contracts/utils/Panic.sol +57 -0
  647. package/lib/openzeppelin-contracts/contracts/utils/Pausable.sol +112 -0
  648. package/lib/openzeppelin-contracts/contracts/utils/README.adoc +79 -45
  649. package/lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol +87 -0
  650. package/lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol +61 -0
  651. package/lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol +122 -0
  652. package/lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol +155 -0
  653. package/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol +72 -17
  654. package/lib/openzeppelin-contracts/contracts/utils/Strings.sol +453 -16
  655. package/lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol +183 -0
  656. package/lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol +96 -96
  657. package/lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol +96 -40
  658. package/lib/openzeppelin-contracts/contracts/utils/cryptography/Hashes.sol +31 -0
  659. package/lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol +362 -71
  660. package/lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol +99 -0
  661. package/lib/openzeppelin-contracts/contracts/utils/cryptography/P256.sol +408 -0
  662. package/lib/openzeppelin-contracts/contracts/utils/cryptography/README.adoc +67 -0
  663. package/lib/openzeppelin-contracts/contracts/utils/cryptography/RSA.sol +154 -0
  664. package/lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol +143 -21
  665. package/lib/openzeppelin-contracts/contracts/utils/cryptography/draft-ERC7739Utils.sol +206 -0
  666. package/lib/openzeppelin-contracts/contracts/utils/cryptography/signers/AbstractSigner.sol +22 -0
  667. package/lib/openzeppelin-contracts/contracts/utils/cryptography/signers/MultiSignerERC7913.sol +251 -0
  668. package/lib/openzeppelin-contracts/contracts/utils/cryptography/signers/MultiSignerERC7913Weighted.sol +207 -0
  669. package/lib/openzeppelin-contracts/contracts/utils/cryptography/signers/SignerECDSA.sol +55 -0
  670. package/lib/openzeppelin-contracts/contracts/utils/cryptography/signers/SignerERC7702.sol +24 -0
  671. package/lib/openzeppelin-contracts/contracts/utils/cryptography/signers/SignerERC7913.sol +62 -0
  672. package/lib/openzeppelin-contracts/contracts/utils/cryptography/signers/SignerP256.sol +63 -0
  673. package/lib/openzeppelin-contracts/contracts/utils/cryptography/signers/SignerRSA.sol +64 -0
  674. package/lib/openzeppelin-contracts/contracts/utils/cryptography/signers/draft-ERC7739.sol +98 -0
  675. package/lib/openzeppelin-contracts/contracts/utils/cryptography/verifiers/ERC7913P256Verifier.sol +28 -0
  676. package/lib/openzeppelin-contracts/contracts/utils/cryptography/verifiers/ERC7913RSAVerifier.sol +22 -0
  677. package/lib/openzeppelin-contracts/contracts/utils/draft-InteroperableAddress.sol +234 -0
  678. package/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol +6 -10
  679. package/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol +18 -21
  680. package/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol +5 -5
  681. package/lib/openzeppelin-contracts/contracts/utils/math/Math.sol +580 -176
  682. package/lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol +224 -198
  683. package/lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol +31 -6
  684. package/lib/openzeppelin-contracts/contracts/utils/structs/BitMaps.sol +14 -9
  685. package/lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol +833 -0
  686. package/lib/openzeppelin-contracts/contracts/utils/structs/CircularBuffer.sol +140 -0
  687. package/lib/openzeppelin-contracts/contracts/utils/structs/DoubleEndedQueue.sol +46 -60
  688. package/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol +919 -130
  689. package/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol +441 -27
  690. package/lib/openzeppelin-contracts/contracts/utils/structs/Heap.sol +256 -0
  691. package/lib/openzeppelin-contracts/contracts/utils/structs/MerkleTree.sol +267 -0
  692. package/lib/openzeppelin-contracts/contracts/utils/types/Time.sol +133 -0
  693. package/lib/openzeppelin-contracts/contracts/vendor/compound/ICompoundTimelock.sol +3 -3
  694. package/lib/openzeppelin-contracts/docs/README.md +16 -0
  695. package/lib/openzeppelin-contracts/docs/antora.yml +2 -1
  696. package/lib/openzeppelin-contracts/docs/modules/ROOT/images/access-control-multiple.svg +97 -0
  697. package/lib/openzeppelin-contracts/docs/modules/ROOT/images/access-manager-functions.svg +47 -0
  698. package/lib/openzeppelin-contracts/docs/modules/ROOT/images/access-manager.svg +99 -0
  699. package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-3a.png +0 -0
  700. package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-3b.png +0 -0
  701. package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-6.png +0 -0
  702. package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack.png +0 -0
  703. package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-deposit.png +0 -0
  704. package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-mint.png +0 -0
  705. package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-linear.png +0 -0
  706. package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-loglog.png +0 -0
  707. package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-loglogext.png +0 -0
  708. package/lib/openzeppelin-contracts/docs/modules/ROOT/nav.adoc +13 -7
  709. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/access-control.adoc +168 -97
  710. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/account-abstraction.adoc +100 -0
  711. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/accounts.adoc +354 -0
  712. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/backwards-compatibility.adoc +50 -0
  713. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/eoa-delegation.adoc +143 -0
  714. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc1155.adoc +19 -54
  715. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc20-supply.adoc +13 -55
  716. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc20.adoc +7 -25
  717. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc4626.adoc +214 -0
  718. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc6909.adoc +47 -0
  719. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc721.adoc +10 -42
  720. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/extending-contracts.adoc +4 -82
  721. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/faq.adoc +13 -0
  722. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/governance.adoc +85 -167
  723. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/index.adoc +19 -12
  724. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/multisig.adoc +306 -0
  725. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/tokens.adoc +4 -5
  726. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/upgradeable.adoc +14 -10
  727. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/utilities.adoc +482 -81
  728. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/wizard.adoc +1 -1
  729. package/lib/openzeppelin-contracts/docs/templates/contract.hbs +57 -1
  730. package/lib/openzeppelin-contracts/docs/templates/helpers.js +8 -8
  731. package/lib/openzeppelin-contracts/docs/templates/properties.js +47 -8
  732. package/lib/openzeppelin-contracts/eslint.config.mjs +26 -0
  733. package/lib/openzeppelin-contracts/foundry.toml +15 -0
  734. package/lib/openzeppelin-contracts/fv-requirements.txt +4 -0
  735. package/lib/openzeppelin-contracts/hardhat/async-test-sanity.js +10 -0
  736. package/lib/openzeppelin-contracts/hardhat/common-contracts.js +69 -0
  737. package/lib/openzeppelin-contracts/hardhat/env-artifacts.js +29 -0
  738. package/lib/openzeppelin-contracts/hardhat/ignore-unreachable-warnings.js +2 -4
  739. package/lib/openzeppelin-contracts/hardhat/remappings.js +18 -0
  740. package/lib/openzeppelin-contracts/hardhat/skip-foundry-tests.js +3 -4
  741. package/lib/openzeppelin-contracts/hardhat/task-test-get-files.js +25 -0
  742. package/lib/openzeppelin-contracts/hardhat.config.js +67 -49
  743. package/lib/openzeppelin-contracts/lib/erc4626-tests/ERC4626.prop.sol +404 -0
  744. package/lib/openzeppelin-contracts/lib/erc4626-tests/ERC4626.test.sol +356 -0
  745. package/lib/openzeppelin-contracts/lib/erc4626-tests/LICENSE +661 -0
  746. package/lib/openzeppelin-contracts/lib/erc4626-tests/README.md +116 -0
  747. package/lib/openzeppelin-contracts/lib/forge-std/.gitattributes +1 -0
  748. package/lib/openzeppelin-contracts/lib/forge-std/.github/workflows/ci.yml +48 -12
  749. package/lib/openzeppelin-contracts/lib/forge-std/.github/workflows/sync.yml +31 -0
  750. package/lib/openzeppelin-contracts/lib/forge-std/CONTRIBUTING.md +193 -0
  751. package/lib/openzeppelin-contracts/lib/forge-std/README.md +19 -3
  752. package/lib/openzeppelin-contracts/lib/forge-std/foundry.toml +5 -3
  753. package/lib/openzeppelin-contracts/lib/forge-std/package.json +2 -2
  754. package/lib/openzeppelin-contracts/lib/forge-std/scripts/vm.py +646 -0
  755. package/lib/openzeppelin-contracts/lib/forge-std/src/Base.sol +7 -3
  756. package/lib/openzeppelin-contracts/lib/forge-std/src/Script.sol +4 -3
  757. package/lib/openzeppelin-contracts/lib/forge-std/src/StdAssertions.sol +595 -135
  758. package/lib/openzeppelin-contracts/lib/forge-std/src/StdChains.sol +146 -48
  759. package/lib/openzeppelin-contracts/lib/forge-std/src/StdCheats.sol +303 -39
  760. package/lib/openzeppelin-contracts/lib/forge-std/src/StdInvariant.sol +122 -0
  761. package/lib/openzeppelin-contracts/lib/forge-std/src/StdJson.sol +129 -25
  762. package/lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol +245 -99
  763. package/lib/openzeppelin-contracts/lib/forge-std/src/StdStyle.sol +333 -0
  764. package/lib/openzeppelin-contracts/lib/forge-std/src/StdToml.sol +283 -0
  765. package/lib/openzeppelin-contracts/lib/forge-std/src/StdUtils.sol +125 -39
  766. package/lib/openzeppelin-contracts/lib/forge-std/src/Test.sol +10 -5
  767. package/lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol +2182 -304
  768. package/lib/openzeppelin-contracts/lib/forge-std/src/console.sol +635 -608
  769. package/lib/openzeppelin-contracts/lib/forge-std/src/console2.sol +1 -1543
  770. package/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IERC4626.sol +2 -2
  771. package/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IMulticall3.sol +73 -0
  772. package/lib/openzeppelin-contracts/lib/forge-std/src/safeconsole.sol +13937 -0
  773. package/lib/openzeppelin-contracts/lib/forge-std/test/StdAssertions.t.sol +126 -572
  774. package/lib/openzeppelin-contracts/lib/forge-std/test/StdChains.t.sol +166 -62
  775. package/lib/openzeppelin-contracts/lib/forge-std/test/StdCheats.t.sol +348 -35
  776. package/lib/openzeppelin-contracts/lib/forge-std/test/StdError.t.sol +15 -13
  777. package/lib/openzeppelin-contracts/lib/forge-std/test/StdJson.t.sol +49 -0
  778. package/lib/openzeppelin-contracts/lib/forge-std/test/StdMath.t.sol +31 -26
  779. package/lib/openzeppelin-contracts/lib/forge-std/test/StdStorage.t.sol +251 -46
  780. package/lib/openzeppelin-contracts/lib/forge-std/test/StdStyle.t.sol +110 -0
  781. package/lib/openzeppelin-contracts/lib/forge-std/test/StdToml.t.sol +49 -0
  782. package/lib/openzeppelin-contracts/lib/forge-std/test/StdUtils.t.sol +186 -35
  783. package/lib/openzeppelin-contracts/lib/forge-std/test/Vm.t.sol +18 -0
  784. package/lib/openzeppelin-contracts/lib/forge-std/test/fixtures/test.json +8 -0
  785. package/lib/openzeppelin-contracts/lib/forge-std/test/fixtures/test.toml +6 -0
  786. package/lib/openzeppelin-contracts/lib/halmos-cheatcodes/LICENSE +661 -0
  787. package/lib/openzeppelin-contracts/lib/halmos-cheatcodes/README.md +97 -0
  788. package/lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/SVM.sol +49 -0
  789. package/lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/SymTest.sol +11 -0
  790. package/lib/openzeppelin-contracts/package.json +59 -45
  791. package/lib/openzeppelin-contracts/remappings.txt +1 -0
  792. package/lib/openzeppelin-contracts/renovate.json +2 -9
  793. package/lib/openzeppelin-contracts/scripts/checks/compare-layout.js +28 -0
  794. package/lib/openzeppelin-contracts/scripts/checks/compareGasReports.js +130 -92
  795. package/lib/openzeppelin-contracts/scripts/checks/coverage.sh +24 -0
  796. package/lib/openzeppelin-contracts/scripts/checks/extract-layout.js +39 -0
  797. package/lib/openzeppelin-contracts/scripts/checks/inheritance-ordering.js +28 -23
  798. package/lib/openzeppelin-contracts/scripts/checks/pragma-validity.js +45 -0
  799. package/lib/openzeppelin-contracts/scripts/fetch-common-contracts.js +50 -0
  800. package/lib/openzeppelin-contracts/scripts/gen-nav.js +62 -22
  801. package/lib/openzeppelin-contracts/scripts/generate/format-lines.js +4 -4
  802. package/lib/openzeppelin-contracts/scripts/generate/helpers/sanitize.js +5 -0
  803. package/lib/openzeppelin-contracts/scripts/generate/run.js +38 -23
  804. package/lib/openzeppelin-contracts/scripts/generate/templates/Arrays.js +386 -0
  805. package/lib/openzeppelin-contracts/scripts/generate/templates/Arrays.opts.js +9 -0
  806. package/lib/openzeppelin-contracts/scripts/generate/templates/Checkpoints.js +67 -128
  807. package/lib/openzeppelin-contracts/scripts/generate/templates/Checkpoints.opts.js +18 -0
  808. package/lib/openzeppelin-contracts/scripts/generate/templates/Checkpoints.t.js +141 -0
  809. package/lib/openzeppelin-contracts/scripts/generate/templates/Enumerable.opts.js +53 -0
  810. package/lib/openzeppelin-contracts/scripts/generate/templates/EnumerableMap.js +269 -84
  811. package/lib/openzeppelin-contracts/scripts/generate/templates/EnumerableSet.js +252 -36
  812. package/lib/openzeppelin-contracts/scripts/generate/templates/MerkleProof.js +187 -0
  813. package/lib/openzeppelin-contracts/scripts/generate/templates/MerkleProof.opts.js +11 -0
  814. package/lib/openzeppelin-contracts/scripts/generate/templates/Packing.js +92 -0
  815. package/lib/openzeppelin-contracts/scripts/generate/templates/Packing.opts.js +3 -0
  816. package/lib/openzeppelin-contracts/scripts/generate/templates/Packing.t.js +48 -0
  817. package/lib/openzeppelin-contracts/scripts/generate/templates/SafeCast.js +50 -82
  818. package/lib/openzeppelin-contracts/scripts/generate/templates/Slot.opts.js +15 -0
  819. package/lib/openzeppelin-contracts/scripts/generate/templates/SlotDerivation.js +119 -0
  820. package/lib/openzeppelin-contracts/scripts/generate/templates/SlotDerivation.t.js +127 -0
  821. package/lib/openzeppelin-contracts/scripts/generate/templates/StorageSlot.js +77 -0
  822. package/lib/openzeppelin-contracts/scripts/generate/templates/StorageSlotMock.js +57 -0
  823. package/lib/openzeppelin-contracts/scripts/generate/templates/TransientSlot.js +80 -0
  824. package/lib/openzeppelin-contracts/scripts/generate/templates/TransientSlotMock.js +35 -0
  825. package/lib/openzeppelin-contracts/scripts/generate/templates/conversion.js +18 -18
  826. package/lib/openzeppelin-contracts/scripts/get-contracts-metadata.js +55 -0
  827. package/lib/openzeppelin-contracts/scripts/helpers.js +4 -20
  828. package/lib/openzeppelin-contracts/scripts/minimize-pragma.js +138 -0
  829. package/lib/openzeppelin-contracts/scripts/prepack.sh +14 -3
  830. package/lib/openzeppelin-contracts/scripts/prepare-docs.sh +12 -1
  831. package/lib/openzeppelin-contracts/scripts/release/format-changelog.js +33 -0
  832. package/lib/openzeppelin-contracts/scripts/release/synchronize-versions.js +6 -7
  833. package/lib/openzeppelin-contracts/scripts/release/update-comment.js +2 -4
  834. package/lib/openzeppelin-contracts/scripts/release/version.sh +4 -2
  835. package/lib/openzeppelin-contracts/scripts/release/workflow/exit-prerelease.sh +8 -0
  836. package/lib/openzeppelin-contracts/scripts/release/workflow/github-release.js +48 -0
  837. package/lib/openzeppelin-contracts/scripts/release/workflow/integrity-check.sh +20 -0
  838. package/lib/openzeppelin-contracts/scripts/release/workflow/pack.sh +26 -0
  839. package/lib/openzeppelin-contracts/scripts/release/workflow/publish.sh +26 -0
  840. package/lib/openzeppelin-contracts/scripts/release/workflow/rerun.js +7 -0
  841. package/lib/openzeppelin-contracts/scripts/release/workflow/set-changesets-pr-title.js +17 -0
  842. package/lib/openzeppelin-contracts/scripts/release/workflow/start.sh +35 -0
  843. package/lib/openzeppelin-contracts/scripts/release/workflow/state.js +112 -0
  844. package/lib/openzeppelin-contracts/scripts/remove-ignored-artifacts.js +4 -4
  845. package/lib/openzeppelin-contracts/scripts/set-max-old-space-size.sh +10 -0
  846. package/lib/openzeppelin-contracts/scripts/solc-versions.js +15 -0
  847. package/lib/openzeppelin-contracts/scripts/solhint-custom/index.js +84 -0
  848. package/lib/openzeppelin-contracts/scripts/solhint-custom/package.json +8 -0
  849. package/lib/openzeppelin-contracts/scripts/update-docs-branch.js +15 -5
  850. package/lib/openzeppelin-contracts/scripts/upgradeable/README.md +21 -0
  851. package/lib/openzeppelin-contracts/scripts/upgradeable/patch-apply.sh +19 -0
  852. package/lib/openzeppelin-contracts/scripts/upgradeable/patch-save.sh +18 -0
  853. package/lib/openzeppelin-contracts/scripts/upgradeable/transpile-onto.sh +54 -0
  854. package/lib/openzeppelin-contracts/scripts/upgradeable/transpile.sh +50 -0
  855. package/lib/openzeppelin-contracts/scripts/upgradeable/upgradeable.patch +398 -0
  856. package/lib/openzeppelin-contracts/slither.config.json +3 -4
  857. package/lib/openzeppelin-contracts/solhint.config.js +29 -0
  858. package/lib/openzeppelin-contracts/test/TESTING.md +1 -1
  859. package/lib/openzeppelin-contracts/test/access/AccessControl.behavior.js +756 -98
  860. package/lib/openzeppelin-contracts/test/access/AccessControl.test.js +13 -7
  861. package/lib/openzeppelin-contracts/test/access/Ownable.test.js +50 -28
  862. package/lib/openzeppelin-contracts/test/access/Ownable2Step.test.js +77 -32
  863. package/lib/openzeppelin-contracts/test/access/extensions/AccessControlDefaultAdminRules.test.js +32 -0
  864. package/lib/openzeppelin-contracts/test/access/extensions/AccessControlEnumerable.test.js +24 -0
  865. package/lib/openzeppelin-contracts/test/access/manager/AccessManaged.test.js +146 -0
  866. package/lib/openzeppelin-contracts/test/access/manager/AccessManager.behavior.js +257 -0
  867. package/lib/openzeppelin-contracts/test/access/manager/AccessManager.predicate.js +456 -0
  868. package/lib/openzeppelin-contracts/test/access/manager/AccessManager.test.js +2489 -0
  869. package/lib/openzeppelin-contracts/test/access/manager/AuthorityUtils.test.js +112 -0
  870. package/lib/openzeppelin-contracts/test/account/Account.behavior.js +144 -0
  871. package/lib/openzeppelin-contracts/test/account/Account.test.js +48 -0
  872. package/lib/openzeppelin-contracts/test/account/AccountECDSA.test.js +52 -0
  873. package/lib/openzeppelin-contracts/test/account/AccountERC7702.t.sol +103 -0
  874. package/lib/openzeppelin-contracts/test/account/AccountERC7702.test.js +52 -0
  875. package/lib/openzeppelin-contracts/test/account/AccountERC7913.test.js +116 -0
  876. package/lib/openzeppelin-contracts/test/account/AccountMultiSigner.test.js +326 -0
  877. package/lib/openzeppelin-contracts/test/account/AccountMultiSignerWeighted.test.js +312 -0
  878. package/lib/openzeppelin-contracts/test/account/AccountP256.test.js +58 -0
  879. package/lib/openzeppelin-contracts/test/account/AccountRSA.test.js +58 -0
  880. package/lib/openzeppelin-contracts/test/account/examples/AccountERC7702WithModulesMock.test.js +99 -0
  881. package/lib/openzeppelin-contracts/test/account/extensions/AccountERC7579.behavior.js +563 -0
  882. package/lib/openzeppelin-contracts/test/account/extensions/AccountERC7579.test.js +60 -0
  883. package/lib/openzeppelin-contracts/test/account/extensions/AccountERC7579Hooked.test.js +60 -0
  884. package/lib/openzeppelin-contracts/test/account/extensions/ERC7821.behavior.js +145 -0
  885. package/lib/openzeppelin-contracts/test/account/utils/EIP7702Utils.test.js +53 -0
  886. package/lib/openzeppelin-contracts/test/account/utils/draft-ERC4337Utils.test.js +289 -0
  887. package/lib/openzeppelin-contracts/test/account/utils/draft-ERC7579Utils.t.sol +426 -0
  888. package/lib/openzeppelin-contracts/test/account/utils/draft-ERC7579Utils.test.js +399 -0
  889. package/lib/openzeppelin-contracts/test/bin/EntryPoint070.abi +1 -0
  890. package/lib/openzeppelin-contracts/test/bin/EntryPoint070.bytecode +0 -0
  891. package/lib/openzeppelin-contracts/test/bin/EntryPoint080.abi +1 -0
  892. package/lib/openzeppelin-contracts/test/bin/EntryPoint080.bytecode +0 -0
  893. package/lib/openzeppelin-contracts/test/bin/SenderCreator070.abi +1 -0
  894. package/lib/openzeppelin-contracts/test/bin/SenderCreator070.bytecode +0 -0
  895. package/lib/openzeppelin-contracts/test/bin/SenderCreator080.abi +1 -0
  896. package/lib/openzeppelin-contracts/test/bin/SenderCreator080.bytecode +0 -0
  897. package/lib/openzeppelin-contracts/test/finance/VestingWallet.behavior.js +59 -46
  898. package/lib/openzeppelin-contracts/test/finance/VestingWallet.test.js +35 -37
  899. package/lib/openzeppelin-contracts/test/finance/VestingWalletCliff.test.js +70 -0
  900. package/lib/openzeppelin-contracts/test/governance/Governor.t.sol +59 -0
  901. package/lib/openzeppelin-contracts/test/governance/Governor.test.js +938 -590
  902. package/lib/openzeppelin-contracts/test/governance/TimelockController.test.js +910 -765
  903. package/lib/openzeppelin-contracts/test/governance/extensions/GovernorCountingFractional.test.js +248 -0
  904. package/lib/openzeppelin-contracts/test/governance/extensions/GovernorCountingOverridable.test.js +346 -0
  905. package/lib/openzeppelin-contracts/test/governance/extensions/GovernorERC721.test.js +127 -100
  906. package/lib/openzeppelin-contracts/test/governance/extensions/GovernorNoncesKeyed.test.js +244 -0
  907. package/lib/openzeppelin-contracts/test/governance/extensions/GovernorPreventLateQuorum.test.js +181 -173
  908. package/lib/openzeppelin-contracts/test/governance/extensions/GovernorProposalGuardian.test.js +132 -0
  909. package/lib/openzeppelin-contracts/test/governance/extensions/GovernorSequentialProposalId.test.js +202 -0
  910. package/lib/openzeppelin-contracts/test/governance/extensions/GovernorStorage.test.js +155 -0
  911. package/lib/openzeppelin-contracts/test/governance/extensions/GovernorSuperQuorum.test.js +168 -0
  912. package/lib/openzeppelin-contracts/test/governance/extensions/GovernorSuperQuorumGreaterThanQuorum.t.sol +83 -0
  913. package/lib/openzeppelin-contracts/test/governance/extensions/GovernorTimelockAccess.test.js +864 -0
  914. package/lib/openzeppelin-contracts/test/governance/extensions/GovernorTimelockCompound.test.js +419 -339
  915. package/lib/openzeppelin-contracts/test/governance/extensions/GovernorTimelockControl.test.js +468 -384
  916. package/lib/openzeppelin-contracts/test/governance/extensions/GovernorVotesQuorumFraction.test.js +161 -133
  917. package/lib/openzeppelin-contracts/test/governance/extensions/GovernorVotesSuperQuorumFraction.test.js +160 -0
  918. package/lib/openzeppelin-contracts/test/governance/extensions/GovernorWithParams.test.js +234 -155
  919. package/lib/openzeppelin-contracts/test/governance/utils/ERC6372.behavior.js +28 -0
  920. package/lib/openzeppelin-contracts/test/governance/utils/Votes.behavior.js +254 -273
  921. package/lib/openzeppelin-contracts/test/governance/utils/Votes.test.js +89 -48
  922. package/lib/openzeppelin-contracts/test/governance/utils/VotesExtended.test.js +152 -0
  923. package/lib/openzeppelin-contracts/test/helpers/access-manager.js +85 -0
  924. package/lib/openzeppelin-contracts/test/helpers/account.js +14 -0
  925. package/lib/openzeppelin-contracts/test/helpers/chains.js +56 -0
  926. package/lib/openzeppelin-contracts/test/helpers/constants.js +7 -0
  927. package/lib/openzeppelin-contracts/test/helpers/deploy.js +14 -0
  928. package/lib/openzeppelin-contracts/test/helpers/eip712-types.js +61 -0
  929. package/lib/openzeppelin-contracts/test/helpers/eip712.js +41 -26
  930. package/lib/openzeppelin-contracts/test/helpers/enums.js +9 -24
  931. package/lib/openzeppelin-contracts/test/helpers/erc4337.js +217 -0
  932. package/lib/openzeppelin-contracts/test/helpers/erc7579.js +58 -0
  933. package/lib/openzeppelin-contracts/test/helpers/erc7739.js +118 -0
  934. package/lib/openzeppelin-contracts/test/helpers/governance.js +194 -188
  935. package/lib/openzeppelin-contracts/test/helpers/iterate.js +41 -0
  936. package/lib/openzeppelin-contracts/test/helpers/math.js +33 -0
  937. package/lib/openzeppelin-contracts/test/helpers/methods.js +14 -0
  938. package/lib/openzeppelin-contracts/test/helpers/precompiles.js +12 -0
  939. package/lib/openzeppelin-contracts/test/helpers/random.js +24 -0
  940. package/lib/openzeppelin-contracts/test/helpers/signers.js +184 -0
  941. package/lib/openzeppelin-contracts/test/helpers/storage.js +48 -0
  942. package/lib/openzeppelin-contracts/test/helpers/strings.js +5 -0
  943. package/lib/openzeppelin-contracts/test/helpers/time.js +33 -0
  944. package/lib/openzeppelin-contracts/test/helpers/txpool.js +9 -20
  945. package/lib/openzeppelin-contracts/test/metatx/ERC2771Context.test.js +95 -71
  946. package/lib/openzeppelin-contracts/test/metatx/ERC2771Forwarder.t.sol +279 -0
  947. package/lib/openzeppelin-contracts/test/metatx/ERC2771Forwarder.test.js +384 -0
  948. package/lib/openzeppelin-contracts/test/proxy/Clones.behaviour.js +60 -50
  949. package/lib/openzeppelin-contracts/test/proxy/Clones.t.sol +91 -0
  950. package/lib/openzeppelin-contracts/test/proxy/Clones.test.js +164 -56
  951. package/lib/openzeppelin-contracts/test/proxy/ERC1967/ERC1967Proxy.test.js +17 -7
  952. package/lib/openzeppelin-contracts/test/proxy/ERC1967/ERC1967Utils.test.js +162 -0
  953. package/lib/openzeppelin-contracts/test/proxy/Proxy.behaviour.js +59 -98
  954. package/lib/openzeppelin-contracts/test/proxy/beacon/BeaconProxy.test.js +98 -113
  955. package/lib/openzeppelin-contracts/test/proxy/beacon/UpgradeableBeacon.test.js +34 -29
  956. package/lib/openzeppelin-contracts/test/proxy/transparent/ProxyAdmin.test.js +45 -88
  957. package/lib/openzeppelin-contracts/test/proxy/transparent/TransparentUpgradeableProxy.behaviour.js +209 -283
  958. package/lib/openzeppelin-contracts/test/proxy/transparent/TransparentUpgradeableProxy.test.js +20 -7
  959. package/lib/openzeppelin-contracts/test/proxy/utils/Initializable.test.js +94 -96
  960. package/lib/openzeppelin-contracts/test/proxy/utils/UUPSUpgradeable.test.js +94 -59
  961. package/lib/openzeppelin-contracts/test/sanity.test.js +27 -0
  962. package/lib/openzeppelin-contracts/test/token/ERC1155/ERC1155.behavior.js +530 -541
  963. package/lib/openzeppelin-contracts/test/token/ERC1155/ERC1155.test.js +101 -152
  964. package/lib/openzeppelin-contracts/test/token/ERC1155/extensions/ERC1155Burnable.test.js +35 -36
  965. package/lib/openzeppelin-contracts/test/token/ERC1155/extensions/ERC1155Pausable.test.js +54 -57
  966. package/lib/openzeppelin-contracts/test/token/ERC1155/extensions/ERC1155Supply.test.js +59 -51
  967. package/lib/openzeppelin-contracts/test/token/ERC1155/extensions/ERC1155URIStorage.test.js +37 -33
  968. package/lib/openzeppelin-contracts/test/token/ERC1155/utils/ERC1155Holder.test.js +40 -46
  969. package/lib/openzeppelin-contracts/test/token/ERC1155/utils/ERC1155Utils.test.js +299 -0
  970. package/lib/openzeppelin-contracts/test/token/ERC20/ERC20.behavior.js +142 -206
  971. package/lib/openzeppelin-contracts/test/token/ERC20/ERC20.test.js +133 -243
  972. package/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC1363.test.js +370 -0
  973. package/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Burnable.test.js +96 -10
  974. package/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Capped.test.js +43 -15
  975. package/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20FlashMint.test.js +102 -82
  976. package/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Pausable.test.js +59 -64
  977. package/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Permit.test.js +109 -0
  978. package/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Votes.test.js +490 -462
  979. package/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Wrapper.test.js +133 -120
  980. package/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC4626.t.sol +41 -0
  981. package/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC4626.test.js +802 -536
  982. package/lib/openzeppelin-contracts/test/token/ERC20/extensions/draft-ERC20Bridgeable.test.js +89 -0
  983. package/lib/openzeppelin-contracts/test/token/ERC20/extensions/draft-ERC20TemporaryApproval.test.js +142 -0
  984. package/lib/openzeppelin-contracts/test/token/ERC20/utils/SafeERC20.test.js +387 -179
  985. package/lib/openzeppelin-contracts/test/token/ERC6909/ERC6909.behavior.js +216 -0
  986. package/lib/openzeppelin-contracts/test/token/ERC6909/ERC6909.test.js +104 -0
  987. package/lib/openzeppelin-contracts/test/token/ERC6909/extensions/ERC6909ContentURI.test.js +49 -0
  988. package/lib/openzeppelin-contracts/test/token/ERC6909/extensions/ERC6909Metadata.test.js +58 -0
  989. package/lib/openzeppelin-contracts/test/token/ERC6909/extensions/ERC6909TokenSupply.test.js +53 -0
  990. package/lib/openzeppelin-contracts/test/token/ERC721/ERC721.behavior.js +488 -479
  991. package/lib/openzeppelin-contracts/test/token/ERC721/ERC721.test.js +16 -11
  992. package/lib/openzeppelin-contracts/test/token/ERC721/ERC721Enumerable.test.js +16 -8
  993. package/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Burnable.test.js +43 -44
  994. package/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Consecutive.t.sol +80 -19
  995. package/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Consecutive.test.js +179 -176
  996. package/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Pausable.test.js +34 -51
  997. package/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Royalty.test.js +41 -24
  998. package/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721URIStorage.test.js +69 -44
  999. package/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Votes.test.js +187 -167
  1000. package/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Wrapper.test.js +201 -0
  1001. package/lib/openzeppelin-contracts/test/token/ERC721/utils/ERC721Holder.test.js +12 -16
  1002. package/lib/openzeppelin-contracts/test/token/ERC721/utils/ERC721Utils.test.js +94 -0
  1003. package/lib/openzeppelin-contracts/test/token/common/ERC2981.behavior.js +80 -88
  1004. package/lib/openzeppelin-contracts/test/utils/Address.test.js +159 -260
  1005. package/lib/openzeppelin-contracts/test/utils/Arrays.t.sol +31 -0
  1006. package/lib/openzeppelin-contracts/test/utils/Arrays.test.js +217 -95
  1007. package/lib/openzeppelin-contracts/test/utils/Base64.t.sol +34 -0
  1008. package/lib/openzeppelin-contracts/test/utils/Base64.test.js +48 -22
  1009. package/lib/openzeppelin-contracts/test/utils/Blockhash.t.sol +101 -0
  1010. package/lib/openzeppelin-contracts/test/utils/Blockhash.test.js +59 -0
  1011. package/lib/openzeppelin-contracts/test/utils/Bytes.t.sol +74 -0
  1012. package/lib/openzeppelin-contracts/test/utils/Bytes.test.js +212 -0
  1013. package/lib/openzeppelin-contracts/test/utils/CAIP.test.js +56 -0
  1014. package/lib/openzeppelin-contracts/test/utils/Calldata.test.js +22 -0
  1015. package/lib/openzeppelin-contracts/test/utils/Context.behavior.js +26 -20
  1016. package/lib/openzeppelin-contracts/test/utils/Context.test.js +10 -9
  1017. package/lib/openzeppelin-contracts/test/utils/Create2.t.sol +17 -0
  1018. package/lib/openzeppelin-contracts/test/utils/Create2.test.js +147 -49
  1019. package/lib/openzeppelin-contracts/test/utils/Memory.t.sol +21 -0
  1020. package/lib/openzeppelin-contracts/test/utils/Memory.test.js +39 -0
  1021. package/lib/openzeppelin-contracts/test/utils/Multicall.test.js +50 -35
  1022. package/lib/openzeppelin-contracts/test/utils/Nonces.behavior.js +189 -0
  1023. package/lib/openzeppelin-contracts/test/utils/Nonces.test.js +16 -0
  1024. package/lib/openzeppelin-contracts/test/utils/NoncesKeyed.test.js +17 -0
  1025. package/lib/openzeppelin-contracts/test/utils/Packing.t.sol +993 -0
  1026. package/lib/openzeppelin-contracts/test/utils/Packing.test.js +70 -0
  1027. package/lib/openzeppelin-contracts/test/utils/Panic.test.js +37 -0
  1028. package/lib/openzeppelin-contracts/test/utils/Pausable.test.js +90 -0
  1029. package/lib/openzeppelin-contracts/test/utils/ReentrancyGuard.test.js +50 -0
  1030. package/lib/openzeppelin-contracts/test/utils/ShortStrings.t.sol +109 -0
  1031. package/lib/openzeppelin-contracts/test/utils/ShortStrings.test.js +64 -0
  1032. package/lib/openzeppelin-contracts/test/utils/SlotDerivation.t.sol +248 -0
  1033. package/lib/openzeppelin-contracts/test/utils/SlotDerivation.test.js +58 -0
  1034. package/lib/openzeppelin-contracts/test/utils/StorageSlot.test.js +55 -92
  1035. package/lib/openzeppelin-contracts/test/utils/Strings.t.sol +50 -0
  1036. package/lib/openzeppelin-contracts/test/utils/Strings.test.js +323 -49
  1037. package/lib/openzeppelin-contracts/test/utils/TransientSlot.test.js +59 -0
  1038. package/lib/openzeppelin-contracts/test/utils/cryptography/ECDSA.test.js +167 -132
  1039. package/lib/openzeppelin-contracts/test/utils/cryptography/EIP712.test.js +100 -52
  1040. package/lib/openzeppelin-contracts/test/utils/cryptography/ERC1271.behavior.js +111 -0
  1041. package/lib/openzeppelin-contracts/test/utils/cryptography/ERC7739.test.js +42 -0
  1042. package/lib/openzeppelin-contracts/test/utils/cryptography/ERC7739Utils.test.js +203 -0
  1043. package/lib/openzeppelin-contracts/test/utils/cryptography/MerkleProof.test.js +210 -176
  1044. package/lib/openzeppelin-contracts/test/utils/cryptography/MessageHashUtils.t.sol +33 -0
  1045. package/lib/openzeppelin-contracts/test/utils/cryptography/MessageHashUtils.test.js +97 -0
  1046. package/lib/openzeppelin-contracts/test/utils/cryptography/P256.t.sol +65 -0
  1047. package/lib/openzeppelin-contracts/test/utils/cryptography/P256.test.js +182 -0
  1048. package/lib/openzeppelin-contracts/test/utils/cryptography/RSA.helper.js +17 -0
  1049. package/lib/openzeppelin-contracts/test/utils/cryptography/RSA.test.js +102 -0
  1050. package/lib/openzeppelin-contracts/test/utils/cryptography/SigVer15_186-3.rsp +3850 -0
  1051. package/lib/openzeppelin-contracts/test/utils/cryptography/SignatureChecker.test.js +397 -56
  1052. package/lib/openzeppelin-contracts/test/utils/cryptography/ecdsa_secp256r1_sha256_p1363_test.json +3719 -0
  1053. package/lib/openzeppelin-contracts/test/utils/draft-InteroperableAddress.t.sol +99 -0
  1054. package/lib/openzeppelin-contracts/test/utils/draft-InteroperableAddress.test.js +170 -0
  1055. package/lib/openzeppelin-contracts/test/utils/introspection/ERC165.test.js +11 -6
  1056. package/lib/openzeppelin-contracts/test/utils/introspection/ERC165Checker.test.js +84 -142
  1057. package/lib/openzeppelin-contracts/test/utils/introspection/SupportsInterface.behavior.js +109 -90
  1058. package/lib/openzeppelin-contracts/test/utils/math/Math.t.sol +255 -24
  1059. package/lib/openzeppelin-contracts/test/utils/math/Math.test.js +616 -215
  1060. package/lib/openzeppelin-contracts/test/utils/math/SafeCast.test.js +84 -89
  1061. package/lib/openzeppelin-contracts/test/utils/math/SignedMath.t.sol +80 -0
  1062. package/lib/openzeppelin-contracts/test/utils/math/SignedMath.test.js +25 -65
  1063. package/lib/openzeppelin-contracts/test/utils/structs/BitMap.test.js +83 -79
  1064. package/lib/openzeppelin-contracts/test/utils/structs/Checkpoints.t.sol +440 -0
  1065. package/lib/openzeppelin-contracts/test/utils/structs/Checkpoints.test.js +147 -0
  1066. package/lib/openzeppelin-contracts/test/utils/structs/CircularBuffer.test.js +83 -0
  1067. package/lib/openzeppelin-contracts/test/utils/structs/DoubleEndedQueue.test.js +47 -41
  1068. package/lib/openzeppelin-contracts/test/utils/structs/EnumerableMap.behavior.js +122 -89
  1069. package/lib/openzeppelin-contracts/test/utils/structs/EnumerableMap.test.js +70 -73
  1070. package/lib/openzeppelin-contracts/test/utils/structs/EnumerableSet.behavior.js +105 -61
  1071. package/lib/openzeppelin-contracts/test/utils/structs/EnumerableSet.test.js +53 -33
  1072. package/lib/openzeppelin-contracts/test/utils/structs/Heap.t.sol +74 -0
  1073. package/lib/openzeppelin-contracts/test/utils/structs/Heap.test.js +113 -0
  1074. package/lib/openzeppelin-contracts/test/utils/structs/MerkleTree.test.js +180 -0
  1075. package/lib/openzeppelin-contracts/test/utils/types/Time.test.js +135 -0
  1076. package/lib/openzeppelin-contracts-upgradeable/.changeset/all-geese-stand.md +5 -0
  1077. package/lib/openzeppelin-contracts-upgradeable/.changeset/clean-ways-push.md +5 -0
  1078. package/lib/openzeppelin-contracts-upgradeable/.changeset/config.json +12 -0
  1079. package/lib/openzeppelin-contracts-upgradeable/.changeset/dull-students-eat.md +5 -0
  1080. package/lib/openzeppelin-contracts-upgradeable/.changeset/eight-radios-check.md +5 -0
  1081. package/lib/openzeppelin-contracts-upgradeable/.changeset/fine-frogs-bake.md +5 -0
  1082. package/lib/openzeppelin-contracts-upgradeable/.changeset/full-ways-help.md +5 -0
  1083. package/lib/openzeppelin-contracts-upgradeable/.changeset/funny-years-yawn.md +5 -0
  1084. package/lib/openzeppelin-contracts-upgradeable/.changeset/hot-grapes-lie.md +5 -0
  1085. package/lib/openzeppelin-contracts-upgradeable/.changeset/lazy-poets-cheer.md +5 -0
  1086. package/lib/openzeppelin-contracts-upgradeable/.changeset/long-hornets-mate.md +5 -0
  1087. package/lib/openzeppelin-contracts-upgradeable/.changeset/lucky-donuts-scream.md +5 -0
  1088. package/lib/openzeppelin-contracts-upgradeable/.changeset/major-feet-write.md +5 -0
  1089. package/lib/openzeppelin-contracts-upgradeable/.changeset/new-days-tease.md +5 -0
  1090. package/lib/openzeppelin-contracts-upgradeable/.changeset/nice-rings-wish.md +5 -0
  1091. package/lib/openzeppelin-contracts-upgradeable/.changeset/pink-dolls-shop.md +5 -0
  1092. package/lib/openzeppelin-contracts-upgradeable/.changeset/popular-geese-tan.md +5 -0
  1093. package/lib/openzeppelin-contracts-upgradeable/.changeset/proud-tables-sip.md +5 -0
  1094. package/lib/openzeppelin-contracts-upgradeable/.changeset/public-crabs-heal.md +5 -0
  1095. package/lib/openzeppelin-contracts-upgradeable/.changeset/quiet-kiwis-feel.md +5 -0
  1096. package/lib/openzeppelin-contracts-upgradeable/.changeset/rare-shirts-unite.md +5 -0
  1097. package/lib/openzeppelin-contracts-upgradeable/.changeset/rich-cows-repair.md +5 -0
  1098. package/lib/openzeppelin-contracts-upgradeable/.changeset/ripe-bears-hide.md +5 -0
  1099. package/lib/openzeppelin-contracts-upgradeable/.changeset/rotten-apes-lie.md +5 -0
  1100. package/lib/openzeppelin-contracts-upgradeable/.changeset/social-walls-obey.md +5 -0
  1101. package/lib/openzeppelin-contracts-upgradeable/.changeset/sour-pens-shake.md +5 -0
  1102. package/lib/openzeppelin-contracts-upgradeable/.changeset/strong-points-change.md +5 -0
  1103. package/lib/openzeppelin-contracts-upgradeable/.changeset/tame-bears-mix.md +5 -0
  1104. package/lib/openzeppelin-contracts-upgradeable/.changeset/violet-turtles-like.md +5 -0
  1105. package/lib/openzeppelin-contracts-upgradeable/.changeset/wet-dodos-reply.md +5 -0
  1106. package/lib/openzeppelin-contracts-upgradeable/.changeset/whole-plums-speak.md +5 -0
  1107. package/lib/openzeppelin-contracts-upgradeable/.changeset/wild-baths-buy.md +5 -0
  1108. package/lib/openzeppelin-contracts-upgradeable/.codecov.yml +4 -0
  1109. package/lib/openzeppelin-contracts-upgradeable/.github/CODEOWNERS +10 -0
  1110. package/lib/openzeppelin-contracts-upgradeable/.github/ISSUE_TEMPLATE/config.yml +4 -0
  1111. package/lib/openzeppelin-contracts-upgradeable/.github/PULL_REQUEST_TEMPLATE.md +1 -1
  1112. package/lib/openzeppelin-contracts-upgradeable/.github/actions/gas-compare/action.yml +7 -5
  1113. package/lib/openzeppelin-contracts-upgradeable/.github/actions/setup/action.yml +9 -7
  1114. package/lib/openzeppelin-contracts-upgradeable/.github/actions/storage-layout/action.yml +57 -0
  1115. package/lib/openzeppelin-contracts-upgradeable/.github/workflows/actionlint.yml +18 -0
  1116. package/lib/openzeppelin-contracts-upgradeable/.github/workflows/changeset.yml +28 -0
  1117. package/lib/openzeppelin-contracts-upgradeable/.github/workflows/checks.yml +67 -36
  1118. package/lib/openzeppelin-contracts-upgradeable/.github/workflows/docs.yml +1 -1
  1119. package/lib/openzeppelin-contracts-upgradeable/.github/workflows/formal-verification.yml +86 -0
  1120. package/lib/openzeppelin-contracts-upgradeable/.github/workflows/release-cycle.yml +214 -0
  1121. package/lib/openzeppelin-contracts-upgradeable/.github/workflows/upgradeable.yml +34 -0
  1122. package/lib/openzeppelin-contracts-upgradeable/.gitmodules +11 -0
  1123. package/lib/openzeppelin-contracts-upgradeable/.husky/pre-commit +2 -0
  1124. package/lib/openzeppelin-contracts-upgradeable/.prettierrc +5 -4
  1125. package/lib/openzeppelin-contracts-upgradeable/.solcover.js +19 -13
  1126. package/lib/openzeppelin-contracts-upgradeable/CHANGELOG.md +918 -328
  1127. package/lib/openzeppelin-contracts-upgradeable/CODE_OF_CONDUCT.md +2 -2
  1128. package/lib/openzeppelin-contracts-upgradeable/CONTRIBUTING.md +19 -47
  1129. package/lib/openzeppelin-contracts-upgradeable/FUNDING.json +10 -0
  1130. package/lib/openzeppelin-contracts-upgradeable/GUIDELINES.md +115 -65
  1131. package/lib/openzeppelin-contracts-upgradeable/LICENSE +1 -1
  1132. package/lib/openzeppelin-contracts-upgradeable/README.md +55 -47
  1133. package/lib/openzeppelin-contracts-upgradeable/RELEASING.md +32 -23
  1134. package/lib/openzeppelin-contracts-upgradeable/SECURITY.md +34 -11
  1135. package/lib/openzeppelin-contracts-upgradeable/audits/2017-03.md +292 -0
  1136. package/lib/openzeppelin-contracts-upgradeable/audits/2022-10-Checkpoints.pdf +0 -0
  1137. package/lib/openzeppelin-contracts-upgradeable/audits/2022-10-ERC4626.pdf +0 -0
  1138. package/lib/openzeppelin-contracts-upgradeable/audits/2023-05-v4.9.pdf +0 -0
  1139. package/lib/openzeppelin-contracts-upgradeable/audits/2023-10-v5.0.pdf +0 -0
  1140. package/lib/openzeppelin-contracts-upgradeable/audits/2024-10-v5.1.pdf +0 -0
  1141. package/lib/openzeppelin-contracts-upgradeable/audits/2024-12-v5.2.pdf +0 -0
  1142. package/lib/openzeppelin-contracts-upgradeable/audits/2025-04-v5.3.pdf +0 -0
  1143. package/lib/openzeppelin-contracts-upgradeable/audits/README.md +20 -0
  1144. package/lib/openzeppelin-contracts-upgradeable/certora/Makefile +44 -14
  1145. package/lib/openzeppelin-contracts-upgradeable/certora/README.md +43 -39
  1146. package/lib/openzeppelin-contracts-upgradeable/certora/diff/access_manager_AccessManager.sol.patch +97 -0
  1147. package/lib/openzeppelin-contracts-upgradeable/certora/harnesses/AccessControlDefaultAdminRulesHarness.sol +46 -0
  1148. package/lib/openzeppelin-contracts-upgradeable/certora/harnesses/AccessControlHarness.sol +6 -0
  1149. package/lib/openzeppelin-contracts-upgradeable/certora/harnesses/AccessManagedHarness.sol +36 -0
  1150. package/lib/openzeppelin-contracts-upgradeable/certora/harnesses/AccessManagerHarness.sol +116 -0
  1151. package/lib/openzeppelin-contracts-upgradeable/certora/harnesses/DoubleEndedQueueHarness.sol +58 -0
  1152. package/lib/openzeppelin-contracts-upgradeable/certora/harnesses/ERC20FlashMintHarness.sol +36 -0
  1153. package/lib/openzeppelin-contracts-upgradeable/certora/harnesses/ERC20PermitHarness.sol +16 -0
  1154. package/lib/openzeppelin-contracts-upgradeable/certora/harnesses/ERC20WrapperHarness.sol +34 -0
  1155. package/lib/openzeppelin-contracts-upgradeable/certora/harnesses/ERC3156FlashBorrowerHarness.sol +13 -0
  1156. package/lib/openzeppelin-contracts-upgradeable/certora/harnesses/ERC721Harness.sol +33 -0
  1157. package/lib/openzeppelin-contracts-upgradeable/certora/harnesses/ERC721ReceiverHarness.sol +11 -0
  1158. package/lib/openzeppelin-contracts-upgradeable/certora/harnesses/EnumerableMapHarness.sol +55 -0
  1159. package/lib/openzeppelin-contracts-upgradeable/certora/harnesses/EnumerableSetHarness.sol +35 -0
  1160. package/lib/openzeppelin-contracts-upgradeable/certora/harnesses/InitializableHarness.sol +23 -0
  1161. package/lib/openzeppelin-contracts-upgradeable/certora/harnesses/NoncesHarness.sol +14 -0
  1162. package/lib/openzeppelin-contracts-upgradeable/certora/harnesses/Ownable2StepHarness.sol +10 -0
  1163. package/lib/openzeppelin-contracts-upgradeable/certora/harnesses/OwnableHarness.sol +10 -0
  1164. package/lib/openzeppelin-contracts-upgradeable/certora/harnesses/PausableHarness.sol +18 -0
  1165. package/lib/openzeppelin-contracts-upgradeable/certora/harnesses/TimelockControllerHarness.sol +13 -0
  1166. package/lib/openzeppelin-contracts-upgradeable/certora/reports/2021-10.pdf +0 -0
  1167. package/lib/openzeppelin-contracts-upgradeable/certora/reports/2022-03.pdf +0 -0
  1168. package/lib/openzeppelin-contracts-upgradeable/certora/reports/2022-05.pdf +0 -0
  1169. package/lib/openzeppelin-contracts-upgradeable/certora/run.js +168 -0
  1170. package/lib/openzeppelin-contracts-upgradeable/certora/specs/AccessControl.spec +119 -0
  1171. package/lib/openzeppelin-contracts-upgradeable/certora/specs/AccessControlDefaultAdminRules.spec +464 -0
  1172. package/lib/openzeppelin-contracts-upgradeable/certora/specs/AccessManaged.spec +34 -0
  1173. package/lib/openzeppelin-contracts-upgradeable/certora/specs/AccessManager.spec +826 -0
  1174. package/lib/openzeppelin-contracts-upgradeable/certora/specs/DoubleEndedQueue.spec +300 -0
  1175. package/lib/openzeppelin-contracts-upgradeable/certora/specs/ERC20.spec +352 -0
  1176. package/lib/openzeppelin-contracts-upgradeable/certora/specs/ERC20FlashMint.spec +55 -0
  1177. package/lib/openzeppelin-contracts-upgradeable/certora/specs/ERC20Wrapper.spec +198 -0
  1178. package/lib/openzeppelin-contracts-upgradeable/certora/specs/ERC721.spec +679 -0
  1179. package/lib/openzeppelin-contracts-upgradeable/certora/specs/EnumerableMap.spec +333 -0
  1180. package/lib/openzeppelin-contracts-upgradeable/certora/specs/EnumerableSet.spec +246 -0
  1181. package/lib/openzeppelin-contracts-upgradeable/certora/specs/Initializable.spec +165 -0
  1182. package/lib/openzeppelin-contracts-upgradeable/certora/specs/Nonces.spec +92 -0
  1183. package/lib/openzeppelin-contracts-upgradeable/certora/specs/Ownable.spec +77 -0
  1184. package/lib/openzeppelin-contracts-upgradeable/certora/specs/Ownable2Step.spec +108 -0
  1185. package/lib/openzeppelin-contracts-upgradeable/certora/specs/Pausable.spec +96 -0
  1186. package/lib/openzeppelin-contracts-upgradeable/certora/specs/TimelockController.spec +274 -0
  1187. package/lib/openzeppelin-contracts-upgradeable/certora/specs/helpers/helpers.spec +12 -0
  1188. package/lib/openzeppelin-contracts-upgradeable/certora/specs/methods/IAccessControl.spec +8 -0
  1189. package/lib/openzeppelin-contracts-upgradeable/certora/specs/methods/IAccessControlDefaultAdminRules.spec +36 -0
  1190. package/lib/openzeppelin-contracts-upgradeable/certora/specs/methods/IAccessManaged.spec +5 -0
  1191. package/lib/openzeppelin-contracts-upgradeable/certora/specs/methods/IAccessManager.spec +33 -0
  1192. package/lib/openzeppelin-contracts-upgradeable/certora/specs/methods/IERC20.spec +11 -0
  1193. package/lib/openzeppelin-contracts-upgradeable/certora/specs/methods/IERC2612.spec +5 -0
  1194. package/lib/openzeppelin-contracts-upgradeable/certora/specs/methods/IERC3156FlashBorrower.spec +3 -0
  1195. package/lib/openzeppelin-contracts-upgradeable/certora/specs/methods/IERC3156FlashLender.spec +5 -0
  1196. package/lib/openzeppelin-contracts-upgradeable/certora/specs/methods/IERC5313.spec +3 -0
  1197. package/lib/openzeppelin-contracts-upgradeable/certora/specs/methods/IERC721.spec +17 -0
  1198. package/lib/openzeppelin-contracts-upgradeable/certora/specs/methods/IERC721Receiver.spec +3 -0
  1199. package/lib/openzeppelin-contracts-upgradeable/certora/specs/methods/IOwnable.spec +5 -0
  1200. package/lib/openzeppelin-contracts-upgradeable/certora/specs/methods/IOwnable2Step.spec +7 -0
  1201. package/lib/openzeppelin-contracts-upgradeable/certora/specs.json +110 -0
  1202. package/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol +71 -99
  1203. package/lib/openzeppelin-contracts-upgradeable/contracts/access/Ownable2StepUpgradeable.sol +38 -21
  1204. package/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol +50 -26
  1205. package/lib/openzeppelin-contracts-upgradeable/contracts/access/README.adoc +23 -3
  1206. package/lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlDefaultAdminRulesUpgradeable.sol +401 -0
  1207. package/lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol +104 -0
  1208. package/lib/openzeppelin-contracts-upgradeable/contracts/access/manager/AccessManagedUpgradeable.sol +133 -0
  1209. package/lib/openzeppelin-contracts-upgradeable/contracts/access/manager/AccessManagerUpgradeable.sol +783 -0
  1210. package/lib/openzeppelin-contracts-upgradeable/contracts/account/README.adoc +30 -0
  1211. package/lib/openzeppelin-contracts-upgradeable/contracts/account/extensions/draft-AccountERC7579HookedUpgradeable.sol +127 -0
  1212. package/lib/openzeppelin-contracts-upgradeable/contracts/account/extensions/draft-AccountERC7579Upgradeable.sol +426 -0
  1213. package/lib/openzeppelin-contracts-upgradeable/contracts/finance/README.adoc +1 -7
  1214. package/lib/openzeppelin-contracts-upgradeable/contracts/finance/VestingWalletCliffUpgradeable.sol +73 -0
  1215. package/lib/openzeppelin-contracts-upgradeable/contracts/finance/VestingWalletUpgradeable.sol +79 -59
  1216. package/lib/openzeppelin-contracts-upgradeable/contracts/governance/GovernorUpgradeable.sol +509 -269
  1217. package/lib/openzeppelin-contracts-upgradeable/contracts/governance/README.adoc +37 -16
  1218. package/lib/openzeppelin-contracts-upgradeable/contracts/governance/TimelockControllerUpgradeable.sol +186 -131
  1219. package/lib/openzeppelin-contracts-upgradeable/contracts/governance/extensions/GovernorCountingFractionalUpgradeable.sol +214 -0
  1220. package/lib/openzeppelin-contracts-upgradeable/contracts/governance/extensions/GovernorCountingOverridableUpgradeable.sol +248 -0
  1221. package/lib/openzeppelin-contracts-upgradeable/contracts/governance/extensions/GovernorCountingSimpleUpgradeable.sol +51 -51
  1222. package/lib/openzeppelin-contracts-upgradeable/contracts/governance/extensions/GovernorNoncesKeyedUpgradeable.sol +96 -0
  1223. package/lib/openzeppelin-contracts-upgradeable/contracts/governance/extensions/GovernorPreventLateQuorumUpgradeable.sol +46 -53
  1224. package/lib/openzeppelin-contracts-upgradeable/contracts/governance/extensions/GovernorProposalGuardianUpgradeable.sol +78 -0
  1225. package/lib/openzeppelin-contracts-upgradeable/contracts/governance/extensions/GovernorSequentialProposalIdUpgradeable.sol +98 -0
  1226. package/lib/openzeppelin-contracts-upgradeable/contracts/governance/extensions/GovernorSettingsUpgradeable.sol +50 -50
  1227. package/lib/openzeppelin-contracts-upgradeable/contracts/governance/extensions/GovernorStorageUpgradeable.sol +150 -0
  1228. package/lib/openzeppelin-contracts-upgradeable/contracts/governance/extensions/GovernorSuperQuorumUpgradeable.sol +64 -0
  1229. package/lib/openzeppelin-contracts-upgradeable/contracts/governance/extensions/GovernorTimelockAccessUpgradeable.sol +376 -0
  1230. package/lib/openzeppelin-contracts-upgradeable/contracts/governance/extensions/GovernorTimelockCompoundUpgradeable.sol +77 -91
  1231. package/lib/openzeppelin-contracts-upgradeable/contracts/governance/extensions/GovernorTimelockControlUpgradeable.sol +84 -70
  1232. package/lib/openzeppelin-contracts-upgradeable/contracts/governance/extensions/GovernorVotesQuorumFractionUpgradeable.sol +51 -49
  1233. package/lib/openzeppelin-contracts-upgradeable/contracts/governance/extensions/GovernorVotesSuperQuorumFractionUpgradeable.sol +155 -0
  1234. package/lib/openzeppelin-contracts-upgradeable/contracts/governance/extensions/GovernorVotesUpgradeable.sol +60 -23
  1235. package/lib/openzeppelin-contracts-upgradeable/contracts/governance/utils/VotesExtendedUpgradeable.sol +106 -0
  1236. package/lib/openzeppelin-contracts-upgradeable/contracts/governance/utils/VotesUpgradeable.sol +143 -87
  1237. package/lib/openzeppelin-contracts-upgradeable/contracts/interfaces/README.adoc +50 -1
  1238. package/lib/openzeppelin-contracts-upgradeable/contracts/metatx/ERC2771ContextUpgradeable.sol +60 -20
  1239. package/lib/openzeppelin-contracts-upgradeable/contracts/metatx/ERC2771ForwarderUpgradeable.sol +380 -0
  1240. package/lib/openzeppelin-contracts-upgradeable/contracts/metatx/README.adoc +6 -1
  1241. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/AccessManagedTargetUpgradeable.sol +40 -0
  1242. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/AccessManagerMockUpgradeable.sol +25 -0
  1243. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ArraysMockUpgradeable.sol +133 -26
  1244. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/AuthorityMockUpgradeable.sol +95 -0
  1245. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/Base64DirtyUpgradeable.sol +25 -0
  1246. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/BatchCallerUpgradeable.sol +26 -0
  1247. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/CallReceiverMockUpgradeable.sol +35 -17
  1248. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ConstructorMockUpgradeable.sol +39 -0
  1249. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ContextMockUpgradeable.sol +11 -23
  1250. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/DummyImplementationUpgradeable.sol +14 -31
  1251. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/EIP712VerifierUpgradeable.sol +22 -0
  1252. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ERC1271WalletMockUpgradeable.sol +12 -29
  1253. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ERC165/ERC165InterfacesSupportedUpgradeable.sol +6 -20
  1254. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ERC165/ERC165MaliciousDataUpgradeable.sol +2 -9
  1255. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ERC165/ERC165MissingDataUpgradeable.sol +2 -9
  1256. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ERC165/ERC165NotSupportedUpgradeable.sol +2 -9
  1257. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ERC165/ERC165ReturnBombUpgradeable.sol +5 -12
  1258. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ERC2771ContextMockUpgradeable.sol +10 -11
  1259. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ERC3156FlashBorrowerMockUpgradeable.sol +12 -19
  1260. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/EtherReceiverMockUpgradeable.sol +4 -11
  1261. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/InitializableMock.sol +6 -6
  1262. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/MerkleProofCustomHashMockUpgradeable.sol +68 -0
  1263. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/MerkleTreeMockUpgradeable.sol +58 -0
  1264. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/MulticallHelperUpgradeable.sol +29 -0
  1265. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/MultipleInheritanceInitializableMocks.sol +7 -12
  1266. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/PausableMockUpgradeable.sol +3 -11
  1267. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ReentrancyAttackUpgradeable.sol +5 -12
  1268. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ReentrancyMockUpgradeable.sol +13 -13
  1269. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ReentrancyTransientMockUpgradeable.sol +55 -0
  1270. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/RegressionImplementation.sol +2 -2
  1271. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/SingleInheritanceInitializableMocks.sol +2 -2
  1272. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/StatelessUpgradeable.sol +61 -0
  1273. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/StorageSlotMockUpgradeable.sol +62 -23
  1274. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/TimelockReentrantUpgradeable.sol +32 -0
  1275. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/TransientSlotMockUpgradeable.sol +67 -0
  1276. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/UpgradeableBeaconMockUpgradeable.sol +34 -0
  1277. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/VotesExtendedMockUpgradeable.sol +53 -0
  1278. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/VotesMockUpgradeable.sol +28 -27
  1279. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/WithInit.sol +849 -740
  1280. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/account/AccountMockUpgradeable.sol +223 -0
  1281. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/account/modules/ERC7579MockUpgradeable.sol +138 -0
  1282. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/account/utils/ERC7579UtilsMockUpgradeable.sol +29 -0
  1283. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/compound/CompTimelockUpgradeable.sol +2 -9
  1284. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/docs/ERC20WithAutoMinerRewardUpgradeable.sol +28 -0
  1285. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/docs/ERC4626FeesUpgradeable.sol +115 -0
  1286. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/docs/MyNFTUpgradeable.sol +14 -0
  1287. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/docs/access-control/AccessControlERC20MintBaseUpgradeable.sol +31 -0
  1288. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/docs/access-control/AccessControlERC20MintMissingUpgradeable.sol +30 -0
  1289. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/docs/access-control/AccessControlERC20MintOnlyRoleUpgradeable.sol +29 -0
  1290. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/docs/access-control/AccessControlModifiedUpgradeable.sol +20 -0
  1291. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/docs/access-control/AccessManagedERC20MintBaseUpgradeable.sol +22 -0
  1292. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/docs/access-control/MyContractOwnableUpgradeable.sol +22 -0
  1293. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/docs/account/MyAccountERC7702Upgradeable.sol +26 -0
  1294. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/docs/account/MyFactoryAccountUpgradeable.sol +42 -0
  1295. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/docs/governance/MyGovernorUpgradeable.sol +92 -0
  1296. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/docs/governance/MyTokenTimestampBasedUpgradeable.sol +39 -0
  1297. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/docs/governance/MyTokenUpgradeable.sol +28 -0
  1298. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/docs/governance/MyTokenWrappedUpgradeable.sol +39 -0
  1299. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/docs/token/ERC1155/GameItemsUpgradeable.sol +27 -0
  1300. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/docs/token/ERC1155/MyERC115HolderContractUpgradeable.sol +13 -0
  1301. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/docs/token/ERC20/GLDTokenUpgradeable.sol +17 -0
  1302. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/docs/token/ERC6909/ERC6909GameItemsUpgradeable.sol +31 -0
  1303. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/docs/token/ERC721/GameItemUpgradeable.sol +24 -0
  1304. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/docs/utilities/Base64NFTUpgradeable.sol +32 -0
  1305. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/docs/utilities/MulticallUpgradeable.sol +21 -0
  1306. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/governance/GovernorCountingOverridableMockUpgradeable.sol +24 -0
  1307. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/governance/GovernorFractionalMockUpgradeable.sol +20 -0
  1308. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/governance/GovernorMockUpgradeable.sol +20 -0
  1309. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/governance/GovernorNoncesKeyedMockUpgradeable.sol +51 -0
  1310. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/governance/GovernorPreventLateQuorumMockUpgradeable.sol +45 -0
  1311. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/governance/GovernorProposalGuardianMockUpgradeable.sol +33 -0
  1312. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/governance/GovernorSequentialProposalIdMockUpgradeable.sol +45 -0
  1313. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/governance/GovernorStorageMockUpgradeable.sol +85 -0
  1314. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/governance/GovernorSuperQuorumMockUpgradeable.sol +100 -0
  1315. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/governance/GovernorTimelockAccessMockUpgradeable.sol +76 -0
  1316. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/governance/GovernorTimelockCompoundMockUpgradeable.sol +75 -0
  1317. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/governance/GovernorTimelockControlMockUpgradeable.sol +75 -0
  1318. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/governance/GovernorVoteMockUpgradeable.sol +26 -0
  1319. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/governance/GovernorVotesSuperQuorumFractionMockUpgradeable.sol +43 -0
  1320. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/governance/GovernorWithParamsMockUpgradeable.sol +57 -0
  1321. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/proxy/BadBeaconUpgradeable.sol +22 -0
  1322. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/proxy/ClashingImplementationUpgradeable.sol +25 -0
  1323. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/proxy/UUPSUpgradeableMockUpgradeable.sol +56 -0
  1324. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/token/ERC1155ReceiverMockUpgradeable.sol +79 -0
  1325. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/token/ERC1363ForceApproveMockUpgradeable.sol +19 -0
  1326. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/token/ERC1363NoReturnMockUpgradeable.sol +39 -0
  1327. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/token/ERC1363ReceiverMockUpgradeable.sol +57 -0
  1328. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/token/ERC1363ReturnFalseMockUpgradeable.sol +46 -0
  1329. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/token/ERC1363SpenderMockUpgradeable.sol +52 -0
  1330. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/token/ERC20ApprovalMockUpgradeable.sol +16 -0
  1331. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/token/ERC20BridgeableMockUpgradeable.sol +31 -0
  1332. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/token/ERC20DecimalsMockUpgradeable.sol +22 -0
  1333. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/token/ERC20ExcessDecimalsMockUpgradeable.sol +15 -0
  1334. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/token/ERC20FlashMintMockUpgradeable.sol +32 -0
  1335. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/token/ERC20ForceApproveMockUpgradeable.sol +19 -0
  1336. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/token/ERC20GetterHelperUpgradeable.sol +44 -0
  1337. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/token/ERC20MockUpgradeable.sol +21 -0
  1338. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/token/ERC20MulticallMockUpgradeable.sol +14 -0
  1339. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/token/ERC20NoReturnMockUpgradeable.sol +34 -0
  1340. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/token/ERC20ReentrantUpgradeable.sol +46 -0
  1341. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/token/ERC20ReturnFalseMockUpgradeable.sol +25 -0
  1342. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/token/ERC20VotesAdditionalCheckpointsMockUpgradeable.sol +42 -0
  1343. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/token/ERC20VotesLegacyMockUpgradeable.sol +259 -0
  1344. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/token/ERC20VotesTimestampMockUpgradeable.sol +40 -0
  1345. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/token/ERC4626LimitsMockUpgradeable.sol +28 -0
  1346. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/token/ERC4626MockUpgradeable.sol +24 -0
  1347. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/token/ERC4626OffsetMockUpgradeable.sol +22 -0
  1348. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/token/ERC4646FeesMockUpgradeable.sol +50 -0
  1349. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/token/ERC721ConsecutiveEnumerableMockUpgradeable.sol +53 -0
  1350. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/token/ERC721ConsecutiveMockUpgradeable.sol +80 -0
  1351. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/token/ERC721ReceiverMockUpgradeable.sol +52 -0
  1352. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/token/ERC721URIStorageMockUpgradeable.sol +23 -0
  1353. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/utils/cryptography/ERC7739MockUpgradeable.sol +29 -0
  1354. package/lib/openzeppelin-contracts-upgradeable/contracts/package.json +7 -4
  1355. package/lib/openzeppelin-contracts-upgradeable/contracts/proxy/README.adoc +13 -11
  1356. package/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol +108 -35
  1357. package/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol +84 -40
  1358. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol +227 -343
  1359. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/README.adoc +6 -12
  1360. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155BurnableUpgradeable.sol +12 -31
  1361. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155PausableUpgradeable.sol +12 -26
  1362. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155SupplyUpgradeable.sol +63 -31
  1363. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155URIStorageUpgradeable.sol +37 -30
  1364. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/utils/ERC1155HolderUpgradeable.sol +13 -15
  1365. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol +168 -239
  1366. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/README.adoc +28 -36
  1367. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC1363Upgradeable.sol +142 -0
  1368. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20BurnableUpgradeable.sol +14 -21
  1369. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20CappedUpgradeable.sol +45 -23
  1370. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20FlashMintUpgradeable.sol +60 -42
  1371. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20PausableUpgradeable.sol +10 -24
  1372. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20PermitUpgradeable.sol +82 -0
  1373. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20VotesUpgradeable.sol +46 -245
  1374. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20WrapperUpgradeable.sol +71 -34
  1375. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC4626Upgradeable.sol +156 -148
  1376. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-ERC20BridgeableUpgradeable.sol +57 -0
  1377. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-ERC20TemporaryApprovalUpgradeable.sol +126 -0
  1378. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC6909/README.adoc +27 -0
  1379. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC6909/draft-ERC6909Upgradeable.sol +250 -0
  1380. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC6909/extensions/draft-ERC6909ContentURIUpgradeable.sol +75 -0
  1381. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC6909/extensions/draft-ERC6909MetadataUpgradeable.sol +101 -0
  1382. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC6909/extensions/draft-ERC6909TokenSupplyUpgradeable.sol +55 -0
  1383. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol +288 -347
  1384. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/README.adoc +11 -12
  1385. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol +10 -17
  1386. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721ConsecutiveUpgradeable.sol +106 -69
  1387. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721EnumerableUpgradeable.sol +100 -83
  1388. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721PausableUpgradeable.sol +13 -24
  1389. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721RoyaltyUpgradeable.sol +11 -30
  1390. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721URIStorageUpgradeable.sol +45 -42
  1391. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721VotesUpgradeable.sol +20 -21
  1392. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721WrapperUpgradeable.sol +122 -0
  1393. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/utils/ERC721HolderUpgradeable.sol +8 -19
  1394. package/lib/openzeppelin-contracts-upgradeable/contracts/token/common/ERC2981Upgradeable.sol +86 -47
  1395. package/lib/openzeppelin-contracts-upgradeable/contracts/token/common/README.adoc +2 -2
  1396. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol +6 -9
  1397. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/MulticallUpgradeable.sol +20 -28
  1398. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/NoncesKeyedUpgradeable.sol +94 -0
  1399. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/NoncesUpgradeable.sol +66 -0
  1400. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol +133 -0
  1401. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/README.adoc +79 -45
  1402. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol +67 -0
  1403. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol +108 -0
  1404. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol +127 -41
  1405. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/README.adoc +67 -0
  1406. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/signers/MultiSignerERC7913Upgradeable.sol +276 -0
  1407. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/signers/MultiSignerERC7913WeightedUpgradeable.sol +229 -0
  1408. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/signers/SignerECDSAUpgradeable.sol +74 -0
  1409. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/signers/SignerERC7913Upgradeable.sol +81 -0
  1410. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/signers/SignerP256Upgradeable.sol +82 -0
  1411. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/signers/SignerRSAUpgradeable.sol +83 -0
  1412. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/signers/draft-ERC7739Upgradeable.sol +104 -0
  1413. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol +9 -20
  1414. package/lib/openzeppelin-contracts-upgradeable/docs/antora.yml +2 -1
  1415. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/access-control-multiple.svg +97 -0
  1416. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/access-manager-functions.svg +47 -0
  1417. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/access-manager.svg +99 -0
  1418. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-attack-3a.png +0 -0
  1419. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-attack-3b.png +0 -0
  1420. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-attack-6.png +0 -0
  1421. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-attack.png +0 -0
  1422. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-deposit.png +0 -0
  1423. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-mint.png +0 -0
  1424. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-rate-linear.png +0 -0
  1425. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-rate-loglog.png +0 -0
  1426. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-rate-loglogext.png +0 -0
  1427. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/nav.adoc +13 -7
  1428. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/pages/access-control.adoc +168 -97
  1429. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/pages/account-abstraction.adoc +100 -0
  1430. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/pages/accounts.adoc +354 -0
  1431. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/pages/backwards-compatibility.adoc +50 -0
  1432. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/pages/eoa-delegation.adoc +143 -0
  1433. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/pages/erc1155.adoc +19 -54
  1434. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/pages/erc20-supply.adoc +13 -55
  1435. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/pages/erc20.adoc +7 -25
  1436. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/pages/erc4626.adoc +214 -0
  1437. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/pages/erc6909.adoc +47 -0
  1438. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/pages/erc721.adoc +10 -42
  1439. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/pages/extending-contracts.adoc +4 -82
  1440. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/pages/faq.adoc +13 -0
  1441. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/pages/governance.adoc +85 -167
  1442. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/pages/index.adoc +19 -12
  1443. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/pages/multisig.adoc +306 -0
  1444. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/pages/tokens.adoc +4 -5
  1445. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/pages/upgradeable.adoc +14 -10
  1446. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/pages/utilities.adoc +482 -81
  1447. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/pages/wizard.adoc +1 -1
  1448. package/lib/openzeppelin-contracts-upgradeable/docs/templates/contract.hbs +57 -1
  1449. package/lib/openzeppelin-contracts-upgradeable/docs/templates/helpers.js +8 -8
  1450. package/lib/openzeppelin-contracts-upgradeable/docs/templates/properties.js +47 -8
  1451. package/lib/openzeppelin-contracts-upgradeable/eslint.config.mjs +26 -0
  1452. package/lib/openzeppelin-contracts-upgradeable/foundry.toml +15 -0
  1453. package/lib/openzeppelin-contracts-upgradeable/fv-requirements.txt +4 -0
  1454. package/lib/openzeppelin-contracts-upgradeable/hardhat/async-test-sanity.js +10 -0
  1455. package/lib/openzeppelin-contracts-upgradeable/hardhat/common-contracts.js +69 -0
  1456. package/lib/openzeppelin-contracts-upgradeable/hardhat/env-artifacts.js +15 -6
  1457. package/lib/openzeppelin-contracts-upgradeable/hardhat/ignore-unreachable-warnings.js +2 -4
  1458. package/lib/openzeppelin-contracts-upgradeable/hardhat/remappings.js +18 -0
  1459. package/lib/openzeppelin-contracts-upgradeable/hardhat/skip-foundry-tests.js +3 -4
  1460. package/lib/openzeppelin-contracts-upgradeable/hardhat/task-test-get-files.js +22 -16
  1461. package/lib/openzeppelin-contracts-upgradeable/hardhat.config.js +67 -49
  1462. package/lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/ERC4626.prop.sol +404 -0
  1463. package/lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/ERC4626.test.sol +356 -0
  1464. package/lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/LICENSE +661 -0
  1465. package/lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/README.md +116 -0
  1466. package/lib/openzeppelin-contracts-upgradeable/lib/forge-std/.gitattributes +1 -0
  1467. package/lib/openzeppelin-contracts-upgradeable/lib/forge-std/.github/workflows/ci.yml +48 -12
  1468. package/lib/openzeppelin-contracts-upgradeable/lib/forge-std/.github/workflows/sync.yml +31 -0
  1469. package/lib/openzeppelin-contracts-upgradeable/lib/forge-std/CONTRIBUTING.md +193 -0
  1470. package/lib/openzeppelin-contracts-upgradeable/lib/forge-std/README.md +19 -3
  1471. package/lib/openzeppelin-contracts-upgradeable/lib/forge-std/foundry.toml +5 -3
  1472. package/lib/openzeppelin-contracts-upgradeable/lib/forge-std/package.json +2 -2
  1473. package/lib/openzeppelin-contracts-upgradeable/lib/forge-std/scripts/vm.py +646 -0
  1474. package/lib/openzeppelin-contracts-upgradeable/lib/forge-std/src/Base.sol +7 -3
  1475. package/lib/openzeppelin-contracts-upgradeable/lib/forge-std/src/Script.sol +4 -3
  1476. package/lib/openzeppelin-contracts-upgradeable/lib/forge-std/src/StdAssertions.sol +595 -135
  1477. package/lib/openzeppelin-contracts-upgradeable/lib/forge-std/src/StdChains.sol +146 -48
  1478. package/lib/openzeppelin-contracts-upgradeable/lib/forge-std/src/StdCheats.sol +303 -39
  1479. package/lib/openzeppelin-contracts-upgradeable/lib/forge-std/src/StdInvariant.sol +122 -0
  1480. package/lib/openzeppelin-contracts-upgradeable/lib/forge-std/src/StdJson.sol +129 -25
  1481. package/lib/openzeppelin-contracts-upgradeable/lib/forge-std/src/StdStorage.sol +245 -99
  1482. package/lib/openzeppelin-contracts-upgradeable/lib/forge-std/src/StdStyle.sol +333 -0
  1483. package/lib/openzeppelin-contracts-upgradeable/lib/forge-std/src/StdToml.sol +283 -0
  1484. package/lib/openzeppelin-contracts-upgradeable/lib/forge-std/src/StdUtils.sol +125 -39
  1485. package/lib/openzeppelin-contracts-upgradeable/lib/forge-std/src/Test.sol +10 -5
  1486. package/lib/openzeppelin-contracts-upgradeable/lib/forge-std/src/Vm.sol +2182 -304
  1487. package/lib/openzeppelin-contracts-upgradeable/lib/forge-std/src/console.sol +635 -608
  1488. package/lib/openzeppelin-contracts-upgradeable/lib/forge-std/src/console2.sol +1 -1543
  1489. package/lib/openzeppelin-contracts-upgradeable/lib/forge-std/src/interfaces/IERC4626.sol +2 -2
  1490. package/lib/openzeppelin-contracts-upgradeable/lib/forge-std/src/interfaces/IMulticall3.sol +73 -0
  1491. package/lib/openzeppelin-contracts-upgradeable/lib/forge-std/src/safeconsole.sol +13937 -0
  1492. package/lib/openzeppelin-contracts-upgradeable/lib/forge-std/test/StdAssertions.t.sol +126 -572
  1493. package/lib/openzeppelin-contracts-upgradeable/lib/forge-std/test/StdChains.t.sol +166 -62
  1494. package/lib/openzeppelin-contracts-upgradeable/lib/forge-std/test/StdCheats.t.sol +348 -35
  1495. package/lib/openzeppelin-contracts-upgradeable/lib/forge-std/test/StdError.t.sol +15 -13
  1496. package/lib/openzeppelin-contracts-upgradeable/lib/forge-std/test/StdJson.t.sol +49 -0
  1497. package/lib/openzeppelin-contracts-upgradeable/lib/forge-std/test/StdMath.t.sol +31 -26
  1498. package/lib/openzeppelin-contracts-upgradeable/lib/forge-std/test/StdStorage.t.sol +251 -46
  1499. package/lib/openzeppelin-contracts-upgradeable/lib/forge-std/test/StdStyle.t.sol +110 -0
  1500. package/lib/openzeppelin-contracts-upgradeable/lib/forge-std/test/StdToml.t.sol +49 -0
  1501. package/lib/openzeppelin-contracts-upgradeable/lib/forge-std/test/StdUtils.t.sol +186 -35
  1502. package/lib/openzeppelin-contracts-upgradeable/lib/forge-std/test/Vm.t.sol +18 -0
  1503. package/lib/openzeppelin-contracts-upgradeable/lib/forge-std/test/fixtures/test.json +8 -0
  1504. package/lib/openzeppelin-contracts-upgradeable/lib/forge-std/test/fixtures/test.toml +6 -0
  1505. package/lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/LICENSE +661 -0
  1506. package/lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/README.md +97 -0
  1507. package/lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/SVM.sol +49 -0
  1508. package/lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/SymTest.sol +11 -0
  1509. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.changeset/all-geese-stand.md +5 -0
  1510. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.changeset/clean-ways-push.md +5 -0
  1511. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.changeset/config.json +12 -0
  1512. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.changeset/dull-students-eat.md +5 -0
  1513. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.changeset/eight-radios-check.md +5 -0
  1514. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.changeset/fine-frogs-bake.md +5 -0
  1515. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.changeset/full-ways-help.md +5 -0
  1516. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.changeset/funny-years-yawn.md +5 -0
  1517. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.changeset/hot-grapes-lie.md +5 -0
  1518. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.changeset/lazy-poets-cheer.md +5 -0
  1519. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.changeset/long-hornets-mate.md +5 -0
  1520. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.changeset/lucky-donuts-scream.md +5 -0
  1521. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.changeset/major-feet-write.md +5 -0
  1522. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.changeset/new-days-tease.md +5 -0
  1523. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.changeset/nice-rings-wish.md +5 -0
  1524. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.changeset/pink-dolls-shop.md +5 -0
  1525. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.changeset/popular-geese-tan.md +5 -0
  1526. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.changeset/proud-tables-sip.md +5 -0
  1527. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.changeset/public-crabs-heal.md +5 -0
  1528. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.changeset/quiet-kiwis-feel.md +5 -0
  1529. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.changeset/rare-shirts-unite.md +5 -0
  1530. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.changeset/rich-cows-repair.md +5 -0
  1531. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.changeset/ripe-bears-hide.md +5 -0
  1532. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.changeset/rotten-apes-lie.md +5 -0
  1533. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.changeset/social-walls-obey.md +5 -0
  1534. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.changeset/sour-pens-shake.md +5 -0
  1535. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.changeset/strong-points-change.md +5 -0
  1536. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.changeset/tame-bears-mix.md +5 -0
  1537. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.changeset/violet-turtles-like.md +5 -0
  1538. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.changeset/wet-dodos-reply.md +5 -0
  1539. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.changeset/whole-plums-speak.md +5 -0
  1540. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.changeset/wild-baths-buy.md +5 -0
  1541. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.codecov.yml +16 -0
  1542. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.editorconfig +21 -0
  1543. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.github/CODEOWNERS +10 -0
  1544. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.github/ISSUE_TEMPLATE/bug_report.md +21 -0
  1545. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.github/ISSUE_TEMPLATE/config.yml +4 -0
  1546. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.github/PULL_REQUEST_TEMPLATE.md +20 -0
  1547. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.github/actions/gas-compare/action.yml +51 -0
  1548. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.github/actions/setup/action.yml +22 -0
  1549. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.github/actions/storage-layout/action.yml +57 -0
  1550. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.github/workflows/actionlint.yml +18 -0
  1551. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.github/workflows/changeset.yml +28 -0
  1552. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.github/workflows/checks.yml +132 -0
  1553. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.github/workflows/docs.yml +19 -0
  1554. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.github/workflows/formal-verification.yml +86 -0
  1555. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.github/workflows/release-cycle.yml +214 -0
  1556. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.github/workflows/upgradeable.yml +34 -0
  1557. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.gitmodules +10 -0
  1558. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.husky/pre-commit +2 -0
  1559. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.mocharc.js +4 -0
  1560. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.prettierrc +15 -0
  1561. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.solcover.js +21 -0
  1562. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/CHANGELOG.md +1220 -0
  1563. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/CODE_OF_CONDUCT.md +73 -0
  1564. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/CONTRIBUTING.md +36 -0
  1565. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/FUNDING.json +10 -0
  1566. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/GUIDELINES.md +155 -0
  1567. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/LICENSE +22 -0
  1568. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/README.md +108 -0
  1569. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/RELEASING.md +45 -0
  1570. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/SECURITY.md +43 -0
  1571. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/audits/2017-03.md +292 -0
  1572. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/audits/2022-10-Checkpoints.pdf +0 -0
  1573. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/audits/2022-10-ERC4626.pdf +0 -0
  1574. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/audits/2023-05-v4.9.pdf +0 -0
  1575. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/audits/2023-10-v5.0.pdf +0 -0
  1576. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/audits/2024-10-v5.1.pdf +0 -0
  1577. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/audits/2024-12-v5.2.pdf +0 -0
  1578. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/audits/2025-04-v5.3.pdf +0 -0
  1579. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/audits/README.md +20 -0
  1580. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/Makefile +54 -0
  1581. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/README.md +60 -0
  1582. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/diff/access_manager_AccessManager.sol.patch +97 -0
  1583. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/harnesses/AccessControlDefaultAdminRulesHarness.sol +46 -0
  1584. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/harnesses/AccessControlHarness.sol +6 -0
  1585. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/harnesses/AccessManagedHarness.sol +36 -0
  1586. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/harnesses/AccessManagerHarness.sol +116 -0
  1587. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/harnesses/DoubleEndedQueueHarness.sol +58 -0
  1588. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/harnesses/ERC20FlashMintHarness.sol +36 -0
  1589. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/harnesses/ERC20PermitHarness.sol +16 -0
  1590. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/harnesses/ERC20WrapperHarness.sol +34 -0
  1591. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/harnesses/ERC3156FlashBorrowerHarness.sol +13 -0
  1592. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/harnesses/ERC721Harness.sol +33 -0
  1593. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/harnesses/ERC721ReceiverHarness.sol +11 -0
  1594. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/harnesses/EnumerableMapHarness.sol +55 -0
  1595. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/harnesses/EnumerableSetHarness.sol +35 -0
  1596. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/harnesses/InitializableHarness.sol +23 -0
  1597. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/harnesses/NoncesHarness.sol +14 -0
  1598. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/harnesses/Ownable2StepHarness.sol +10 -0
  1599. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/harnesses/OwnableHarness.sol +10 -0
  1600. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/harnesses/PausableHarness.sol +18 -0
  1601. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/harnesses/TimelockControllerHarness.sol +13 -0
  1602. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/reports/2021-10.pdf +0 -0
  1603. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/reports/2022-03.pdf +0 -0
  1604. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/reports/2022-05.pdf +0 -0
  1605. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/run.js +168 -0
  1606. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/specs/AccessControl.spec +119 -0
  1607. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/specs/AccessControlDefaultAdminRules.spec +464 -0
  1608. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/specs/AccessManaged.spec +34 -0
  1609. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/specs/AccessManager.spec +826 -0
  1610. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/specs/DoubleEndedQueue.spec +300 -0
  1611. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/specs/ERC20.spec +352 -0
  1612. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/specs/ERC20FlashMint.spec +55 -0
  1613. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/specs/ERC20Wrapper.spec +198 -0
  1614. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/specs/ERC721.spec +679 -0
  1615. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/specs/EnumerableMap.spec +333 -0
  1616. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/specs/EnumerableSet.spec +246 -0
  1617. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/specs/Initializable.spec +165 -0
  1618. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/specs/Nonces.spec +92 -0
  1619. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/specs/Ownable.spec +77 -0
  1620. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/specs/Ownable2Step.spec +108 -0
  1621. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/specs/Pausable.spec +96 -0
  1622. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/specs/TimelockController.spec +274 -0
  1623. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/specs/helpers/helpers.spec +12 -0
  1624. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/specs/methods/IAccessControl.spec +8 -0
  1625. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/specs/methods/IAccessControlDefaultAdminRules.spec +36 -0
  1626. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/specs/methods/IAccessManaged.spec +5 -0
  1627. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/specs/methods/IAccessManager.spec +33 -0
  1628. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/specs/methods/IERC20.spec +11 -0
  1629. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/specs/methods/IERC2612.spec +5 -0
  1630. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/specs/methods/IERC3156FlashBorrower.spec +3 -0
  1631. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/specs/methods/IERC3156FlashLender.spec +5 -0
  1632. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/specs/methods/IERC5313.spec +3 -0
  1633. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/specs/methods/IERC721.spec +17 -0
  1634. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/specs/methods/IERC721Receiver.spec +3 -0
  1635. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/specs/methods/IOwnable.spec +5 -0
  1636. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/specs/methods/IOwnable2Step.spec +7 -0
  1637. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/specs.json +110 -0
  1638. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/AccessControl.sol +207 -0
  1639. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol +98 -0
  1640. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/Ownable.sol +100 -0
  1641. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol +67 -0
  1642. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/README.adoc +45 -0
  1643. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/extensions/AccessControlDefaultAdminRules.sol +372 -0
  1644. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/extensions/AccessControlEnumerable.sol +81 -0
  1645. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlDefaultAdminRules.sol +192 -0
  1646. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlEnumerable.sol +31 -0
  1647. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/manager/AccessManaged.sol +112 -0
  1648. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/manager/AccessManager.sol +740 -0
  1649. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/manager/AuthorityUtils.sol +36 -0
  1650. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/manager/IAccessManaged.sol +32 -0
  1651. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/manager/IAccessManager.sol +399 -0
  1652. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/manager/IAuthority.sol +14 -0
  1653. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/account/Account.sol +144 -0
  1654. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/account/README.adoc +30 -0
  1655. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/account/extensions/draft-AccountERC7579.sol +413 -0
  1656. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/account/extensions/draft-AccountERC7579Hooked.sol +106 -0
  1657. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/account/extensions/draft-ERC7821.sol +69 -0
  1658. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/account/utils/EIP7702Utils.sol +20 -0
  1659. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/account/utils/draft-ERC4337Utils.sol +159 -0
  1660. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/account/utils/draft-ERC7579Utils.sol +280 -0
  1661. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/finance/README.adoc +14 -0
  1662. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/finance/VestingWallet.sol +159 -0
  1663. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/finance/VestingWalletCliff.sol +54 -0
  1664. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/governance/Governor.sol +818 -0
  1665. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/governance/IGovernor.sol +454 -0
  1666. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/governance/README.adoc +197 -0
  1667. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/governance/TimelockController.sol +471 -0
  1668. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorCountingFractional.sol +190 -0
  1669. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorCountingOverridable.sol +222 -0
  1670. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorCountingSimple.sol +96 -0
  1671. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorNoncesKeyed.sol +90 -0
  1672. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorPreventLateQuorum.sol +92 -0
  1673. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorProposalGuardian.sol +58 -0
  1674. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorSequentialProposalId.sol +75 -0
  1675. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorSettings.sol +106 -0
  1676. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorStorage.sol +125 -0
  1677. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorSuperQuorum.sol +58 -0
  1678. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorTimelockAccess.sol +346 -0
  1679. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorTimelockCompound.sol +165 -0
  1680. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorTimelockControl.sol +167 -0
  1681. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorVotes.sol +63 -0
  1682. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorVotesQuorumFraction.sol +113 -0
  1683. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorVotesSuperQuorumFraction.sol +134 -0
  1684. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/governance/utils/IVotes.sol +59 -0
  1685. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/governance/utils/Votes.sol +252 -0
  1686. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/governance/utils/VotesExtended.sol +84 -0
  1687. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC1155.sol +6 -0
  1688. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC1155MetadataURI.sol +6 -0
  1689. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC1155Receiver.sol +6 -0
  1690. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol +17 -0
  1691. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol +86 -0
  1692. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC1363Receiver.sol +32 -0
  1693. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC1363Spender.sol +26 -0
  1694. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol +6 -0
  1695. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC1820Implementer.sol +20 -0
  1696. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC1820Registry.sol +112 -0
  1697. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol +24 -0
  1698. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol +6 -0
  1699. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC20Metadata.sol +6 -0
  1700. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC2309.sol +19 -0
  1701. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC2612.sol +8 -0
  1702. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC2981.sol +26 -0
  1703. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC3156.sol +7 -0
  1704. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC3156FlashBorrower.sol +27 -0
  1705. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC3156FlashLender.sol +41 -0
  1706. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol +230 -0
  1707. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC4906.sol +20 -0
  1708. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol +28 -0
  1709. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC5313.sol +16 -0
  1710. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC5805.sol +9 -0
  1711. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC6372.sol +17 -0
  1712. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC721.sol +6 -0
  1713. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC721Enumerable.sol +6 -0
  1714. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC721Metadata.sol +6 -0
  1715. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC721Receiver.sol +6 -0
  1716. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC777.sol +200 -0
  1717. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC777Recipient.sol +35 -0
  1718. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC777Sender.sol +35 -0
  1719. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC7913.sol +17 -0
  1720. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/README.adoc +105 -0
  1721. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol +20 -0
  1722. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC4337.sol +253 -0
  1723. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol +161 -0
  1724. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6909.sol +125 -0
  1725. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC7579.sol +226 -0
  1726. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC7674.sol +17 -0
  1727. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC7786.sol +64 -0
  1728. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC7802.sol +30 -0
  1729. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC7821.sol +43 -0
  1730. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/metatx/ERC2771Context.sol +90 -0
  1731. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/metatx/ERC2771Forwarder.sol +372 -0
  1732. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/metatx/README.adoc +17 -0
  1733. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/AccessManagedTarget.sol +34 -0
  1734. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/AccessManagerMock.sol +20 -0
  1735. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/ArraysMock.sol +171 -0
  1736. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/AuthorityMock.sol +69 -0
  1737. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/Base64Dirty.sol +19 -0
  1738. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/BatchCaller.sol +20 -0
  1739. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/CallReceiverMock.sol +78 -0
  1740. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/ConstructorMock.sol +34 -0
  1741. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/ContextMock.sol +35 -0
  1742. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/DummyImplementation.sol +65 -0
  1743. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/EIP712Verifier.sol +16 -0
  1744. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/ERC1271WalletMock.sol +24 -0
  1745. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165InterfacesSupported.sol +58 -0
  1746. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165MaliciousData.sol +12 -0
  1747. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165MissingData.sol +7 -0
  1748. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165NotSupported.sol +5 -0
  1749. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165ReturnBomb.sol +18 -0
  1750. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/ERC2771ContextMock.sol +28 -0
  1751. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/ERC3156FlashBorrowerMock.sol +53 -0
  1752. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/EtherReceiverMock.sol +17 -0
  1753. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/InitializableMock.sol +130 -0
  1754. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/MerkleProofCustomHashMock.sol +62 -0
  1755. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/MerkleTreeMock.sol +52 -0
  1756. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/MulticallHelper.sol +23 -0
  1757. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/MultipleInheritanceInitializableMocks.sol +131 -0
  1758. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/PausableMock.sol +31 -0
  1759. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/ReentrancyAttack.sol +12 -0
  1760. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/ReentrancyMock.sol +50 -0
  1761. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/ReentrancyTransientMock.sol +50 -0
  1762. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/RegressionImplementation.sol +61 -0
  1763. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/SingleInheritanceInitializableMocks.sol +49 -0
  1764. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/Stateless.sol +55 -0
  1765. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/StorageSlotMock.sol +87 -0
  1766. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/TimelockReentrant.sol +26 -0
  1767. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/TransientSlotMock.sol +61 -0
  1768. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/UpgradeableBeaconMock.sol +27 -0
  1769. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/VotesExtendedMock.sol +42 -0
  1770. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/VotesMock.sol +42 -0
  1771. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/account/AccountMock.sol +169 -0
  1772. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/account/modules/ERC7579Mock.sol +122 -0
  1773. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/account/utils/ERC7579UtilsMock.sol +23 -0
  1774. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/compound/CompTimelock.sol +174 -0
  1775. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/ERC20WithAutoMinerReward.sol +22 -0
  1776. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/ERC4626Fees.sol +109 -0
  1777. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/MyNFT.sol +9 -0
  1778. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/access-control/AccessControlERC20MintBase.sol +25 -0
  1779. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/access-control/AccessControlERC20MintMissing.sol +24 -0
  1780. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/access-control/AccessControlERC20MintOnlyRole.sol +23 -0
  1781. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/access-control/AccessControlModified.sol +14 -0
  1782. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/access-control/AccessManagedERC20MintBase.sol +16 -0
  1783. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/access-control/MyContractOwnable.sol +17 -0
  1784. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/account/MyAccountERC7702.sol +20 -0
  1785. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/account/MyFactoryAccount.sol +37 -0
  1786. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/governance/MyGovernor.sol +80 -0
  1787. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/governance/MyToken.sol +21 -0
  1788. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/governance/MyTokenTimestampBased.sol +32 -0
  1789. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/governance/MyTokenWrapped.sol +28 -0
  1790. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/token/ERC1155/GameItems.sol +21 -0
  1791. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/token/ERC1155/MyERC115HolderContract.sol +7 -0
  1792. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/token/ERC20/GLDToken.sol +11 -0
  1793. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/token/ERC6909/ERC6909GameItems.sol +26 -0
  1794. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/token/ERC721/GameItem.sol +19 -0
  1795. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/utilities/Base64NFT.sol +27 -0
  1796. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/utilities/Multicall.sol +15 -0
  1797. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorCountingOverridableMock.sol +18 -0
  1798. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorFractionalMock.sol +14 -0
  1799. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorMock.sol +14 -0
  1800. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorNoncesKeyedMock.sol +45 -0
  1801. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorPreventLateQuorumMock.sol +40 -0
  1802. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorProposalGuardianMock.sol +27 -0
  1803. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorSequentialProposalIdMock.sol +39 -0
  1804. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorStorageMock.sol +79 -0
  1805. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorSuperQuorumMock.sol +95 -0
  1806. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorTimelockAccessMock.sol +70 -0
  1807. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorTimelockCompoundMock.sol +69 -0
  1808. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorTimelockControlMock.sol +69 -0
  1809. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorVoteMock.sol +20 -0
  1810. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorVotesSuperQuorumFractionMock.sol +37 -0
  1811. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorWithParamsMock.sol +51 -0
  1812. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/proxy/BadBeacon.sol +11 -0
  1813. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/proxy/ClashingImplementation.sol +19 -0
  1814. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/proxy/UUPSUpgradeableMock.sol +35 -0
  1815. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/token/ERC1155ReceiverMock.sol +74 -0
  1816. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/token/ERC1363ForceApproveMock.sol +13 -0
  1817. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/token/ERC1363NoReturnMock.sol +33 -0
  1818. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/token/ERC1363ReceiverMock.sol +52 -0
  1819. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/token/ERC1363ReturnFalseMock.sol +34 -0
  1820. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/token/ERC1363SpenderMock.sol +47 -0
  1821. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/token/ERC20ApprovalMock.sol +10 -0
  1822. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/token/ERC20BridgeableMock.sol +26 -0
  1823. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/token/ERC20DecimalsMock.sol +17 -0
  1824. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/token/ERC20ExcessDecimalsMock.sol +9 -0
  1825. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/token/ERC20FlashMintMock.sol +26 -0
  1826. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/token/ERC20ForceApproveMock.sol +13 -0
  1827. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/token/ERC20GetterHelper.sol +38 -0
  1828. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/token/ERC20Mock.sol +16 -0
  1829. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/token/ERC20MulticallMock.sol +8 -0
  1830. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/token/ERC20NoReturnMock.sol +28 -0
  1831. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/token/ERC20Reentrant.sol +39 -0
  1832. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/token/ERC20ReturnFalseMock.sol +19 -0
  1833. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/token/ERC20VotesAdditionalCheckpointsMock.sol +31 -0
  1834. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/token/ERC20VotesLegacyMock.sol +253 -0
  1835. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/token/ERC20VotesTimestampMock.sol +29 -0
  1836. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/token/ERC4626LimitsMock.sol +23 -0
  1837. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/token/ERC4626Mock.sol +17 -0
  1838. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/token/ERC4626OffsetMock.sol +17 -0
  1839. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/token/ERC4646FeesMock.sol +40 -0
  1840. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/token/ERC721ConsecutiveEnumerableMock.sol +42 -0
  1841. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/token/ERC721ConsecutiveMock.sol +61 -0
  1842. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/token/ERC721ReceiverMock.sol +47 -0
  1843. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/token/ERC721URIStorageMock.sol +17 -0
  1844. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/utils/cryptography/ERC7739Mock.sol +13 -0
  1845. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/package.json +32 -0
  1846. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/proxy/Clones.sol +262 -0
  1847. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol +40 -0
  1848. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol +177 -0
  1849. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/proxy/Proxy.sol +69 -0
  1850. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/proxy/README.adoc +87 -0
  1851. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/proxy/beacon/BeaconProxy.sol +57 -0
  1852. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol +16 -0
  1853. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/proxy/beacon/UpgradeableBeacon.sol +70 -0
  1854. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/proxy/transparent/ProxyAdmin.sol +45 -0
  1855. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/proxy/transparent/TransparentUpgradeableProxy.sol +118 -0
  1856. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol +238 -0
  1857. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol +146 -0
  1858. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC1155/ERC1155.sol +389 -0
  1859. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol +123 -0
  1860. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol +59 -0
  1861. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC1155/README.adoc +43 -0
  1862. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/ERC1155Burnable.sol +28 -0
  1863. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/ERC1155Pausable.sol +38 -0
  1864. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/ERC1155Supply.sol +88 -0
  1865. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/ERC1155URIStorage.sol +61 -0
  1866. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol +20 -0
  1867. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Holder.sol +40 -0
  1868. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Utils.sol +88 -0
  1869. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol +305 -0
  1870. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol +79 -0
  1871. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/README.adoc +78 -0
  1872. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC1363.sol +135 -0
  1873. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol +39 -0
  1874. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Capped.sol +54 -0
  1875. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20FlashMint.sol +134 -0
  1876. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Pausable.sol +33 -0
  1877. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Permit.sol +77 -0
  1878. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Votes.sol +83 -0
  1879. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Wrapper.sol +89 -0
  1880. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC4626.sol +282 -0
  1881. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol +26 -0
  1882. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol +90 -0
  1883. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-ERC20Bridgeable.sol +50 -0
  1884. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-ERC20TemporaryApproval.sol +119 -0
  1885. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/utils/ERC1363Utils.sol +95 -0
  1886. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol +280 -0
  1887. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC6909/README.adoc +27 -0
  1888. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC6909/draft-ERC6909.sol +224 -0
  1889. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC6909/extensions/draft-ERC6909ContentURI.sol +53 -0
  1890. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC6909/extensions/draft-ERC6909Metadata.sol +77 -0
  1891. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC6909/extensions/draft-ERC6909TokenSupply.sol +35 -0
  1892. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol +430 -0
  1893. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol +135 -0
  1894. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol +28 -0
  1895. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC721/README.adoc +69 -0
  1896. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Burnable.sol +26 -0
  1897. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Consecutive.sol +176 -0
  1898. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Enumerable.sol +164 -0
  1899. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Pausable.sol +37 -0
  1900. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Royalty.sol +26 -0
  1901. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721URIStorage.sol +58 -0
  1902. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Votes.sol +47 -0
  1903. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Wrapper.sol +102 -0
  1904. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol +29 -0
  1905. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol +27 -0
  1906. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol +24 -0
  1907. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol +50 -0
  1908. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/common/ERC2981.sol +139 -0
  1909. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/common/README.adoc +10 -0
  1910. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol +149 -0
  1911. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Arrays.sol +552 -0
  1912. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Base64.sol +119 -0
  1913. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Blockhash.sol +52 -0
  1914. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Bytes.sol +166 -0
  1915. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/CAIP10.sol +54 -0
  1916. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/CAIP2.sol +51 -0
  1917. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Calldata.sol +25 -0
  1918. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Comparators.sol +19 -0
  1919. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Context.sol +28 -0
  1920. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Create2.sol +92 -0
  1921. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Errors.sol +34 -0
  1922. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Memory.sol +44 -0
  1923. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Multicall.sol +37 -0
  1924. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Nonces.sol +46 -0
  1925. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/NoncesKeyed.sol +74 -0
  1926. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Packing.sol +1656 -0
  1927. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Panic.sol +57 -0
  1928. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Pausable.sol +112 -0
  1929. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/README.adoc +145 -0
  1930. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol +87 -0
  1931. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol +61 -0
  1932. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol +122 -0
  1933. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol +155 -0
  1934. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol +143 -0
  1935. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Strings.sol +507 -0
  1936. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol +183 -0
  1937. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol +213 -0
  1938. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol +160 -0
  1939. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/cryptography/Hashes.sol +31 -0
  1940. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol +514 -0
  1941. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol +99 -0
  1942. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/cryptography/P256.sol +408 -0
  1943. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/cryptography/README.adoc +67 -0
  1944. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/cryptography/RSA.sol +154 -0
  1945. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol +164 -0
  1946. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/cryptography/draft-ERC7739Utils.sol +206 -0
  1947. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/cryptography/signers/AbstractSigner.sol +22 -0
  1948. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/cryptography/signers/MultiSignerERC7913.sol +251 -0
  1949. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/cryptography/signers/MultiSignerERC7913Weighted.sol +207 -0
  1950. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/cryptography/signers/SignerECDSA.sol +55 -0
  1951. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/cryptography/signers/SignerERC7702.sol +24 -0
  1952. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/cryptography/signers/SignerERC7913.sol +62 -0
  1953. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/cryptography/signers/SignerP256.sol +63 -0
  1954. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/cryptography/signers/SignerRSA.sol +64 -0
  1955. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/cryptography/signers/draft-ERC7739.sol +98 -0
  1956. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/cryptography/verifiers/ERC7913P256Verifier.sol +28 -0
  1957. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/cryptography/verifiers/ERC7913RSAVerifier.sol +22 -0
  1958. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/draft-InteroperableAddress.sol +234 -0
  1959. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol +25 -0
  1960. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol +124 -0
  1961. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol +25 -0
  1962. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/math/Math.sol +749 -0
  1963. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol +1162 -0
  1964. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol +68 -0
  1965. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/BitMaps.sol +60 -0
  1966. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol +833 -0
  1967. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/CircularBuffer.sol +140 -0
  1968. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/DoubleEndedQueue.sol +156 -0
  1969. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol +1319 -0
  1970. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol +792 -0
  1971. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/Heap.sol +256 -0
  1972. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/MerkleTree.sol +267 -0
  1973. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/types/Time.sol +133 -0
  1974. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/vendor/compound/ICompoundTimelock.sol +86 -0
  1975. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/vendor/compound/LICENSE +11 -0
  1976. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/antora.yml +7 -0
  1977. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/config.js +21 -0
  1978. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/access-control-multiple.svg +97 -0
  1979. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/access-manager-functions.svg +47 -0
  1980. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/access-manager.svg +99 -0
  1981. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-3a.png +0 -0
  1982. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-3b.png +0 -0
  1983. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-6.png +0 -0
  1984. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack.png +0 -0
  1985. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-deposit.png +0 -0
  1986. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-mint.png +0 -0
  1987. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-linear.png +0 -0
  1988. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-loglog.png +0 -0
  1989. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-loglogext.png +0 -0
  1990. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/tally-exec.png +0 -0
  1991. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/tally-vote.png +0 -0
  1992. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/nav.adoc +29 -0
  1993. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/pages/access-control.adoc +288 -0
  1994. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/pages/account-abstraction.adoc +100 -0
  1995. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/pages/accounts.adoc +354 -0
  1996. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/pages/backwards-compatibility.adoc +50 -0
  1997. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/pages/eoa-delegation.adoc +143 -0
  1998. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc1155.adoc +118 -0
  1999. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc20-supply.adoc +71 -0
  2000. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc20.adoc +67 -0
  2001. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc4626.adoc +214 -0
  2002. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc6909.adoc +47 -0
  2003. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc721.adoc +58 -0
  2004. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/pages/extending-contracts.adoc +51 -0
  2005. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/pages/faq.adoc +13 -0
  2006. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/pages/governance.adoc +239 -0
  2007. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/pages/index.adoc +70 -0
  2008. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/pages/multisig.adoc +306 -0
  2009. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/pages/tokens.adoc +31 -0
  2010. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/pages/upgradeable.adoc +77 -0
  2011. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/pages/utilities.adoc +591 -0
  2012. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/pages/wizard.adoc +15 -0
  2013. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/templates/contract.hbs +141 -0
  2014. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/templates/helpers.js +46 -0
  2015. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/templates/page.hbs +4 -0
  2016. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/templates/properties.js +88 -0
  2017. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/eslint.config.mjs +26 -0
  2018. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/foundry.toml +15 -0
  2019. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/fv-requirements.txt +4 -0
  2020. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/hardhat/async-test-sanity.js +10 -0
  2021. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/hardhat/common-contracts.js +69 -0
  2022. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/hardhat/env-artifacts.js +29 -0
  2023. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/hardhat/ignore-unreachable-warnings.js +45 -0
  2024. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/hardhat/remappings.js +18 -0
  2025. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/hardhat/skip-foundry-tests.js +6 -0
  2026. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/hardhat/task-test-get-files.js +25 -0
  2027. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/hardhat.config.js +124 -0
  2028. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/erc4626-tests/ERC4626.prop.sol +404 -0
  2029. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/erc4626-tests/ERC4626.test.sol +356 -0
  2030. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/erc4626-tests/LICENSE +661 -0
  2031. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/erc4626-tests/README.md +116 -0
  2032. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/.gitattributes +1 -0
  2033. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/.github/workflows/ci.yml +128 -0
  2034. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/.github/workflows/sync.yml +31 -0
  2035. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/CONTRIBUTING.md +193 -0
  2036. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/LICENSE-APACHE +203 -0
  2037. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/LICENSE-MIT +25 -0
  2038. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/README.md +266 -0
  2039. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/foundry.toml +23 -0
  2040. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/package.json +16 -0
  2041. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/scripts/vm.py +646 -0
  2042. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/src/Base.sol +35 -0
  2043. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/src/Script.sol +27 -0
  2044. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/src/StdAssertions.sol +669 -0
  2045. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/src/StdChains.sol +287 -0
  2046. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/src/StdCheats.sol +829 -0
  2047. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/src/StdError.sol +15 -0
  2048. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/src/StdInvariant.sol +122 -0
  2049. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/src/StdJson.sol +283 -0
  2050. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/src/StdMath.sol +43 -0
  2051. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol +473 -0
  2052. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/src/StdStyle.sol +333 -0
  2053. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/src/StdToml.sol +283 -0
  2054. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/src/StdUtils.sol +209 -0
  2055. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/src/Test.sol +33 -0
  2056. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol +2263 -0
  2057. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/src/console.sol +1560 -0
  2058. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/src/console2.sol +4 -0
  2059. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IERC1155.sol +105 -0
  2060. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IERC165.sol +12 -0
  2061. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IERC20.sol +43 -0
  2062. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IERC4626.sol +190 -0
  2063. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IERC721.sol +164 -0
  2064. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IMulticall3.sol +73 -0
  2065. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/src/safeconsole.sol +13937 -0
  2066. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/test/StdAssertions.t.sol +141 -0
  2067. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/test/StdChains.t.sol +227 -0
  2068. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/test/StdCheats.t.sol +618 -0
  2069. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/test/StdError.t.sol +120 -0
  2070. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/test/StdJson.t.sol +49 -0
  2071. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/test/StdMath.t.sol +202 -0
  2072. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/test/StdStorage.t.sol +488 -0
  2073. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/test/StdStyle.t.sol +110 -0
  2074. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/test/StdToml.t.sol +49 -0
  2075. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/test/StdUtils.t.sol +342 -0
  2076. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/test/Vm.t.sol +18 -0
  2077. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/test/compilation/CompilationScript.sol +10 -0
  2078. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/test/compilation/CompilationScriptBase.sol +10 -0
  2079. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/test/compilation/CompilationTest.sol +10 -0
  2080. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/test/compilation/CompilationTestBase.sol +10 -0
  2081. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/test/fixtures/broadcast.log.json +187 -0
  2082. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/test/fixtures/test.json +8 -0
  2083. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/test/fixtures/test.toml +6 -0
  2084. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/halmos-cheatcodes/LICENSE +661 -0
  2085. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/halmos-cheatcodes/README.md +97 -0
  2086. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/SVM.sol +49 -0
  2087. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/SymTest.sol +11 -0
  2088. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/logo.svg +15 -0
  2089. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/netlify.toml +3 -0
  2090. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/package.json +106 -0
  2091. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/remappings.txt +1 -0
  2092. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/renovate.json +4 -0
  2093. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/checks/compare-layout.js +28 -0
  2094. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/checks/compareGasReports.js +249 -0
  2095. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/checks/coverage.sh +24 -0
  2096. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/checks/extract-layout.js +39 -0
  2097. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/checks/generation.sh +6 -0
  2098. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/checks/inheritance-ordering.js +55 -0
  2099. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/checks/pragma-validity.js +45 -0
  2100. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/fetch-common-contracts.js +50 -0
  2101. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/gen-nav.js +81 -0
  2102. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/generate/format-lines.js +16 -0
  2103. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/generate/helpers/sanitize.js +5 -0
  2104. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/generate/run.js +61 -0
  2105. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/generate/templates/Arrays.js +386 -0
  2106. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/generate/templates/Arrays.opts.js +9 -0
  2107. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/generate/templates/Checkpoints.js +242 -0
  2108. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/generate/templates/Checkpoints.opts.js +18 -0
  2109. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/generate/templates/Checkpoints.t.js +141 -0
  2110. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/generate/templates/Enumerable.opts.js +53 -0
  2111. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/generate/templates/EnumerableMap.js +463 -0
  2112. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/generate/templates/EnumerableSet.js +469 -0
  2113. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/generate/templates/MerkleProof.js +187 -0
  2114. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/generate/templates/MerkleProof.opts.js +11 -0
  2115. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/generate/templates/Packing.js +92 -0
  2116. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/generate/templates/Packing.opts.js +3 -0
  2117. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/generate/templates/Packing.t.js +48 -0
  2118. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/generate/templates/SafeCast.js +136 -0
  2119. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/generate/templates/Slot.opts.js +15 -0
  2120. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/generate/templates/SlotDerivation.js +119 -0
  2121. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/generate/templates/SlotDerivation.t.js +127 -0
  2122. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/generate/templates/StorageSlot.js +77 -0
  2123. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/generate/templates/StorageSlotMock.js +57 -0
  2124. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/generate/templates/TransientSlot.js +80 -0
  2125. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/generate/templates/TransientSlotMock.js +35 -0
  2126. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/generate/templates/conversion.js +30 -0
  2127. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/get-contracts-metadata.js +55 -0
  2128. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/helpers.js +7 -0
  2129. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/minimize-pragma.js +138 -0
  2130. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/prepack.sh +23 -0
  2131. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/prepare-docs.sh +26 -0
  2132. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/release/format-changelog.js +33 -0
  2133. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/release/synchronize-versions.js +15 -0
  2134. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/release/update-comment.js +34 -0
  2135. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/release/version.sh +11 -0
  2136. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/release/workflow/exit-prerelease.sh +8 -0
  2137. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/release/workflow/github-release.js +48 -0
  2138. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/release/workflow/integrity-check.sh +20 -0
  2139. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/release/workflow/pack.sh +26 -0
  2140. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/release/workflow/publish.sh +26 -0
  2141. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/release/workflow/rerun.js +7 -0
  2142. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/release/workflow/set-changesets-pr-title.js +17 -0
  2143. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/release/workflow/start.sh +35 -0
  2144. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/release/workflow/state.js +112 -0
  2145. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/remove-ignored-artifacts.js +45 -0
  2146. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/set-max-old-space-size.sh +10 -0
  2147. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/solc-versions.js +15 -0
  2148. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/solhint-custom/index.js +84 -0
  2149. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/solhint-custom/package.json +8 -0
  2150. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/update-docs-branch.js +65 -0
  2151. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/upgradeable/README.md +21 -0
  2152. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/upgradeable/patch-apply.sh +19 -0
  2153. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/upgradeable/patch-save.sh +18 -0
  2154. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/upgradeable/transpile-onto.sh +54 -0
  2155. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/upgradeable/transpile.sh +50 -0
  2156. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/upgradeable/upgradeable.patch +398 -0
  2157. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/slither.config.json +4 -0
  2158. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/solhint.config.js +29 -0
  2159. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/TESTING.md +3 -0
  2160. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/access/AccessControl.behavior.js +874 -0
  2161. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/access/AccessControl.test.js +19 -0
  2162. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/access/Ownable.test.js +79 -0
  2163. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/access/Ownable2Step.test.js +102 -0
  2164. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/access/extensions/AccessControlDefaultAdminRules.test.js +32 -0
  2165. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/access/extensions/AccessControlEnumerable.test.js +24 -0
  2166. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/access/manager/AccessManaged.test.js +146 -0
  2167. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/access/manager/AccessManager.behavior.js +257 -0
  2168. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/access/manager/AccessManager.predicate.js +456 -0
  2169. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/access/manager/AccessManager.test.js +2489 -0
  2170. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/access/manager/AuthorityUtils.test.js +112 -0
  2171. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/account/Account.behavior.js +144 -0
  2172. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/account/Account.test.js +48 -0
  2173. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/account/AccountECDSA.test.js +52 -0
  2174. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/account/AccountERC7702.t.sol +103 -0
  2175. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/account/AccountERC7702.test.js +52 -0
  2176. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/account/AccountERC7913.test.js +116 -0
  2177. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/account/AccountMultiSigner.test.js +326 -0
  2178. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/account/AccountMultiSignerWeighted.test.js +312 -0
  2179. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/account/AccountP256.test.js +58 -0
  2180. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/account/AccountRSA.test.js +58 -0
  2181. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/account/examples/AccountERC7702WithModulesMock.test.js +99 -0
  2182. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/account/extensions/AccountERC7579.behavior.js +563 -0
  2183. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/account/extensions/AccountERC7579.test.js +60 -0
  2184. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/account/extensions/AccountERC7579Hooked.test.js +60 -0
  2185. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/account/extensions/ERC7821.behavior.js +145 -0
  2186. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/account/utils/EIP7702Utils.test.js +53 -0
  2187. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/account/utils/draft-ERC4337Utils.test.js +289 -0
  2188. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/account/utils/draft-ERC7579Utils.t.sol +426 -0
  2189. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/account/utils/draft-ERC7579Utils.test.js +399 -0
  2190. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/bin/EntryPoint070.abi +1 -0
  2191. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/bin/EntryPoint070.bytecode +0 -0
  2192. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/bin/EntryPoint080.abi +1 -0
  2193. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/bin/EntryPoint080.bytecode +0 -0
  2194. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/bin/SenderCreator070.abi +1 -0
  2195. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/bin/SenderCreator070.bytecode +0 -0
  2196. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/bin/SenderCreator080.abi +1 -0
  2197. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/bin/SenderCreator080.bytecode +0 -0
  2198. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/finance/VestingWallet.behavior.js +87 -0
  2199. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/finance/VestingWallet.test.js +65 -0
  2200. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/finance/VestingWalletCliff.test.js +70 -0
  2201. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/governance/Governor.t.sol +59 -0
  2202. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/governance/Governor.test.js +980 -0
  2203. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/governance/TimelockController.test.js +1279 -0
  2204. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/governance/extensions/GovernorCountingFractional.test.js +248 -0
  2205. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/governance/extensions/GovernorCountingOverridable.test.js +346 -0
  2206. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/governance/extensions/GovernorERC721.test.js +131 -0
  2207. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/governance/extensions/GovernorNoncesKeyed.test.js +244 -0
  2208. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/governance/extensions/GovernorPreventLateQuorum.test.js +185 -0
  2209. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/governance/extensions/GovernorProposalGuardian.test.js +132 -0
  2210. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/governance/extensions/GovernorSequentialProposalId.test.js +202 -0
  2211. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/governance/extensions/GovernorStorage.test.js +155 -0
  2212. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/governance/extensions/GovernorSuperQuorum.test.js +168 -0
  2213. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/governance/extensions/GovernorSuperQuorumGreaterThanQuorum.t.sol +83 -0
  2214. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/governance/extensions/GovernorTimelockAccess.test.js +864 -0
  2215. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/governance/extensions/GovernorTimelockCompound.test.js +448 -0
  2216. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/governance/extensions/GovernorTimelockControl.test.js +504 -0
  2217. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/governance/extensions/GovernorVotesQuorumFraction.test.js +165 -0
  2218. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/governance/extensions/GovernorVotesSuperQuorumFraction.test.js +160 -0
  2219. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/governance/extensions/GovernorWithParams.test.js +245 -0
  2220. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/governance/utils/ERC6372.behavior.js +28 -0
  2221. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/governance/utils/Votes.behavior.js +325 -0
  2222. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/governance/utils/Votes.test.js +102 -0
  2223. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/governance/utils/VotesExtended.test.js +152 -0
  2224. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/helpers/access-manager.js +85 -0
  2225. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/helpers/account.js +14 -0
  2226. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/helpers/chains.js +56 -0
  2227. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/helpers/constants.js +7 -0
  2228. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/helpers/deploy.js +14 -0
  2229. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/helpers/eip712-types.js +61 -0
  2230. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/helpers/eip712.js +45 -0
  2231. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/helpers/enums.js +14 -0
  2232. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/helpers/erc4337.js +217 -0
  2233. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/helpers/erc7579.js +58 -0
  2234. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/helpers/erc7739.js +118 -0
  2235. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/helpers/governance.js +217 -0
  2236. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/helpers/iterate.js +41 -0
  2237. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/helpers/math.js +33 -0
  2238. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/helpers/methods.js +14 -0
  2239. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/helpers/precompiles.js +12 -0
  2240. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/helpers/random.js +24 -0
  2241. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/helpers/signers.js +184 -0
  2242. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/helpers/storage.js +48 -0
  2243. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/helpers/strings.js +5 -0
  2244. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/helpers/time.js +33 -0
  2245. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/helpers/txpool.js +29 -0
  2246. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/metatx/ERC2771Context.test.js +133 -0
  2247. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/metatx/ERC2771Forwarder.t.sol +279 -0
  2248. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/metatx/ERC2771Forwarder.test.js +384 -0
  2249. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/proxy/Clones.behaviour.js +160 -0
  2250. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/proxy/Clones.t.sol +91 -0
  2251. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/proxy/Clones.test.js +177 -0
  2252. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/proxy/ERC1967/ERC1967Proxy.test.js +23 -0
  2253. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/proxy/ERC1967/ERC1967Utils.test.js +162 -0
  2254. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/proxy/Proxy.behaviour.js +185 -0
  2255. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/proxy/beacon/BeaconProxy.test.js +141 -0
  2256. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/proxy/beacon/UpgradeableBeacon.test.js +55 -0
  2257. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/proxy/transparent/ProxyAdmin.test.js +82 -0
  2258. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/proxy/transparent/TransparentUpgradeableProxy.behaviour.js +357 -0
  2259. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/proxy/transparent/TransparentUpgradeableProxy.test.js +28 -0
  2260. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/proxy/utils/Initializable.test.js +216 -0
  2261. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/proxy/utils/UUPSUpgradeable.test.js +120 -0
  2262. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/sanity.test.js +27 -0
  2263. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/token/ERC1155/ERC1155.behavior.js +763 -0
  2264. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/token/ERC1155/ERC1155.test.js +213 -0
  2265. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/token/ERC1155/extensions/ERC1155Burnable.test.js +66 -0
  2266. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/token/ERC1155/extensions/ERC1155Pausable.test.js +105 -0
  2267. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/token/ERC1155/extensions/ERC1155Supply.test.js +119 -0
  2268. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/token/ERC1155/extensions/ERC1155URIStorage.test.js +70 -0
  2269. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/token/ERC1155/utils/ERC1155Holder.test.js +56 -0
  2270. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/token/ERC1155/utils/ERC1155Utils.test.js +299 -0
  2271. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/token/ERC20/ERC20.behavior.js +269 -0
  2272. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/token/ERC20/ERC20.test.js +199 -0
  2273. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC1363.test.js +370 -0
  2274. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Burnable.test.js +105 -0
  2275. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Capped.test.js +55 -0
  2276. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20FlashMint.test.js +164 -0
  2277. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Pausable.test.js +129 -0
  2278. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Permit.test.js +109 -0
  2279. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Votes.test.js +546 -0
  2280. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Wrapper.test.js +203 -0
  2281. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC4626.t.sol +41 -0
  2282. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC4626.test.js +888 -0
  2283. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/token/ERC20/extensions/draft-ERC20Bridgeable.test.js +89 -0
  2284. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/token/ERC20/extensions/draft-ERC20TemporaryApproval.test.js +142 -0
  2285. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/token/ERC20/utils/SafeERC20.test.js +463 -0
  2286. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/token/ERC6909/ERC6909.behavior.js +216 -0
  2287. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/token/ERC6909/ERC6909.test.js +104 -0
  2288. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/token/ERC6909/extensions/ERC6909ContentURI.test.js +49 -0
  2289. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/token/ERC6909/extensions/ERC6909Metadata.test.js +58 -0
  2290. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/token/ERC6909/extensions/ERC6909TokenSupply.test.js +53 -0
  2291. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/token/ERC721/ERC721.behavior.js +946 -0
  2292. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/token/ERC721/ERC721.test.js +23 -0
  2293. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/token/ERC721/ERC721Enumerable.test.js +28 -0
  2294. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Burnable.test.js +77 -0
  2295. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Consecutive.t.sol +181 -0
  2296. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Consecutive.test.js +228 -0
  2297. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Pausable.test.js +81 -0
  2298. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Royalty.test.js +57 -0
  2299. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721URIStorage.test.js +121 -0
  2300. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Votes.test.js +194 -0
  2301. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Wrapper.test.js +201 -0
  2302. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/token/ERC721/utils/ERC721Holder.test.js +20 -0
  2303. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/token/ERC721/utils/ERC721Utils.test.js +94 -0
  2304. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/token/common/ERC2981.behavior.js +152 -0
  2305. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/Address.test.js +281 -0
  2306. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/Arrays.t.sol +31 -0
  2307. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/Arrays.test.js +227 -0
  2308. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/Base64.t.sol +34 -0
  2309. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/Base64.test.js +59 -0
  2310. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/Blockhash.t.sol +101 -0
  2311. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/Blockhash.test.js +59 -0
  2312. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/Bytes.t.sol +74 -0
  2313. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/Bytes.test.js +212 -0
  2314. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/CAIP.test.js +56 -0
  2315. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/Calldata.test.js +22 -0
  2316. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/Context.behavior.js +48 -0
  2317. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/Context.test.js +18 -0
  2318. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/Create2.t.sol +17 -0
  2319. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/Create2.test.js +190 -0
  2320. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/Memory.t.sol +21 -0
  2321. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/Memory.test.js +39 -0
  2322. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/Multicall.test.js +72 -0
  2323. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/Nonces.behavior.js +189 -0
  2324. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/Nonces.test.js +16 -0
  2325. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/NoncesKeyed.test.js +17 -0
  2326. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/Packing.t.sol +993 -0
  2327. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/Packing.test.js +70 -0
  2328. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/Panic.test.js +37 -0
  2329. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/Pausable.test.js +90 -0
  2330. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/ReentrancyGuard.test.js +50 -0
  2331. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/ShortStrings.t.sol +109 -0
  2332. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/ShortStrings.test.js +64 -0
  2333. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/SlotDerivation.t.sol +248 -0
  2334. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/SlotDerivation.test.js +58 -0
  2335. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/StorageSlot.test.js +73 -0
  2336. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/Strings.t.sol +50 -0
  2337. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/Strings.test.js +360 -0
  2338. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/TransientSlot.test.js +59 -0
  2339. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/cryptography/ECDSA.test.js +239 -0
  2340. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/cryptography/EIP712.test.js +105 -0
  2341. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/cryptography/ERC1271.behavior.js +111 -0
  2342. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/cryptography/ERC7739.test.js +42 -0
  2343. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/cryptography/ERC7739Utils.test.js +203 -0
  2344. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/cryptography/MerkleProof.test.js +213 -0
  2345. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/cryptography/MessageHashUtils.t.sol +33 -0
  2346. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/cryptography/MessageHashUtils.test.js +97 -0
  2347. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/cryptography/P256.t.sol +65 -0
  2348. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/cryptography/P256.test.js +182 -0
  2349. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/cryptography/RSA.helper.js +17 -0
  2350. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/cryptography/RSA.test.js +102 -0
  2351. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/cryptography/SigVer15_186-3.rsp +3850 -0
  2352. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/cryptography/SignatureChecker.test.js +422 -0
  2353. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/cryptography/ecdsa_secp256r1_sha256_p1363_test.json +3719 -0
  2354. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/draft-InteroperableAddress.t.sol +99 -0
  2355. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/draft-InteroperableAddress.test.js +170 -0
  2356. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/introspection/ERC165.test.js +18 -0
  2357. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/introspection/ERC165Checker.test.js +245 -0
  2358. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/introspection/SupportsInterface.behavior.js +166 -0
  2359. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/math/Math.t.sol +349 -0
  2360. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/math/Math.test.js +713 -0
  2361. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/math/SafeCast.test.js +159 -0
  2362. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/math/SignedMath.t.sol +80 -0
  2363. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/math/SignedMath.test.js +53 -0
  2364. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/structs/BitMap.test.js +149 -0
  2365. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/structs/Checkpoints.t.sol +440 -0
  2366. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/structs/Checkpoints.test.js +147 -0
  2367. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/structs/CircularBuffer.test.js +83 -0
  2368. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/structs/DoubleEndedQueue.test.js +102 -0
  2369. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/structs/EnumerableMap.behavior.js +214 -0
  2370. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/structs/EnumerableMap.test.js +83 -0
  2371. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/structs/EnumerableSet.behavior.js +175 -0
  2372. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/structs/EnumerableSet.test.js +66 -0
  2373. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/structs/Heap.t.sol +74 -0
  2374. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/structs/Heap.test.js +113 -0
  2375. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/structs/MerkleTree.test.js +180 -0
  2376. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/types/Time.test.js +135 -0
  2377. package/lib/openzeppelin-contracts-upgradeable/package.json +60 -47
  2378. package/lib/openzeppelin-contracts-upgradeable/remappings.txt +2 -0
  2379. package/lib/openzeppelin-contracts-upgradeable/renovate.json +2 -9
  2380. package/lib/openzeppelin-contracts-upgradeable/scripts/checks/compare-layout.js +28 -0
  2381. package/lib/openzeppelin-contracts-upgradeable/scripts/checks/compareGasReports.js +130 -92
  2382. package/lib/openzeppelin-contracts-upgradeable/scripts/checks/coverage.sh +24 -0
  2383. package/lib/openzeppelin-contracts-upgradeable/scripts/checks/extract-layout.js +39 -0
  2384. package/lib/openzeppelin-contracts-upgradeable/scripts/checks/inheritance-ordering.js +28 -23
  2385. package/lib/openzeppelin-contracts-upgradeable/scripts/checks/pragma-validity.js +45 -0
  2386. package/lib/openzeppelin-contracts-upgradeable/scripts/fetch-common-contracts.js +50 -0
  2387. package/lib/openzeppelin-contracts-upgradeable/scripts/gen-nav.js +62 -22
  2388. package/lib/openzeppelin-contracts-upgradeable/scripts/generate/format-lines.js +4 -4
  2389. package/lib/openzeppelin-contracts-upgradeable/scripts/generate/helpers/sanitize.js +5 -0
  2390. package/lib/openzeppelin-contracts-upgradeable/scripts/generate/run.js +38 -23
  2391. package/lib/openzeppelin-contracts-upgradeable/scripts/generate/templates/Arrays.js +386 -0
  2392. package/lib/openzeppelin-contracts-upgradeable/scripts/generate/templates/Arrays.opts.js +9 -0
  2393. package/lib/openzeppelin-contracts-upgradeable/scripts/generate/templates/Checkpoints.js +67 -128
  2394. package/lib/openzeppelin-contracts-upgradeable/scripts/generate/templates/Checkpoints.opts.js +18 -0
  2395. package/lib/openzeppelin-contracts-upgradeable/scripts/generate/templates/Checkpoints.t.js +141 -0
  2396. package/lib/openzeppelin-contracts-upgradeable/scripts/generate/templates/Enumerable.opts.js +53 -0
  2397. package/lib/openzeppelin-contracts-upgradeable/scripts/generate/templates/EnumerableMap.js +269 -84
  2398. package/lib/openzeppelin-contracts-upgradeable/scripts/generate/templates/EnumerableSet.js +252 -36
  2399. package/lib/openzeppelin-contracts-upgradeable/scripts/generate/templates/MerkleProof.js +187 -0
  2400. package/lib/openzeppelin-contracts-upgradeable/scripts/generate/templates/MerkleProof.opts.js +11 -0
  2401. package/lib/openzeppelin-contracts-upgradeable/scripts/generate/templates/Packing.js +92 -0
  2402. package/lib/openzeppelin-contracts-upgradeable/scripts/generate/templates/Packing.opts.js +3 -0
  2403. package/lib/openzeppelin-contracts-upgradeable/scripts/generate/templates/Packing.t.js +48 -0
  2404. package/lib/openzeppelin-contracts-upgradeable/scripts/generate/templates/SafeCast.js +50 -82
  2405. package/lib/openzeppelin-contracts-upgradeable/scripts/generate/templates/Slot.opts.js +15 -0
  2406. package/lib/openzeppelin-contracts-upgradeable/scripts/generate/templates/SlotDerivation.js +119 -0
  2407. package/lib/openzeppelin-contracts-upgradeable/scripts/generate/templates/SlotDerivation.t.js +127 -0
  2408. package/lib/openzeppelin-contracts-upgradeable/scripts/generate/templates/StorageSlot.js +77 -0
  2409. package/lib/openzeppelin-contracts-upgradeable/scripts/generate/templates/StorageSlotMock.js +57 -0
  2410. package/lib/openzeppelin-contracts-upgradeable/scripts/generate/templates/TransientSlot.js +80 -0
  2411. package/lib/openzeppelin-contracts-upgradeable/scripts/generate/templates/TransientSlotMock.js +35 -0
  2412. package/lib/openzeppelin-contracts-upgradeable/scripts/generate/templates/conversion.js +18 -18
  2413. package/lib/openzeppelin-contracts-upgradeable/scripts/get-contracts-metadata.js +55 -0
  2414. package/lib/openzeppelin-contracts-upgradeable/scripts/helpers.js +4 -20
  2415. package/lib/openzeppelin-contracts-upgradeable/scripts/minimize-pragma.js +138 -0
  2416. package/lib/openzeppelin-contracts-upgradeable/scripts/prepack.sh +14 -3
  2417. package/lib/openzeppelin-contracts-upgradeable/scripts/prepare-docs.sh +12 -1
  2418. package/lib/openzeppelin-contracts-upgradeable/scripts/release/format-changelog.js +33 -0
  2419. package/lib/openzeppelin-contracts-upgradeable/scripts/release/synchronize-versions.js +6 -7
  2420. package/lib/openzeppelin-contracts-upgradeable/scripts/release/update-comment.js +2 -4
  2421. package/lib/openzeppelin-contracts-upgradeable/scripts/release/version.sh +4 -2
  2422. package/lib/openzeppelin-contracts-upgradeable/scripts/release/workflow/exit-prerelease.sh +8 -0
  2423. package/lib/openzeppelin-contracts-upgradeable/scripts/release/workflow/github-release.js +48 -0
  2424. package/lib/openzeppelin-contracts-upgradeable/scripts/release/workflow/integrity-check.sh +20 -0
  2425. package/lib/openzeppelin-contracts-upgradeable/scripts/release/workflow/pack.sh +26 -0
  2426. package/lib/openzeppelin-contracts-upgradeable/scripts/release/workflow/publish.sh +26 -0
  2427. package/lib/openzeppelin-contracts-upgradeable/scripts/release/workflow/rerun.js +7 -0
  2428. package/lib/openzeppelin-contracts-upgradeable/scripts/release/workflow/set-changesets-pr-title.js +17 -0
  2429. package/lib/openzeppelin-contracts-upgradeable/scripts/release/workflow/start.sh +35 -0
  2430. package/lib/openzeppelin-contracts-upgradeable/scripts/release/workflow/state.js +112 -0
  2431. package/lib/openzeppelin-contracts-upgradeable/scripts/remove-ignored-artifacts.js +4 -4
  2432. package/lib/openzeppelin-contracts-upgradeable/scripts/set-max-old-space-size.sh +10 -0
  2433. package/lib/openzeppelin-contracts-upgradeable/scripts/solc-versions.js +15 -0
  2434. package/lib/openzeppelin-contracts-upgradeable/scripts/solhint-custom/index.js +84 -0
  2435. package/lib/openzeppelin-contracts-upgradeable/scripts/solhint-custom/package.json +8 -0
  2436. package/lib/openzeppelin-contracts-upgradeable/scripts/update-docs-branch.js +15 -5
  2437. package/lib/openzeppelin-contracts-upgradeable/scripts/upgradeable/README.md +21 -0
  2438. package/lib/openzeppelin-contracts-upgradeable/scripts/upgradeable/patch-apply.sh +19 -0
  2439. package/lib/openzeppelin-contracts-upgradeable/scripts/upgradeable/patch-save.sh +18 -0
  2440. package/lib/openzeppelin-contracts-upgradeable/scripts/upgradeable/transpile-onto.sh +21 -5
  2441. package/lib/openzeppelin-contracts-upgradeable/scripts/upgradeable/transpile.sh +24 -8
  2442. package/lib/openzeppelin-contracts-upgradeable/scripts/upgradeable/upgradeable.patch +398 -0
  2443. package/lib/openzeppelin-contracts-upgradeable/slither.config.json +3 -4
  2444. package/lib/openzeppelin-contracts-upgradeable/solhint.config.js +29 -0
  2445. package/lib/openzeppelin-contracts-upgradeable/test/TESTING.md +1 -1
  2446. package/lib/openzeppelin-contracts-upgradeable/test/access/AccessControl.behavior.js +756 -98
  2447. package/lib/openzeppelin-contracts-upgradeable/test/access/AccessControl.test.js +13 -7
  2448. package/lib/openzeppelin-contracts-upgradeable/test/access/Ownable.test.js +50 -28
  2449. package/lib/openzeppelin-contracts-upgradeable/test/access/Ownable2Step.test.js +77 -32
  2450. package/lib/openzeppelin-contracts-upgradeable/test/access/extensions/AccessControlDefaultAdminRules.test.js +32 -0
  2451. package/lib/openzeppelin-contracts-upgradeable/test/access/extensions/AccessControlEnumerable.test.js +24 -0
  2452. package/lib/openzeppelin-contracts-upgradeable/test/access/manager/AccessManaged.test.js +146 -0
  2453. package/lib/openzeppelin-contracts-upgradeable/test/access/manager/AccessManager.behavior.js +257 -0
  2454. package/lib/openzeppelin-contracts-upgradeable/test/access/manager/AccessManager.predicate.js +456 -0
  2455. package/lib/openzeppelin-contracts-upgradeable/test/access/manager/AccessManager.test.js +2489 -0
  2456. package/lib/openzeppelin-contracts-upgradeable/test/access/manager/AuthorityUtils.test.js +112 -0
  2457. package/lib/openzeppelin-contracts-upgradeable/test/account/Account.behavior.js +144 -0
  2458. package/lib/openzeppelin-contracts-upgradeable/test/account/Account.test.js +48 -0
  2459. package/lib/openzeppelin-contracts-upgradeable/test/account/AccountECDSA.test.js +52 -0
  2460. package/lib/openzeppelin-contracts-upgradeable/test/account/AccountERC7702.t.sol +103 -0
  2461. package/lib/openzeppelin-contracts-upgradeable/test/account/AccountERC7702.test.js +52 -0
  2462. package/lib/openzeppelin-contracts-upgradeable/test/account/AccountERC7913.test.js +116 -0
  2463. package/lib/openzeppelin-contracts-upgradeable/test/account/AccountMultiSigner.test.js +326 -0
  2464. package/lib/openzeppelin-contracts-upgradeable/test/account/AccountMultiSignerWeighted.test.js +312 -0
  2465. package/lib/openzeppelin-contracts-upgradeable/test/account/AccountP256.test.js +58 -0
  2466. package/lib/openzeppelin-contracts-upgradeable/test/account/AccountRSA.test.js +58 -0
  2467. package/lib/openzeppelin-contracts-upgradeable/test/account/examples/AccountERC7702WithModulesMock.test.js +99 -0
  2468. package/lib/openzeppelin-contracts-upgradeable/test/account/extensions/AccountERC7579.behavior.js +563 -0
  2469. package/lib/openzeppelin-contracts-upgradeable/test/account/extensions/AccountERC7579.test.js +60 -0
  2470. package/lib/openzeppelin-contracts-upgradeable/test/account/extensions/AccountERC7579Hooked.test.js +60 -0
  2471. package/lib/openzeppelin-contracts-upgradeable/test/account/extensions/ERC7821.behavior.js +145 -0
  2472. package/lib/openzeppelin-contracts-upgradeable/test/account/utils/EIP7702Utils.test.js +53 -0
  2473. package/lib/openzeppelin-contracts-upgradeable/test/account/utils/draft-ERC4337Utils.test.js +289 -0
  2474. package/lib/openzeppelin-contracts-upgradeable/test/account/utils/draft-ERC7579Utils.t.sol +426 -0
  2475. package/lib/openzeppelin-contracts-upgradeable/test/account/utils/draft-ERC7579Utils.test.js +399 -0
  2476. package/lib/openzeppelin-contracts-upgradeable/test/bin/EntryPoint070.abi +1 -0
  2477. package/lib/openzeppelin-contracts-upgradeable/test/bin/EntryPoint070.bytecode +0 -0
  2478. package/lib/openzeppelin-contracts-upgradeable/test/bin/EntryPoint080.abi +1 -0
  2479. package/lib/openzeppelin-contracts-upgradeable/test/bin/EntryPoint080.bytecode +0 -0
  2480. package/lib/openzeppelin-contracts-upgradeable/test/bin/SenderCreator070.abi +1 -0
  2481. package/lib/openzeppelin-contracts-upgradeable/test/bin/SenderCreator070.bytecode +0 -0
  2482. package/lib/openzeppelin-contracts-upgradeable/test/bin/SenderCreator080.abi +1 -0
  2483. package/lib/openzeppelin-contracts-upgradeable/test/bin/SenderCreator080.bytecode +0 -0
  2484. package/lib/openzeppelin-contracts-upgradeable/test/finance/VestingWallet.behavior.js +59 -46
  2485. package/lib/openzeppelin-contracts-upgradeable/test/finance/VestingWallet.test.js +35 -37
  2486. package/lib/openzeppelin-contracts-upgradeable/test/finance/VestingWalletCliff.test.js +70 -0
  2487. package/lib/openzeppelin-contracts-upgradeable/test/governance/Governor.t.sol +59 -0
  2488. package/lib/openzeppelin-contracts-upgradeable/test/governance/Governor.test.js +938 -590
  2489. package/lib/openzeppelin-contracts-upgradeable/test/governance/TimelockController.test.js +910 -765
  2490. package/lib/openzeppelin-contracts-upgradeable/test/governance/extensions/GovernorCountingFractional.test.js +248 -0
  2491. package/lib/openzeppelin-contracts-upgradeable/test/governance/extensions/GovernorCountingOverridable.test.js +346 -0
  2492. package/lib/openzeppelin-contracts-upgradeable/test/governance/extensions/GovernorERC721.test.js +127 -100
  2493. package/lib/openzeppelin-contracts-upgradeable/test/governance/extensions/GovernorNoncesKeyed.test.js +244 -0
  2494. package/lib/openzeppelin-contracts-upgradeable/test/governance/extensions/GovernorPreventLateQuorum.test.js +181 -173
  2495. package/lib/openzeppelin-contracts-upgradeable/test/governance/extensions/GovernorProposalGuardian.test.js +132 -0
  2496. package/lib/openzeppelin-contracts-upgradeable/test/governance/extensions/GovernorSequentialProposalId.test.js +202 -0
  2497. package/lib/openzeppelin-contracts-upgradeable/test/governance/extensions/GovernorStorage.test.js +155 -0
  2498. package/lib/openzeppelin-contracts-upgradeable/test/governance/extensions/GovernorSuperQuorum.test.js +168 -0
  2499. package/lib/openzeppelin-contracts-upgradeable/test/governance/extensions/GovernorSuperQuorumGreaterThanQuorum.t.sol +83 -0
  2500. package/lib/openzeppelin-contracts-upgradeable/test/governance/extensions/GovernorTimelockAccess.test.js +864 -0
  2501. package/lib/openzeppelin-contracts-upgradeable/test/governance/extensions/GovernorTimelockCompound.test.js +419 -339
  2502. package/lib/openzeppelin-contracts-upgradeable/test/governance/extensions/GovernorTimelockControl.test.js +468 -384
  2503. package/lib/openzeppelin-contracts-upgradeable/test/governance/extensions/GovernorVotesQuorumFraction.test.js +161 -133
  2504. package/lib/openzeppelin-contracts-upgradeable/test/governance/extensions/GovernorVotesSuperQuorumFraction.test.js +160 -0
  2505. package/lib/openzeppelin-contracts-upgradeable/test/governance/extensions/GovernorWithParams.test.js +234 -155
  2506. package/lib/openzeppelin-contracts-upgradeable/test/governance/utils/ERC6372.behavior.js +28 -0
  2507. package/lib/openzeppelin-contracts-upgradeable/test/governance/utils/Votes.behavior.js +254 -273
  2508. package/lib/openzeppelin-contracts-upgradeable/test/governance/utils/Votes.test.js +89 -48
  2509. package/lib/openzeppelin-contracts-upgradeable/test/governance/utils/VotesExtended.test.js +152 -0
  2510. package/lib/openzeppelin-contracts-upgradeable/test/helpers/access-manager.js +85 -0
  2511. package/lib/openzeppelin-contracts-upgradeable/test/helpers/account.js +14 -0
  2512. package/lib/openzeppelin-contracts-upgradeable/test/helpers/chains.js +56 -0
  2513. package/lib/openzeppelin-contracts-upgradeable/test/helpers/constants.js +7 -0
  2514. package/lib/openzeppelin-contracts-upgradeable/test/helpers/deploy.js +14 -0
  2515. package/lib/openzeppelin-contracts-upgradeable/test/helpers/eip712-types.js +61 -0
  2516. package/lib/openzeppelin-contracts-upgradeable/test/helpers/eip712.js +41 -26
  2517. package/lib/openzeppelin-contracts-upgradeable/test/helpers/enums.js +9 -24
  2518. package/lib/openzeppelin-contracts-upgradeable/test/helpers/erc4337.js +217 -0
  2519. package/lib/openzeppelin-contracts-upgradeable/test/helpers/erc7579.js +58 -0
  2520. package/lib/openzeppelin-contracts-upgradeable/test/helpers/erc7739.js +118 -0
  2521. package/lib/openzeppelin-contracts-upgradeable/test/helpers/governance.js +194 -188
  2522. package/lib/openzeppelin-contracts-upgradeable/test/helpers/iterate.js +41 -0
  2523. package/lib/openzeppelin-contracts-upgradeable/test/helpers/math.js +33 -0
  2524. package/lib/openzeppelin-contracts-upgradeable/test/helpers/methods.js +14 -0
  2525. package/lib/openzeppelin-contracts-upgradeable/test/helpers/precompiles.js +12 -0
  2526. package/lib/openzeppelin-contracts-upgradeable/test/helpers/random.js +24 -0
  2527. package/lib/openzeppelin-contracts-upgradeable/test/helpers/signers.js +184 -0
  2528. package/lib/openzeppelin-contracts-upgradeable/test/helpers/storage.js +48 -0
  2529. package/lib/openzeppelin-contracts-upgradeable/test/helpers/strings.js +5 -0
  2530. package/lib/openzeppelin-contracts-upgradeable/test/helpers/time.js +33 -0
  2531. package/lib/openzeppelin-contracts-upgradeable/test/helpers/txpool.js +9 -20
  2532. package/lib/openzeppelin-contracts-upgradeable/test/metatx/ERC2771Context.test.js +95 -71
  2533. package/lib/openzeppelin-contracts-upgradeable/test/metatx/ERC2771Forwarder.t.sol +279 -0
  2534. package/lib/openzeppelin-contracts-upgradeable/test/metatx/ERC2771Forwarder.test.js +384 -0
  2535. package/lib/openzeppelin-contracts-upgradeable/test/proxy/Clones.behaviour.js +60 -50
  2536. package/lib/openzeppelin-contracts-upgradeable/test/proxy/Clones.t.sol +91 -0
  2537. package/lib/openzeppelin-contracts-upgradeable/test/proxy/Clones.test.js +164 -56
  2538. package/lib/openzeppelin-contracts-upgradeable/test/proxy/ERC1967/ERC1967Proxy.test.js +17 -7
  2539. package/lib/openzeppelin-contracts-upgradeable/test/proxy/ERC1967/ERC1967Utils.test.js +162 -0
  2540. package/lib/openzeppelin-contracts-upgradeable/test/proxy/Proxy.behaviour.js +59 -98
  2541. package/lib/openzeppelin-contracts-upgradeable/test/proxy/beacon/BeaconProxy.test.js +98 -113
  2542. package/lib/openzeppelin-contracts-upgradeable/test/proxy/beacon/UpgradeableBeacon.test.js +34 -29
  2543. package/lib/openzeppelin-contracts-upgradeable/test/proxy/transparent/ProxyAdmin.test.js +45 -88
  2544. package/lib/openzeppelin-contracts-upgradeable/test/proxy/transparent/TransparentUpgradeableProxy.behaviour.js +209 -283
  2545. package/lib/openzeppelin-contracts-upgradeable/test/proxy/transparent/TransparentUpgradeableProxy.test.js +20 -7
  2546. package/lib/openzeppelin-contracts-upgradeable/test/proxy/utils/Initializable.test.js +94 -96
  2547. package/lib/openzeppelin-contracts-upgradeable/test/proxy/utils/UUPSUpgradeable.test.js +94 -59
  2548. package/lib/openzeppelin-contracts-upgradeable/test/sanity.test.js +27 -0
  2549. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC1155/ERC1155.behavior.js +530 -541
  2550. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC1155/ERC1155.test.js +101 -152
  2551. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC1155/extensions/ERC1155Burnable.test.js +35 -36
  2552. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC1155/extensions/ERC1155Pausable.test.js +54 -57
  2553. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC1155/extensions/ERC1155Supply.test.js +59 -51
  2554. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC1155/extensions/ERC1155URIStorage.test.js +37 -33
  2555. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC1155/utils/ERC1155Holder.test.js +40 -46
  2556. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC1155/utils/ERC1155Utils.test.js +299 -0
  2557. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC20/ERC20.behavior.js +142 -206
  2558. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC20/ERC20.test.js +133 -243
  2559. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC20/extensions/ERC1363.test.js +370 -0
  2560. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC20/extensions/ERC20Burnable.test.js +96 -10
  2561. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC20/extensions/ERC20Capped.test.js +43 -15
  2562. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC20/extensions/ERC20FlashMint.test.js +102 -82
  2563. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC20/extensions/ERC20Pausable.test.js +59 -64
  2564. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC20/extensions/ERC20Permit.test.js +109 -0
  2565. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC20/extensions/ERC20Votes.test.js +490 -462
  2566. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC20/extensions/ERC20Wrapper.test.js +133 -120
  2567. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC20/extensions/ERC4626.t.sol +41 -0
  2568. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC20/extensions/ERC4626.test.js +802 -536
  2569. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC20/extensions/draft-ERC20Bridgeable.test.js +89 -0
  2570. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC20/extensions/draft-ERC20TemporaryApproval.test.js +142 -0
  2571. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC20/utils/SafeERC20.test.js +387 -179
  2572. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC6909/ERC6909.behavior.js +216 -0
  2573. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC6909/ERC6909.test.js +104 -0
  2574. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC6909/extensions/ERC6909ContentURI.test.js +49 -0
  2575. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC6909/extensions/ERC6909Metadata.test.js +58 -0
  2576. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC6909/extensions/ERC6909TokenSupply.test.js +53 -0
  2577. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC721/ERC721.behavior.js +488 -479
  2578. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC721/ERC721.test.js +16 -11
  2579. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC721/ERC721Enumerable.test.js +16 -8
  2580. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC721/extensions/ERC721Burnable.test.js +43 -44
  2581. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC721/extensions/ERC721Consecutive.t.sol +80 -19
  2582. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC721/extensions/ERC721Consecutive.test.js +181 -165
  2583. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC721/extensions/ERC721Pausable.test.js +34 -51
  2584. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC721/extensions/ERC721Royalty.test.js +41 -24
  2585. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC721/extensions/ERC721URIStorage.test.js +69 -44
  2586. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC721/extensions/ERC721Votes.test.js +187 -167
  2587. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC721/extensions/ERC721Wrapper.test.js +201 -0
  2588. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC721/utils/ERC721Holder.test.js +12 -16
  2589. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC721/utils/ERC721Utils.test.js +94 -0
  2590. package/lib/openzeppelin-contracts-upgradeable/test/token/common/ERC2981.behavior.js +80 -88
  2591. package/lib/openzeppelin-contracts-upgradeable/test/utils/Address.test.js +160 -261
  2592. package/lib/openzeppelin-contracts-upgradeable/test/utils/Arrays.t.sol +31 -0
  2593. package/lib/openzeppelin-contracts-upgradeable/test/utils/Arrays.test.js +217 -95
  2594. package/lib/openzeppelin-contracts-upgradeable/test/utils/Base64.t.sol +34 -0
  2595. package/lib/openzeppelin-contracts-upgradeable/test/utils/Base64.test.js +48 -22
  2596. package/lib/openzeppelin-contracts-upgradeable/test/utils/Blockhash.t.sol +101 -0
  2597. package/lib/openzeppelin-contracts-upgradeable/test/utils/Blockhash.test.js +59 -0
  2598. package/lib/openzeppelin-contracts-upgradeable/test/utils/Bytes.t.sol +74 -0
  2599. package/lib/openzeppelin-contracts-upgradeable/test/utils/Bytes.test.js +212 -0
  2600. package/lib/openzeppelin-contracts-upgradeable/test/utils/CAIP.test.js +56 -0
  2601. package/lib/openzeppelin-contracts-upgradeable/test/utils/Calldata.test.js +22 -0
  2602. package/lib/openzeppelin-contracts-upgradeable/test/utils/Context.behavior.js +26 -20
  2603. package/lib/openzeppelin-contracts-upgradeable/test/utils/Context.test.js +10 -9
  2604. package/lib/openzeppelin-contracts-upgradeable/test/utils/Create2.t.sol +17 -0
  2605. package/lib/openzeppelin-contracts-upgradeable/test/utils/Create2.test.js +147 -49
  2606. package/lib/openzeppelin-contracts-upgradeable/test/utils/Memory.t.sol +21 -0
  2607. package/lib/openzeppelin-contracts-upgradeable/test/utils/Memory.test.js +39 -0
  2608. package/lib/openzeppelin-contracts-upgradeable/test/utils/Multicall.test.js +50 -35
  2609. package/lib/openzeppelin-contracts-upgradeable/test/utils/Nonces.behavior.js +189 -0
  2610. package/lib/openzeppelin-contracts-upgradeable/test/utils/Nonces.test.js +16 -0
  2611. package/lib/openzeppelin-contracts-upgradeable/test/utils/NoncesKeyed.test.js +17 -0
  2612. package/lib/openzeppelin-contracts-upgradeable/test/utils/Packing.t.sol +993 -0
  2613. package/lib/openzeppelin-contracts-upgradeable/test/utils/Packing.test.js +70 -0
  2614. package/lib/openzeppelin-contracts-upgradeable/test/utils/Panic.test.js +37 -0
  2615. package/lib/openzeppelin-contracts-upgradeable/test/utils/Pausable.test.js +90 -0
  2616. package/lib/openzeppelin-contracts-upgradeable/test/utils/ReentrancyGuard.test.js +50 -0
  2617. package/lib/openzeppelin-contracts-upgradeable/test/utils/ShortStrings.t.sol +109 -0
  2618. package/lib/openzeppelin-contracts-upgradeable/test/utils/ShortStrings.test.js +64 -0
  2619. package/lib/openzeppelin-contracts-upgradeable/test/utils/SlotDerivation.t.sol +248 -0
  2620. package/lib/openzeppelin-contracts-upgradeable/test/utils/SlotDerivation.test.js +58 -0
  2621. package/lib/openzeppelin-contracts-upgradeable/test/utils/StorageSlot.test.js +55 -92
  2622. package/lib/openzeppelin-contracts-upgradeable/test/utils/Strings.t.sol +50 -0
  2623. package/lib/openzeppelin-contracts-upgradeable/test/utils/Strings.test.js +323 -49
  2624. package/lib/openzeppelin-contracts-upgradeable/test/utils/TransientSlot.test.js +59 -0
  2625. package/lib/openzeppelin-contracts-upgradeable/test/utils/cryptography/ECDSA.test.js +167 -132
  2626. package/lib/openzeppelin-contracts-upgradeable/test/utils/cryptography/EIP712.test.js +79 -52
  2627. package/lib/openzeppelin-contracts-upgradeable/test/utils/cryptography/ERC1271.behavior.js +111 -0
  2628. package/lib/openzeppelin-contracts-upgradeable/test/utils/cryptography/ERC7739.test.js +42 -0
  2629. package/lib/openzeppelin-contracts-upgradeable/test/utils/cryptography/ERC7739Utils.test.js +203 -0
  2630. package/lib/openzeppelin-contracts-upgradeable/test/utils/cryptography/MerkleProof.test.js +210 -176
  2631. package/lib/openzeppelin-contracts-upgradeable/test/utils/cryptography/MessageHashUtils.t.sol +33 -0
  2632. package/lib/openzeppelin-contracts-upgradeable/test/utils/cryptography/MessageHashUtils.test.js +97 -0
  2633. package/lib/openzeppelin-contracts-upgradeable/test/utils/cryptography/P256.t.sol +65 -0
  2634. package/lib/openzeppelin-contracts-upgradeable/test/utils/cryptography/P256.test.js +182 -0
  2635. package/lib/openzeppelin-contracts-upgradeable/test/utils/cryptography/RSA.helper.js +17 -0
  2636. package/lib/openzeppelin-contracts-upgradeable/test/utils/cryptography/RSA.test.js +102 -0
  2637. package/lib/openzeppelin-contracts-upgradeable/test/utils/cryptography/SigVer15_186-3.rsp +3850 -0
  2638. package/lib/openzeppelin-contracts-upgradeable/test/utils/cryptography/SignatureChecker.test.js +397 -56
  2639. package/lib/openzeppelin-contracts-upgradeable/test/utils/cryptography/ecdsa_secp256r1_sha256_p1363_test.json +3719 -0
  2640. package/lib/openzeppelin-contracts-upgradeable/test/utils/draft-InteroperableAddress.t.sol +99 -0
  2641. package/lib/openzeppelin-contracts-upgradeable/test/utils/draft-InteroperableAddress.test.js +170 -0
  2642. package/lib/openzeppelin-contracts-upgradeable/test/utils/introspection/ERC165.test.js +11 -6
  2643. package/lib/openzeppelin-contracts-upgradeable/test/utils/introspection/ERC165Checker.test.js +84 -142
  2644. package/lib/openzeppelin-contracts-upgradeable/test/utils/introspection/SupportsInterface.behavior.js +109 -90
  2645. package/lib/openzeppelin-contracts-upgradeable/test/utils/math/Math.t.sol +255 -24
  2646. package/lib/openzeppelin-contracts-upgradeable/test/utils/math/Math.test.js +616 -215
  2647. package/lib/openzeppelin-contracts-upgradeable/test/utils/math/SafeCast.test.js +84 -89
  2648. package/lib/openzeppelin-contracts-upgradeable/test/utils/math/SignedMath.t.sol +80 -0
  2649. package/lib/openzeppelin-contracts-upgradeable/test/utils/math/SignedMath.test.js +25 -65
  2650. package/lib/openzeppelin-contracts-upgradeable/test/utils/structs/BitMap.test.js +83 -79
  2651. package/lib/openzeppelin-contracts-upgradeable/test/utils/structs/Checkpoints.t.sol +440 -0
  2652. package/lib/openzeppelin-contracts-upgradeable/test/utils/structs/Checkpoints.test.js +147 -0
  2653. package/lib/openzeppelin-contracts-upgradeable/test/utils/structs/CircularBuffer.test.js +83 -0
  2654. package/lib/openzeppelin-contracts-upgradeable/test/utils/structs/DoubleEndedQueue.test.js +47 -41
  2655. package/lib/openzeppelin-contracts-upgradeable/test/utils/structs/EnumerableMap.behavior.js +122 -89
  2656. package/lib/openzeppelin-contracts-upgradeable/test/utils/structs/EnumerableMap.test.js +70 -73
  2657. package/lib/openzeppelin-contracts-upgradeable/test/utils/structs/EnumerableSet.behavior.js +105 -61
  2658. package/lib/openzeppelin-contracts-upgradeable/test/utils/structs/EnumerableSet.test.js +53 -33
  2659. package/lib/openzeppelin-contracts-upgradeable/test/utils/structs/Heap.t.sol +74 -0
  2660. package/lib/openzeppelin-contracts-upgradeable/test/utils/structs/Heap.test.js +113 -0
  2661. package/lib/openzeppelin-contracts-upgradeable/test/utils/structs/MerkleTree.test.js +180 -0
  2662. package/lib/openzeppelin-contracts-upgradeable/test/utils/types/Time.test.js +135 -0
  2663. package/package.json +9 -23
  2664. package/remappings.txt +5 -0
  2665. package/script/CreateMarketLib.sol +1873 -0
  2666. package/script/DeployProxy.s.sol +27 -0
  2667. package/script/DeployUpgradeablePM.s.sol +47 -0
  2668. package/script/PredictionMarketV3_3Flow.s.sol +132 -0
  2669. package/scripts/copy-abis.js +57 -0
  2670. package/src/Application.js +18 -0
  2671. package/src/interfaces/index.js +16 -15
  2672. package/src/models/PredictionMarketV3ControllerContract.js +2 -2
  2673. package/src/models/PredictionMarketV3ManagerContract.js +4 -0
  2674. package/src/models/PredictionMarketV3PlusContract.js +210 -0
  2675. package/src/models/index.js +2 -0
  2676. package/test/PredictionMarket.t.sol +923 -0
  2677. package/test/PredictionMarketManager.t.sol +909 -0
  2678. package/build/contracts/AccessControl.json +0 -1
  2679. package/build/contracts/Address.json +0 -1
  2680. package/build/contracts/BalanceHolder_ERC20.json +0 -1
  2681. package/build/contracts/CeilDiv.json +0 -1
  2682. package/build/contracts/Clones.json +0 -1
  2683. package/build/contracts/Context.json +0 -1
  2684. package/build/contracts/ERC165.json +0 -1
  2685. package/build/contracts/ERC20.json +0 -1
  2686. package/build/contracts/ERC20Burnable.json +0 -1
  2687. package/build/contracts/ERC20Pausable.json +0 -1
  2688. package/build/contracts/FantasyERC20.json +0 -1
  2689. package/build/contracts/IAccessControl.json +0 -1
  2690. package/build/contracts/IBalanceHolder_ERC20.json +0 -1
  2691. package/build/contracts/IERC165.json +0 -1
  2692. package/build/contracts/IERC20.json +0 -1
  2693. package/build/contracts/IERC20Metadata.json +0 -1
  2694. package/build/contracts/IERC721.json +0 -1
  2695. package/build/contracts/IERC721Enumerable.json +0 -1
  2696. package/build/contracts/IERC721Metadata.json +0 -1
  2697. package/build/contracts/IFantasyERC20.json +0 -1
  2698. package/build/contracts/IPredictionMarketV3Factory.json +0 -1
  2699. package/build/contracts/IPredictionMarketV3Manager.json +0 -1
  2700. package/build/contracts/IRealityETH_ERC20.json +0 -1
  2701. package/build/contracts/IRealityETH_IERC20.json +0 -1
  2702. package/build/contracts/IWETH.json +0 -1
  2703. package/build/contracts/LandFactory.json +0 -1
  2704. package/build/contracts/Ownable.json +0 -1
  2705. package/build/contracts/Pausable.json +0 -1
  2706. package/build/contracts/PredictionMarketV3Claimer.json +0 -1
  2707. package/build/contracts/PredictionMarketV3Controller.json +0 -1
  2708. package/build/contracts/PredictionMarketV3Factory.json +0 -1
  2709. package/build/contracts/PredictionMarketV3Manager.json +0 -1
  2710. package/build/contracts/PredictionMarketV3Querier.json +0 -1
  2711. package/build/contracts/Proxy.json +0 -1
  2712. package/build/contracts/RealityETH_ERC20_Factory.json +0 -1
  2713. package/build/contracts/RealityETH_ERC20_v3_0.json +0 -1
  2714. package/build/contracts/RealityETH_ERC20_v3_0_.json +0 -1
  2715. package/build/contracts/ReentrancyGuard.json +0 -1
  2716. package/build/contracts/SafeERC20.json +0 -1
  2717. package/build/contracts/StorageSlot.json +0 -1
  2718. package/build/contracts/TWProxy.json +0 -1
  2719. package/build/contracts/USDCERC20.json +0 -1
  2720. package/build/contracts/Voting.json +0 -1
  2721. package/build/contracts/test.json +0 -1
  2722. package/cache/solidity-files-cache.json +0 -1
  2723. package/cache/zksync-solidity-files-cache.json +0 -1
  2724. package/cleanContracts.js +0 -22
  2725. package/contracts/IPredictionMarketV3.sol +0 -207
  2726. package/contracts/Migrations.sol +0 -24
  2727. package/contracts/PredictionMarketV3.sol +0 -1332
  2728. package/contracts/RealityETH_ERC20_v3_0.sol +0 -8
  2729. package/contracts/TWProxy.sol +0 -42
  2730. package/contracts/USDCERC20.sol +0 -12
  2731. package/contracts/WETH9.sol +0 -62
  2732. package/lib/openzeppelin-contracts/.changeset/new-ways-own.md +0 -5
  2733. package/lib/openzeppelin-contracts/.eslintrc +0 -62
  2734. package/lib/openzeppelin-contracts/.gitattributes +0 -1
  2735. package/lib/openzeppelin-contracts/.github/workflows/changelog.yml +0 -28
  2736. package/lib/openzeppelin-contracts/.solhint.json +0 -14
  2737. package/lib/openzeppelin-contracts/audit/2017-03.md +0 -292
  2738. package/lib/openzeppelin-contracts/certora/applyHarness.patch +0 -101
  2739. package/lib/openzeppelin-contracts/certora/harnesses/ERC20VotesHarness.sol +0 -28
  2740. package/lib/openzeppelin-contracts/certora/harnesses/WizardControlFirstPriority.sol +0 -150
  2741. package/lib/openzeppelin-contracts/certora/harnesses/WizardFirstTry.sol +0 -141
  2742. package/lib/openzeppelin-contracts/certora/munged/.gitignore +0 -2
  2743. package/lib/openzeppelin-contracts/certora/scripts/Governor.sh +0 -10
  2744. package/lib/openzeppelin-contracts/certora/scripts/GovernorCountingSimple-counting.sh +0 -10
  2745. package/lib/openzeppelin-contracts/certora/scripts/WizardControlFirstPriority.sh +0 -12
  2746. package/lib/openzeppelin-contracts/certora/scripts/WizardFirstTry.sh +0 -10
  2747. package/lib/openzeppelin-contracts/certora/scripts/sanity.sh +0 -14
  2748. package/lib/openzeppelin-contracts/certora/scripts/verifyAll.sh +0 -39
  2749. package/lib/openzeppelin-contracts/certora/specs/GovernorBase.spec +0 -333
  2750. package/lib/openzeppelin-contracts/certora/specs/GovernorCountingSimple.spec +0 -221
  2751. package/lib/openzeppelin-contracts/certora/specs/RulesInProgress.spec +0 -139
  2752. package/lib/openzeppelin-contracts/certora/specs/sanity.spec +0 -14
  2753. package/lib/openzeppelin-contracts/contracts/access/AccessControlCrossChain.sol +0 -45
  2754. package/lib/openzeppelin-contracts/contracts/access/AccessControlEnumerable.sol +0 -64
  2755. package/lib/openzeppelin-contracts/contracts/access/IAccessControlEnumerable.sol +0 -31
  2756. package/lib/openzeppelin-contracts/contracts/crosschain/CrossChainEnabled.sol +0 -54
  2757. package/lib/openzeppelin-contracts/contracts/crosschain/README.adoc +0 -34
  2758. package/lib/openzeppelin-contracts/contracts/crosschain/amb/CrossChainEnabledAMB.sol +0 -49
  2759. package/lib/openzeppelin-contracts/contracts/crosschain/amb/LibAMB.sol +0 -35
  2760. package/lib/openzeppelin-contracts/contracts/crosschain/arbitrum/CrossChainEnabledArbitrumL1.sol +0 -44
  2761. package/lib/openzeppelin-contracts/contracts/crosschain/arbitrum/CrossChainEnabledArbitrumL2.sol +0 -40
  2762. package/lib/openzeppelin-contracts/contracts/crosschain/arbitrum/LibArbitrumL1.sol +0 -42
  2763. package/lib/openzeppelin-contracts/contracts/crosschain/arbitrum/LibArbitrumL2.sol +0 -45
  2764. package/lib/openzeppelin-contracts/contracts/crosschain/errors.sol +0 -7
  2765. package/lib/openzeppelin-contracts/contracts/crosschain/optimism/CrossChainEnabledOptimism.sol +0 -41
  2766. package/lib/openzeppelin-contracts/contracts/crosschain/optimism/LibOptimism.sol +0 -36
  2767. package/lib/openzeppelin-contracts/contracts/crosschain/polygon/CrossChainEnabledPolygonChild.sol +0 -72
  2768. package/lib/openzeppelin-contracts/contracts/finance/PaymentSplitter.sol +0 -214
  2769. package/lib/openzeppelin-contracts/contracts/governance/compatibility/GovernorCompatibilityBravo.sol +0 -285
  2770. package/lib/openzeppelin-contracts/contracts/governance/compatibility/IGovernorCompatibilityBravo.sol +0 -114
  2771. package/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorProposalThreshold.sol +0 -23
  2772. package/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorVotesComp.sol +0 -31
  2773. package/lib/openzeppelin-contracts/contracts/governance/extensions/IGovernorTimelock.sol +0 -26
  2774. package/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC2612.sol +0 -8
  2775. package/lib/openzeppelin-contracts/contracts/metatx/MinimalForwarder.sol +0 -73
  2776. package/lib/openzeppelin-contracts/contracts/mocks/AccessControlCrossChainMock.sol +0 -22
  2777. package/lib/openzeppelin-contracts/contracts/mocks/AccessControlEnumerableMock.sol +0 -17
  2778. package/lib/openzeppelin-contracts/contracts/mocks/AccessControlMock.sol +0 -17
  2779. package/lib/openzeppelin-contracts/contracts/mocks/AddressImpl.sol +0 -46
  2780. package/lib/openzeppelin-contracts/contracts/mocks/BadBeacon.sol +0 -11
  2781. package/lib/openzeppelin-contracts/contracts/mocks/Base64Mock.sol +0 -11
  2782. package/lib/openzeppelin-contracts/contracts/mocks/BitmapMock.sol +0 -27
  2783. package/lib/openzeppelin-contracts/contracts/mocks/CheckpointsMock.sol +0 -120
  2784. package/lib/openzeppelin-contracts/contracts/mocks/ClashingImplementation.sol +0 -18
  2785. package/lib/openzeppelin-contracts/contracts/mocks/ClonesMock.sol +0 -36
  2786. package/lib/openzeppelin-contracts/contracts/mocks/ConditionalEscrowMock.sol +0 -18
  2787. package/lib/openzeppelin-contracts/contracts/mocks/CountersImpl.sol +0 -27
  2788. package/lib/openzeppelin-contracts/contracts/mocks/Create2Impl.sol +0 -34
  2789. package/lib/openzeppelin-contracts/contracts/mocks/DoubleEndedQueueMock.sol +0 -58
  2790. package/lib/openzeppelin-contracts/contracts/mocks/ECDSAMock.sol +0 -41
  2791. package/lib/openzeppelin-contracts/contracts/mocks/EIP712External.sol +0 -31
  2792. package/lib/openzeppelin-contracts/contracts/mocks/ERC1155BurnableMock.sol +0 -18
  2793. package/lib/openzeppelin-contracts/contracts/mocks/ERC1155Mock.sol +0 -51
  2794. package/lib/openzeppelin-contracts/contracts/mocks/ERC1155PausableMock.sol +0 -29
  2795. package/lib/openzeppelin-contracts/contracts/mocks/ERC1155ReceiverMock.sol +0 -52
  2796. package/lib/openzeppelin-contracts/contracts/mocks/ERC1155SupplyMock.sol +0 -21
  2797. package/lib/openzeppelin-contracts/contracts/mocks/ERC1155URIStorageMock.sol +0 -22
  2798. package/lib/openzeppelin-contracts/contracts/mocks/ERC165CheckerMock.sol +0 -29
  2799. package/lib/openzeppelin-contracts/contracts/mocks/ERC165Mock.sol +0 -7
  2800. package/lib/openzeppelin-contracts/contracts/mocks/ERC165StorageMock.sol +0 -11
  2801. package/lib/openzeppelin-contracts/contracts/mocks/ERC1820ImplementerMock.sol +0 -11
  2802. package/lib/openzeppelin-contracts/contracts/mocks/ERC20BurnableMock.sol +0 -16
  2803. package/lib/openzeppelin-contracts/contracts/mocks/ERC20CappedMock.sol +0 -17
  2804. package/lib/openzeppelin-contracts/contracts/mocks/ERC20DecimalsMock.sol +0 -29
  2805. package/lib/openzeppelin-contracts/contracts/mocks/ERC20FlashMintMock.sol +0 -43
  2806. package/lib/openzeppelin-contracts/contracts/mocks/ERC20Mock.sol +0 -41
  2807. package/lib/openzeppelin-contracts/contracts/mocks/ERC20PausableMock.sol +0 -33
  2808. package/lib/openzeppelin-contracts/contracts/mocks/ERC20PermitMock.sol +0 -20
  2809. package/lib/openzeppelin-contracts/contracts/mocks/ERC20SnapshotMock.sol +0 -28
  2810. package/lib/openzeppelin-contracts/contracts/mocks/ERC20VotesCompMock.sol +0 -21
  2811. package/lib/openzeppelin-contracts/contracts/mocks/ERC20VotesMock.sol +0 -21
  2812. package/lib/openzeppelin-contracts/contracts/mocks/ERC20WrapperMock.sol +0 -17
  2813. package/lib/openzeppelin-contracts/contracts/mocks/ERC4626Mock.sol +0 -60
  2814. package/lib/openzeppelin-contracts/contracts/mocks/ERC721BurnableMock.sol +0 -29
  2815. package/lib/openzeppelin-contracts/contracts/mocks/ERC721ConsecutiveEnumerableMock.sol +0 -55
  2816. package/lib/openzeppelin-contracts/contracts/mocks/ERC721ConsecutiveMock.sol +0 -86
  2817. package/lib/openzeppelin-contracts/contracts/mocks/ERC721EnumerableMock.sol +0 -51
  2818. package/lib/openzeppelin-contracts/contracts/mocks/ERC721Mock.sol +0 -41
  2819. package/lib/openzeppelin-contracts/contracts/mocks/ERC721PausableMock.sol +0 -45
  2820. package/lib/openzeppelin-contracts/contracts/mocks/ERC721ReceiverMock.sol +0 -42
  2821. package/lib/openzeppelin-contracts/contracts/mocks/ERC721RoyaltyMock.sol +0 -33
  2822. package/lib/openzeppelin-contracts/contracts/mocks/ERC721URIStorageMock.sol +0 -55
  2823. package/lib/openzeppelin-contracts/contracts/mocks/ERC721VotesMock.sol +0 -25
  2824. package/lib/openzeppelin-contracts/contracts/mocks/ERC777Mock.sol +0 -56
  2825. package/lib/openzeppelin-contracts/contracts/mocks/ERC777SenderRecipientMock.sol +0 -161
  2826. package/lib/openzeppelin-contracts/contracts/mocks/EnumerableMapMock.sol +0 -221
  2827. package/lib/openzeppelin-contracts/contracts/mocks/EnumerableSetMock.sol +0 -111
  2828. package/lib/openzeppelin-contracts/contracts/mocks/GovernorCompMock.sol +0 -31
  2829. package/lib/openzeppelin-contracts/contracts/mocks/GovernorCompatibilityBravoMock.sol +0 -127
  2830. package/lib/openzeppelin-contracts/contracts/mocks/GovernorMock.sol +0 -50
  2831. package/lib/openzeppelin-contracts/contracts/mocks/GovernorPreventLateQuorumMock.sol +0 -60
  2832. package/lib/openzeppelin-contracts/contracts/mocks/GovernorTimelockCompoundMock.sol +0 -96
  2833. package/lib/openzeppelin-contracts/contracts/mocks/GovernorTimelockControlMock.sol +0 -93
  2834. package/lib/openzeppelin-contracts/contracts/mocks/GovernorVoteMock.sol +0 -31
  2835. package/lib/openzeppelin-contracts/contracts/mocks/GovernorWithParamsMock.sol +0 -61
  2836. package/lib/openzeppelin-contracts/contracts/mocks/MathMock.sol +0 -48
  2837. package/lib/openzeppelin-contracts/contracts/mocks/MerkleProofWrapper.sol +0 -65
  2838. package/lib/openzeppelin-contracts/contracts/mocks/MulticallTest.sol +0 -23
  2839. package/lib/openzeppelin-contracts/contracts/mocks/MulticallTokenMock.sol +0 -10
  2840. package/lib/openzeppelin-contracts/contracts/mocks/Ownable2StepMock.sol +0 -7
  2841. package/lib/openzeppelin-contracts/contracts/mocks/OwnableMock.sol +0 -7
  2842. package/lib/openzeppelin-contracts/contracts/mocks/PullPaymentMock.sol +0 -15
  2843. package/lib/openzeppelin-contracts/contracts/mocks/SafeCastMock.sol +0 -267
  2844. package/lib/openzeppelin-contracts/contracts/mocks/SafeERC20Helper.sol +0 -194
  2845. package/lib/openzeppelin-contracts/contracts/mocks/SafeMathMock.sol +0 -138
  2846. package/lib/openzeppelin-contracts/contracts/mocks/SignatureCheckerMock.sol +0 -17
  2847. package/lib/openzeppelin-contracts/contracts/mocks/SignedMathMock.sol +0 -23
  2848. package/lib/openzeppelin-contracts/contracts/mocks/SignedSafeMathMock.sol +0 -23
  2849. package/lib/openzeppelin-contracts/contracts/mocks/StringsMock.sol +0 -23
  2850. package/lib/openzeppelin-contracts/contracts/mocks/TimersBlockNumberImpl.sol +0 -39
  2851. package/lib/openzeppelin-contracts/contracts/mocks/TimersTimestampImpl.sol +0 -39
  2852. package/lib/openzeppelin-contracts/contracts/mocks/UUPS/UUPSLegacy.sol +0 -58
  2853. package/lib/openzeppelin-contracts/contracts/mocks/UUPS/UUPSUpgradeableMock.sol +0 -21
  2854. package/lib/openzeppelin-contracts/contracts/mocks/crosschain/bridges.sol +0 -102
  2855. package/lib/openzeppelin-contracts/contracts/mocks/crosschain/receivers.sol +0 -54
  2856. package/lib/openzeppelin-contracts/contracts/mocks/wizard/MyGovernor1.sol +0 -87
  2857. package/lib/openzeppelin-contracts/contracts/mocks/wizard/MyGovernor2.sol +0 -93
  2858. package/lib/openzeppelin-contracts/contracts/mocks/wizard/MyGovernor3.sol +0 -96
  2859. package/lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol +0 -185
  2860. package/lib/openzeppelin-contracts/contracts/security/Pausable.sol +0 -105
  2861. package/lib/openzeppelin-contracts/contracts/security/PullPayment.sol +0 -74
  2862. package/lib/openzeppelin-contracts/contracts/security/README.adoc +0 -20
  2863. package/lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol +0 -69
  2864. package/lib/openzeppelin-contracts/contracts/token/ERC1155/presets/ERC1155PresetMinterPauser.sol +0 -128
  2865. package/lib/openzeppelin-contracts/contracts/token/ERC1155/presets/README.md +0 -1
  2866. package/lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Receiver.sol +0 -19
  2867. package/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Snapshot.sol +0 -195
  2868. package/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20VotesComp.sol +0 -46
  2869. package/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-ERC20Permit.sol +0 -95
  2870. package/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol +0 -60
  2871. package/lib/openzeppelin-contracts/contracts/token/ERC20/presets/ERC20PresetFixedSupply.sol +0 -35
  2872. package/lib/openzeppelin-contracts/contracts/token/ERC20/presets/ERC20PresetMinterPauser.sol +0 -94
  2873. package/lib/openzeppelin-contracts/contracts/token/ERC20/presets/README.md +0 -1
  2874. package/lib/openzeppelin-contracts/contracts/token/ERC20/utils/TokenTimelock.sol +0 -76
  2875. package/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/draft-ERC721Votes.sol +0 -9
  2876. package/lib/openzeppelin-contracts/contracts/token/ERC721/presets/ERC721PresetMinterPauserAutoId.sol +0 -140
  2877. package/lib/openzeppelin-contracts/contracts/token/ERC721/presets/README.md +0 -1
  2878. package/lib/openzeppelin-contracts/contracts/token/ERC777/ERC777.sol +0 -547
  2879. package/lib/openzeppelin-contracts/contracts/token/ERC777/IERC777.sol +0 -209
  2880. package/lib/openzeppelin-contracts/contracts/token/ERC777/IERC777Recipient.sol +0 -35
  2881. package/lib/openzeppelin-contracts/contracts/token/ERC777/IERC777Sender.sol +0 -35
  2882. package/lib/openzeppelin-contracts/contracts/token/ERC777/README.adoc +0 -30
  2883. package/lib/openzeppelin-contracts/contracts/token/ERC777/presets/ERC777PresetFixedSupply.sol +0 -30
  2884. package/lib/openzeppelin-contracts/contracts/utils/Checkpoints.sol +0 -554
  2885. package/lib/openzeppelin-contracts/contracts/utils/Counters.sol +0 -43
  2886. package/lib/openzeppelin-contracts/contracts/utils/Timers.sol +0 -73
  2887. package/lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol +0 -8
  2888. package/lib/openzeppelin-contracts/contracts/utils/escrow/ConditionalEscrow.sol +0 -25
  2889. package/lib/openzeppelin-contracts/contracts/utils/escrow/Escrow.sol +0 -67
  2890. package/lib/openzeppelin-contracts/contracts/utils/escrow/RefundEscrow.sol +0 -100
  2891. package/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Storage.sol +0 -42
  2892. package/lib/openzeppelin-contracts/contracts/utils/introspection/ERC1820Implementer.sol +0 -44
  2893. package/lib/openzeppelin-contracts/contracts/utils/introspection/IERC1820Implementer.sol +0 -20
  2894. package/lib/openzeppelin-contracts/contracts/utils/introspection/IERC1820Registry.sol +0 -116
  2895. package/lib/openzeppelin-contracts/contracts/utils/math/SafeMath.sol +0 -227
  2896. package/lib/openzeppelin-contracts/contracts/utils/math/SignedSafeMath.sol +0 -68
  2897. package/lib/openzeppelin-contracts/contracts/vendor/amb/IAMB.sol +0 -49
  2898. package/lib/openzeppelin-contracts/contracts/vendor/arbitrum/IArbSys.sol +0 -141
  2899. package/lib/openzeppelin-contracts/contracts/vendor/arbitrum/IBridge.sol +0 -109
  2900. package/lib/openzeppelin-contracts/contracts/vendor/arbitrum/IDelayedMessageProvider.sol +0 -16
  2901. package/lib/openzeppelin-contracts/contracts/vendor/arbitrum/IInbox.sol +0 -152
  2902. package/lib/openzeppelin-contracts/contracts/vendor/arbitrum/IOutbox.sol +0 -121
  2903. package/lib/openzeppelin-contracts/contracts/vendor/optimism/ICrossDomainMessenger.sol +0 -38
  2904. package/lib/openzeppelin-contracts/contracts/vendor/optimism/LICENSE +0 -22
  2905. package/lib/openzeppelin-contracts/contracts/vendor/polygon/IFxMessageProcessor.sol +0 -11
  2906. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/crosschain.adoc +0 -210
  2907. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/crowdsales.adoc +0 -11
  2908. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/drafts.adoc +0 -19
  2909. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc777.adoc +0 -73
  2910. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/releases-stability.adoc +0 -85
  2911. package/lib/openzeppelin-contracts/hardhat/env-contract.js +0 -10
  2912. package/lib/openzeppelin-contracts/lib/forge-std/.gitmodules +0 -3
  2913. package/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/LICENSE +0 -674
  2914. package/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/Makefile +0 -14
  2915. package/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/default.nix +0 -4
  2916. package/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/demo/demo.sol +0 -222
  2917. package/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/package.json +0 -15
  2918. package/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/test.sol +0 -469
  2919. package/lib/openzeppelin-contracts/scripts/generate/templates/CheckpointsMock.js +0 -80
  2920. package/lib/openzeppelin-contracts/scripts/generate/templates/EnumerableMapMock.js +0 -66
  2921. package/lib/openzeppelin-contracts/scripts/generate/templates/EnumerableSetMock.js +0 -56
  2922. package/lib/openzeppelin-contracts/scripts/generate/templates/SafeCastMock.js +0 -50
  2923. package/lib/openzeppelin-contracts/scripts/migrate-imports.js +0 -177
  2924. package/lib/openzeppelin-contracts/scripts/prepare-contracts-package.sh +0 -15
  2925. package/lib/openzeppelin-contracts/scripts/prepare.sh +0 -10
  2926. package/lib/openzeppelin-contracts/scripts/release/release.sh +0 -145
  2927. package/lib/openzeppelin-contracts/scripts/release/update-changelog-release-date.js +0 -34
  2928. package/lib/openzeppelin-contracts/test/access/AccessControlCrossChain.test.js +0 -59
  2929. package/lib/openzeppelin-contracts/test/access/AccessControlEnumerable.test.js +0 -15
  2930. package/lib/openzeppelin-contracts/test/crosschain/CrossChainEnabled.test.js +0 -88
  2931. package/lib/openzeppelin-contracts/test/finance/PaymentSplitter.test.js +0 -217
  2932. package/lib/openzeppelin-contracts/test/governance/compatibility/GovernorCompatibilityBravo.test.js +0 -265
  2933. package/lib/openzeppelin-contracts/test/governance/extensions/GovernorComp.test.js +0 -78
  2934. package/lib/openzeppelin-contracts/test/helpers/create2.js +0 -12
  2935. package/lib/openzeppelin-contracts/test/helpers/crosschain.js +0 -63
  2936. package/lib/openzeppelin-contracts/test/helpers/customError.js +0 -24
  2937. package/lib/openzeppelin-contracts/test/helpers/erc1967.js +0 -24
  2938. package/lib/openzeppelin-contracts/test/helpers/sign.js +0 -47
  2939. package/lib/openzeppelin-contracts/test/metatx/MinimalForwarder.test.js +0 -184
  2940. package/lib/openzeppelin-contracts/test/migrate-imports.test.js +0 -29
  2941. package/lib/openzeppelin-contracts/test/security/Pausable.test.js +0 -89
  2942. package/lib/openzeppelin-contracts/test/security/PullPayment.test.js +0 -51
  2943. package/lib/openzeppelin-contracts/test/security/ReentrancyGuard.test.js +0 -40
  2944. package/lib/openzeppelin-contracts/test/token/ERC1155/presets/ERC1155PresetMinterPauser.test.js +0 -146
  2945. package/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Burnable.behavior.js +0 -109
  2946. package/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Capped.behavior.js +0 -32
  2947. package/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Snapshot.test.js +0 -204
  2948. package/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20VotesComp.test.js +0 -496
  2949. package/lib/openzeppelin-contracts/test/token/ERC20/extensions/draft-ERC20Permit.test.js +0 -109
  2950. package/lib/openzeppelin-contracts/test/token/ERC20/presets/ERC20PresetFixedSupply.test.js +0 -42
  2951. package/lib/openzeppelin-contracts/test/token/ERC20/presets/ERC20PresetMinterPauser.test.js +0 -113
  2952. package/lib/openzeppelin-contracts/test/token/ERC20/utils/TokenTimelock.test.js +0 -71
  2953. package/lib/openzeppelin-contracts/test/token/ERC721/presets/ERC721PresetMinterPauserAutoId.test.js +0 -125
  2954. package/lib/openzeppelin-contracts/test/token/ERC777/ERC777.behavior.js +0 -555
  2955. package/lib/openzeppelin-contracts/test/token/ERC777/ERC777.test.js +0 -610
  2956. package/lib/openzeppelin-contracts/test/token/ERC777/presets/ERC777PresetFixedSupply.test.js +0 -49
  2957. package/lib/openzeppelin-contracts/test/utils/Checkpoints.test.js +0 -189
  2958. package/lib/openzeppelin-contracts/test/utils/Counters.test.js +0 -84
  2959. package/lib/openzeppelin-contracts/test/utils/TimersBlockNumberImpl.test.js +0 -55
  2960. package/lib/openzeppelin-contracts/test/utils/TimersTimestamp.test.js +0 -55
  2961. package/lib/openzeppelin-contracts/test/utils/escrow/ConditionalEscrow.test.js +0 -36
  2962. package/lib/openzeppelin-contracts/test/utils/escrow/Escrow.behavior.js +0 -94
  2963. package/lib/openzeppelin-contracts/test/utils/escrow/Escrow.test.js +0 -14
  2964. package/lib/openzeppelin-contracts/test/utils/escrow/RefundEscrow.test.js +0 -148
  2965. package/lib/openzeppelin-contracts/test/utils/introspection/ERC165Storage.test.js +0 -25
  2966. package/lib/openzeppelin-contracts/test/utils/introspection/ERC1820Implementer.test.js +0 -66
  2967. package/lib/openzeppelin-contracts/test/utils/math/SafeMath.test.js +0 -403
  2968. package/lib/openzeppelin-contracts/test/utils/math/SignedSafeMath.test.js +0 -152
  2969. package/lib/openzeppelin-contracts-upgradeable/.changeset/new-ways-own.md +0 -5
  2970. package/lib/openzeppelin-contracts-upgradeable/.eslintrc +0 -62
  2971. package/lib/openzeppelin-contracts-upgradeable/.gitattributes +0 -1
  2972. package/lib/openzeppelin-contracts-upgradeable/.github/ISSUE_TEMPLATE/bug_report.md +0 -21
  2973. package/lib/openzeppelin-contracts-upgradeable/.github/workflows/changelog.yml +0 -28
  2974. package/lib/openzeppelin-contracts-upgradeable/.github/workflows/merge-upstream.yml +0 -28
  2975. package/lib/openzeppelin-contracts-upgradeable/.github/workflows/transpile.yml +0 -27
  2976. package/lib/openzeppelin-contracts-upgradeable/.solhint.json +0 -14
  2977. package/lib/openzeppelin-contracts-upgradeable/UPGRADEABLE.md +0 -47
  2978. package/lib/openzeppelin-contracts-upgradeable/audit/2017-03.md +0 -292
  2979. package/lib/openzeppelin-contracts-upgradeable/certora/applyHarness.patch +0 -101
  2980. package/lib/openzeppelin-contracts-upgradeable/certora/harnesses/ERC20VotesHarness.sol +0 -28
  2981. package/lib/openzeppelin-contracts-upgradeable/certora/harnesses/WizardControlFirstPriority.sol +0 -150
  2982. package/lib/openzeppelin-contracts-upgradeable/certora/harnesses/WizardFirstTry.sol +0 -141
  2983. package/lib/openzeppelin-contracts-upgradeable/certora/munged/.gitignore +0 -2
  2984. package/lib/openzeppelin-contracts-upgradeable/certora/scripts/Governor.sh +0 -10
  2985. package/lib/openzeppelin-contracts-upgradeable/certora/scripts/GovernorCountingSimple-counting.sh +0 -10
  2986. package/lib/openzeppelin-contracts-upgradeable/certora/scripts/WizardControlFirstPriority.sh +0 -12
  2987. package/lib/openzeppelin-contracts-upgradeable/certora/scripts/WizardFirstTry.sh +0 -10
  2988. package/lib/openzeppelin-contracts-upgradeable/certora/scripts/sanity.sh +0 -14
  2989. package/lib/openzeppelin-contracts-upgradeable/certora/scripts/verifyAll.sh +0 -39
  2990. package/lib/openzeppelin-contracts-upgradeable/certora/specs/GovernorBase.spec +0 -333
  2991. package/lib/openzeppelin-contracts-upgradeable/certora/specs/GovernorCountingSimple.spec +0 -221
  2992. package/lib/openzeppelin-contracts-upgradeable/certora/specs/RulesInProgress.spec +0 -139
  2993. package/lib/openzeppelin-contracts-upgradeable/certora/specs/sanity.spec +0 -14
  2994. package/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlCrossChainUpgradeable.sol +0 -58
  2995. package/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlEnumerableUpgradeable.sol +0 -77
  2996. package/lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlEnumerableUpgradeable.sol +0 -31
  2997. package/lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol +0 -88
  2998. package/lib/openzeppelin-contracts-upgradeable/contracts/crosschain/CrossChainEnabledUpgradeable.sol +0 -67
  2999. package/lib/openzeppelin-contracts-upgradeable/contracts/crosschain/README.adoc +0 -34
  3000. package/lib/openzeppelin-contracts-upgradeable/contracts/crosschain/amb/CrossChainEnabledAMBUpgradeable.sol +0 -57
  3001. package/lib/openzeppelin-contracts-upgradeable/contracts/crosschain/amb/LibAMBUpgradeable.sol +0 -35
  3002. package/lib/openzeppelin-contracts-upgradeable/contracts/crosschain/arbitrum/CrossChainEnabledArbitrumL1Upgradeable.sol +0 -52
  3003. package/lib/openzeppelin-contracts-upgradeable/contracts/crosschain/arbitrum/CrossChainEnabledArbitrumL2Upgradeable.sol +0 -53
  3004. package/lib/openzeppelin-contracts-upgradeable/contracts/crosschain/arbitrum/LibArbitrumL1Upgradeable.sol +0 -42
  3005. package/lib/openzeppelin-contracts-upgradeable/contracts/crosschain/arbitrum/LibArbitrumL2Upgradeable.sol +0 -45
  3006. package/lib/openzeppelin-contracts-upgradeable/contracts/crosschain/errorsUpgradeable.sol +0 -7
  3007. package/lib/openzeppelin-contracts-upgradeable/contracts/crosschain/optimism/CrossChainEnabledOptimismUpgradeable.sol +0 -49
  3008. package/lib/openzeppelin-contracts-upgradeable/contracts/crosschain/optimism/LibOptimismUpgradeable.sol +0 -36
  3009. package/lib/openzeppelin-contracts-upgradeable/contracts/crosschain/polygon/CrossChainEnabledPolygonChildUpgradeable.sol +0 -90
  3010. package/lib/openzeppelin-contracts-upgradeable/contracts/finance/PaymentSplitterUpgradeable.sol +0 -226
  3011. package/lib/openzeppelin-contracts-upgradeable/contracts/governance/IGovernorUpgradeable.sol +0 -289
  3012. package/lib/openzeppelin-contracts-upgradeable/contracts/governance/TimelockControllerWith46MigrationUpgradeable.sol +0 -56
  3013. package/lib/openzeppelin-contracts-upgradeable/contracts/governance/compatibility/GovernorCompatibilityBravoUpgradeable.sol +0 -298
  3014. package/lib/openzeppelin-contracts-upgradeable/contracts/governance/compatibility/IGovernorCompatibilityBravoUpgradeable.sol +0 -127
  3015. package/lib/openzeppelin-contracts-upgradeable/contracts/governance/extensions/GovernorProposalThresholdUpgradeable.sol +0 -36
  3016. package/lib/openzeppelin-contracts-upgradeable/contracts/governance/extensions/GovernorVotesCompUpgradeable.sol +0 -45
  3017. package/lib/openzeppelin-contracts-upgradeable/contracts/governance/extensions/IGovernorTimelockUpgradeable.sol +0 -39
  3018. package/lib/openzeppelin-contracts-upgradeable/contracts/governance/utils/IVotesUpgradeable.sol +0 -61
  3019. package/lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1155MetadataURIUpgradeable.sol +0 -6
  3020. package/lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1155ReceiverUpgradeable.sol +0 -6
  3021. package/lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1155Upgradeable.sol +0 -6
  3022. package/lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1271Upgradeable.sol +0 -19
  3023. package/lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1363ReceiverUpgradeable.sol +0 -32
  3024. package/lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1363SpenderUpgradeable.sol +0 -30
  3025. package/lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1363Upgradeable.sol +0 -95
  3026. package/lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC165Upgradeable.sol +0 -6
  3027. package/lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1820ImplementerUpgradeable.sol +0 -6
  3028. package/lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1820RegistryUpgradeable.sol +0 -6
  3029. package/lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC20MetadataUpgradeable.sol +0 -6
  3030. package/lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC20Upgradeable.sol +0 -6
  3031. package/lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC2309Upgradeable.sol +0 -21
  3032. package/lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC2981Upgradeable.sol +0 -25
  3033. package/lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC3156FlashBorrowerUpgradeable.sol +0 -29
  3034. package/lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC3156FlashLenderUpgradeable.sol +0 -43
  3035. package/lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC3156Upgradeable.sol +0 -7
  3036. package/lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC4626Upgradeable.sol +0 -240
  3037. package/lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC721EnumerableUpgradeable.sol +0 -6
  3038. package/lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC721MetadataUpgradeable.sol +0 -6
  3039. package/lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC721ReceiverUpgradeable.sol +0 -6
  3040. package/lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC721Upgradeable.sol +0 -6
  3041. package/lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC777RecipientUpgradeable.sol +0 -6
  3042. package/lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC777SenderUpgradeable.sol +0 -6
  3043. package/lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC777Upgradeable.sol +0 -6
  3044. package/lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol +0 -20
  3045. package/lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC2612Upgradeable.sol +0 -8
  3046. package/lib/openzeppelin-contracts-upgradeable/contracts/metatx/MinimalForwarderUpgradeable.sol +0 -85
  3047. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/AccessControlCrossChainMockUpgradeable.sol +0 -34
  3048. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/AccessControlEnumerableMockUpgradeable.sol +0 -29
  3049. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/AccessControlMockUpgradeable.sol +0 -29
  3050. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/AddressImplUpgradeable.sol +0 -54
  3051. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/BadBeaconUpgradeable.sol +0 -36
  3052. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/Base64MockUpgradeable.sol +0 -24
  3053. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/BitmapMockUpgradeable.sol +0 -40
  3054. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/CheckpointsMockUpgradeable.sol +0 -157
  3055. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ClashingImplementationUpgradeable.sol +0 -31
  3056. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ClonesMockUpgradeable.sol +0 -49
  3057. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ConditionalEscrowMockUpgradeable.sol +0 -32
  3058. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/CountersImplUpgradeable.sol +0 -40
  3059. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/Create2ImplUpgradeable.sol +0 -47
  3060. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/DoubleEndedQueueMockUpgradeable.sol +0 -71
  3061. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ECDSAMockUpgradeable.sol +0 -54
  3062. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/EIP712ExternalUpgradeable.sol +0 -43
  3063. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ERC1155BurnableMockUpgradeable.sol +0 -30
  3064. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ERC1155MockUpgradeable.sol +0 -63
  3065. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ERC1155PausableMockUpgradeable.sol +0 -43
  3066. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ERC1155ReceiverMockUpgradeable.sol +0 -69
  3067. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ERC1155SupplyMockUpgradeable.sol +0 -34
  3068. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ERC1155URIStorageMockUpgradeable.sol +0 -36
  3069. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ERC165CheckerMockUpgradeable.sol +0 -42
  3070. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ERC165MockUpgradeable.sol +0 -20
  3071. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ERC165StorageMockUpgradeable.sol +0 -24
  3072. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ERC1820ImplementerMockUpgradeable.sol +0 -24
  3073. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ERC20BurnableMockUpgradeable.sol +0 -34
  3074. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ERC20CappedMockUpgradeable.sol +0 -34
  3075. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ERC20DecimalsMockUpgradeable.sol +0 -46
  3076. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ERC20FlashMintMockUpgradeable.sol +0 -61
  3077. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ERC20MockUpgradeable.sol +0 -59
  3078. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ERC20PausableMockUpgradeable.sol +0 -52
  3079. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ERC20PermitMockUpgradeable.sol +0 -40
  3080. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ERC20SnapshotMockUpgradeable.sol +0 -46
  3081. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ERC20VotesCompMockUpgradeable.sol +0 -35
  3082. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ERC20VotesMockUpgradeable.sol +0 -35
  3083. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ERC20WrapperMockUpgradeable.sol +0 -34
  3084. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ERC4626MockUpgradeable.sol +0 -96
  3085. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ERC721BurnableMockUpgradeable.sol +0 -41
  3086. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ERC721ConsecutiveEnumerableMockUpgradeable.sol +0 -73
  3087. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ERC721ConsecutiveMockUpgradeable.sol +0 -119
  3088. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ERC721EnumerableMockUpgradeable.sol +0 -63
  3089. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ERC721MockUpgradeable.sol +0 -53
  3090. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ERC721PausableMockUpgradeable.sol +0 -58
  3091. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ERC721ReceiverMockUpgradeable.sol +0 -54
  3092. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ERC721RoyaltyMockUpgradeable.sol +0 -45
  3093. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ERC721URIStorageMockUpgradeable.sol +0 -67
  3094. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ERC721VotesMockUpgradeable.sol +0 -38
  3095. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ERC777MockUpgradeable.sol +0 -75
  3096. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ERC777SenderRecipientMockUpgradeable.sol +0 -176
  3097. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/EnumerableMapMockUpgradeable.sol +0 -282
  3098. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/EnumerableSetMockUpgradeable.sol +0 -148
  3099. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/GovernorCompMockUpgradeable.sol +0 -45
  3100. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/GovernorCompatibilityBravoMockUpgradeable.sol +0 -145
  3101. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/GovernorMockUpgradeable.sol +0 -67
  3102. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/GovernorPreventLateQuorumMockUpgradeable.sol +0 -79
  3103. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/GovernorTimelockCompoundMockUpgradeable.sol +0 -114
  3104. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/GovernorTimelockControlMockUpgradeable.sol +0 -111
  3105. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/GovernorVoteMockUpgradeable.sol +0 -45
  3106. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/GovernorWithParamsMockUpgradeable.sol +0 -75
  3107. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/MathMockUpgradeable.sol +0 -61
  3108. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/MerkleProofWrapperUpgradeable.sol +0 -78
  3109. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/MulticallTestUpgradeable.sol +0 -36
  3110. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/MulticallTokenMockUpgradeable.sol +0 -23
  3111. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/Ownable2StepMockUpgradeable.sol +0 -21
  3112. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/OwnableMockUpgradeable.sol +0 -21
  3113. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/PullPaymentMockUpgradeable.sol +0 -27
  3114. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/SafeCastMockUpgradeable.sol +0 -280
  3115. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/SafeERC20HelperUpgradeable.sol +0 -257
  3116. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/SafeMathMockUpgradeable.sol +0 -151
  3117. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/SignatureCheckerMockUpgradeable.sol +0 -30
  3118. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/SignedMathMockUpgradeable.sol +0 -36
  3119. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/SignedSafeMathMockUpgradeable.sol +0 -36
  3120. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/StringsMockUpgradeable.sol +0 -36
  3121. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/TimersBlockNumberImplUpgradeable.sol +0 -52
  3122. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/TimersTimestampImplUpgradeable.sol +0 -52
  3123. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/UUPS/UUPSLegacyUpgradeable.sol +0 -81
  3124. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/UUPS/UUPSUpgradeableMockUpgradeable.sol +0 -46
  3125. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/crosschain/bridgesUpgradeable.sol +0 -199
  3126. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/crosschain/receiversUpgradeable.sol +0 -107
  3127. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/wizard/MyGovernor1Upgradeable.sol +0 -98
  3128. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/wizard/MyGovernor2Upgradeable.sol +0 -104
  3129. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/wizard/MyGovernor3Upgradeable.sol +0 -107
  3130. package/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol +0 -89
  3131. package/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol +0 -212
  3132. package/lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol +0 -16
  3133. package/lib/openzeppelin-contracts-upgradeable/contracts/security/PausableUpgradeable.sol +0 -117
  3134. package/lib/openzeppelin-contracts-upgradeable/contracts/security/PullPaymentUpgradeable.sol +0 -89
  3135. package/lib/openzeppelin-contracts-upgradeable/contracts/security/README.adoc +0 -20
  3136. package/lib/openzeppelin-contracts-upgradeable/contracts/security/ReentrancyGuardUpgradeable.sol +0 -81
  3137. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/IERC1155ReceiverUpgradeable.sol +0 -58
  3138. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/IERC1155Upgradeable.sol +0 -125
  3139. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/IERC1155MetadataURIUpgradeable.sol +0 -22
  3140. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/presets/ERC1155PresetMinterPauserUpgradeable.sol +0 -145
  3141. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/presets/README.md +0 -1
  3142. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/utils/ERC1155ReceiverUpgradeable.sol +0 -32
  3143. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol +0 -82
  3144. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20SnapshotUpgradeable.sol +0 -208
  3145. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20VotesCompUpgradeable.sol +0 -59
  3146. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/IERC20MetadataUpgradeable.sol +0 -28
  3147. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-ERC20PermitUpgradeable.sol +0 -109
  3148. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol +0 -60
  3149. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/presets/ERC20PresetFixedSupplyUpgradeable.sol +0 -61
  3150. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/presets/ERC20PresetMinterPauserUpgradeable.sol +0 -111
  3151. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/presets/README.md +0 -1
  3152. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/SafeERC20Upgradeable.sol +0 -116
  3153. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/utils/TokenTimelockUpgradeable.sol +0 -94
  3154. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721ReceiverUpgradeable.sol +0 -27
  3155. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol +0 -145
  3156. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/IERC721EnumerableUpgradeable.sol +0 -29
  3157. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/IERC721MetadataUpgradeable.sol +0 -27
  3158. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/draft-ERC721VotesUpgradeable.sol +0 -9
  3159. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/presets/ERC721PresetMinterPauserAutoIdUpgradeable.sol +0 -165
  3160. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/presets/README.md +0 -1
  3161. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC777/ERC777Upgradeable.sol +0 -563
  3162. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC777/IERC777RecipientUpgradeable.sol +0 -35
  3163. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC777/IERC777SenderUpgradeable.sol +0 -35
  3164. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC777/IERC777Upgradeable.sol +0 -209
  3165. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC777/README.adoc +0 -30
  3166. package/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC777/presets/ERC777PresetFixedSupplyUpgradeable.sol +0 -58
  3167. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol +0 -219
  3168. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/ArraysUpgradeable.sol +0 -96
  3169. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/Base64Upgradeable.sol +0 -92
  3170. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/CheckpointsUpgradeable.sol +0 -554
  3171. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/CountersUpgradeable.sol +0 -43
  3172. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/Create2Upgradeable.sol +0 -83
  3173. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol +0 -88
  3174. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol +0 -70
  3175. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/TimersUpgradeable.sol +0 -73
  3176. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/ECDSAUpgradeable.sol +0 -213
  3177. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/MerkleProofUpgradeable.sol +0 -223
  3178. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/SignatureCheckerUpgradeable.sol +0 -42
  3179. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/draft-EIP712Upgradeable.sol +0 -8
  3180. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/escrow/ConditionalEscrowUpgradeable.sol +0 -39
  3181. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/escrow/EscrowUpgradeable.sol +0 -84
  3182. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/escrow/RefundEscrowUpgradeable.sol +0 -113
  3183. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165CheckerUpgradeable.sol +0 -127
  3184. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165StorageUpgradeable.sol +0 -55
  3185. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC1820ImplementerUpgradeable.sol +0 -57
  3186. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol +0 -25
  3187. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC1820ImplementerUpgradeable.sol +0 -20
  3188. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC1820RegistryUpgradeable.sol +0 -116
  3189. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol +0 -345
  3190. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SafeCastUpgradeable.sol +0 -1136
  3191. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SafeMathUpgradeable.sol +0 -227
  3192. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol +0 -43
  3193. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedSafeMathUpgradeable.sol +0 -68
  3194. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/BitMapsUpgradeable.sol +0 -55
  3195. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/DoubleEndedQueueUpgradeable.sol +0 -170
  3196. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableMapUpgradeable.sol +0 -530
  3197. package/lib/openzeppelin-contracts-upgradeable/contracts/utils/structs/EnumerableSetUpgradeable.sol +0 -378
  3198. package/lib/openzeppelin-contracts-upgradeable/contracts/vendor/amb/IAMBUpgradeable.sol +0 -49
  3199. package/lib/openzeppelin-contracts-upgradeable/contracts/vendor/arbitrum/IArbSysUpgradeable.sol +0 -141
  3200. package/lib/openzeppelin-contracts-upgradeable/contracts/vendor/arbitrum/IBridgeUpgradeable.sol +0 -109
  3201. package/lib/openzeppelin-contracts-upgradeable/contracts/vendor/arbitrum/IDelayedMessageProviderUpgradeable.sol +0 -16
  3202. package/lib/openzeppelin-contracts-upgradeable/contracts/vendor/arbitrum/IInboxUpgradeable.sol +0 -152
  3203. package/lib/openzeppelin-contracts-upgradeable/contracts/vendor/arbitrum/IOutboxUpgradeable.sol +0 -121
  3204. package/lib/openzeppelin-contracts-upgradeable/contracts/vendor/compound/ICompoundTimelockUpgradeable.sol +0 -86
  3205. package/lib/openzeppelin-contracts-upgradeable/contracts/vendor/optimism/ICrossDomainMessengerUpgradeable.sol +0 -38
  3206. package/lib/openzeppelin-contracts-upgradeable/contracts/vendor/optimism/LICENSE +0 -22
  3207. package/lib/openzeppelin-contracts-upgradeable/contracts/vendor/polygon/IFxMessageProcessorUpgradeable.sol +0 -11
  3208. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/pages/crosschain.adoc +0 -210
  3209. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/pages/crowdsales.adoc +0 -11
  3210. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/pages/drafts.adoc +0 -19
  3211. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/pages/erc777.adoc +0 -73
  3212. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/pages/releases-stability.adoc +0 -85
  3213. package/lib/openzeppelin-contracts-upgradeable/hardhat/env-contract.js +0 -10
  3214. package/lib/openzeppelin-contracts-upgradeable/hardhat/task-get-compiler-input.js +0 -10
  3215. package/lib/openzeppelin-contracts-upgradeable/icon.svg +0 -13
  3216. package/lib/openzeppelin-contracts-upgradeable/lib/forge-std/.gitmodules +0 -3
  3217. package/lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/LICENSE +0 -674
  3218. package/lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/Makefile +0 -14
  3219. package/lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/default.nix +0 -4
  3220. package/lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/demo/demo.sol +0 -222
  3221. package/lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/package.json +0 -15
  3222. package/lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/test.sol +0 -469
  3223. package/lib/openzeppelin-contracts-upgradeable/scripts/generate/templates/CheckpointsMock.js +0 -80
  3224. package/lib/openzeppelin-contracts-upgradeable/scripts/generate/templates/EnumerableMapMock.js +0 -66
  3225. package/lib/openzeppelin-contracts-upgradeable/scripts/generate/templates/EnumerableSetMock.js +0 -56
  3226. package/lib/openzeppelin-contracts-upgradeable/scripts/generate/templates/SafeCastMock.js +0 -50
  3227. package/lib/openzeppelin-contracts-upgradeable/scripts/migrate-imports.js +0 -177
  3228. package/lib/openzeppelin-contracts-upgradeable/scripts/prepare-contracts-package.sh +0 -15
  3229. package/lib/openzeppelin-contracts-upgradeable/scripts/prepare.sh +0 -10
  3230. package/lib/openzeppelin-contracts-upgradeable/scripts/release/release.sh +0 -145
  3231. package/lib/openzeppelin-contracts-upgradeable/scripts/release/update-changelog-release-date.js +0 -34
  3232. package/lib/openzeppelin-contracts-upgradeable/scripts/upgradeable/merge-upstream.sh +0 -33
  3233. package/lib/openzeppelin-contracts-upgradeable/scripts/upgradeable/patch/.gitkeep +0 -0
  3234. package/lib/openzeppelin-contracts-upgradeable/test/access/AccessControlCrossChain.test.js +0 -59
  3235. package/lib/openzeppelin-contracts-upgradeable/test/access/AccessControlEnumerable.test.js +0 -15
  3236. package/lib/openzeppelin-contracts-upgradeable/test/crosschain/CrossChainEnabled.test.js +0 -88
  3237. package/lib/openzeppelin-contracts-upgradeable/test/finance/PaymentSplitter.test.js +0 -217
  3238. package/lib/openzeppelin-contracts-upgradeable/test/governance/compatibility/GovernorCompatibilityBravo.test.js +0 -265
  3239. package/lib/openzeppelin-contracts-upgradeable/test/governance/extensions/GovernorComp.test.js +0 -78
  3240. package/lib/openzeppelin-contracts-upgradeable/test/helpers/create2.js +0 -12
  3241. package/lib/openzeppelin-contracts-upgradeable/test/helpers/crosschain.js +0 -63
  3242. package/lib/openzeppelin-contracts-upgradeable/test/helpers/customError.js +0 -24
  3243. package/lib/openzeppelin-contracts-upgradeable/test/helpers/erc1967.js +0 -24
  3244. package/lib/openzeppelin-contracts-upgradeable/test/helpers/sign.js +0 -47
  3245. package/lib/openzeppelin-contracts-upgradeable/test/metatx/MinimalForwarder.test.js +0 -184
  3246. package/lib/openzeppelin-contracts-upgradeable/test/migrate-imports.test.js +0 -29
  3247. package/lib/openzeppelin-contracts-upgradeable/test/security/Pausable.test.js +0 -89
  3248. package/lib/openzeppelin-contracts-upgradeable/test/security/PullPayment.test.js +0 -51
  3249. package/lib/openzeppelin-contracts-upgradeable/test/security/ReentrancyGuard.test.js +0 -40
  3250. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC1155/presets/ERC1155PresetMinterPauser.test.js +0 -146
  3251. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC20/extensions/ERC20Burnable.behavior.js +0 -109
  3252. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC20/extensions/ERC20Capped.behavior.js +0 -32
  3253. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC20/extensions/ERC20Snapshot.test.js +0 -204
  3254. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC20/extensions/ERC20VotesComp.test.js +0 -496
  3255. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC20/extensions/draft-ERC20Permit.test.js +0 -109
  3256. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC20/presets/ERC20PresetFixedSupply.test.js +0 -42
  3257. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC20/presets/ERC20PresetMinterPauser.test.js +0 -113
  3258. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC20/utils/TokenTimelock.test.js +0 -71
  3259. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC721/presets/ERC721PresetMinterPauserAutoId.test.js +0 -125
  3260. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC777/ERC777.behavior.js +0 -555
  3261. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC777/ERC777.test.js +0 -610
  3262. package/lib/openzeppelin-contracts-upgradeable/test/token/ERC777/presets/ERC777PresetFixedSupply.test.js +0 -49
  3263. package/lib/openzeppelin-contracts-upgradeable/test/utils/Checkpoints.test.js +0 -189
  3264. package/lib/openzeppelin-contracts-upgradeable/test/utils/Counters.test.js +0 -84
  3265. package/lib/openzeppelin-contracts-upgradeable/test/utils/TimersBlockNumberImpl.test.js +0 -55
  3266. package/lib/openzeppelin-contracts-upgradeable/test/utils/TimersTimestamp.test.js +0 -55
  3267. package/lib/openzeppelin-contracts-upgradeable/test/utils/escrow/ConditionalEscrow.test.js +0 -36
  3268. package/lib/openzeppelin-contracts-upgradeable/test/utils/escrow/Escrow.behavior.js +0 -94
  3269. package/lib/openzeppelin-contracts-upgradeable/test/utils/escrow/Escrow.test.js +0 -14
  3270. package/lib/openzeppelin-contracts-upgradeable/test/utils/escrow/RefundEscrow.test.js +0 -148
  3271. package/lib/openzeppelin-contracts-upgradeable/test/utils/introspection/ERC165Storage.test.js +0 -25
  3272. package/lib/openzeppelin-contracts-upgradeable/test/utils/introspection/ERC1820Implementer.test.js +0 -66
  3273. package/lib/openzeppelin-contracts-upgradeable/test/utils/math/SafeMath.test.js +0 -403
  3274. package/lib/openzeppelin-contracts-upgradeable/test/utils/math/SignedSafeMath.test.js +0 -152
  3275. package/migrations/10_deploy_weth.js +0 -5
  3276. package/migrations/11_deploy_full_flow.js +0 -99
  3277. package/migrations/12_deploy_pm_v3_querier.js +0 -7
  3278. package/migrations/13_deploy_pm_v3_factory.js +0 -14
  3279. package/migrations/15_deploy_ppmm.js +0 -10
  3280. package/migrations/16_deploy_raffle.js +0 -5
  3281. package/migrations/1_initial_migration.js +0 -5
  3282. package/migrations/2_deploy_erc20.js +0 -10
  3283. package/migrations/3_deploy_realitio.js +0 -11
  3284. package/migrations/4_deploy_pm.js +0 -20
  3285. package/migrations/5_seed_markets.js +0 -51
  3286. package/migrations/6_deploy_achievements.js +0 -5
  3287. package/migrations/7_deploy_voting.js +0 -14
  3288. package/migrations/8_deploy_pm_v2.js +0 -20
  3289. package/migrations/9_seed_markets_v2.js +0 -68
  3290. package/tests/PPMMarketContract.js +0 -340
  3291. package/tests/fantasyERC20Contract.js +0 -225
  3292. package/tests/getAverageOutcomeBuyPrice.test.ts +0 -179
  3293. package/tests/index.js +0 -10
  3294. package/tests/predictionMarketContract.js +0 -466
  3295. package/tests/predictionMarketV2Contract.js +0 -1042
  3296. package/tests/predictionMarketV3Contract.js +0 -1079
  3297. package/tests/predictionMarketV3ControllerContract.js +0 -613
  3298. package/tests/predictionMarketV3FactoryContract.js +0 -469
  3299. package/tests/predictionMarketV3ManagerContract.js +0 -610
  3300. package/tests/utils.js +0 -16
  3301. package/tests/votingContract.js +0 -490
  3302. package/truffle-config.js +0 -134
  3303. package/zkout/AccessControl.sol/AccessControl.json +0 -1
  3304. package/zkout/AccessControlEnumerable.sol/AccessControlEnumerable.json +0 -1
  3305. package/zkout/Address.sol/Address.json +0 -1
  3306. package/zkout/Clones.sol/Clones.json +0 -1
  3307. package/zkout/Context.sol/Context.json +0 -1
  3308. package/zkout/ERC165.sol/ERC165.json +0 -1
  3309. package/zkout/ERC20.sol/ERC20.json +0 -1
  3310. package/zkout/ERC20Burnable.sol/ERC20Burnable.json +0 -1
  3311. package/zkout/ERC20Pausable.sol/ERC20Pausable.json +0 -1
  3312. package/zkout/ERC20PresetMinterPauser.sol/ERC20PresetMinterPauser.json +0 -1
  3313. package/zkout/EnumerableSet.sol/EnumerableSet.json +0 -1
  3314. package/zkout/FantasyERC20.sol/FantasyERC20.json +0 -1
  3315. package/zkout/IAccessControl.sol/IAccessControl.json +0 -1
  3316. package/zkout/IAccessControlEnumerable.sol/IAccessControlEnumerable.json +0 -1
  3317. package/zkout/IERC165.sol/IERC165.json +0 -1
  3318. package/zkout/IERC20.sol/IERC20.json +0 -1
  3319. package/zkout/IERC20Metadata.sol/IERC20Metadata.json +0 -1
  3320. package/zkout/IFantasyERC20.sol/IFantasyERC20.json +0 -1
  3321. package/zkout/IPredictionMarketV3.sol/IPredictionMarketV3.json +0 -1
  3322. package/zkout/IPredictionMarketV3Factory.sol/IPredictionMarketV3Factory.json +0 -1
  3323. package/zkout/IPredictionMarketV3Manager.sol/IPredictionMarketV3Manager.json +0 -1
  3324. package/zkout/IRealityETH_ERC20.sol/IRealityETH_ERC20.json +0 -1
  3325. package/zkout/LandFactory.sol/LandFactory.json +0 -1
  3326. package/zkout/Math.sol/Math.json +0 -1
  3327. package/zkout/Migrations.sol/Migrations.json +0 -1
  3328. package/zkout/Ownable.sol/Ownable.json +0 -1
  3329. package/zkout/Pausable.sol/Pausable.json +0 -1
  3330. package/zkout/PredictionMarketV3.sol/CeilDiv.json +0 -1
  3331. package/zkout/PredictionMarketV3.sol/IWETH.json +0 -1
  3332. package/zkout/PredictionMarketV3.sol/PredictionMarketV3.json +0 -1
  3333. package/zkout/PredictionMarketV3Controller.sol/PredictionMarketV3Controller.json +0 -1
  3334. package/zkout/PredictionMarketV3Factory.sol/PredictionMarketV3Factory.json +0 -1
  3335. package/zkout/PredictionMarketV3Manager.sol/PredictionMarketV3Manager.json +0 -1
  3336. package/zkout/PredictionMarketV3Querier.sol/PredictionMarketV3Querier.json +0 -1
  3337. package/zkout/Proxy.sol/Proxy.json +0 -1
  3338. package/zkout/RealityETH_ERC20_Factory.sol/IRealityETH_IERC20.json +0 -1
  3339. package/zkout/RealityETH_ERC20_Factory.sol/RealityETH_ERC20_Factory.json +0 -1
  3340. package/zkout/RealityETH_ERC20_v3_0.sol/RealityETH_ERC20_v3_0_.json +0 -1
  3341. package/zkout/ReentrancyGuard.sol/ReentrancyGuard.json +0 -1
  3342. package/zkout/SafeERC20.sol/SafeERC20.json +0 -1
  3343. package/zkout/SafeMath.sol/SafeMath.json +0 -1
  3344. package/zkout/Strings.sol/Strings.json +0 -1
  3345. package/zkout/USDCERC20.sol/USDCERC20.json +0 -1
  3346. package/zkout/Voting.sol/Voting.json +0 -1
  3347. package/zkout/build-info/0fa499f04838f8c1f593bcbafd0fd1a5.json +0 -1
  3348. package/zkout/build-info/39c03363a71a9805ec8ec63c81a8aaaf.json +0 -1
  3349. package/zkout/build-info/637aa7b0942c0ead878e36bd5d598008.json +0 -1
  3350. package/zkout/build-info/810ab68b6fb1e3386ce5a111c7eb136f.json +0 -1
  3351. package/zkout/build-info/aec05d9534229710b5b5f567c42384a1.json +0 -1
  3352. package/zkout/build-info/cdd531656c4131c11667647afa1b2cca.json +0 -1
  3353. package/zkout/build-info/e702288987d16a0b64efe75b321dfb8a.json +0 -1
  3354. package/zkout/build-info/eccbfbbf7a8a18e02ebf05d3b7c6eea8.json +0 -1
  3355. package/zkout/contracts/BalanceHolder_ERC20.sol/BalanceHolder_ERC20.json +0 -1
  3356. package/zkout/contracts/IBalanceHolder_ERC20.sol/IBalanceHolder_ERC20.json +0 -1
  3357. package/zkout/contracts/RealityETH_ERC20-3.0.sol/RealityETH_ERC20_v3_0.json +0 -1
  3358. package/zkout/development/contracts/IERC20.sol/IERC20.json +0 -1
  3359. package/zkout/draft-IERC20Permit.sol/IERC20Permit.json +0 -1
  3360. /package/{build/contracts → abis}/AccessControlEnumerable.json +0 -0
  3361. /package/{build/contracts → abis}/Achievements.json +0 -0
  3362. /package/{build/contracts → abis}/BalanceHolder.json +0 -0
  3363. /package/{build/contracts → abis}/Counters.json +0 -0
  3364. /package/{build/contracts → abis}/ERC20PresetMinterPauser.json +0 -0
  3365. /package/{build/contracts → abis}/ERC721.json +0 -0
  3366. /package/{build/contracts → abis}/EnumerableMap.json +0 -0
  3367. /package/{build/contracts → abis}/EnumerableSet.json +0 -0
  3368. /package/{build/contracts → abis}/IAccessControlEnumerable.json +0 -0
  3369. /package/{build/contracts → abis}/IERC20Permit.json +0 -0
  3370. /package/{build/contracts → abis}/IERC721Receiver.json +0 -0
  3371. /package/{build/contracts → abis}/IPredictionMarketV3.json +0 -0
  3372. /package/{build/contracts → abis}/Math.json +0 -0
  3373. /package/{build/contracts → abis}/Migrations.json +0 -0
  3374. /package/{build/contracts → abis}/PredictionMarket.json +0 -0
  3375. /package/{build/contracts → abis}/PredictionMarketV2.json +0 -0
  3376. /package/{build/contracts → abis}/PredictionMarketV3.json +0 -0
  3377. /package/{build/contracts → abis}/RealitioERC20.json +0 -0
  3378. /package/{build/contracts → abis}/RealitioForeignArbitrationProxyWithAppeals.json +0 -0
  3379. /package/{build/contracts → abis}/RealitioHomeArbitrationProxy.json +0 -0
  3380. /package/{build/contracts → abis}/RealitioSafeMath256.json +0 -0
  3381. /package/{build/contracts → abis}/RealitioSafeMath32.json +0 -0
  3382. /package/{build/contracts → abis}/SafeMath.json +0 -0
  3383. /package/{build/contracts → abis}/Strings.json +0 -0
  3384. /package/{build/contracts → abis}/WETH9.json +0 -0
  3385. /package/lib/openzeppelin-contracts-upgradeable/{audit → audits}/2018-10.pdf +0 -0
  3386. /package/lib/openzeppelin-contracts-upgradeable/{DOCUMENTATION.md → docs/README.md} +0 -0
  3387. /package/lib/openzeppelin-contracts-upgradeable/{.github → lib/openzeppelin-contracts/.github}/ISSUE_TEMPLATE/feature_request.md +0 -0
  3388. /package/lib/{openzeppelin-contracts/audit → openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/audits}/2018-10.pdf +0 -0
  3389. /package/lib/{openzeppelin-contracts/DOCUMENTATION.md → openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/README.md} +0 -0
  3390. /package/lib/openzeppelin-contracts-upgradeable/{scripts/upgradeable → lib/openzeppelin-contracts/scripts}/git-user-config.sh +0 -0
@@ -0,0 +1,2489 @@
1
+ const { ethers } = require('hardhat');
2
+ const { expect } = require('chai');
3
+ const { loadFixture } = require('@nomicfoundation/hardhat-network-helpers');
4
+
5
+ const { impersonate } = require('../../helpers/account');
6
+ const { MAX_UINT48 } = require('../../helpers/constants');
7
+ const { selector } = require('../../helpers/methods');
8
+ const time = require('../../helpers/time');
9
+
10
+ const {
11
+ buildBaseRoles,
12
+ formatAccess,
13
+ EXPIRATION,
14
+ MINSETBACK,
15
+ EXECUTION_ID_STORAGE_SLOT,
16
+ CONSUMING_SCHEDULE_STORAGE_SLOT,
17
+ prepareOperation,
18
+ hashOperation,
19
+ } = require('../../helpers/access-manager');
20
+
21
+ const {
22
+ shouldBehaveLikeDelayedAdminOperation,
23
+ shouldBehaveLikeNotDelayedAdminOperation,
24
+ shouldBehaveLikeRoleAdminOperation,
25
+ shouldBehaveLikeAManagedRestrictedOperation,
26
+ shouldBehaveLikeASelfRestrictedOperation,
27
+ } = require('./AccessManager.behavior');
28
+
29
+ const {
30
+ LIKE_COMMON_SCHEDULABLE,
31
+ testAsClosable,
32
+ testAsDelay,
33
+ testAsSchedulableOperation,
34
+ testAsCanCall,
35
+ testAsHasRole,
36
+ testAsGetAccess,
37
+ } = require('./AccessManager.predicate');
38
+
39
+ async function fixture() {
40
+ const [admin, roleAdmin, roleGuardian, member, user, other] = await ethers.getSigners();
41
+
42
+ // Build roles
43
+ const roles = buildBaseRoles();
44
+
45
+ // Add members
46
+ roles.ADMIN.members = [admin];
47
+ roles.SOME_ADMIN.members = [roleAdmin];
48
+ roles.SOME_GUARDIAN.members = [roleGuardian];
49
+ roles.SOME.members = [member];
50
+ roles.PUBLIC.members = [admin, roleAdmin, roleGuardian, member, user, other];
51
+
52
+ const manager = await ethers.deployContract('$AccessManagerMock', [admin]);
53
+ const target = await ethers.deployContract('$AccessManagedTarget', [manager]);
54
+
55
+ for (const { id: roleId, admin, guardian, members } of Object.values(roles)) {
56
+ if (roleId === roles.PUBLIC.id) continue; // Every address belong to public and is locked
57
+ if (roleId === roles.ADMIN.id) continue; // Admin set during construction and is locked
58
+
59
+ // Set admin role avoiding default
60
+ if (admin.id !== roles.ADMIN.id) {
61
+ await manager.$_setRoleAdmin(roleId, admin.id);
62
+ }
63
+
64
+ // Set guardian role avoiding default
65
+ if (guardian.id !== roles.ADMIN.id) {
66
+ await manager.$_setRoleGuardian(roleId, guardian.id);
67
+ }
68
+
69
+ // Grant role to members
70
+ for (const member of members) {
71
+ await manager.$_grantRole(roleId, member, 0, 0);
72
+ }
73
+ }
74
+
75
+ return {
76
+ admin,
77
+ roleAdmin,
78
+ user,
79
+ other,
80
+ roles,
81
+ manager,
82
+ target,
83
+ };
84
+ }
85
+
86
+ // This test suite is made using the following tools:
87
+ //
88
+ // * Predicates: Functions with common conditional setups without assertions.
89
+ // * Behaviors: Functions with common assertions.
90
+ //
91
+ // The behavioral tests are built by composing predicates and are used as templates
92
+ // for testing access to restricted functions.
93
+ //
94
+ // Similarly, unit tests in this suite will use predicates to test subsets of these
95
+ // behaviors and are helped by common assertions provided for some of the predicates.
96
+ //
97
+ // The predicates can be identified by the `testAs*` prefix while the behaviors
98
+ // are prefixed with `shouldBehave*`. The common assertions for predicates are
99
+ // defined as constants.
100
+ describe('AccessManager', function () {
101
+ beforeEach(async function () {
102
+ Object.assign(this, await loadFixture(fixture));
103
+ });
104
+
105
+ describe('during construction', function () {
106
+ it('grants admin role to initialAdmin', async function () {
107
+ const manager = await ethers.deployContract('$AccessManager', [this.other]);
108
+ expect(await manager.hasRole(this.roles.ADMIN.id, this.other).then(formatAccess)).to.be.deep.equal([true, '0']);
109
+ });
110
+
111
+ it('rejects zero address for initialAdmin', async function () {
112
+ await expect(ethers.deployContract('$AccessManager', [ethers.ZeroAddress]))
113
+ .to.be.revertedWithCustomError(this.manager, 'AccessManagerInvalidInitialAdmin')
114
+ .withArgs(ethers.ZeroAddress);
115
+ });
116
+
117
+ it('initializes setup roles correctly', async function () {
118
+ for (const { id: roleId, admin, guardian, members } of Object.values(this.roles)) {
119
+ expect(await this.manager.getRoleAdmin(roleId)).to.equal(admin.id);
120
+ expect(await this.manager.getRoleGuardian(roleId)).to.equal(guardian.id);
121
+
122
+ for (const user of this.roles.PUBLIC.members) {
123
+ expect(await this.manager.hasRole(roleId, user).then(formatAccess)).to.be.deep.equal([
124
+ members.includes(user),
125
+ '0',
126
+ ]);
127
+ }
128
+ }
129
+ });
130
+ });
131
+
132
+ describe('getters', function () {
133
+ describe('#canCall', function () {
134
+ beforeEach('set calldata', function () {
135
+ this.calldata = '0x12345678';
136
+ this.role = { id: 379204n };
137
+ });
138
+
139
+ testAsCanCall({
140
+ closed() {
141
+ it('should return false and no delay', async function () {
142
+ const { immediate, delay } = await this.manager.canCall(
143
+ this.other,
144
+ this.target,
145
+ this.calldata.substring(0, 10),
146
+ );
147
+ expect(immediate).to.be.false;
148
+ expect(delay).to.equal(0n);
149
+ });
150
+ },
151
+ open: {
152
+ callerIsTheManager: {
153
+ executing() {
154
+ it('should return true and no delay', async function () {
155
+ const { immediate, delay } = await this.manager.canCall(
156
+ this.caller,
157
+ this.target,
158
+ this.calldata.substring(0, 10),
159
+ );
160
+ expect(immediate).to.be.true;
161
+ expect(delay).to.equal(0n);
162
+ });
163
+ },
164
+ notExecuting() {
165
+ it('should return false and no delay', async function () {
166
+ const { immediate, delay } = await this.manager.canCall(
167
+ this.caller,
168
+ this.target,
169
+ this.calldata.substring(0, 10),
170
+ );
171
+ expect(immediate).to.be.false;
172
+ expect(delay).to.equal(0n);
173
+ });
174
+ },
175
+ },
176
+ callerIsNotTheManager: {
177
+ publicRoleIsRequired() {
178
+ it('should return true and no delay', async function () {
179
+ const { immediate, delay } = await this.manager.canCall(
180
+ this.caller,
181
+ this.target,
182
+ this.calldata.substring(0, 10),
183
+ );
184
+ expect(immediate).to.be.true;
185
+ expect(delay).to.equal(0n);
186
+ });
187
+ },
188
+ specificRoleIsRequired: {
189
+ requiredRoleIsGranted: {
190
+ roleGrantingIsDelayed: {
191
+ callerHasAnExecutionDelay: {
192
+ beforeGrantDelay: function self() {
193
+ self.mineDelay = true;
194
+
195
+ it('should return false and no execution delay', async function () {
196
+ const { immediate, delay } = await this.manager.canCall(
197
+ this.caller,
198
+ this.target,
199
+ this.calldata.substring(0, 10),
200
+ );
201
+ expect(immediate).to.be.false;
202
+ expect(delay).to.equal(0n);
203
+ });
204
+ },
205
+ afterGrantDelay: function self() {
206
+ self.mineDelay = true;
207
+
208
+ beforeEach('sets execution delay', function () {
209
+ this.scheduleIn = this.executionDelay; // For testAsSchedulableOperation
210
+ });
211
+
212
+ testAsSchedulableOperation({
213
+ scheduled: {
214
+ before: function self() {
215
+ self.mineDelay = true;
216
+
217
+ it('should return false and execution delay', async function () {
218
+ const { immediate, delay } = await this.manager.canCall(
219
+ this.caller,
220
+ this.target,
221
+ this.calldata.substring(0, 10),
222
+ );
223
+ expect(immediate).to.be.false;
224
+ expect(delay).to.equal(this.executionDelay);
225
+ });
226
+ },
227
+ after: function self() {
228
+ self.mineDelay = true;
229
+
230
+ it('should return false and execution delay', async function () {
231
+ const { immediate, delay } = await this.manager.canCall(
232
+ this.caller,
233
+ this.target,
234
+ this.calldata.substring(0, 10),
235
+ );
236
+ expect(immediate).to.be.false;
237
+ expect(delay).to.equal(this.executionDelay);
238
+ });
239
+ },
240
+ expired: function self() {
241
+ self.mineDelay = true;
242
+
243
+ it('should return false and execution delay', async function () {
244
+ const { immediate, delay } = await this.manager.canCall(
245
+ this.caller,
246
+ this.target,
247
+ this.calldata.substring(0, 10),
248
+ );
249
+ expect(immediate).to.be.false;
250
+ expect(delay).to.equal(this.executionDelay);
251
+ });
252
+ },
253
+ },
254
+ notScheduled() {
255
+ it('should return false and execution delay', async function () {
256
+ const { immediate, delay } = await this.manager.canCall(
257
+ this.caller,
258
+ this.target,
259
+ this.calldata.substring(0, 10),
260
+ );
261
+ expect(immediate).to.be.false;
262
+ expect(delay).to.equal(this.executionDelay);
263
+ });
264
+ },
265
+ });
266
+ },
267
+ },
268
+ callerHasNoExecutionDelay: {
269
+ beforeGrantDelay: function self() {
270
+ self.mineDelay = true;
271
+
272
+ it('should return false and no execution delay', async function () {
273
+ const { immediate, delay } = await this.manager.canCall(
274
+ this.caller,
275
+ this.target,
276
+ this.calldata.substring(0, 10),
277
+ );
278
+ expect(immediate).to.be.false;
279
+ expect(delay).to.equal(0n);
280
+ });
281
+ },
282
+ afterGrantDelay: function self() {
283
+ self.mineDelay = true;
284
+
285
+ it('should return true and no execution delay', async function () {
286
+ const { immediate, delay } = await this.manager.canCall(
287
+ this.caller,
288
+ this.target,
289
+ this.calldata.substring(0, 10),
290
+ );
291
+ expect(immediate).to.be.true;
292
+ expect(delay).to.equal(0n);
293
+ });
294
+ },
295
+ },
296
+ },
297
+ roleGrantingIsNotDelayed: {
298
+ callerHasAnExecutionDelay() {
299
+ it('should return false and execution delay', async function () {
300
+ const { immediate, delay } = await this.manager.canCall(
301
+ this.caller,
302
+ this.target,
303
+ this.calldata.substring(0, 10),
304
+ );
305
+ expect(immediate).to.be.false;
306
+ expect(delay).to.equal(this.executionDelay);
307
+ });
308
+ },
309
+ callerHasNoExecutionDelay() {
310
+ it('should return true and no execution delay', async function () {
311
+ const { immediate, delay } = await this.manager.canCall(
312
+ this.caller,
313
+ this.target,
314
+ this.calldata.substring(0, 10),
315
+ );
316
+ expect(immediate).to.be.true;
317
+ expect(delay).to.equal(0n);
318
+ });
319
+ },
320
+ },
321
+ },
322
+ requiredRoleIsNotGranted() {
323
+ it('should return false and no execution delay', async function () {
324
+ const { immediate, delay } = await this.manager.canCall(
325
+ this.caller,
326
+ this.target,
327
+ this.calldata.substring(0, 10),
328
+ );
329
+ expect(immediate).to.be.false;
330
+ expect(delay).to.equal(0n);
331
+ });
332
+ },
333
+ },
334
+ },
335
+ },
336
+ });
337
+ });
338
+
339
+ describe('#expiration', function () {
340
+ it('has a 7 days default expiration', async function () {
341
+ expect(await this.manager.expiration()).to.equal(EXPIRATION);
342
+ });
343
+ });
344
+
345
+ describe('#minSetback', function () {
346
+ it('has a 5 days default minimum setback', async function () {
347
+ expect(await this.manager.minSetback()).to.equal(MINSETBACK);
348
+ });
349
+ });
350
+
351
+ describe('#isTargetClosed', function () {
352
+ testAsClosable({
353
+ closed() {
354
+ it('returns true', async function () {
355
+ expect(await this.manager.isTargetClosed(this.target)).to.be.true;
356
+ });
357
+ },
358
+ open() {
359
+ it('returns false', async function () {
360
+ expect(await this.manager.isTargetClosed(this.target)).to.be.false;
361
+ });
362
+ },
363
+ });
364
+ });
365
+
366
+ describe('#getTargetFunctionRole', function () {
367
+ const methodSelector = selector('something(address,bytes)');
368
+
369
+ it('returns the target function role', async function () {
370
+ const roleId = 21498n;
371
+ await this.manager.$_setTargetFunctionRole(this.target, methodSelector, roleId);
372
+
373
+ expect(await this.manager.getTargetFunctionRole(this.target, methodSelector)).to.equal(roleId);
374
+ });
375
+
376
+ it('returns the ADMIN role if not set', async function () {
377
+ expect(await this.manager.getTargetFunctionRole(this.target, methodSelector)).to.equal(this.roles.ADMIN.id);
378
+ });
379
+ });
380
+
381
+ describe('#getTargetAdminDelay', function () {
382
+ describe('when the target admin delay is setup', function () {
383
+ beforeEach('set target admin delay', async function () {
384
+ this.oldDelay = await this.manager.getTargetAdminDelay(this.target);
385
+ this.newDelay = time.duration.days(10);
386
+
387
+ await this.manager.$_setTargetAdminDelay(this.target, this.newDelay);
388
+ this.delay = MINSETBACK; // For testAsDelay
389
+ });
390
+
391
+ testAsDelay('effect', {
392
+ before: function self() {
393
+ self.mineDelay = true;
394
+
395
+ it('returns the old target admin delay', async function () {
396
+ expect(await this.manager.getTargetAdminDelay(this.target)).to.equal(this.oldDelay);
397
+ });
398
+ },
399
+ after: function self() {
400
+ self.mineDelay = true;
401
+
402
+ it('returns the new target admin delay', async function () {
403
+ expect(await this.manager.getTargetAdminDelay(this.target)).to.equal(this.newDelay);
404
+ });
405
+ },
406
+ });
407
+ });
408
+
409
+ it('returns the 0 if not set', async function () {
410
+ expect(await this.manager.getTargetAdminDelay(this.target)).to.equal(0n);
411
+ });
412
+ });
413
+
414
+ describe('#getRoleAdmin', function () {
415
+ const roleId = 5234907n;
416
+
417
+ it('returns the role admin', async function () {
418
+ const adminId = 789433n;
419
+
420
+ await this.manager.$_setRoleAdmin(roleId, adminId);
421
+
422
+ expect(await this.manager.getRoleAdmin(roleId)).to.equal(adminId);
423
+ });
424
+
425
+ it('returns the ADMIN role if not set', async function () {
426
+ expect(await this.manager.getRoleAdmin(roleId)).to.equal(this.roles.ADMIN.id);
427
+ });
428
+ });
429
+
430
+ describe('#getRoleGuardian', function () {
431
+ const roleId = 5234907n;
432
+
433
+ it('returns the role guardian', async function () {
434
+ const guardianId = 789433n;
435
+
436
+ await this.manager.$_setRoleGuardian(roleId, guardianId);
437
+
438
+ expect(await this.manager.getRoleGuardian(roleId)).to.equal(guardianId);
439
+ });
440
+
441
+ it('returns the ADMIN role if not set', async function () {
442
+ expect(await this.manager.getRoleGuardian(roleId)).to.equal(this.roles.ADMIN.id);
443
+ });
444
+ });
445
+
446
+ describe('#getRoleGrantDelay', function () {
447
+ const roleId = 9248439n;
448
+
449
+ describe('when the grant admin delay is setup', function () {
450
+ beforeEach('set grant admin delay', async function () {
451
+ this.oldDelay = await this.manager.getRoleGrantDelay(roleId);
452
+ this.newDelay = time.duration.days(11);
453
+
454
+ await this.manager.$_setGrantDelay(roleId, this.newDelay);
455
+ this.delay = MINSETBACK; // For testAsDelay
456
+ });
457
+
458
+ testAsDelay('grant', {
459
+ before: function self() {
460
+ self.mineDelay = true;
461
+
462
+ it('returns the old role grant delay', async function () {
463
+ expect(await this.manager.getRoleGrantDelay(roleId)).to.equal(this.oldDelay);
464
+ });
465
+ },
466
+ after: function self() {
467
+ self.mineDelay = true;
468
+
469
+ it('returns the new role grant delay', async function () {
470
+ expect(await this.manager.getRoleGrantDelay(roleId)).to.equal(this.newDelay);
471
+ });
472
+ },
473
+ });
474
+ });
475
+
476
+ it('returns 0 if delay is not set', async function () {
477
+ expect(await this.manager.getTargetAdminDelay(this.target)).to.equal(0n);
478
+ });
479
+ });
480
+
481
+ describe('#getAccess', function () {
482
+ beforeEach('set role', function () {
483
+ this.role = { id: 9452n };
484
+ this.caller = this.user;
485
+ });
486
+
487
+ testAsGetAccess({
488
+ requiredRoleIsGranted: {
489
+ roleGrantingIsDelayed: {
490
+ callerHasAnExecutionDelay: {
491
+ beforeGrantDelay: function self() {
492
+ self.mineDelay = true;
493
+
494
+ it('role is not in effect and execution delay is set', async function () {
495
+ const access = await this.manager.getAccess(this.role.id, this.caller);
496
+ expect(access[0]).to.equal(this.delayEffect); // inEffectSince
497
+ expect(access[1]).to.equal(this.executionDelay); // currentDelay
498
+ expect(access[2]).to.equal(0n); // pendingDelay
499
+ expect(access[3]).to.equal(0n); // pendingDelayEffect
500
+
501
+ // Not in effect yet
502
+ expect(await time.clock.timestamp()).to.lt(access[0]);
503
+ });
504
+ },
505
+ afterGrantDelay: function self() {
506
+ self.mineDelay = true;
507
+
508
+ it('access has role in effect and execution delay is set', async function () {
509
+ const access = await this.manager.getAccess(this.role.id, this.caller);
510
+
511
+ expect(access[0]).to.equal(this.delayEffect); // inEffectSince
512
+ expect(access[1]).to.equal(this.executionDelay); // currentDelay
513
+ expect(access[2]).to.equal(0n); // pendingDelay
514
+ expect(access[3]).to.equal(0n); // pendingDelayEffect
515
+
516
+ // Already in effect
517
+ expect(await time.clock.timestamp()).to.equal(access[0]);
518
+ });
519
+ },
520
+ },
521
+ callerHasNoExecutionDelay: {
522
+ beforeGrantDelay: function self() {
523
+ self.mineDelay = true;
524
+
525
+ it('access has role not in effect without execution delay', async function () {
526
+ const access = await this.manager.getAccess(this.role.id, this.caller);
527
+ expect(access[0]).to.equal(this.delayEffect); // inEffectSince
528
+ expect(access[1]).to.equal(0n); // currentDelay
529
+ expect(access[2]).to.equal(0n); // pendingDelay
530
+ expect(access[3]).to.equal(0n); // pendingDelayEffect
531
+
532
+ // Not in effect yet
533
+ expect(await time.clock.timestamp()).to.lt(access[0]);
534
+ });
535
+ },
536
+ afterGrantDelay: function self() {
537
+ self.mineDelay = true;
538
+
539
+ it('role is in effect without execution delay', async function () {
540
+ const access = await this.manager.getAccess(this.role.id, this.caller);
541
+ expect(access[0]).to.equal(this.delayEffect); // inEffectSince
542
+ expect(access[1]).to.equal(0n); // currentDelay
543
+ expect(access[2]).to.equal(0n); // pendingDelay
544
+ expect(access[3]).to.equal(0n); // pendingDelayEffect
545
+
546
+ // Already in effect
547
+ expect(await time.clock.timestamp()).to.equal(access[0]);
548
+ });
549
+ },
550
+ },
551
+ },
552
+ roleGrantingIsNotDelayed: {
553
+ callerHasAnExecutionDelay() {
554
+ it('access has role in effect and execution delay is set', async function () {
555
+ const access = await this.manager.getAccess(this.role.id, this.caller);
556
+ expect(access[0]).to.equal(await time.clock.timestamp()); // inEffectSince
557
+ expect(access[1]).to.equal(this.executionDelay); // currentDelay
558
+ expect(access[2]).to.equal(0n); // pendingDelay
559
+ expect(access[3]).to.equal(0n); // pendingDelayEffect
560
+
561
+ // Already in effect
562
+ expect(await time.clock.timestamp()).to.equal(access[0]);
563
+ });
564
+ },
565
+ callerHasNoExecutionDelay() {
566
+ it('access has role in effect without execution delay', async function () {
567
+ const access = await this.manager.getAccess(this.role.id, this.caller);
568
+ expect(access[0]).to.equal(await time.clock.timestamp()); // inEffectSince
569
+ expect(access[1]).to.equal(0n); // currentDelay
570
+ expect(access[2]).to.equal(0n); // pendingDelay
571
+ expect(access[3]).to.equal(0n); // pendingDelayEffect
572
+
573
+ // Already in effect
574
+ expect(await time.clock.timestamp()).to.equal(access[0]);
575
+ });
576
+ },
577
+ },
578
+ },
579
+ requiredRoleIsNotGranted() {
580
+ it('has empty access', async function () {
581
+ const access = await this.manager.getAccess(this.role.id, this.caller);
582
+ expect(access[0]).to.equal(0n); // inEffectSince
583
+ expect(access[1]).to.equal(0n); // currentDelay
584
+ expect(access[2]).to.equal(0n); // pendingDelay
585
+ expect(access[3]).to.equal(0n); // pendingDelayEffect
586
+ });
587
+ },
588
+ });
589
+ });
590
+
591
+ describe('#hasRole', function () {
592
+ beforeEach('setup testAsHasRole', function () {
593
+ this.role = { id: 49832n };
594
+ this.calldata = '0x12345678';
595
+ this.caller = this.user;
596
+ });
597
+
598
+ testAsHasRole({
599
+ publicRoleIsRequired() {
600
+ it('has PUBLIC role', async function () {
601
+ const { isMember, executionDelay } = await this.manager.hasRole(this.role.id, this.caller);
602
+ expect(isMember).to.be.true;
603
+ expect(executionDelay).to.equal('0');
604
+ });
605
+ },
606
+ specificRoleIsRequired: {
607
+ requiredRoleIsGranted: {
608
+ roleGrantingIsDelayed: {
609
+ callerHasAnExecutionDelay: {
610
+ beforeGrantDelay: function self() {
611
+ self.mineDelay = true;
612
+
613
+ it('does not have role but execution delay', async function () {
614
+ const { isMember, executionDelay } = await this.manager.hasRole(this.role.id, this.caller);
615
+ expect(isMember).to.be.false;
616
+ expect(executionDelay).to.equal(this.executionDelay);
617
+ });
618
+ },
619
+ afterGrantDelay: function self() {
620
+ self.mineDelay = true;
621
+
622
+ it('has role and execution delay', async function () {
623
+ const { isMember, executionDelay } = await this.manager.hasRole(this.role.id, this.caller);
624
+ expect(isMember).to.be.true;
625
+ expect(executionDelay).to.equal(this.executionDelay);
626
+ });
627
+ },
628
+ },
629
+ callerHasNoExecutionDelay: {
630
+ beforeGrantDelay: function self() {
631
+ self.mineDelay = true;
632
+
633
+ it('does not have role nor execution delay', async function () {
634
+ const { isMember, executionDelay } = await this.manager.hasRole(this.role.id, this.caller);
635
+ expect(isMember).to.be.false;
636
+ expect(executionDelay).to.equal('0');
637
+ });
638
+ },
639
+ afterGrantDelay: function self() {
640
+ self.mineDelay = true;
641
+
642
+ it('has role and no execution delay', async function () {
643
+ const { isMember, executionDelay } = await this.manager.hasRole(this.role.id, this.caller);
644
+ expect(isMember).to.be.true;
645
+ expect(executionDelay).to.equal('0');
646
+ });
647
+ },
648
+ },
649
+ },
650
+ roleGrantingIsNotDelayed: {
651
+ callerHasAnExecutionDelay() {
652
+ it('has role and execution delay', async function () {
653
+ const { isMember, executionDelay } = await this.manager.hasRole(this.role.id, this.caller);
654
+ expect(isMember).to.be.true;
655
+ expect(executionDelay).to.equal(this.executionDelay);
656
+ });
657
+ },
658
+ callerHasNoExecutionDelay() {
659
+ it('has role and no execution delay', async function () {
660
+ const { isMember, executionDelay } = await this.manager.hasRole(this.role.id, this.caller);
661
+ expect(isMember).to.be.true;
662
+ expect(executionDelay).to.equal('0');
663
+ });
664
+ },
665
+ },
666
+ },
667
+ requiredRoleIsNotGranted() {
668
+ it('has no role and no execution delay', async function () {
669
+ const { isMember, executionDelay } = await this.manager.hasRole(this.role.id, this.caller);
670
+ expect(isMember).to.be.false;
671
+ expect(executionDelay).to.equal('0');
672
+ });
673
+ },
674
+ },
675
+ });
676
+ });
677
+
678
+ describe('#getSchedule', function () {
679
+ beforeEach('set role and calldata', async function () {
680
+ const fnRestricted = this.target.fnRestricted.getFragment().selector;
681
+ this.caller = this.user;
682
+ this.role = { id: 493590n };
683
+ await this.manager.$_setTargetFunctionRole(this.target, fnRestricted, this.role.id);
684
+ await this.manager.$_grantRole(this.role.id, this.caller, 0, 1); // nonzero execution delay
685
+
686
+ this.calldata = this.target.interface.encodeFunctionData(fnRestricted, []);
687
+ this.scheduleIn = time.duration.days(10); // For testAsSchedulableOperation
688
+ });
689
+
690
+ testAsSchedulableOperation({
691
+ scheduled: {
692
+ before: function self() {
693
+ self.mineDelay = true;
694
+
695
+ it('returns schedule in the future', async function () {
696
+ const schedule = await this.manager.getSchedule(this.operationId);
697
+ expect(schedule).to.equal(this.scheduledAt + this.scheduleIn);
698
+ expect(schedule).to.gt(await time.clock.timestamp());
699
+ });
700
+ },
701
+ after: function self() {
702
+ self.mineDelay = true;
703
+
704
+ it('returns schedule', async function () {
705
+ const schedule = await this.manager.getSchedule(this.operationId);
706
+ expect(schedule).to.equal(this.scheduledAt + this.scheduleIn);
707
+ expect(schedule).to.equal(await time.clock.timestamp());
708
+ });
709
+ },
710
+ expired: function self() {
711
+ self.mineDelay = true;
712
+
713
+ it('returns 0', async function () {
714
+ expect(await this.manager.getSchedule(this.operationId)).to.equal(0n);
715
+ });
716
+ },
717
+ },
718
+ notScheduled() {
719
+ it('defaults to 0', async function () {
720
+ expect(await this.manager.getSchedule(this.operationId)).to.equal(0n);
721
+ });
722
+ },
723
+ });
724
+ });
725
+
726
+ describe('#getNonce', function () {
727
+ describe('when operation is scheduled', function () {
728
+ beforeEach('schedule operation', async function () {
729
+ const fnRestricted = this.target.fnRestricted.getFragment().selector;
730
+ this.caller = this.user;
731
+ this.role = { id: 4209043n };
732
+ await this.manager.$_setTargetFunctionRole(this.target, fnRestricted, this.role.id);
733
+ await this.manager.$_grantRole(this.role.id, this.caller, 0, 1); // nonzero execution delay
734
+
735
+ this.calldata = this.target.interface.encodeFunctionData(fnRestricted, []);
736
+ this.delay = time.duration.days(10);
737
+
738
+ const { operationId, schedule } = await prepareOperation(this.manager, {
739
+ caller: this.caller,
740
+ target: this.target,
741
+ calldata: this.calldata,
742
+ delay: this.delay,
743
+ });
744
+ await schedule();
745
+ this.operationId = operationId;
746
+ });
747
+
748
+ it('returns nonce', async function () {
749
+ expect(await this.manager.getNonce(this.operationId)).to.equal(1n);
750
+ });
751
+ });
752
+
753
+ describe('when is not scheduled', function () {
754
+ it('returns default 0', async function () {
755
+ expect(await this.manager.getNonce(ethers.id('operation'))).to.equal(0n);
756
+ });
757
+ });
758
+ });
759
+
760
+ describe('#hashOperation', function () {
761
+ it('returns an operationId', async function () {
762
+ const args = [this.user, this.other, '0x123543'];
763
+ expect(await this.manager.hashOperation(...args)).to.equal(hashOperation(...args));
764
+ });
765
+ });
766
+ });
767
+
768
+ describe('admin operations', function () {
769
+ beforeEach('set required role', function () {
770
+ this.role = this.roles.ADMIN;
771
+ });
772
+
773
+ describe('subject to a delay', function () {
774
+ describe('#labelRole', function () {
775
+ describe('restrictions', function () {
776
+ beforeEach('set method and args', function () {
777
+ const args = [123443, 'TEST'];
778
+ const method = this.manager.interface.getFunction('labelRole(uint64,string)');
779
+ this.calldata = this.manager.interface.encodeFunctionData(method, args);
780
+ });
781
+
782
+ shouldBehaveLikeDelayedAdminOperation();
783
+ });
784
+
785
+ it('emits an event with the label', async function () {
786
+ await expect(this.manager.connect(this.admin).labelRole(this.roles.SOME.id, 'Some label'))
787
+ .to.emit(this.manager, 'RoleLabel')
788
+ .withArgs(this.roles.SOME.id, 'Some label');
789
+ });
790
+
791
+ it('updates label on a second call', async function () {
792
+ await this.manager.connect(this.admin).labelRole(this.roles.SOME.id, 'Some label');
793
+
794
+ await expect(this.manager.connect(this.admin).labelRole(this.roles.SOME.id, 'Updated label'))
795
+ .to.emit(this.manager, 'RoleLabel')
796
+ .withArgs(this.roles.SOME.id, 'Updated label');
797
+ });
798
+
799
+ it('reverts labeling PUBLIC_ROLE', async function () {
800
+ await expect(this.manager.connect(this.admin).labelRole(this.roles.PUBLIC.id, 'Some label'))
801
+ .to.be.revertedWithCustomError(this.manager, 'AccessManagerLockedRole')
802
+ .withArgs(this.roles.PUBLIC.id);
803
+ });
804
+
805
+ it('reverts labeling ADMIN_ROLE', async function () {
806
+ await expect(this.manager.connect(this.admin).labelRole(this.roles.ADMIN.id, 'Some label'))
807
+ .to.be.revertedWithCustomError(this.manager, 'AccessManagerLockedRole')
808
+ .withArgs(this.roles.ADMIN.id);
809
+ });
810
+ });
811
+
812
+ describe('#setRoleAdmin', function () {
813
+ describe('restrictions', function () {
814
+ beforeEach('set method and args', function () {
815
+ const args = [93445, 84532];
816
+ const method = this.manager.interface.getFunction('setRoleAdmin(uint64,uint64)');
817
+ this.calldata = this.manager.interface.encodeFunctionData(method, args);
818
+ });
819
+
820
+ shouldBehaveLikeDelayedAdminOperation();
821
+ });
822
+
823
+ it("sets any role's admin if called by an admin", async function () {
824
+ expect(await this.manager.getRoleAdmin(this.roles.SOME.id)).to.equal(this.roles.SOME_ADMIN.id);
825
+
826
+ await expect(this.manager.connect(this.admin).setRoleAdmin(this.roles.SOME.id, this.roles.ADMIN.id))
827
+ .to.emit(this.manager, 'RoleAdminChanged')
828
+ .withArgs(this.roles.SOME.id, this.roles.ADMIN.id);
829
+
830
+ expect(await this.manager.getRoleAdmin(this.roles.SOME.id)).to.equal(this.roles.ADMIN.id);
831
+ });
832
+
833
+ it('reverts setting PUBLIC_ROLE admin', async function () {
834
+ await expect(this.manager.connect(this.admin).setRoleAdmin(this.roles.PUBLIC.id, this.roles.ADMIN.id))
835
+ .to.be.revertedWithCustomError(this.manager, 'AccessManagerLockedRole')
836
+ .withArgs(this.roles.PUBLIC.id);
837
+ });
838
+
839
+ it('reverts setting ADMIN_ROLE admin', async function () {
840
+ await expect(this.manager.connect(this.admin).setRoleAdmin(this.roles.ADMIN.id, this.roles.ADMIN.id))
841
+ .to.be.revertedWithCustomError(this.manager, 'AccessManagerLockedRole')
842
+ .withArgs(this.roles.ADMIN.id);
843
+ });
844
+ });
845
+
846
+ describe('#setRoleGuardian', function () {
847
+ describe('restrictions', function () {
848
+ beforeEach('set method and args', function () {
849
+ const args = [93445, 84532];
850
+ const method = this.manager.interface.getFunction('setRoleGuardian(uint64,uint64)');
851
+ this.calldata = this.manager.interface.encodeFunctionData(method, args);
852
+ });
853
+
854
+ shouldBehaveLikeDelayedAdminOperation();
855
+ });
856
+
857
+ it("sets any role's guardian if called by an admin", async function () {
858
+ expect(await this.manager.getRoleGuardian(this.roles.SOME.id)).to.equal(this.roles.SOME_GUARDIAN.id);
859
+
860
+ await expect(this.manager.connect(this.admin).setRoleGuardian(this.roles.SOME.id, this.roles.ADMIN.id))
861
+ .to.emit(this.manager, 'RoleGuardianChanged')
862
+ .withArgs(this.roles.SOME.id, this.roles.ADMIN.id);
863
+
864
+ expect(await this.manager.getRoleGuardian(this.roles.SOME.id)).to.equal(this.roles.ADMIN.id);
865
+ });
866
+
867
+ it('reverts setting PUBLIC_ROLE admin', async function () {
868
+ await expect(this.manager.connect(this.admin).setRoleGuardian(this.roles.PUBLIC.id, this.roles.ADMIN.id))
869
+ .to.be.revertedWithCustomError(this.manager, 'AccessManagerLockedRole')
870
+ .withArgs(this.roles.PUBLIC.id);
871
+ });
872
+
873
+ it('reverts setting ADMIN_ROLE admin', async function () {
874
+ await expect(this.manager.connect(this.admin).setRoleGuardian(this.roles.ADMIN.id, this.roles.ADMIN.id))
875
+ .to.be.revertedWithCustomError(this.manager, 'AccessManagerLockedRole')
876
+ .withArgs(this.roles.ADMIN.id);
877
+ });
878
+ });
879
+
880
+ describe('#setGrantDelay', function () {
881
+ describe('restrictions', function () {
882
+ beforeEach('set method and args', function () {
883
+ const args = [984910, time.duration.days(2)];
884
+ const method = this.manager.interface.getFunction('setGrantDelay(uint64,uint32)');
885
+ this.calldata = this.manager.interface.encodeFunctionData(method, args);
886
+ });
887
+
888
+ shouldBehaveLikeDelayedAdminOperation();
889
+ });
890
+
891
+ it('reverts setting grant delay for the PUBLIC_ROLE', async function () {
892
+ await expect(this.manager.connect(this.admin).setGrantDelay(this.roles.PUBLIC.id, 69n))
893
+ .to.be.revertedWithCustomError(this.manager, 'AccessManagerLockedRole')
894
+ .withArgs(this.roles.PUBLIC.id);
895
+ });
896
+
897
+ describe('when increasing the delay', function () {
898
+ const oldDelay = 10n;
899
+ const newDelay = 100n;
900
+
901
+ beforeEach('sets old delay', async function () {
902
+ this.role = this.roles.SOME;
903
+ await this.manager.$_setGrantDelay(this.role.id, oldDelay);
904
+ await time.increaseBy.timestamp(MINSETBACK);
905
+ expect(await this.manager.getRoleGrantDelay(this.role.id)).to.equal(oldDelay);
906
+ });
907
+
908
+ it('increases the delay after minsetback', async function () {
909
+ const txResponse = await this.manager.connect(this.admin).setGrantDelay(this.role.id, newDelay);
910
+ const setGrantDelayAt = await time.clockFromReceipt.timestamp(txResponse);
911
+ await expect(txResponse)
912
+ .to.emit(this.manager, 'RoleGrantDelayChanged')
913
+ .withArgs(this.role.id, newDelay, setGrantDelayAt + MINSETBACK);
914
+
915
+ expect(await this.manager.getRoleGrantDelay(this.role.id)).to.equal(oldDelay);
916
+ await time.increaseBy.timestamp(MINSETBACK);
917
+ expect(await this.manager.getRoleGrantDelay(this.role.id)).to.equal(newDelay);
918
+ });
919
+ });
920
+
921
+ describe('when reducing the delay', function () {
922
+ const oldDelay = time.duration.days(10);
923
+
924
+ beforeEach('sets old delay', async function () {
925
+ this.role = this.roles.SOME;
926
+ await this.manager.$_setGrantDelay(this.role.id, oldDelay);
927
+ await time.increaseBy.timestamp(MINSETBACK);
928
+ expect(await this.manager.getRoleGrantDelay(this.role.id)).to.equal(oldDelay);
929
+ });
930
+
931
+ describe('when the delay difference is shorter than minimum setback', function () {
932
+ const newDelay = oldDelay - 1n;
933
+
934
+ it('increases the delay after minsetback', async function () {
935
+ const txResponse = await this.manager.connect(this.admin).setGrantDelay(this.role.id, newDelay);
936
+ const setGrantDelayAt = await time.clockFromReceipt.timestamp(txResponse);
937
+ await expect(txResponse)
938
+ .to.emit(this.manager, 'RoleGrantDelayChanged')
939
+ .withArgs(this.role.id, newDelay, setGrantDelayAt + MINSETBACK);
940
+
941
+ expect(await this.manager.getRoleGrantDelay(this.role.id)).to.equal(oldDelay);
942
+ await time.increaseBy.timestamp(MINSETBACK);
943
+ expect(await this.manager.getRoleGrantDelay(this.role.id)).to.equal(newDelay);
944
+ });
945
+ });
946
+
947
+ describe('when the delay difference is longer than minimum setback', function () {
948
+ const newDelay = 1n;
949
+
950
+ beforeEach('assert delay difference is higher than minsetback', function () {
951
+ expect(oldDelay - newDelay).to.gt(MINSETBACK);
952
+ });
953
+
954
+ it('increases the delay after delay difference', async function () {
955
+ const setback = oldDelay - newDelay;
956
+
957
+ const txResponse = await this.manager.connect(this.admin).setGrantDelay(this.role.id, newDelay);
958
+ const setGrantDelayAt = await time.clockFromReceipt.timestamp(txResponse);
959
+
960
+ await expect(txResponse)
961
+ .to.emit(this.manager, 'RoleGrantDelayChanged')
962
+ .withArgs(this.role.id, newDelay, setGrantDelayAt + setback);
963
+
964
+ expect(await this.manager.getRoleGrantDelay(this.role.id)).to.equal(oldDelay);
965
+ await time.increaseBy.timestamp(setback);
966
+ expect(await this.manager.getRoleGrantDelay(this.role.id)).to.equal(newDelay);
967
+ });
968
+ });
969
+ });
970
+ });
971
+
972
+ describe('#setTargetAdminDelay', function () {
973
+ describe('restrictions', function () {
974
+ beforeEach('set method and args', function () {
975
+ const args = [this.other.address, time.duration.days(3)];
976
+ const method = this.manager.interface.getFunction('setTargetAdminDelay(address,uint32)');
977
+ this.calldata = this.manager.interface.encodeFunctionData(method, args);
978
+ });
979
+
980
+ shouldBehaveLikeDelayedAdminOperation();
981
+ });
982
+
983
+ describe('when increasing the delay', function () {
984
+ const oldDelay = time.duration.days(10);
985
+ const newDelay = time.duration.days(11);
986
+
987
+ beforeEach('sets old delay', async function () {
988
+ await this.manager.$_setTargetAdminDelay(this.other, oldDelay);
989
+ await time.increaseBy.timestamp(MINSETBACK);
990
+ expect(await this.manager.getTargetAdminDelay(this.other)).to.equal(oldDelay);
991
+ });
992
+
993
+ it('increases the delay after minsetback', async function () {
994
+ const txResponse = await this.manager.connect(this.admin).setTargetAdminDelay(this.other, newDelay);
995
+ const setTargetAdminDelayAt = await time.clockFromReceipt.timestamp(txResponse);
996
+ await expect(txResponse)
997
+ .to.emit(this.manager, 'TargetAdminDelayUpdated')
998
+ .withArgs(this.other, newDelay, setTargetAdminDelayAt + MINSETBACK);
999
+
1000
+ expect(await this.manager.getTargetAdminDelay(this.other)).to.equal(oldDelay);
1001
+ await time.increaseBy.timestamp(MINSETBACK);
1002
+ expect(await this.manager.getTargetAdminDelay(this.other)).to.equal(newDelay);
1003
+ });
1004
+ });
1005
+
1006
+ describe('when reducing the delay', function () {
1007
+ const oldDelay = time.duration.days(10);
1008
+
1009
+ beforeEach('sets old delay', async function () {
1010
+ await this.manager.$_setTargetAdminDelay(this.other, oldDelay);
1011
+ await time.increaseBy.timestamp(MINSETBACK);
1012
+ expect(await this.manager.getTargetAdminDelay(this.other)).to.equal(oldDelay);
1013
+ });
1014
+
1015
+ describe('when the delay difference is shorter than minimum setback', function () {
1016
+ const newDelay = oldDelay - 1n;
1017
+
1018
+ it('increases the delay after minsetback', async function () {
1019
+ const txResponse = await this.manager.connect(this.admin).setTargetAdminDelay(this.other, newDelay);
1020
+ const setTargetAdminDelayAt = await time.clockFromReceipt.timestamp(txResponse);
1021
+ await expect(txResponse)
1022
+ .to.emit(this.manager, 'TargetAdminDelayUpdated')
1023
+ .withArgs(this.other, newDelay, setTargetAdminDelayAt + MINSETBACK);
1024
+
1025
+ expect(await this.manager.getTargetAdminDelay(this.other)).to.equal(oldDelay);
1026
+ await time.increaseBy.timestamp(MINSETBACK);
1027
+ expect(await this.manager.getTargetAdminDelay(this.other)).to.equal(newDelay);
1028
+ });
1029
+ });
1030
+
1031
+ describe('when the delay difference is longer than minimum setback', function () {
1032
+ const newDelay = 1n;
1033
+
1034
+ beforeEach('assert delay difference is higher than minsetback', function () {
1035
+ expect(oldDelay - newDelay).to.gt(MINSETBACK);
1036
+ });
1037
+
1038
+ it('increases the delay after delay difference', async function () {
1039
+ const setback = oldDelay - newDelay;
1040
+
1041
+ const txResponse = await this.manager.connect(this.admin).setTargetAdminDelay(this.other, newDelay);
1042
+ const setTargetAdminDelayAt = await time.clockFromReceipt.timestamp(txResponse);
1043
+
1044
+ await expect(txResponse)
1045
+ .to.emit(this.manager, 'TargetAdminDelayUpdated')
1046
+ .withArgs(this.other, newDelay, setTargetAdminDelayAt + setback);
1047
+
1048
+ expect(await this.manager.getTargetAdminDelay(this.other)).to.equal(oldDelay);
1049
+ await time.increaseBy.timestamp(setback);
1050
+ expect(await this.manager.getTargetAdminDelay(this.other)).to.equal(newDelay);
1051
+ });
1052
+ });
1053
+ });
1054
+ });
1055
+ });
1056
+
1057
+ describe('not subject to a delay', function () {
1058
+ describe('#updateAuthority', function () {
1059
+ beforeEach('create a target and a new authority', async function () {
1060
+ this.newAuthority = await ethers.deployContract('$AccessManager', [this.admin]);
1061
+ this.newManagedTarget = await ethers.deployContract('$AccessManagedTarget', [this.manager]);
1062
+ });
1063
+
1064
+ describe('restrictions', function () {
1065
+ beforeEach('set method and args', function () {
1066
+ this.calldata = this.manager.interface.encodeFunctionData('updateAuthority(address,address)', [
1067
+ this.newManagedTarget.target,
1068
+ this.newAuthority.target,
1069
+ ]);
1070
+ });
1071
+
1072
+ shouldBehaveLikeNotDelayedAdminOperation();
1073
+ });
1074
+
1075
+ it('changes the authority', async function () {
1076
+ expect(await this.newManagedTarget.authority()).to.equal(this.manager);
1077
+
1078
+ await expect(this.manager.connect(this.admin).updateAuthority(this.newManagedTarget, this.newAuthority))
1079
+ .to.emit(this.newManagedTarget, 'AuthorityUpdated') // Managed contract is responsible of notifying the change through an event
1080
+ .withArgs(this.newAuthority);
1081
+
1082
+ expect(await this.newManagedTarget.authority()).to.equal(this.newAuthority);
1083
+ });
1084
+ });
1085
+
1086
+ describe('#setTargetClosed', function () {
1087
+ describe('restrictions', function () {
1088
+ beforeEach('set method and args', function () {
1089
+ const args = [this.other.address, true];
1090
+ const method = this.manager.interface.getFunction('setTargetClosed(address,bool)');
1091
+ this.calldata = this.manager.interface.encodeFunctionData(method, args);
1092
+ });
1093
+
1094
+ shouldBehaveLikeNotDelayedAdminOperation();
1095
+ });
1096
+
1097
+ it('closes and opens a target', async function () {
1098
+ await expect(this.manager.connect(this.admin).setTargetClosed(this.target, true))
1099
+ .to.emit(this.manager, 'TargetClosed')
1100
+ .withArgs(this.target, true);
1101
+ expect(await this.manager.isTargetClosed(this.target)).to.be.true;
1102
+
1103
+ await expect(this.manager.connect(this.admin).setTargetClosed(this.target, false))
1104
+ .to.emit(this.manager, 'TargetClosed')
1105
+ .withArgs(this.target, false);
1106
+ expect(await this.manager.isTargetClosed(this.target)).to.be.false;
1107
+ });
1108
+
1109
+ describe('when the target is the manager', async function () {
1110
+ it('closes and opens the manager', async function () {
1111
+ await expect(this.manager.connect(this.admin).setTargetClosed(this.manager, true))
1112
+ .to.emit(this.manager, 'TargetClosed')
1113
+ .withArgs(this.manager, true);
1114
+ expect(await this.manager.isTargetClosed(this.manager)).to.be.true;
1115
+
1116
+ await expect(this.manager.connect(this.admin).setTargetClosed(this.manager, false))
1117
+ .to.emit(this.manager, 'TargetClosed')
1118
+ .withArgs(this.manager, false);
1119
+ expect(await this.manager.isTargetClosed(this.manager)).to.be.false;
1120
+ });
1121
+ });
1122
+ });
1123
+
1124
+ describe('#setTargetFunctionRole', function () {
1125
+ describe('restrictions', function () {
1126
+ beforeEach('set method and args', function () {
1127
+ const args = [this.other.address, ['0x12345678'], 443342];
1128
+ const method = this.manager.interface.getFunction('setTargetFunctionRole(address,bytes4[],uint64)');
1129
+ this.calldata = this.manager.interface.encodeFunctionData(method, args);
1130
+ });
1131
+
1132
+ shouldBehaveLikeNotDelayedAdminOperation();
1133
+ });
1134
+
1135
+ const sigs = ['someFunction()', 'someOtherFunction(uint256)', 'oneMoreFunction(address,uint8)'].map(selector);
1136
+
1137
+ it('sets function roles', async function () {
1138
+ for (const sig of sigs) {
1139
+ expect(await this.manager.getTargetFunctionRole(this.target, sig)).to.equal(this.roles.ADMIN.id);
1140
+ }
1141
+
1142
+ const allowRole = await this.manager
1143
+ .connect(this.admin)
1144
+ .setTargetFunctionRole(this.target, sigs, this.roles.SOME.id);
1145
+
1146
+ for (const sig of sigs) {
1147
+ await expect(allowRole)
1148
+ .to.emit(this.manager, 'TargetFunctionRoleUpdated')
1149
+ .withArgs(this.target, sig, this.roles.SOME.id);
1150
+ expect(await this.manager.getTargetFunctionRole(this.target, sig)).to.equal(this.roles.SOME.id);
1151
+ }
1152
+
1153
+ await expect(
1154
+ this.manager.connect(this.admin).setTargetFunctionRole(this.target, [sigs[1]], this.roles.SOME_ADMIN.id),
1155
+ )
1156
+ .to.emit(this.manager, 'TargetFunctionRoleUpdated')
1157
+ .withArgs(this.target, sigs[1], this.roles.SOME_ADMIN.id);
1158
+
1159
+ for (const sig of sigs) {
1160
+ expect(await this.manager.getTargetFunctionRole(this.target, sig)).to.equal(
1161
+ sig == sigs[1] ? this.roles.SOME_ADMIN.id : this.roles.SOME.id,
1162
+ );
1163
+ }
1164
+ });
1165
+ });
1166
+
1167
+ describe('role admin operations', function () {
1168
+ const ANOTHER_ADMIN = 0xdeadc0de1n;
1169
+ const ANOTHER_ROLE = 0xdeadc0de2n;
1170
+
1171
+ beforeEach('set required role', async function () {
1172
+ // Make admin a member of ANOTHER_ADMIN
1173
+ await this.manager.$_grantRole(ANOTHER_ADMIN, this.admin, 0, 0);
1174
+ await this.manager.$_setRoleAdmin(ANOTHER_ROLE, ANOTHER_ADMIN);
1175
+
1176
+ this.role = { id: ANOTHER_ADMIN };
1177
+ await this.manager.$_grantRole(this.role.id, this.user, 0, 0);
1178
+ });
1179
+
1180
+ describe('#grantRole', function () {
1181
+ describe('restrictions', function () {
1182
+ beforeEach('set method and args', function () {
1183
+ const args = [ANOTHER_ROLE, this.other.address, 0];
1184
+ const method = this.manager.interface.getFunction('grantRole(uint64,address,uint32)');
1185
+ this.calldata = this.manager.interface.encodeFunctionData(method, args);
1186
+ });
1187
+
1188
+ shouldBehaveLikeRoleAdminOperation(ANOTHER_ADMIN);
1189
+ });
1190
+
1191
+ it('reverts when granting PUBLIC_ROLE', async function () {
1192
+ await expect(this.manager.connect(this.admin).grantRole(this.roles.PUBLIC.id, this.user, 0))
1193
+ .to.be.revertedWithCustomError(this.manager, 'AccessManagerLockedRole')
1194
+ .withArgs(this.roles.PUBLIC.id);
1195
+ });
1196
+
1197
+ describe('when the user is not a role member', function () {
1198
+ describe('with grant delay', function () {
1199
+ beforeEach('set grant delay and grant role', async function () {
1200
+ // Delay granting
1201
+ this.grantDelay = time.duration.weeks(2);
1202
+ await this.manager.$_setGrantDelay(ANOTHER_ROLE, this.grantDelay);
1203
+ await time.increaseBy.timestamp(MINSETBACK);
1204
+
1205
+ // Grant role
1206
+ this.executionDelay = time.duration.days(3);
1207
+ expect(await this.manager.hasRole(ANOTHER_ROLE, this.user).then(formatAccess)).to.be.deep.equal([
1208
+ false,
1209
+ '0',
1210
+ ]);
1211
+
1212
+ this.txResponse = await this.manager
1213
+ .connect(this.admin)
1214
+ .grantRole(ANOTHER_ROLE, this.user, this.executionDelay);
1215
+ this.delay = this.grantDelay; // For testAsDelay
1216
+ });
1217
+
1218
+ testAsDelay('grant', {
1219
+ before: function self() {
1220
+ self.mineDelay = true;
1221
+
1222
+ it('does not grant role to the user yet', async function () {
1223
+ const timestamp = await time.clockFromReceipt.timestamp(this.txResponse);
1224
+ await expect(this.txResponse)
1225
+ .to.emit(this.manager, 'RoleGranted')
1226
+ .withArgs(ANOTHER_ROLE, this.user, this.executionDelay, timestamp + this.grantDelay, true);
1227
+
1228
+ // Access is correctly stored
1229
+ const access = await this.manager.getAccess(ANOTHER_ROLE, this.user);
1230
+ expect(access[0]).to.equal(timestamp + this.grantDelay); // inEffectSince
1231
+ expect(access[1]).to.equal(this.executionDelay); // currentDelay
1232
+ expect(access[2]).to.equal(0n); // pendingDelay
1233
+ expect(access[3]).to.equal(0n); // pendingDelayEffect
1234
+
1235
+ // Not in effect yet
1236
+ const currentTimestamp = await time.clock.timestamp();
1237
+ expect(currentTimestamp).to.be.lt(access[0]);
1238
+ expect(await this.manager.hasRole(ANOTHER_ROLE, this.user).then(formatAccess)).to.be.deep.equal([
1239
+ false,
1240
+ this.executionDelay.toString(),
1241
+ ]);
1242
+ });
1243
+ },
1244
+ after: function self() {
1245
+ self.mineDelay = true;
1246
+
1247
+ it('grants role to the user', async function () {
1248
+ const timestamp = await time.clockFromReceipt.timestamp(this.txResponse);
1249
+ await expect(this.txResponse)
1250
+ .to.emit(this.manager, 'RoleGranted')
1251
+ .withArgs(ANOTHER_ROLE, this.user, this.executionDelay, timestamp + this.grantDelay, true);
1252
+
1253
+ // Access is correctly stored
1254
+ const access = await this.manager.getAccess(ANOTHER_ROLE, this.user);
1255
+ expect(access[0]).to.equal(timestamp + this.grantDelay); // inEffectSince
1256
+ expect(access[1]).to.equal(this.executionDelay); // currentDelay
1257
+ expect(access[2]).to.equal(0n); // pendingDelay
1258
+ expect(access[3]).to.equal(0n); // pendingDelayEffect
1259
+
1260
+ // Already in effect
1261
+ const currentTimestamp = await time.clock.timestamp();
1262
+ expect(currentTimestamp).to.equal(access[0]);
1263
+ expect(await this.manager.hasRole(ANOTHER_ROLE, this.user).then(formatAccess)).to.be.deep.equal([
1264
+ true,
1265
+ this.executionDelay.toString(),
1266
+ ]);
1267
+ });
1268
+ },
1269
+ });
1270
+ });
1271
+
1272
+ describe('without grant delay', function () {
1273
+ beforeEach('set granting delay', async function () {
1274
+ // Delay granting
1275
+ this.grantDelay = 0;
1276
+ await this.manager.$_setGrantDelay(ANOTHER_ROLE, this.grantDelay);
1277
+ await time.increaseBy.timestamp(MINSETBACK);
1278
+ });
1279
+
1280
+ it('immediately grants the role to the user', async function () {
1281
+ const executionDelay = time.duration.days(6);
1282
+ expect(await this.manager.hasRole(ANOTHER_ROLE, this.user).then(formatAccess)).to.be.deep.equal([
1283
+ false,
1284
+ '0',
1285
+ ]);
1286
+ const txResponse = await this.manager
1287
+ .connect(this.admin)
1288
+ .grantRole(ANOTHER_ROLE, this.user, executionDelay);
1289
+ const grantedAt = await time.clockFromReceipt.timestamp(txResponse);
1290
+ await expect(txResponse)
1291
+ .to.emit(this.manager, 'RoleGranted')
1292
+ .withArgs(ANOTHER_ROLE, this.user, executionDelay, grantedAt, true);
1293
+
1294
+ // Access is correctly stored
1295
+ const access = await this.manager.getAccess(ANOTHER_ROLE, this.user);
1296
+ expect(access[0]).to.equal(grantedAt); // inEffectSince
1297
+ expect(access[1]).to.equal(executionDelay); // currentDelay
1298
+ expect(access[2]).to.equal(0n); // pendingDelay
1299
+ expect(access[3]).to.equal(0n); // pendingDelayEffect
1300
+
1301
+ // Already in effect
1302
+ const currentTimestamp = await time.clock.timestamp();
1303
+ expect(currentTimestamp).to.equal(access[0]);
1304
+ expect(await this.manager.hasRole(ANOTHER_ROLE, this.user).then(formatAccess)).to.be.deep.equal([
1305
+ true,
1306
+ executionDelay.toString(),
1307
+ ]);
1308
+ });
1309
+ });
1310
+ });
1311
+
1312
+ describe('when the user is already a role member', function () {
1313
+ beforeEach('make user role member', async function () {
1314
+ this.previousExecutionDelay = time.duration.days(6);
1315
+ await this.manager.$_grantRole(ANOTHER_ROLE, this.user, 0, this.previousExecutionDelay);
1316
+ this.oldAccess = await this.manager.getAccess(ANOTHER_ROLE, this.user);
1317
+ });
1318
+
1319
+ describe('with grant delay', function () {
1320
+ beforeEach('set granting delay', async function () {
1321
+ // Delay granting
1322
+ const grantDelay = time.duration.weeks(2);
1323
+ await this.manager.$_setGrantDelay(ANOTHER_ROLE, grantDelay);
1324
+ await time.increaseBy.timestamp(MINSETBACK);
1325
+ });
1326
+
1327
+ describe('when increasing the execution delay', function () {
1328
+ beforeEach('set increased new execution delay', async function () {
1329
+ expect(await this.manager.hasRole(ANOTHER_ROLE, this.user).then(formatAccess)).to.be.deep.equal([
1330
+ true,
1331
+ this.previousExecutionDelay.toString(),
1332
+ ]);
1333
+
1334
+ this.newExecutionDelay = this.previousExecutionDelay + time.duration.days(4);
1335
+ });
1336
+
1337
+ it('emits event and immediately changes the execution delay', async function () {
1338
+ expect(await this.manager.hasRole(ANOTHER_ROLE, this.user).then(formatAccess)).to.be.deep.equal([
1339
+ true,
1340
+ this.previousExecutionDelay.toString(),
1341
+ ]);
1342
+ const txResponse = await this.manager
1343
+ .connect(this.admin)
1344
+ .grantRole(ANOTHER_ROLE, this.user, this.newExecutionDelay);
1345
+ const timestamp = await time.clockFromReceipt.timestamp(txResponse);
1346
+
1347
+ await expect(txResponse)
1348
+ .to.emit(this.manager, 'RoleGranted')
1349
+ .withArgs(ANOTHER_ROLE, this.user, this.newExecutionDelay, timestamp, false);
1350
+
1351
+ // Access is correctly stored
1352
+ const access = await this.manager.getAccess(ANOTHER_ROLE, this.user);
1353
+ expect(access[0]).to.equal(this.oldAccess[0]); // inEffectSince
1354
+ expect(access[1]).to.equal(this.newExecutionDelay); // currentDelay
1355
+ expect(access[2]).to.equal(0n); // pendingDelay
1356
+ expect(access[3]).to.equal(0n); // pendingDelayEffect
1357
+
1358
+ // Already in effect
1359
+ expect(await this.manager.hasRole(ANOTHER_ROLE, this.user).then(formatAccess)).to.be.deep.equal([
1360
+ true,
1361
+ this.newExecutionDelay.toString(),
1362
+ ]);
1363
+ });
1364
+ });
1365
+
1366
+ describe('when decreasing the execution delay', function () {
1367
+ beforeEach('decrease execution delay', async function () {
1368
+ expect(await this.manager.hasRole(ANOTHER_ROLE, this.user).then(formatAccess)).to.be.deep.equal([
1369
+ true,
1370
+ this.previousExecutionDelay.toString(),
1371
+ ]);
1372
+
1373
+ this.newExecutionDelay = this.previousExecutionDelay - time.duration.days(4);
1374
+ this.txResponse = await this.manager
1375
+ .connect(this.admin)
1376
+ .grantRole(ANOTHER_ROLE, this.user, this.newExecutionDelay);
1377
+ this.grantTimestamp = await time.clockFromReceipt.timestamp(this.txResponse);
1378
+
1379
+ this.delay = this.previousExecutionDelay - this.newExecutionDelay; // For testAsDelay
1380
+ });
1381
+
1382
+ it('emits event', async function () {
1383
+ await expect(this.txResponse)
1384
+ .to.emit(this.manager, 'RoleGranted')
1385
+ .withArgs(ANOTHER_ROLE, this.user, this.newExecutionDelay, this.grantTimestamp + this.delay, false);
1386
+ });
1387
+
1388
+ testAsDelay('execution delay effect', {
1389
+ before: function self() {
1390
+ self.mineDelay = true;
1391
+
1392
+ it('does not change the execution delay yet', async function () {
1393
+ // Access is correctly stored
1394
+ const access = await this.manager.getAccess(ANOTHER_ROLE, this.user);
1395
+ expect(access[0]).to.equal(this.oldAccess[0]); // inEffectSince
1396
+ expect(access[1]).to.equal(this.previousExecutionDelay); // currentDelay
1397
+ expect(access[2]).to.equal(this.newExecutionDelay); // pendingDelay
1398
+ expect(access[3]).to.equal(this.grantTimestamp + this.delay); // pendingDelayEffect
1399
+
1400
+ // Not in effect yet
1401
+ expect(await this.manager.hasRole(ANOTHER_ROLE, this.user).then(formatAccess)).to.be.deep.equal([
1402
+ true,
1403
+ this.previousExecutionDelay.toString(),
1404
+ ]);
1405
+ });
1406
+ },
1407
+ after: function self() {
1408
+ self.mineDelay = true;
1409
+
1410
+ it('changes the execution delay', async function () {
1411
+ // Access is correctly stored
1412
+ const access = await this.manager.getAccess(ANOTHER_ROLE, this.user);
1413
+
1414
+ expect(access[0]).to.equal(this.oldAccess[0]); // inEffectSince
1415
+ expect(access[1]).to.equal(this.newExecutionDelay); // currentDelay
1416
+ expect(access[2]).to.equal(0n); // pendingDelay
1417
+ expect(access[3]).to.equal(0n); // pendingDelayEffect
1418
+
1419
+ // Already in effect
1420
+ expect(await this.manager.hasRole(ANOTHER_ROLE, this.user).then(formatAccess)).to.be.deep.equal([
1421
+ true,
1422
+ this.newExecutionDelay.toString(),
1423
+ ]);
1424
+ });
1425
+ },
1426
+ });
1427
+ });
1428
+ });
1429
+
1430
+ describe('without grant delay', function () {
1431
+ beforeEach('set granting delay', async function () {
1432
+ // Delay granting
1433
+ const grantDelay = 0;
1434
+ await this.manager.$_setGrantDelay(ANOTHER_ROLE, grantDelay);
1435
+ await time.increaseBy.timestamp(MINSETBACK);
1436
+ });
1437
+
1438
+ describe('when increasing the execution delay', function () {
1439
+ beforeEach('set increased new execution delay', async function () {
1440
+ expect(await this.manager.hasRole(ANOTHER_ROLE, this.user).then(formatAccess)).to.be.deep.equal([
1441
+ true,
1442
+ this.previousExecutionDelay.toString(),
1443
+ ]);
1444
+
1445
+ this.newExecutionDelay = this.previousExecutionDelay + time.duration.days(4);
1446
+ });
1447
+
1448
+ it('emits event and immediately changes the execution delay', async function () {
1449
+ expect(await this.manager.hasRole(ANOTHER_ROLE, this.user).then(formatAccess)).to.be.deep.equal([
1450
+ true,
1451
+ this.previousExecutionDelay.toString(),
1452
+ ]);
1453
+ const txResponse = await this.manager
1454
+ .connect(this.admin)
1455
+ .grantRole(ANOTHER_ROLE, this.user, this.newExecutionDelay);
1456
+ const timestamp = await time.clockFromReceipt.timestamp(txResponse);
1457
+
1458
+ await expect(txResponse)
1459
+ .to.emit(this.manager, 'RoleGranted')
1460
+ .withArgs(ANOTHER_ROLE, this.user, this.newExecutionDelay, timestamp, false);
1461
+
1462
+ // Access is correctly stored
1463
+ const access = await this.manager.getAccess(ANOTHER_ROLE, this.user);
1464
+ expect(access[0]).to.equal(this.oldAccess[0]); // inEffectSince
1465
+ expect(access[1]).to.equal(this.newExecutionDelay); // currentDelay
1466
+ expect(access[2]).to.equal(0n); // pendingDelay
1467
+ expect(access[3]).to.equal(0n); // pendingDelayEffect
1468
+
1469
+ // Already in effect
1470
+ expect(await this.manager.hasRole(ANOTHER_ROLE, this.user).then(formatAccess)).to.be.deep.equal([
1471
+ true,
1472
+ this.newExecutionDelay.toString(),
1473
+ ]);
1474
+ });
1475
+ });
1476
+
1477
+ describe('when decreasing the execution delay', function () {
1478
+ beforeEach('decrease execution delay', async function () {
1479
+ expect(await this.manager.hasRole(ANOTHER_ROLE, this.user).then(formatAccess)).to.be.deep.equal([
1480
+ true,
1481
+ this.previousExecutionDelay.toString(),
1482
+ ]);
1483
+
1484
+ this.newExecutionDelay = this.previousExecutionDelay - time.duration.days(4);
1485
+ this.txResponse = await this.manager
1486
+ .connect(this.admin)
1487
+ .grantRole(ANOTHER_ROLE, this.user, this.newExecutionDelay);
1488
+ this.grantTimestamp = await time.clockFromReceipt.timestamp(this.txResponse);
1489
+
1490
+ this.delay = this.previousExecutionDelay - this.newExecutionDelay; // For testAsDelay
1491
+ });
1492
+
1493
+ it('emits event', async function () {
1494
+ await expect(this.txResponse)
1495
+ .to.emit(this.manager, 'RoleGranted')
1496
+ .withArgs(ANOTHER_ROLE, this.user, this.newExecutionDelay, this.grantTimestamp + this.delay, false);
1497
+ });
1498
+
1499
+ testAsDelay('execution delay effect', {
1500
+ before: function self() {
1501
+ self.mineDelay = true;
1502
+
1503
+ it('does not change the execution delay yet', async function () {
1504
+ // Access is correctly stored
1505
+ const access = await this.manager.getAccess(ANOTHER_ROLE, this.user);
1506
+ expect(access[0]).to.equal(this.oldAccess[0]); // inEffectSince
1507
+ expect(access[1]).to.equal(this.previousExecutionDelay); // currentDelay
1508
+ expect(access[2]).to.equal(this.newExecutionDelay); // pendingDelay
1509
+ expect(access[3]).to.equal(this.grantTimestamp + this.delay); // pendingDelayEffect
1510
+
1511
+ // Not in effect yet
1512
+ expect(await this.manager.hasRole(ANOTHER_ROLE, this.user).then(formatAccess)).to.be.deep.equal([
1513
+ true,
1514
+ this.previousExecutionDelay.toString(),
1515
+ ]);
1516
+ });
1517
+ },
1518
+ after: function self() {
1519
+ self.mineDelay = true;
1520
+
1521
+ it('changes the execution delay', async function () {
1522
+ // Access is correctly stored
1523
+ const access = await this.manager.getAccess(ANOTHER_ROLE, this.user);
1524
+
1525
+ expect(access[0]).to.equal(this.oldAccess[0]); // inEffectSince
1526
+ expect(access[1]).to.equal(this.newExecutionDelay); // currentDelay
1527
+ expect(access[2]).to.equal(0n); // pendingDelay
1528
+ expect(access[3]).to.equal(0n); // pendingDelayEffect
1529
+
1530
+ // Already in effect
1531
+ expect(await this.manager.hasRole(ANOTHER_ROLE, this.user).then(formatAccess)).to.be.deep.equal([
1532
+ true,
1533
+ this.newExecutionDelay.toString(),
1534
+ ]);
1535
+ });
1536
+ },
1537
+ });
1538
+ });
1539
+ });
1540
+ });
1541
+ });
1542
+
1543
+ describe('#revokeRole', function () {
1544
+ describe('restrictions', function () {
1545
+ beforeEach('set method and args', async function () {
1546
+ const args = [ANOTHER_ROLE, this.other.address];
1547
+ const method = this.manager.interface.getFunction('revokeRole(uint64,address)');
1548
+ this.calldata = this.manager.interface.encodeFunctionData(method, args);
1549
+
1550
+ // Need to be set before revoking
1551
+ await this.manager.$_grantRole(...args, 0, 0);
1552
+ });
1553
+
1554
+ shouldBehaveLikeRoleAdminOperation(ANOTHER_ADMIN);
1555
+ });
1556
+
1557
+ describe('when role has been granted', function () {
1558
+ beforeEach('grant role with grant delay', async function () {
1559
+ this.grantDelay = time.duration.weeks(1);
1560
+ await this.manager.$_grantRole(ANOTHER_ROLE, this.user, this.grantDelay, 0);
1561
+
1562
+ this.delay = this.grantDelay; // For testAsDelay
1563
+ });
1564
+
1565
+ testAsDelay('grant', {
1566
+ before: function self() {
1567
+ self.mineDelay = true;
1568
+
1569
+ it('revokes a granted role that will take effect in the future', async function () {
1570
+ expect(await this.manager.hasRole(ANOTHER_ROLE, this.user).then(formatAccess)).to.be.deep.equal([
1571
+ false,
1572
+ '0',
1573
+ ]);
1574
+
1575
+ await expect(this.manager.connect(this.admin).revokeRole(ANOTHER_ROLE, this.user))
1576
+ .to.emit(this.manager, 'RoleRevoked')
1577
+ .withArgs(ANOTHER_ROLE, this.user);
1578
+
1579
+ expect(await this.manager.hasRole(ANOTHER_ROLE, this.user).then(formatAccess)).to.be.deep.equal([
1580
+ false,
1581
+ '0',
1582
+ ]);
1583
+
1584
+ const access = await this.manager.getAccess(ANOTHER_ROLE, this.user);
1585
+ expect(access[0]).to.equal(0n); // inRoleSince
1586
+ expect(access[1]).to.equal(0n); // currentDelay
1587
+ expect(access[2]).to.equal(0n); // pendingDelay
1588
+ expect(access[3]).to.equal(0n); // effect
1589
+ });
1590
+ },
1591
+ after: function self() {
1592
+ self.mineDelay = true;
1593
+
1594
+ it('revokes a granted role that already took effect', async function () {
1595
+ expect(await this.manager.hasRole(ANOTHER_ROLE, this.user).then(formatAccess)).to.be.deep.equal([
1596
+ true,
1597
+ '0',
1598
+ ]);
1599
+
1600
+ await expect(this.manager.connect(this.admin).revokeRole(ANOTHER_ROLE, this.user))
1601
+ .to.emit(this.manager, 'RoleRevoked')
1602
+ .withArgs(ANOTHER_ROLE, this.user);
1603
+
1604
+ expect(await this.manager.hasRole(ANOTHER_ROLE, this.user).then(formatAccess)).to.be.deep.equal([
1605
+ false,
1606
+ '0',
1607
+ ]);
1608
+
1609
+ const access = await this.manager.getAccess(ANOTHER_ROLE, this.user);
1610
+ expect(access[0]).to.equal(0n); // inRoleSince
1611
+ expect(access[1]).to.equal(0n); // currentDelay
1612
+ expect(access[2]).to.equal(0n); // pendingDelay
1613
+ expect(access[3]).to.equal(0n); // effect
1614
+ });
1615
+ },
1616
+ });
1617
+ });
1618
+
1619
+ describe('when role has not been granted', function () {
1620
+ it('has no effect', async function () {
1621
+ expect(await this.manager.hasRole(this.roles.SOME.id, this.user).then(formatAccess)).to.be.deep.equal([
1622
+ false,
1623
+ '0',
1624
+ ]);
1625
+ await expect(this.manager.connect(this.roleAdmin).revokeRole(this.roles.SOME.id, this.user)).to.not.emit(
1626
+ this.manager,
1627
+ 'RoleRevoked',
1628
+ );
1629
+ expect(await this.manager.hasRole(this.roles.SOME.id, this.user).then(formatAccess)).to.be.deep.equal([
1630
+ false,
1631
+ '0',
1632
+ ]);
1633
+ });
1634
+ });
1635
+
1636
+ it('reverts revoking PUBLIC_ROLE', async function () {
1637
+ await expect(this.manager.connect(this.admin).revokeRole(this.roles.PUBLIC.id, this.user))
1638
+ .to.be.revertedWithCustomError(this.manager, 'AccessManagerLockedRole')
1639
+ .withArgs(this.roles.PUBLIC.id);
1640
+ });
1641
+ });
1642
+ });
1643
+
1644
+ describe('self role operations', function () {
1645
+ describe('#renounceRole', function () {
1646
+ beforeEach('grant role', async function () {
1647
+ this.role = { id: 783164n };
1648
+ this.caller = this.user;
1649
+ await this.manager.$_grantRole(this.role.id, this.caller, 0, 0);
1650
+ });
1651
+
1652
+ it('renounces a role', async function () {
1653
+ expect(await this.manager.hasRole(this.role.id, this.caller).then(formatAccess)).to.be.deep.equal([
1654
+ true,
1655
+ '0',
1656
+ ]);
1657
+ await expect(this.manager.connect(this.caller).renounceRole(this.role.id, this.caller))
1658
+ .to.emit(this.manager, 'RoleRevoked')
1659
+ .withArgs(this.role.id, this.caller);
1660
+ expect(await this.manager.hasRole(this.role.id, this.caller).then(formatAccess)).to.be.deep.equal([
1661
+ false,
1662
+ '0',
1663
+ ]);
1664
+ });
1665
+
1666
+ it('reverts if renouncing the PUBLIC_ROLE', async function () {
1667
+ await expect(this.manager.connect(this.caller).renounceRole(this.roles.PUBLIC.id, this.caller))
1668
+ .to.be.revertedWithCustomError(this.manager, 'AccessManagerLockedRole')
1669
+ .withArgs(this.roles.PUBLIC.id);
1670
+ });
1671
+
1672
+ it('reverts if renouncing with bad caller confirmation', async function () {
1673
+ await expect(
1674
+ this.manager.connect(this.caller).renounceRole(this.role.id, this.other),
1675
+ ).to.be.revertedWithCustomError(this.manager, 'AccessManagerBadConfirmation');
1676
+ });
1677
+ });
1678
+ });
1679
+ });
1680
+ });
1681
+
1682
+ describe('access managed self operations', function () {
1683
+ describe('when calling a restricted target function', function () {
1684
+ const method = 'fnRestricted()';
1685
+
1686
+ beforeEach('set required role', async function () {
1687
+ this.role = { id: 785913n };
1688
+ await this.manager.$_setTargetFunctionRole(
1689
+ this.manager,
1690
+ this.manager[method].getFragment().selector,
1691
+ this.role.id,
1692
+ );
1693
+ });
1694
+
1695
+ describe('restrictions', function () {
1696
+ beforeEach('set method and args', function () {
1697
+ this.caller = this.user;
1698
+ this.calldata = this.manager.interface.encodeFunctionData(method, []);
1699
+ });
1700
+
1701
+ shouldBehaveLikeASelfRestrictedOperation();
1702
+ });
1703
+
1704
+ it('succeeds called by a role member', async function () {
1705
+ await this.manager.$_grantRole(this.role.id, this.user, 0, 0);
1706
+
1707
+ await expect(this.manager.connect(this.user)[method]())
1708
+ .to.emit(this.manager, 'CalledRestricted')
1709
+ .withArgs(this.user);
1710
+ });
1711
+ });
1712
+
1713
+ describe('when calling a non-restricted target function', function () {
1714
+ const method = 'fnUnrestricted()';
1715
+
1716
+ beforeEach('set required role', async function () {
1717
+ this.role = { id: 879435n };
1718
+ await this.manager.$_setTargetFunctionRole(
1719
+ this.manager,
1720
+ this.manager[method].getFragment().selector,
1721
+ this.role.id,
1722
+ );
1723
+ });
1724
+
1725
+ it('succeeds called by anyone', async function () {
1726
+ await expect(this.manager.connect(this.user)[method]())
1727
+ .to.emit(this.manager, 'CalledUnrestricted')
1728
+ .withArgs(this.user);
1729
+ });
1730
+ });
1731
+ });
1732
+
1733
+ describe('access managed target operations', function () {
1734
+ describe('when calling a restricted target function', function () {
1735
+ const method = 'fnRestricted()';
1736
+
1737
+ beforeEach('set required role', async function () {
1738
+ this.role = { id: 3597243n };
1739
+ await this.manager.$_setTargetFunctionRole(
1740
+ this.target,
1741
+ this.target[method].getFragment().selector,
1742
+ this.role.id,
1743
+ );
1744
+ });
1745
+
1746
+ describe('restrictions', function () {
1747
+ beforeEach('set method and args', function () {
1748
+ this.caller = this.user;
1749
+ this.calldata = this.target.interface.encodeFunctionData(method, []);
1750
+ });
1751
+
1752
+ shouldBehaveLikeAManagedRestrictedOperation();
1753
+ });
1754
+
1755
+ it('succeeds called by a role member', async function () {
1756
+ await this.manager.$_grantRole(this.role.id, this.user, 0, 0);
1757
+
1758
+ await expect(this.target.connect(this.user)[method]())
1759
+ .to.emit(this.target, 'CalledRestricted')
1760
+ .withArgs(this.user);
1761
+ });
1762
+ });
1763
+
1764
+ describe('when calling a non-restricted target function', function () {
1765
+ const method = 'fnUnrestricted()';
1766
+
1767
+ beforeEach('set required role', async function () {
1768
+ this.role = { id: 879435n };
1769
+ await this.manager.$_setTargetFunctionRole(
1770
+ this.target,
1771
+ this.target[method].getFragment().selector,
1772
+ this.role.id,
1773
+ );
1774
+ });
1775
+
1776
+ it('succeeds called by anyone', async function () {
1777
+ await expect(this.target.connect(this.user)[method]())
1778
+ .to.emit(this.target, 'CalledUnrestricted')
1779
+ .withArgs(this.user);
1780
+ });
1781
+ });
1782
+ });
1783
+
1784
+ describe('#schedule', function () {
1785
+ beforeEach('set target function role', async function () {
1786
+ this.method = this.target.fnRestricted.getFragment();
1787
+ this.role = { id: 498305n };
1788
+ this.caller = this.user;
1789
+
1790
+ await this.manager.$_setTargetFunctionRole(this.target, this.method.selector, this.role.id);
1791
+ await this.manager.$_grantRole(this.role.id, this.caller, 0, 1); // nonzero execution delay
1792
+
1793
+ this.calldata = this.target.interface.encodeFunctionData(this.method, []);
1794
+ this.delay = time.duration.weeks(2);
1795
+ });
1796
+
1797
+ describe('restrictions', function () {
1798
+ testAsCanCall({
1799
+ closed() {
1800
+ it('reverts as AccessManagerUnauthorizedCall', async function () {
1801
+ const { schedule } = await prepareOperation(this.manager, {
1802
+ caller: this.caller,
1803
+ target: this.target,
1804
+ calldata: this.calldata,
1805
+ delay: this.delay,
1806
+ });
1807
+ await expect(schedule())
1808
+ .to.be.revertedWithCustomError(this.manager, 'AccessManagerUnauthorizedCall')
1809
+ .withArgs(this.caller, this.target, this.calldata.substring(0, 10));
1810
+ });
1811
+ },
1812
+ open: {
1813
+ callerIsTheManager: {
1814
+ executing() {
1815
+ it.skip('is not reachable because schedule is not restrictable');
1816
+ },
1817
+ notExecuting() {
1818
+ it('reverts as AccessManagerUnauthorizedCall', async function () {
1819
+ const { schedule } = await prepareOperation(this.manager, {
1820
+ caller: this.caller,
1821
+ target: this.target,
1822
+ calldata: this.calldata,
1823
+ delay: this.delay,
1824
+ });
1825
+ await expect(schedule())
1826
+ .to.be.revertedWithCustomError(this.manager, 'AccessManagerUnauthorizedCall')
1827
+ .withArgs(this.caller, this.target, this.calldata.substring(0, 10));
1828
+ });
1829
+ },
1830
+ },
1831
+ callerIsNotTheManager: {
1832
+ publicRoleIsRequired() {
1833
+ it('reverts as AccessManagerUnauthorizedCall', async function () {
1834
+ // prepareOperation is not used here because it alters the next block timestamp
1835
+ await expect(this.manager.connect(this.caller).schedule(this.target, this.calldata, MAX_UINT48))
1836
+ .to.be.revertedWithCustomError(this.manager, 'AccessManagerUnauthorizedCall')
1837
+ .withArgs(this.caller, this.target, this.calldata.substring(0, 10));
1838
+ });
1839
+ },
1840
+ specificRoleIsRequired: {
1841
+ requiredRoleIsGranted: {
1842
+ roleGrantingIsDelayed: {
1843
+ callerHasAnExecutionDelay: {
1844
+ beforeGrantDelay() {
1845
+ it('reverts as AccessManagerUnauthorizedCall', async function () {
1846
+ // prepareOperation is not used here because it alters the next block timestamp
1847
+ await expect(this.manager.connect(this.caller).schedule(this.target, this.calldata, MAX_UINT48))
1848
+ .to.be.revertedWithCustomError(this.manager, 'AccessManagerUnauthorizedCall')
1849
+ .withArgs(this.caller, this.target, this.calldata.substring(0, 10));
1850
+ });
1851
+ },
1852
+ afterGrantDelay() {
1853
+ it('succeeds', async function () {
1854
+ // prepareOperation is not used here because it alters the next block timestamp
1855
+ await this.manager.connect(this.caller).schedule(this.target, this.calldata, MAX_UINT48);
1856
+ });
1857
+ },
1858
+ },
1859
+ callerHasNoExecutionDelay: {
1860
+ beforeGrantDelay() {
1861
+ it('reverts as AccessManagerUnauthorizedCall', async function () {
1862
+ // prepareOperation is not used here because it alters the next block timestamp
1863
+ await expect(this.manager.connect(this.caller).schedule(this.target, this.calldata, MAX_UINT48))
1864
+ .to.be.revertedWithCustomError(this.manager, 'AccessManagerUnauthorizedCall')
1865
+ .withArgs(this.caller, this.target, this.calldata.substring(0, 10));
1866
+ });
1867
+ },
1868
+ afterGrantDelay() {
1869
+ it('reverts as AccessManagerUnauthorizedCall', async function () {
1870
+ // prepareOperation is not used here because it alters the next block timestamp
1871
+ await expect(this.manager.connect(this.caller).schedule(this.target, this.calldata, MAX_UINT48))
1872
+ .to.be.revertedWithCustomError(this.manager, 'AccessManagerUnauthorizedCall')
1873
+ .withArgs(this.caller, this.target, this.calldata.substring(0, 10));
1874
+ });
1875
+ },
1876
+ },
1877
+ },
1878
+ roleGrantingIsNotDelayed: {
1879
+ callerHasAnExecutionDelay() {
1880
+ it('succeeds', async function () {
1881
+ const { schedule } = await prepareOperation(this.manager, {
1882
+ caller: this.caller,
1883
+ target: this.target,
1884
+ calldata: this.calldata,
1885
+ delay: this.delay,
1886
+ });
1887
+
1888
+ await schedule();
1889
+ });
1890
+ },
1891
+ callerHasNoExecutionDelay() {
1892
+ it('reverts as AccessManagerUnauthorizedCall', async function () {
1893
+ // prepareOperation is not used here because it alters the next block timestamp
1894
+ await expect(this.manager.connect(this.caller).schedule(this.target, this.calldata, MAX_UINT48))
1895
+ .to.be.revertedWithCustomError(this.manager, 'AccessManagerUnauthorizedCall')
1896
+ .withArgs(this.caller, this.target, this.calldata.substring(0, 10));
1897
+ });
1898
+ },
1899
+ },
1900
+ },
1901
+ requiredRoleIsNotGranted() {
1902
+ it('reverts as AccessManagerUnauthorizedCall', async function () {
1903
+ const { schedule } = await prepareOperation(this.manager, {
1904
+ caller: this.caller,
1905
+ target: this.target,
1906
+ calldata: this.calldata,
1907
+ delay: this.delay,
1908
+ });
1909
+ await expect(schedule())
1910
+ .to.be.revertedWithCustomError(this.manager, 'AccessManagerUnauthorizedCall')
1911
+ .withArgs(this.caller, this.target, this.calldata.substring(0, 10));
1912
+ });
1913
+ },
1914
+ },
1915
+ },
1916
+ },
1917
+ });
1918
+ });
1919
+
1920
+ it('schedules an operation at the specified execution date if it is larger than caller execution delay', async function () {
1921
+ const { operationId, scheduledAt, schedule } = await prepareOperation(this.manager, {
1922
+ caller: this.caller,
1923
+ target: this.target,
1924
+ calldata: this.calldata,
1925
+ delay: this.delay,
1926
+ });
1927
+
1928
+ const txResponse = await schedule();
1929
+
1930
+ expect(await this.manager.getSchedule(operationId)).to.equal(scheduledAt + this.delay);
1931
+ await expect(txResponse)
1932
+ .to.emit(this.manager, 'OperationScheduled')
1933
+ .withArgs(operationId, '1', scheduledAt + this.delay, this.caller, this.target, this.calldata);
1934
+ });
1935
+
1936
+ it('schedules an operation at the minimum execution date if no specified execution date (when == 0)', async function () {
1937
+ const executionDelay = await time.duration.hours(72);
1938
+ await this.manager.$_grantRole(this.role.id, this.caller, 0, executionDelay);
1939
+
1940
+ const txResponse = await this.manager.connect(this.caller).schedule(this.target, this.calldata, 0);
1941
+ const scheduledAt = await time.clockFromReceipt.timestamp(txResponse);
1942
+
1943
+ const operationId = await this.manager.hashOperation(this.caller, this.target, this.calldata);
1944
+
1945
+ expect(await this.manager.getSchedule(operationId)).to.equal(scheduledAt + executionDelay);
1946
+ await expect(txResponse)
1947
+ .to.emit(this.manager, 'OperationScheduled')
1948
+ .withArgs(operationId, '1', scheduledAt + executionDelay, this.caller, this.target, this.calldata);
1949
+ });
1950
+
1951
+ it('increases the nonce of an operation scheduled more than once', async function () {
1952
+ // Setup and check initial nonce
1953
+ const expectedOperationId = hashOperation(this.caller, this.target, this.calldata);
1954
+ expect(await this.manager.getNonce(expectedOperationId)).to.equal('0');
1955
+
1956
+ // Schedule
1957
+ const op1 = await prepareOperation(this.manager, {
1958
+ caller: this.caller,
1959
+ target: this.target,
1960
+ calldata: this.calldata,
1961
+ delay: this.delay,
1962
+ });
1963
+ await expect(op1.schedule())
1964
+ .to.emit(this.manager, 'OperationScheduled')
1965
+ .withArgs(op1.operationId, 1n, op1.scheduledAt + this.delay, this.caller, this.target, this.calldata);
1966
+ expect(expectedOperationId).to.equal(op1.operationId);
1967
+
1968
+ // Consume
1969
+ await time.increaseBy.timestamp(this.delay);
1970
+ await this.manager.$_consumeScheduledOp(expectedOperationId);
1971
+
1972
+ // Check nonce
1973
+ expect(await this.manager.getNonce(expectedOperationId)).to.equal('1');
1974
+
1975
+ // Schedule again
1976
+ const op2 = await prepareOperation(this.manager, {
1977
+ caller: this.caller,
1978
+ target: this.target,
1979
+ calldata: this.calldata,
1980
+ delay: this.delay,
1981
+ });
1982
+ await expect(op2.schedule())
1983
+ .to.emit(this.manager, 'OperationScheduled')
1984
+ .withArgs(op2.operationId, 2n, op2.scheduledAt + this.delay, this.caller, this.target, this.calldata);
1985
+ expect(expectedOperationId).to.equal(op2.operationId);
1986
+
1987
+ // Check final nonce
1988
+ expect(await this.manager.getNonce(expectedOperationId)).to.equal('2');
1989
+ });
1990
+
1991
+ it('reverts if the specified execution date is before the current timestamp + caller execution delay', async function () {
1992
+ const executionDelay = time.duration.weeks(1) + this.delay;
1993
+ await this.manager.$_grantRole(this.role.id, this.caller, 0, executionDelay);
1994
+
1995
+ const { schedule } = await prepareOperation(this.manager, {
1996
+ caller: this.caller,
1997
+ target: this.target,
1998
+ calldata: this.calldata,
1999
+ delay: this.delay,
2000
+ });
2001
+
2002
+ await expect(schedule())
2003
+ .to.be.revertedWithCustomError(this.manager, 'AccessManagerUnauthorizedCall')
2004
+ .withArgs(this.caller, this.target, this.calldata.substring(0, 10));
2005
+ });
2006
+
2007
+ it('reverts if an operation is already schedule', async function () {
2008
+ const op1 = await prepareOperation(this.manager, {
2009
+ caller: this.caller,
2010
+ target: this.target,
2011
+ calldata: this.calldata,
2012
+ delay: this.delay,
2013
+ });
2014
+
2015
+ await op1.schedule();
2016
+
2017
+ const op2 = await prepareOperation(this.manager, {
2018
+ caller: this.caller,
2019
+ target: this.target,
2020
+ calldata: this.calldata,
2021
+ delay: this.delay,
2022
+ });
2023
+
2024
+ await expect(op2.schedule())
2025
+ .to.be.revertedWithCustomError(this.manager, 'AccessManagerAlreadyScheduled')
2026
+ .withArgs(op1.operationId);
2027
+ });
2028
+
2029
+ it('panics scheduling calldata with less than 4 bytes', async function () {
2030
+ const calldata = '0x1234'; // 2 bytes
2031
+
2032
+ // Managed contract
2033
+ const op1 = await prepareOperation(this.manager, {
2034
+ caller: this.caller,
2035
+ target: this.target,
2036
+ calldata: calldata,
2037
+ delay: this.delay,
2038
+ });
2039
+ await expect(op1.schedule()).to.be.revertedWithoutReason();
2040
+
2041
+ // Manager contract
2042
+ const op2 = await prepareOperation(this.manager, {
2043
+ caller: this.caller,
2044
+ target: this.manager,
2045
+ calldata: calldata,
2046
+ delay: this.delay,
2047
+ });
2048
+ await expect(op2.schedule()).to.be.revertedWithoutReason();
2049
+ });
2050
+
2051
+ it('reverts scheduling an unknown operation to the manager', async function () {
2052
+ const calldata = '0x12345678';
2053
+
2054
+ const { schedule } = await prepareOperation(this.manager, {
2055
+ caller: this.caller,
2056
+ target: this.manager,
2057
+ calldata,
2058
+ delay: this.delay,
2059
+ });
2060
+
2061
+ await expect(schedule())
2062
+ .to.be.revertedWithCustomError(this.manager, 'AccessManagerUnauthorizedCall')
2063
+ .withArgs(this.caller, this.manager, calldata);
2064
+ });
2065
+ });
2066
+
2067
+ describe('#execute', function () {
2068
+ beforeEach('set target function role', async function () {
2069
+ this.method = this.target.fnRestricted.getFragment();
2070
+ this.role = { id: 9825430n };
2071
+ this.caller = this.user;
2072
+
2073
+ await this.manager.$_setTargetFunctionRole(this.target, this.method.selector, this.role.id);
2074
+ await this.manager.$_grantRole(this.role.id, this.caller, 0, 0);
2075
+
2076
+ this.calldata = this.target.interface.encodeFunctionData(this.method, []);
2077
+ });
2078
+
2079
+ describe('restrictions', function () {
2080
+ testAsCanCall({
2081
+ closed() {
2082
+ it('reverts as AccessManagerUnauthorizedCall', async function () {
2083
+ await expect(this.manager.connect(this.caller).execute(this.target, this.calldata))
2084
+ .to.be.revertedWithCustomError(this.manager, 'AccessManagerUnauthorizedCall')
2085
+ .withArgs(this.caller, this.target, this.calldata.substring(0, 10));
2086
+ });
2087
+ },
2088
+ open: {
2089
+ callerIsTheManager: {
2090
+ executing() {
2091
+ it('succeeds', async function () {
2092
+ await this.manager.connect(this.caller).execute(this.target, this.calldata);
2093
+ });
2094
+ },
2095
+ notExecuting() {
2096
+ it('reverts as AccessManagerUnauthorizedCall', async function () {
2097
+ await expect(this.manager.connect(this.caller).execute(this.target, this.calldata))
2098
+ .to.be.revertedWithCustomError(this.manager, 'AccessManagerUnauthorizedCall')
2099
+ .withArgs(this.caller, this.target, this.calldata.substring(0, 10));
2100
+ });
2101
+ },
2102
+ },
2103
+ callerIsNotTheManager: {
2104
+ publicRoleIsRequired() {
2105
+ it('succeeds', async function () {
2106
+ await this.manager.connect(this.caller).execute(this.target, this.calldata);
2107
+ });
2108
+ },
2109
+ specificRoleIsRequired: {
2110
+ requiredRoleIsGranted: {
2111
+ roleGrantingIsDelayed: {
2112
+ callerHasAnExecutionDelay: {
2113
+ beforeGrantDelay() {
2114
+ it('reverts as AccessManagerUnauthorizedCall', async function () {
2115
+ await expect(this.manager.connect(this.caller).execute(this.target, this.calldata))
2116
+ .to.be.revertedWithCustomError(this.manager, 'AccessManagerUnauthorizedCall')
2117
+ .withArgs(this.caller, this.target, this.calldata.substring(0, 10));
2118
+ });
2119
+ },
2120
+ afterGrantDelay: function self() {
2121
+ self.mineDelay = true;
2122
+
2123
+ beforeEach('define schedule delay', function () {
2124
+ this.scheduleIn = time.duration.days(21); // For testAsSchedulableOperation
2125
+ });
2126
+
2127
+ testAsSchedulableOperation(LIKE_COMMON_SCHEDULABLE);
2128
+ },
2129
+ },
2130
+ callerHasNoExecutionDelay: {
2131
+ beforeGrantDelay() {
2132
+ it('reverts as AccessManagerUnauthorizedCall', async function () {
2133
+ await expect(this.manager.connect(this.caller).execute(this.target, this.calldata))
2134
+ .to.be.revertedWithCustomError(this.manager, 'AccessManagerUnauthorizedCall')
2135
+ .withArgs(this.caller, this.target, this.calldata.substring(0, 10));
2136
+ });
2137
+ },
2138
+ afterGrantDelay: function self() {
2139
+ self.mineDelay = true;
2140
+
2141
+ it('succeeds', async function () {
2142
+ await this.manager.connect(this.caller).execute(this.target, this.calldata);
2143
+ });
2144
+ },
2145
+ },
2146
+ },
2147
+ roleGrantingIsNotDelayed: {
2148
+ callerHasAnExecutionDelay() {
2149
+ beforeEach('define schedule delay', function () {
2150
+ this.scheduleIn = time.duration.days(15); // For testAsSchedulableOperation
2151
+ });
2152
+
2153
+ testAsSchedulableOperation(LIKE_COMMON_SCHEDULABLE);
2154
+ },
2155
+ callerHasNoExecutionDelay() {
2156
+ it('succeeds', async function () {
2157
+ await this.manager.connect(this.caller).execute(this.target, this.calldata);
2158
+ });
2159
+ },
2160
+ },
2161
+ },
2162
+ requiredRoleIsNotGranted() {
2163
+ it('reverts as AccessManagerUnauthorizedCall', async function () {
2164
+ await expect(this.manager.connect(this.caller).execute(this.target, this.calldata))
2165
+ .to.be.revertedWithCustomError(this.manager, 'AccessManagerUnauthorizedCall')
2166
+ .withArgs(this.caller, this.target, this.calldata.substring(0, 10));
2167
+ });
2168
+ },
2169
+ },
2170
+ },
2171
+ },
2172
+ });
2173
+ });
2174
+
2175
+ it('executes with a delay consuming the scheduled operation', async function () {
2176
+ const delay = time.duration.hours(4);
2177
+ await this.manager.$_grantRole(this.role.id, this.caller, 0, 1); // Execution delay is needed so the operation is consumed
2178
+
2179
+ const { operationId, schedule } = await prepareOperation(this.manager, {
2180
+ caller: this.caller,
2181
+ target: this.target,
2182
+ calldata: this.calldata,
2183
+ delay,
2184
+ });
2185
+ await schedule();
2186
+ await time.increaseBy.timestamp(delay);
2187
+ await expect(this.manager.connect(this.caller).execute(this.target, this.calldata))
2188
+ .to.emit(this.manager, 'OperationExecuted')
2189
+ .withArgs(operationId, 1n);
2190
+
2191
+ expect(await this.manager.getSchedule(operationId)).to.equal(0n);
2192
+ });
2193
+
2194
+ it('executes with no delay consuming a scheduled operation', async function () {
2195
+ const delay = time.duration.hours(4);
2196
+
2197
+ // give caller an execution delay
2198
+ await this.manager.$_grantRole(this.role.id, this.caller, 0, 1);
2199
+
2200
+ const { operationId, schedule } = await prepareOperation(this.manager, {
2201
+ caller: this.caller,
2202
+ target: this.target,
2203
+ calldata: this.calldata,
2204
+ delay,
2205
+ });
2206
+ await schedule();
2207
+
2208
+ // remove the execution delay
2209
+ await this.manager.$_grantRole(this.role.id, this.caller, 0, 0);
2210
+
2211
+ await time.increaseBy.timestamp(delay);
2212
+ await expect(this.manager.connect(this.caller).execute(this.target, this.calldata))
2213
+ .to.emit(this.manager, 'OperationExecuted')
2214
+ .withArgs(operationId, 1n);
2215
+
2216
+ expect(await this.manager.getSchedule(operationId)).to.equal(0n);
2217
+ });
2218
+
2219
+ it('keeps the original _executionId after finishing the call', async function () {
2220
+ const executionIdBefore = await ethers.provider.getStorage(this.manager, EXECUTION_ID_STORAGE_SLOT);
2221
+ await this.manager.connect(this.caller).execute(this.target, this.calldata);
2222
+ const executionIdAfter = await ethers.provider.getStorage(this.manager, EXECUTION_ID_STORAGE_SLOT);
2223
+ expect(executionIdBefore).to.equal(executionIdAfter);
2224
+ });
2225
+
2226
+ it('reverts executing twice', async function () {
2227
+ const delay = time.duration.hours(2);
2228
+ await this.manager.$_grantRole(this.role.id, this.caller, 0, 1); // Execution delay is needed so the operation is consumed
2229
+
2230
+ const { operationId, schedule } = await prepareOperation(this.manager, {
2231
+ caller: this.caller,
2232
+ target: this.target,
2233
+ calldata: this.calldata,
2234
+ delay,
2235
+ });
2236
+ await schedule();
2237
+ await time.increaseBy.timestamp(delay);
2238
+ await this.manager.connect(this.caller).execute(this.target, this.calldata);
2239
+ await expect(this.manager.connect(this.caller).execute(this.target, this.calldata))
2240
+ .to.be.revertedWithCustomError(this.manager, 'AccessManagerNotScheduled')
2241
+ .withArgs(operationId);
2242
+ });
2243
+ });
2244
+
2245
+ describe('#consumeScheduledOp', function () {
2246
+ beforeEach('define scheduling parameters', async function () {
2247
+ const method = this.target.fnRestricted.getFragment();
2248
+ this.caller = await ethers.getSigner(this.target.target);
2249
+ await impersonate(this.caller.address);
2250
+ this.calldata = this.target.interface.encodeFunctionData(method, []);
2251
+ this.role = { id: 9834983n };
2252
+
2253
+ await this.manager.$_setTargetFunctionRole(this.target, method.selector, this.role.id);
2254
+ await this.manager.$_grantRole(this.role.id, this.caller, 0, 1); // nonzero execution delay
2255
+
2256
+ this.scheduleIn = time.duration.hours(10); // For testAsSchedulableOperation
2257
+ });
2258
+
2259
+ describe('when caller is not consuming scheduled operation', function () {
2260
+ beforeEach('set consuming false', async function () {
2261
+ await this.target.setIsConsumingScheduledOp(false, ethers.toBeHex(CONSUMING_SCHEDULE_STORAGE_SLOT, 32));
2262
+ });
2263
+
2264
+ it('reverts as AccessManagerUnauthorizedConsume', async function () {
2265
+ await expect(this.manager.connect(this.caller).consumeScheduledOp(this.caller, this.calldata))
2266
+ .to.be.revertedWithCustomError(this.manager, 'AccessManagerUnauthorizedConsume')
2267
+ .withArgs(this.caller);
2268
+ });
2269
+ });
2270
+
2271
+ describe('when caller is consuming scheduled operation', function () {
2272
+ beforeEach('set consuming true', async function () {
2273
+ await this.target.setIsConsumingScheduledOp(true, ethers.toBeHex(CONSUMING_SCHEDULE_STORAGE_SLOT, 32));
2274
+ });
2275
+
2276
+ testAsSchedulableOperation({
2277
+ scheduled: {
2278
+ before() {
2279
+ it('reverts as AccessManagerNotReady', async function () {
2280
+ await expect(this.manager.connect(this.caller).consumeScheduledOp(this.caller, this.calldata))
2281
+ .to.be.revertedWithCustomError(this.manager, 'AccessManagerNotReady')
2282
+ .withArgs(this.operationId);
2283
+ });
2284
+ },
2285
+ after() {
2286
+ it('consumes the scheduled operation and resets timepoint', async function () {
2287
+ expect(await this.manager.getSchedule(this.operationId)).to.equal(this.scheduledAt + this.scheduleIn);
2288
+
2289
+ await expect(this.manager.connect(this.caller).consumeScheduledOp(this.caller, this.calldata))
2290
+ .to.emit(this.manager, 'OperationExecuted')
2291
+ .withArgs(this.operationId, 1n);
2292
+ expect(await this.manager.getSchedule(this.operationId)).to.equal(0n);
2293
+ });
2294
+ },
2295
+ expired() {
2296
+ it('reverts as AccessManagerExpired', async function () {
2297
+ await expect(this.manager.connect(this.caller).consumeScheduledOp(this.caller, this.calldata))
2298
+ .to.be.revertedWithCustomError(this.manager, 'AccessManagerExpired')
2299
+ .withArgs(this.operationId);
2300
+ });
2301
+ },
2302
+ },
2303
+ notScheduled() {
2304
+ it('reverts as AccessManagerNotScheduled', async function () {
2305
+ await expect(this.manager.connect(this.caller).consumeScheduledOp(this.caller, this.calldata))
2306
+ .to.be.revertedWithCustomError(this.manager, 'AccessManagerNotScheduled')
2307
+ .withArgs(this.operationId);
2308
+ });
2309
+ },
2310
+ });
2311
+ });
2312
+ });
2313
+
2314
+ describe('#cancelScheduledOp', function () {
2315
+ beforeEach('setup scheduling', async function () {
2316
+ this.method = this.target.fnRestricted.getFragment();
2317
+ this.caller = this.roles.SOME.members[0];
2318
+ await this.manager.$_setTargetFunctionRole(this.target, this.method.selector, this.roles.SOME.id);
2319
+ await this.manager.$_grantRole(this.roles.SOME.id, this.caller, 0, 1); // nonzero execution delay
2320
+
2321
+ this.calldata = this.target.interface.encodeFunctionData(this.method, []);
2322
+ this.scheduleIn = time.duration.days(10); // For testAsSchedulableOperation
2323
+ });
2324
+
2325
+ testAsSchedulableOperation({
2326
+ scheduled: {
2327
+ before() {
2328
+ describe('when caller is the scheduler', function () {
2329
+ it('succeeds', async function () {
2330
+ await this.manager.connect(this.caller).cancel(this.caller, this.target, this.calldata);
2331
+ });
2332
+ });
2333
+
2334
+ describe('when caller is an admin', function () {
2335
+ it('succeeds', async function () {
2336
+ await this.manager.connect(this.roles.ADMIN.members[0]).cancel(this.caller, this.target, this.calldata);
2337
+ });
2338
+ });
2339
+
2340
+ describe('when caller is the role guardian', function () {
2341
+ it('succeeds', async function () {
2342
+ await this.manager
2343
+ .connect(this.roles.SOME_GUARDIAN.members[0])
2344
+ .cancel(this.caller, this.target, this.calldata);
2345
+ });
2346
+ });
2347
+
2348
+ describe('when caller is any other account', function () {
2349
+ it('reverts as AccessManagerUnauthorizedCancel', async function () {
2350
+ await expect(this.manager.connect(this.other).cancel(this.caller, this.target, this.calldata))
2351
+ .to.be.revertedWithCustomError(this.manager, 'AccessManagerUnauthorizedCancel')
2352
+ .withArgs(this.other, this.caller, this.target, this.method.selector);
2353
+ });
2354
+ });
2355
+ },
2356
+ after() {
2357
+ it('succeeds', async function () {
2358
+ await this.manager.connect(this.caller).cancel(this.caller, this.target, this.calldata);
2359
+ });
2360
+ },
2361
+ expired() {
2362
+ it('succeeds', async function () {
2363
+ await this.manager.connect(this.caller).cancel(this.caller, this.target, this.calldata);
2364
+ });
2365
+ },
2366
+ },
2367
+ notScheduled() {
2368
+ it('reverts as AccessManagerNotScheduled', async function () {
2369
+ await expect(this.manager.cancel(this.caller, this.target, this.calldata))
2370
+ .to.be.revertedWithCustomError(this.manager, 'AccessManagerNotScheduled')
2371
+ .withArgs(this.operationId);
2372
+ });
2373
+ },
2374
+ });
2375
+
2376
+ it('cancels an operation and resets schedule', async function () {
2377
+ const { operationId, schedule } = await prepareOperation(this.manager, {
2378
+ caller: this.caller,
2379
+ target: this.target,
2380
+ calldata: this.calldata,
2381
+ delay: this.scheduleIn,
2382
+ });
2383
+ await schedule();
2384
+ await expect(this.manager.connect(this.caller).cancel(this.caller, this.target, this.calldata))
2385
+ .to.emit(this.manager, 'OperationCanceled')
2386
+ .withArgs(operationId, 1n);
2387
+ expect(await this.manager.getSchedule(operationId)).to.equal('0');
2388
+ });
2389
+ });
2390
+
2391
+ describe('with Ownable target contract', function () {
2392
+ const roleId = 1n;
2393
+
2394
+ beforeEach(async function () {
2395
+ this.ownable = await ethers.deployContract('$Ownable', [this.manager]);
2396
+
2397
+ // add user to role
2398
+ await this.manager.$_grantRole(roleId, this.user, 0, 0);
2399
+ });
2400
+
2401
+ it('initial state', async function () {
2402
+ expect(await this.ownable.owner()).to.equal(this.manager);
2403
+ });
2404
+
2405
+ describe('Contract is closed', function () {
2406
+ beforeEach(async function () {
2407
+ await this.manager.$_setTargetClosed(this.ownable, true);
2408
+ });
2409
+
2410
+ it('directly call: reverts', async function () {
2411
+ await expect(this.ownable.connect(this.user).$_checkOwner())
2412
+ .to.be.revertedWithCustomError(this.ownable, 'OwnableUnauthorizedAccount')
2413
+ .withArgs(this.user);
2414
+ });
2415
+
2416
+ it('relayed call (with role): reverts', async function () {
2417
+ await expect(
2418
+ this.manager.connect(this.user).execute(this.ownable, this.ownable.$_checkOwner.getFragment().selector),
2419
+ )
2420
+ .to.be.revertedWithCustomError(this.manager, 'AccessManagerUnauthorizedCall')
2421
+ .withArgs(this.user, this.ownable, this.ownable.$_checkOwner.getFragment().selector);
2422
+ });
2423
+
2424
+ it('relayed call (without role): reverts', async function () {
2425
+ await expect(
2426
+ this.manager.connect(this.other).execute(this.ownable, this.ownable.$_checkOwner.getFragment().selector),
2427
+ )
2428
+ .to.be.revertedWithCustomError(this.manager, 'AccessManagerUnauthorizedCall')
2429
+ .withArgs(this.other, this.ownable, this.ownable.$_checkOwner.getFragment().selector);
2430
+ });
2431
+ });
2432
+
2433
+ describe('Contract is managed', function () {
2434
+ describe('function is open to specific role', function () {
2435
+ beforeEach(async function () {
2436
+ await this.manager.$_setTargetFunctionRole(
2437
+ this.ownable,
2438
+ this.ownable.$_checkOwner.getFragment().selector,
2439
+ roleId,
2440
+ );
2441
+ });
2442
+
2443
+ it('directly call: reverts', async function () {
2444
+ await expect(this.ownable.connect(this.user).$_checkOwner())
2445
+ .to.be.revertedWithCustomError(this.ownable, 'OwnableUnauthorizedAccount')
2446
+ .withArgs(this.user);
2447
+ });
2448
+
2449
+ it('relayed call (with role): success', async function () {
2450
+ await this.manager.connect(this.user).execute(this.ownable, this.ownable.$_checkOwner.getFragment().selector);
2451
+ });
2452
+
2453
+ it('relayed call (without role): reverts', async function () {
2454
+ await expect(
2455
+ this.manager.connect(this.other).execute(this.ownable, this.ownable.$_checkOwner.getFragment().selector),
2456
+ )
2457
+ .to.be.revertedWithCustomError(this.manager, 'AccessManagerUnauthorizedCall')
2458
+ .withArgs(this.other, this.ownable, this.ownable.$_checkOwner.getFragment().selector);
2459
+ });
2460
+ });
2461
+
2462
+ describe('function is open to public role', function () {
2463
+ beforeEach(async function () {
2464
+ await this.manager.$_setTargetFunctionRole(
2465
+ this.ownable,
2466
+ this.ownable.$_checkOwner.getFragment().selector,
2467
+ this.roles.PUBLIC.id,
2468
+ );
2469
+ });
2470
+
2471
+ it('directly call: reverts', async function () {
2472
+ await expect(this.ownable.connect(this.user).$_checkOwner())
2473
+ .to.be.revertedWithCustomError(this.ownable, 'OwnableUnauthorizedAccount')
2474
+ .withArgs(this.user);
2475
+ });
2476
+
2477
+ it('relayed call (with role): success', async function () {
2478
+ await this.manager.connect(this.user).execute(this.ownable, this.ownable.$_checkOwner.getFragment().selector);
2479
+ });
2480
+
2481
+ it('relayed call (without role): success', async function () {
2482
+ await this.manager
2483
+ .connect(this.other)
2484
+ .execute(this.ownable, this.ownable.$_checkOwner.getFragment().selector);
2485
+ });
2486
+ });
2487
+ });
2488
+ });
2489
+ });