Compare commits

...

885 Commits

Author SHA1 Message Date
b55b47d421 Release v5.0.0 (rc) (#4614)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-09-19 09:16:30 -06:00
0d6703b852 Start release candidate 2023-09-19 15:08:33 +00:00
f7db0bea31 Merge branch 'feat/access-manager' 2023-09-19 11:38:22 -03:00
64da2c10a4 Fix AccessManager._checkAuthorized in execute context (#4612)
Co-authored-by: Francisco <fg@frang.io>
2023-09-19 11:35:42 -03:00
68204769a1 Fix function documentation in Nonces (#4597)
Co-authored-by: Francisco <fg@frang.io>
2023-09-18 11:30:25 -03:00
652d0c5fb3 Fix minor mistake in GovernorTimelockAccess documentation (#4609) 2023-09-18 10:56:38 -03:00
2215d9fd5e Remove Time.Delay *At functions (#4606)
Co-authored-by: Francisco Giordano <fg@frang.io>
2023-09-15 12:23:28 -03:00
618304cc01 Update linters (major) (#4563)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Francisco Giordano <fg@frang.io>
2023-09-14 17:39:27 -03:00
af06fdcfd4 Fix various documentation errors (#4601) 2023-09-14 17:32:47 -03:00
d555464c53 AccessManager: Avoid resetting nonce when consuming a scheduled operation (#4603)
Co-authored-by: Francisco <fg@frang.io>
2023-09-14 17:26:14 -03:00
a714fe6dbd Wrap docstrings to 120 chars (#4600) 2023-09-14 15:28:24 -03:00
05205ab2e1 Remove deprecated 'ERC20FailedDecreaseAllowance' error (#4604)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2023-09-14 10:49:04 -06:00
224c23b38f Rename ProposalCore.eta to etaSeconds (#4599) 2023-09-14 09:54:43 +02:00
80b2d1df38 Improve GovernorTimelockAccess (#4591)
Co-authored-by: Francisco <fg@frang.io>
2023-09-13 20:25:35 -03:00
3bd9ed377e Better context on _spendAllowance NatSpec (#4568)
Co-authored-by: Francisco <fg@frang.io>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2023-09-13 16:22:05 -03:00
75eb7c2d49 Merge branch 'feat/access-manager' into audit/wip/2a-2b 2023-09-13 16:07:43 -03:00
e48f8fd0d2 Merge branch 'master' into feat/access-manager 2023-09-13 16:02:48 -03:00
6f1685c3eb Merge branch 'master' into audit/wip/2a-2b 2023-09-13 11:14:09 +02:00
60e3ffe6a3 Remove non-standard increaseAllowance and decreaseAllowance from ERC20 (#4585)
Co-authored-by: Francisco <fg@frang.io>
2023-09-12 11:59:48 -03:00
63851f8de5 Fix typographical errors & comments (#4595)
Co-authored-by: Francisco <fg@frang.io>
2023-09-11 18:44:28 -03:00
36bf1e46fa Migrate FV specs to CVL2 (#4527)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2023-09-11 17:15:51 -03:00
b6111faac8 Use namespaced storage for upgradeable contracts (#4534) 2023-09-11 16:32:10 -03:00
095c8e120c Remove SafeERC20.safePermit (#4582)
Co-authored-by: Francisco <fg@frang.io>
2023-09-11 12:07:25 -03:00
9e09e0653a Fix flaky test in AccessManager (#4593) 2023-09-11 12:07:06 -03:00
a07f28b00c Improve AccessManager docs (#4586) 2023-09-11 15:54:22 +02:00
bba33516b1 Remove unused return value and reuse helper function (#4588)
Co-authored-by: Francisco Giordano <fg@frang.io>
2023-09-08 18:24:23 -03:00
01659449d4 Make Solidity pragma consistent (#4589) 2023-09-08 18:24:06 -03:00
7ae7f3ef4b Remove unused import (#4590) 2023-09-08 18:05:26 -03:00
26c22169f0 Rename custom error AleadyInitialized → InvalidInitialization (#4592) 2023-09-08 18:05:00 -03:00
6f80048ce9 Improve natspec documentation and comments (#4581)
Co-authored-by: Francisco Giordano <fg@frang.io>
2023-09-07 22:10:28 -03:00
d54f4ac4b7 Rename AccessManager groups to roles (#4580) 2023-09-07 20:58:50 -03:00
a05a529049 Rename AccessManager.relay to execute (#4578)
Co-authored-by: Francisco Giordano <fg@frang.io>
2023-09-07 10:08:45 +02:00
25c416d01c Rename internal variables in EnumerableSet for improved readability (#4577)
Co-authored-by: Francisco Giordano <fg@frang.io>
2023-09-06 23:10:19 -03:00
5a77c9995f Make isConsumingScheduleOp return bytes4 to mitigate clashes (#4575)
Co-authored-by: Francisco Giordano <fg@frang.io>
2023-09-06 20:54:44 -03:00
e2a9353dea Remove unused named return variables (#4573)
Co-authored-by: Francisco <fg@frang.io>
2023-09-06 11:35:07 +02:00
87f7a2cd42 Refactor Time library to use valueBefore/valueAfter (#4555)
Co-authored-by: Francisco <fg@frang.io>
2023-09-05 23:19:21 -03:00
bb7ca7d151 Prevent setting address(0) as the initialAdmin in AccessManager (#4570)
Co-authored-by: Francisco <fg@frang.io>
2023-09-05 18:47:05 -03:00
5abbd04933 Improve Initializable readability using intermediate variables (#4576)
Co-authored-by: Francisco <fg@frang.io>
2023-09-05 18:46:14 -03:00
ff9d089dad Add a boolean to AccessManager.GrantGroup (#4569) 2023-09-05 11:50:56 -03:00
33cab7cd25 AccessManager: Remove classes (#4562) 2023-09-05 11:49:54 -03:00
9ef69c03d1 Update actions/checkout action to v4 (#4572)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Francisco Giordano <fg@frang.io>
2023-09-04 21:38:01 +00:00
1523a4f071 Fix accuracy of docs for ERC20._burn (#4574)
Co-authored-by: Francisco <fg@frang.io>
2023-09-04 18:05:42 -03:00
e7ba2f7784 Move beneficiary zero address check to Ownable (#4531)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Francisco <fg@frang.io>
2023-09-04 20:17:16 +00:00
f154bc31d4 Fix some spelling issues in AccessManager.sol & Time.sol (#4571)
Co-authored-by: Francisco <fg@frang.io>
2023-09-04 13:54:28 -03:00
9d2adccf87 Add a minimum delay on all admin update operations (#4557)
Co-authored-by: Francisco <fg@frang.io>
2023-09-04 13:47:51 -03:00
630844ef50 Merge branch 'feat/access-manager' into audit/wip/2a-2b 2023-09-04 15:58:56 +02:00
e891ec587d Merge branch 'master' into feat/access-manager 2023-09-04 15:55:53 +02:00
9612083826 Refactor ERC721 _requireMinted and ownerOf (#4566) 2023-09-04 15:54:21 +02:00
a503ba1a0a Avoid overflow on empty multiproof (#4564) 2023-09-04 10:17:03 +02:00
c0545f741b Delete unused variable (#4565) 2023-09-04 10:16:23 +02:00
98b83dfbaa Move security directory contents to utils (#4551) 2023-09-04 10:11:30 +02:00
424149a682 Stop cleaning up token specific data on ERC-721 burn (#4561)
Co-authored-by: Francisco Giordano <fg@frang.io>
2023-09-02 01:59:00 -03:00
b7da617d8d Define ERC-4906 interfaceId in a private constant (#4560)
Co-authored-by: Francisco Giordano <fg@frang.io>
2023-09-02 01:31:59 -03:00
00c5da2034 Allow setting tokenURI for non-existent token (#4559)
Co-authored-by: Francisco <fg@frang.io>
2023-09-02 01:24:05 -03:00
10e00c8ef5 Missing view keyword IAccessManager interface (#4558) 2023-09-01 19:07:20 -03:00
8186c07a83 Follow _approve overrides in ERC721._update (#4552) 2023-08-31 11:23:40 -03:00
8a0b7bed82 Update ERC-7201 location for Initializable (#4554) 2023-08-31 11:02:05 +02:00
3266bca150 Revert memory pointer to storage pointer (#4550) 2023-08-30 19:58:51 +00:00
cd67894914 Use Trace208 in Votes to support ERC6372 clocks (#4539)
Co-authored-by: Francisco <fg@frang.io>
2023-08-30 17:25:17 +00:00
812404cee8 Use leading underscore solhint rule for private constants (#4542)
Co-authored-by: Francisco Giordano <fg@frang.io>
2023-08-29 18:25:35 -03:00
a5ed318634 Refactor access to Checkpoint struct without using memory (#4512) 2023-08-25 20:17:32 -03:00
b2e7bab920 caching result of reading storage variable to save gas (#4535) 2023-08-25 19:49:34 +02:00
98203a72a6 Fix blog link (#4532) 2023-08-25 14:14:49 -03:00
adbb8c9d27 Add Governor module connecting with AccessManager (#4523)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2023-08-16 02:33:49 -03:00
fab65cd08b Merge branch 'master' into feat/access-manager 2023-08-16 02:23:53 -03:00
9e3f4d60c5 Use the _update mechanism in ERC721 (#4377)
Co-authored-by: Francisco Giordano <fg@frang.io>
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2023-08-09 11:03:27 -06:00
8643fd45fd Update remappings and install instructions for Foundry on docs site (#4498)
Co-authored-by: ernestognw <ernestognw@gmail.com>
2023-08-08 23:22:57 -03:00
cb0ffefe2f Use named arguments in mapping types (#4433)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2023-08-08 22:48:56 -03:00
b5a3e693e7 Improve AccessManager (#4520) 2023-08-08 03:22:59 -03:00
48b860124c Remove outdated warning from ERC2771Forwarder (#4519) 2023-08-07 22:29:48 -03:00
736091afc4 Refactor restriction mechanism in AccessManager to enable enforce executionDelay (#4518)
Co-authored-by: Francisco Giordano <fg@frang.io>
2023-08-07 20:21:46 -03:00
70578bbb44 Allow Initializable versions greater than 256 (#4460)
Co-authored-by: Francisco <fg@frang.io>
2023-08-07 18:59:19 -03:00
9bb8008c23 Access Manager (#4416)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
Co-authored-by: Francisco Giordano <fg@frang.io>
2023-08-07 01:57:10 -03:00
1169bb1e51 Merge branch 'master' into feat/access-manager 2023-08-07 01:28:11 -03:00
54a235f895 Refactor Governor proposal struct for efficient access (#4495)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2023-08-04 19:12:41 -03:00
b81bec4552 Use Ownable in VestingWallet instead of an immutable beneficiary (#4508)
Co-authored-by: Francisco Giordano <fg@frang.io>
2023-08-04 18:57:53 -03:00
f715365ec4 Implement recommendations from 5.0 audit Phase 1B (#4502)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Francisco Giordano <fg@frang.io>
2023-08-04 17:23:38 -03:00
21716722ad Remove GovernorCompatibilyBravo and add simpler GovernorStorage (#4360)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
Co-authored-by: Francisco Giordano <fg@frang.io>
2023-08-03 12:51:07 -03:00
d39df78f6c Use bytes.concat in MessageHashUtils (#4504) 2023-08-02 18:45:39 +00:00
5ae630684a Add a bool return to _grantRole and _revokeRole (#4241)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2023-08-01 13:58:47 +02:00
48cc8a92f5 Optimize muldiv (#4494)
Co-authored-by: Francisco <fg@frang.io>
2023-08-01 13:52:36 +02:00
fa680739e9 Bump word-wrap from 1.2.3 to 1.2.4 (#4471)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-31 18:48:47 -03:00
00cbf5a236 Update pragma to 0.8.20 (#4489)
Co-authored-by: Francisco Giordano <fg@frang.io>
Co-authored-by: ernestognw <ernestognw@gmail.com>
2023-07-31 17:25:45 -03:00
d6b63a48ba Fix issues in the ERC4646Fee documentation (#4487) 2023-07-29 12:30:47 -03:00
f631d8a5f0 Improve ERC4626 fees example (#4476)
Co-authored-by: Francisco <fg@frang.io>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2023-07-29 01:16:14 +00:00
aed5720a01 Avoid returndatacopy in ERC2771Forwarder by calling via assembly (#4458) 2023-07-28 21:58:30 -03:00
02ea01765a Add custom errors to docs (#4480) 2023-07-27 20:18:45 -03:00
9445f96223 Adjust ERC2771Context._msgData for msg.data.length < 20 (#4484) 2023-07-27 17:30:41 -03:00
7c02b5cab2 Refactor DoubleEndedQueue (#4150)
Co-authored-by: Francisco <fg@frang.io>
2023-07-27 15:37:31 -03:00
7222a31d54 Add internal functions inside modifiers (#4472)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Francisco <fg@frang.io>
2023-07-26 18:57:50 -03:00
28d9ac2bdb Make ERC2771Context return original sender address if msg.data.length <= 20 (#4481) 2023-07-25 21:48:23 +00:00
19293f3ecd Remove outdated comments in AccessControl.sol (#4475)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2023-07-25 02:00:30 +00:00
f347b410cf Update recommended Foundry remapping (#4468)
Co-authored-by: ernestognw <ernestognw@gmail.com>
2023-07-18 17:08:38 +00:00
21bb89ef5b Fix typo in MessageHashUtils.sol (#4462) 2023-07-17 21:26:31 +02:00
121be5dd09 Make TransparentUpgradeableProxy deploy its ProxyAdmin and optimize proxy interfaces (#4382)
Co-authored-by: Francisco <fg@frang.io>
Co-authored-by: Eric Lau <ericglau@outlook.com>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2023-07-13 19:25:22 -03:00
9cf873ea14 Change access folder structure (#4359)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Francisco <fg@frang.io>
2023-07-13 18:54:22 -03:00
84db204a41 Rename rounding modes and complete with fourth (#4455)
Co-authored-by: ernestognw <ernestognw@gmail.com>
2023-07-13 17:52:03 -03:00
a55af77c75 Natspec update for TimelockController (#4454) 2023-07-12 21:11:12 -06:00
4d4a509b1f Add GovernorTimelockControl address to TimelockController salt (#4432)
Co-authored-by: Francisco Giordano <fg@frang.io>
2023-07-12 20:30:19 -03:00
b6c5abbde5 Add GovernorTimelockControl address to TimelockController salt (#4432)
Co-authored-by: Francisco Giordano <fg@frang.io>
2023-07-12 19:36:10 -03:00
0abf18f305 Remove duplicated SLOAD in Arrays.findUpperBound (#4442)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Francisco Giordano <fg@frang.io>
2023-07-12 17:07:35 -03:00
921ac49ccb Fix typos in the tests (#4452) 2023-07-12 17:05:21 -03:00
8b72e20e32 Remove unnecessary explicit assignment override (#4443) 2023-07-11 16:35:56 -03:00
24ebff5ae9 Remove unused imports (#4436)
Co-authored-by: Francisco <fg@frang.io>
2023-07-11 14:51:40 -03:00
3d0edbecf1 Remove ERC1155Receiver in favor of ERC1155Holder (#4450) 2023-07-11 14:49:58 -03:00
cd981f6521 Add custom linting rules (#4132)
Co-authored-by: Francisco Giordano <fg@frang.io>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2023-07-10 17:26:02 -03:00
2a4396c9dd Add suggested remappings in readme (#4440)
Co-authored-by: Francisco <fg@frang.io>
2023-07-09 18:42:23 -03:00
4bac6fa310 Improve custom error helper when there is no match (#4437) 2023-07-09 18:36:23 -03:00
e47b53bce4 Improve BeaconProxy documentation for storage slot (#4438) 2023-07-09 11:33:23 -04:00
5229b75785 Use immutable beacon address in BeaconProxy (#4435)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Francisco Giordano <fg@frang.io>
2023-07-09 00:24:12 +02:00
6d74b91388 Remove superfluous receive() function from Proxy.sol (#4434)
Co-authored-by: Francisco Giordano <fg@frang.io>
2023-07-07 22:23:28 -03:00
f5bf7233cb Add ERC2771Forwarder fuzz tests for avoiding loss of unused ETH (#4396)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Francisco <fg@frang.io>
2023-07-07 21:56:49 -03:00
0053ee040a Move ECDSA message hash methods to its own MessageHashUtils library (#4430)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Francisco <fg@frang.io>
2023-07-07 20:01:35 +00:00
996168f1f1 Remove slither hardcoded version (#4431) 2023-07-07 16:29:21 +02:00
7ccea54dc1 Add back IGovernor to docs (#4421) 2023-07-06 18:33:38 -03:00
6bf68a41d1 Remove "available since" comments (#4424)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2023-07-06 10:00:34 +02:00
3fe28e19af Update lockfile (#4409)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-06 00:14:20 -03:00
3ff9b42ff5 Remove retyped and renamed storage layout annotations (#4423) 2023-07-05 18:38:27 -03:00
63bfab1a0c Enable ERC-1271 signature checks in Governor castVoteBySig (#4418)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Francisco <fg@frang.io>
2023-07-05 15:11:29 +02:00
90163661df Implement ERC165 tests realted to invalidID (#4414)
Co-authored-by: ernestognw <ernestognw@gmail.com>
2023-07-04 15:40:41 -03:00
e3adf91e50 Add state getter in TimelockController using OperationState enum (#4358)
Co-authored-by: Francisco <fg@frang.io>
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2023-07-04 15:23:44 -03:00
6e21422737 Add Governor signature nonces (#4378)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Francisco <fg@frang.io>
Co-authored-by: Sergei Tikhomirov <sergey.s.tikhomirov@gmail.com>
Co-authored-by: Renan Souza <renan.rodrigues.souza1@gmail.com>
2023-07-03 22:29:30 +02:00
bb64458928 Implement recommendations from 5.0 audit Phase 1A (#4398)
Co-authored-by: Francisco Giordano <fg@frang.io>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2023-07-03 15:02:06 -03:00
06861dce54 Update docs for SafeERC20.forceApprove (#4231) 2023-07-01 01:36:10 -03:00
37270eb08a Add security considerations to ERC2771Forwarder (#4406) 2023-06-30 16:52:45 -03:00
621b867b1a Imrove BitMaps documentation (#4400)
Co-authored-by: Francisco <fg@frang.io>
Co-authored-by: ernestognw <ernestognw@gmail.com>
2023-06-30 13:48:37 -03:00
04342118dc Fix visibility in ERC721._checkOnERC721Received documentation (#4386) 2023-06-30 13:08:46 -03:00
874c2d3c02 Use explicit imports (#4399)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: ernestognw <ernestognw@gmail.com>
2023-06-29 20:12:26 +00:00
d6a8b2ccd7 Fix details AccessControl-test (#4391) 2023-06-29 13:41:44 -03:00
023894deef Add ERC2771Forwarder as an enhanced successor to MinimalForwarder (#4346)
Co-authored-by: Francisco <fg@frang.io>
2023-06-29 13:00:35 -03:00
f29307cfe0 Add Foundry installation instructions with required warnings (#4389) 2023-06-26 11:36:46 -03:00
8cab922347 Rename ERC1155InsufficientApprovalForAll to ERC1155MissingApprovalForAll (#4381) 2023-06-26 14:20:01 +02:00
cb4bf950df Add unreleased disclaimer in readme 2023-06-24 00:23:25 -03:00
c44c220254 Update Ownable2Step docs (#4384)
Co-authored-by: Francisco <fg@frang.io>
2023-06-23 19:37:27 -03:00
da89c438f1 Pack Governor's ProposalCore into a single slot (#4268)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
Co-authored-by: Francisco <fg@frang.io>
2023-06-23 13:05:22 -03:00
a7a94c7746 Update comment to reflect code logic in Ownable.sol (#4369) 2023-06-22 16:34:53 -06:00
1e0e4e20bb Do not emit Approval event when calling transferFrom (#4370)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
Co-authored-by: Francisco <fg@frang.io>
2023-06-22 10:41:56 -06:00
6ddacdbde8 Cleanup timelockId on execution for gas refund (#4118)
Co-authored-by: Francisco <fg@frang.io>
2023-06-20 16:38:03 -03:00
dac2457a80 Improve customError testing (#4376) 2023-06-20 18:34:10 +02:00
b66c77a1fc Merge branch 'release-v4.9' into master (#4373) 2023-06-20 13:06:56 -03:00
9fa550c62f Fix attempt to delete nonexistent npm tag (#4374) 2023-06-20 13:06:39 -03:00
2271e2c58d Use clones for testing non ERC1967 proxies (#4371) 2023-06-20 10:01:30 +02:00
365aca6d60 Improve tests for ERC1155 and ERC721 error handling (#3781)
Co-authored-by: Francisco <fg@frang.io>
2023-06-20 03:20:02 +00:00
1d0dbcf9ab Make TransparentUpgradeableProxy admin immutable (#4354)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Francisco <fg@frang.io>
2023-06-19 20:57:30 -06:00
1f4e33fb72 Add toStringSigned to Strings.sol (#4330)
Co-authored-by: Francisco <fg@frang.io>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2023-06-19 20:56:00 -03:00
fc19a7947c Change release cycle prBackExists definition (#4365) 2023-06-19 19:33:21 -03:00
c95a445130 Detect MerkleProof multiproof invariant violation (#4367)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2023-06-19 15:55:35 -03:00
1a77a508f9 Move upgradeToAndCallUUPS to UUPSUpgradeable (#4356)
Co-authored-by: ernestognw <ernestognw@gmail.com>
2023-06-16 23:25:58 -03:00
002a7c8812 Remove automatic conflict resolution for merge from release branch (#4362) 2023-06-16 15:42:19 -03:00
cd48b3eab3 Add validation in Governor on ERC-721 or ERC-1155 received (#4314)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Francisco <fg@frang.io>
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2023-06-15 21:43:17 -03:00
6724873895 Output contract name where storage inconsistency was found (#4357) 2023-06-15 18:54:35 -03:00
c014c8f148 Use ERC721Holder & ERC1155Holder in the TimelockController (#4284)
Co-authored-by: Francisco <fg@frang.io>
2023-06-15 18:27:36 -03:00
ff85c7b0eb Make ERC1967Upgrades a library instead of an abstract contract (#4325) 2023-06-15 22:01:04 +02:00
05ef6924ac Optimize array access in ERC1155 (#4300)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Francisco Giordano <fg@frang.io>
2023-06-15 02:39:34 +00:00
2477534260 Change behavior of ceilDiv(0, 0) and improve test coverage (#4348) 2023-06-14 17:21:42 -03:00
ac5480e7ca Merge release-v4.9 branch (#4352) 2023-06-14 20:11:37 +00:00
ef103f37e4 Replace some uses of abi.encodePacked with more explicit alternatives (#4296)
Co-authored-by: Francisco <fg@frang.io>
2023-06-14 21:11:12 +02:00
5cc1ea0a39 Add GUIDELINES.md for marking abstract contracts (#4010)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Francisco Giordano <fg@frang.io>
2023-06-14 19:01:33 +00:00
7cc2cbfeb5 Cleanup the structure of GovernorTimelockControl.test.js (#4302) 2023-06-14 16:00:38 +02:00
604025400f Add EIP-712 name and version getters (#4303)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: ernestognw <ernestognw@gmail.com>
2023-06-13 23:54:09 -03:00
d6c7cee321 Update index.adoc (#4336)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2023-06-13 17:32:24 -03:00
fe08f58c69 Update README.md (#4335) 2023-06-13 16:50:16 -03:00
b425a72240 Replace revert strings with custom errors (#4261)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Francisco <fg@frang.io>
2023-06-12 23:41:52 +00:00
08fd777f6d Rename "ecrecover opcode" to "ecrecover precompile" in ECDSA (#4339) 2023-06-12 11:00:35 +02:00
e73f90fa9d Fix IERC1155.safeBatchTransferFrom documentation (#4340) 2023-06-11 16:38:31 -03:00
cc04263170 Highlight Reentrancy Risk in IERC1155 SafeTransferFrom Function (#4283)
Co-authored-by: Francisco <fg@frang.io>
2023-06-09 13:00:16 -03:00
1d5bcd04e7 ECDSA: Use unchecked arithmetic for the tryRecover function (#4301)
Signed-off-by: Pascal Marco Caversaccio <pascal.caversaccio@hotmail.ch>
2023-06-07 19:10:43 -06:00
d9474327a4 Merge pull request from GHSA-5h3x-9wvq-w4m2
Co-authored-by: Francisco <fg@frang.io>
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2023-06-06 21:32:14 -03:00
df2778f38e Remove override interface implementations (#4315)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2023-06-06 18:13:08 -06:00
4fd2f8be33 Replace abi.encodeWithSelector & abi.encodeWithSignature with abi.encodeCall (#4293)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2023-06-06 17:32:55 -03:00
85696d80ad Remove further hardcoded function resolution (#4309) 2023-06-06 11:42:50 -06:00
6c14de4f0c ECDSA: Use hexadecimal literals (#4317) 2023-06-06 10:00:01 -06:00
253bfa68c2 Optimize Strings.equal (#4262)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2023-06-05 18:37:12 -06:00
ffceb3cd98 Remove hardcoded function resolution (#4299) 2023-06-02 14:20:58 -03:00
eecd5e15c7 Make CHANGELOG more compact for improved readability (#4306) 2023-06-02 15:42:02 +00:00
2d1da295e6 Move some changeset to the "Removals" section of CHANGELOG (#4290)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
Co-authored-by: Francisco <fg@frang.io>
2023-06-02 12:14:41 -03:00
3902a410f1 Remove DOMAIN_SEPARATOR from Votes and update docs examples (#4297)
Co-authored-by: Qiwei Yang <yangqiwei97@gmail.com>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2023-06-02 12:02:57 -03:00
5cef83d2c7 Optimize array allocation in ERC1155 (#4196)
Co-authored-by: Francisco <fg@frang.io>
2023-06-02 11:37:59 -03:00
30256fa838 Update lockfile (#4294)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-01 20:15:51 -03:00
2ee1da12c4 Remove utils/Counters.sol (#4289)
Co-authored-by: Francisco Giordano <fg@frang.io>
2023-05-31 11:40:28 -03:00
4c713f8cea Merge branch 'master' into next-v5.0 2023-05-30 17:02:47 -03:00
7bb5592ad5 Bump minimum pragma version to 0.8.19 (#4288) 2023-05-29 21:37:37 +02:00
15c5c71795 Remove TokenTimelock, PaymentSplitter, ERC20Snapshot, ERC20VotesComp, GovernorVotesComp (#4276) 2023-05-26 23:30:00 +01:00
4448c13c3c Move the Checkpoints library to utils/structs (#4275) 2023-05-26 16:19:27 -03:00
5420879d9b Ability to set starting token id for ERC721Consecutive (#4097)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: ernestognw <ernestognw@gmail.com>
2023-05-26 10:07:16 -06:00
25edd3cd62 Use SafeERC20.forceApprove in safeIncreaseAllowance and safeDecreaseAllowance (#4260)
Co-authored-by: Francisco <fg@frang.io>
2023-05-25 16:27:48 -03:00
238d17cab9 Merge master in next-v5.0 (#4280) 2023-05-25 17:01:25 +01:00
5955d8e85b Merge remote-tracking branch 'upstream/master' into next-v5.0 2023-05-25 10:52:46 +02:00
09329f8a18 Merge release-v4.9 branch (#4274)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Francisco Giordano <fg@frang.io>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2023-05-24 10:37:00 -03:00
cbc6145f5f Removes zero address check from balanceOf in ERC1155 (#4263)
Co-authored-by: bpachai <bpachai@v2soft.com>
Co-authored-by: Francisco Giordano <fg@frang.io>
2023-05-24 08:39:06 +00:00
13d5e0466a Make Ownable's initial owner explicit (#4267)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2023-05-23 18:26:43 -03:00
7e814a3074 Fix release merge script (#4273)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2023-05-23 18:21:17 -03:00
a1d57bac50 Improve FV specifications for AccessControlDefaultAdminRules (#4223)
Co-authored-by: ernestognw <ernestognw@gmail.com>
Co-authored-by: Francisco <fg@frang.io>
2023-05-23 12:54:34 -06:00
11d65442b3 Merge branch 'master' into next-v5.0 2023-05-23 14:11:36 +02:00
dfef6a68ee Fix error when running hardhat test with parameters (#4265) 2023-05-19 21:49:23 +00:00
0f10efe232 Remove code in preparation for v5.0 (#4258)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
Co-authored-by: Francisco <fg@frang.io>
2023-05-19 22:48:05 +02:00
96b95592c3 Fix grammar in docs (#4250) 2023-05-16 23:23:52 -03:00
8de6eba8a3 Merge branch 'master' into next-v5.0 2023-05-16 00:07:07 -03:00
1642b6639b Reduce frequency of version comment updates (#4244) 2023-05-12 14:22:26 -03:00
3ec4307c8a Fix bug allowing anyone to cancel an admin renounce (#4238)
Co-authored-by: Francisco Giordano <fg@frang.io>
2023-05-11 17:17:06 +00:00
f355bd3a2a Prevent attempt to publish to npm (#4239) 2023-05-11 13:41:02 -03:00
3e1b25a5cf Clean up pending admin schedule on renounce in DefaultAdminRules (#4230) 2023-05-10 20:08:05 +00:00
f7b236dca8 Configure Codespell to check hidden files (#4236) 2023-05-10 21:58:56 +02:00
e5dbc7435e Add final PDF report for v4.9 audit (#4235) 2023-05-10 15:59:11 -03:00
9a2e4cb3a7 Update codespell-project/actions-codespell action to v2 (#4229)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-09 20:59:22 -03:00
d095542fa4 Disable code size warnings on exposed contracts 2023-05-09 17:36:33 -03:00
dff520afae Specify changeset PRs manually 2023-05-09 16:53:55 -03:00
df3f1fc4db Specify changeset commit manually 2023-05-09 16:37:25 -03:00
0ee84342b7 Add PDF report for v4.9 audit (#4227) 2023-05-09 16:09:52 -03:00
51294b7480 Make transpilation setup local to this repo (#4041)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2023-05-09 15:52:23 -03:00
34d926dd7e Implement extra suggestions from audit review of 4.9 (#4224) 2023-05-09 13:19:35 -03:00
832c352c7d Update lockfile (#4203)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-09 00:04:41 -03:00
908f78d07b Enable more Slither detectors (#4219) 2023-05-08 18:00:49 -03:00
692d8c85a4 Fix lookup documentation in ERC20Votes and Checkpoints (#4218)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2023-05-05 17:25:23 -03:00
72ed4ca67a Ensure AccessControlDefaultAdminRules's initialDefaultAdmin is non-zero (#4220)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2023-05-05 16:31:23 -03:00
dcba9f995f Add AccessControlDefaultAdminRules FV (#4180)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Francisco <fg@frang.io>
2023-05-05 16:27:43 -03:00
8b2ed0f570 Fix early reporting of FV prover's output (#4213)
Co-authored-by: Francisco <fg@frang.io>
2023-05-04 13:54:22 -03:00
9e8b74a0e2 Add more test cases for EIP712 (#4212) 2023-05-04 10:33:57 -03:00
a7ee03565b Move certora helpers to a dedicated folder (#4211) 2023-05-03 14:34:14 +00:00
10022da83d Disable automatic formal verification workflow on push (#4208) 2023-05-03 16:13:42 +02:00
538655c3c0 Add reentrancy test cases for ERC4626 (#4197)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Francisco Giordano <fg@frang.io>
2023-05-03 09:35:48 +02:00
0a2a33be30 Add formal verification specs for EnumerableSet & EnumerableMap (#4167)
Co-authored-by: Francisco <fg@frang.io>
2023-05-03 02:54:23 +00:00
ab2604ac5b Add reentrancy test cases for TimelockController (#4200)
Co-authored-by: Francisco <fg@frang.io>
2023-05-02 11:36:56 +02:00
6ff415de6b Downgrade Node for Slither (#4202) 2023-04-28 17:15:15 -03:00
d23f818a59 Fix AccessControlDefaultAdminRules admin consistency (#4177)
Co-authored-by: Francisco <fg@frang.io>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2023-04-28 15:09:58 +02:00
44d6053b43 Only run FV on new or updated specs (#4195) 2023-04-28 14:01:41 +02:00
f959d7e4e6 Fix release note in IERC1967 (#4183) 2023-04-25 12:57:50 -03:00
8f14d52b73 Fix Checkpoints fuzz overflow (#4184)
Co-authored-by: Francisco <fg@frang.io>
2023-04-25 12:57:16 -03:00
1a079d258b Improve Address tests (#4191) 2023-04-25 08:31:01 -03:00
6aac66d065 Merge release-v4.8 (#4188)
Signed-off-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Benjamin <benjaminxh+github@gmail.com>
Co-authored-by: Owen <omurovec@yahoo.com>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: JulissaDantes <julissadcj@gmail.com>
Co-authored-by: Ernesto García <ernestognw@gmail.com>
Co-authored-by: Yamen Merhi <yamennmerhi@gmail.com>
Co-authored-by: Pascal Marco Caversaccio <pcaversaccio@users.noreply.github.com>
Co-authored-by: alpharush <0xalpharush@protonmail.com>
Co-authored-by: Paul Razvan Berg <paul.razvan.berg@gmail.com>
2023-04-24 09:18:27 -03:00
a522187b50 Implement suggestions from audit of AccessManager (#4178)
Co-authored-by: Francisco Giordano <fg@frang.io>
2023-04-22 15:40:49 -03:00
91df66c4a9 Implement suggestions from audit of 4.9 (#4176)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2023-04-21 08:35:07 -03:00
8d633cb7d1 Merge pull request from GHSA-93hq-5wgc-jc82
Co-authored-by: Francisco <fg@frang.io>
2023-04-13 15:47:51 -03:00
3b117992e1 Improve docs for transparent proxy (#4181)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2023-04-13 11:04:04 -03:00
dd1265cb1d Improve ERC4626 test coverage (#4134)
Signed-off-by: Pascal Marco Caversaccio <pascal.caversaccio@hotmail.ch>
2023-04-12 17:33:50 -03:00
788d6a129a Add fuzz tests for ShortString (#4175) 2023-04-12 17:09:30 +02:00
86f6eb2c9c Add FV specification for ERC721 (#4104)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2023-04-12 00:29:36 -03:00
661343f74c Add DoubleEndedQueue FV (#4147)
Co-authored-by: Francisco <fg@frang.io>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2023-04-11 23:17:10 -03:00
473d0b6884 Add Codecov token 2023-04-11 20:36:58 -03:00
f2346b6749 Add fuzz tests for the Checkpoints library (#4146)
Co-authored-by: Francisco <fg@frang.io>
2023-04-11 11:21:53 +02:00
cf86fd9962 Merge changesets for transparency improvements (#4165) 2023-04-05 22:20:34 +02:00
31723ed608 Reenable skipped TransparentUpgradeableProxy test (#4161)
Co-authored-by: Francisco <fg@frang.io>
2023-04-05 18:47:18 +00:00
5523c1482b Fix TransparentUpgradeableProxy's transparency (#4154)
Co-authored-by: Francisco <fg@frang.io>
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2023-04-05 16:57:08 +02:00
ead3bcaccb Fix spurious CI check failures (#4160) 2023-04-04 23:05:39 -03:00
7e7060e00e Update IERC3156FlashBorrower.sol (#4145) 2023-03-30 20:57:09 +02:00
7f5e91062e Merge branch 'master' into feat/access-manager 2023-03-26 14:33:49 -03:00
ca822213f2 Make AccessControlDefaultAdminRules delay configurable (#4079)
Co-authored-by: Francisco <fg@frang.io>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2023-03-26 14:23:13 -03:00
fa112be682 Add AccessManager contracts (#4121)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2023-03-24 19:37:08 -03:00
3f610ebc25 Fix typo in README (#4129) 2023-03-21 11:33:16 -03:00
1a60b061d5 Add Pausable FV (#4117)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2023-03-16 16:08:28 -03:00
4f4b6ab403 Update certora/README.md (#4114)
Co-authored-by: Francisco <fg@frang.io>
2023-03-15 11:06:25 -03:00
1c8df659b9 Clarify Governor Bravo compatibility scope (#4090)
Co-authored-by: Francisco <fg@frang.io>
2023-03-14 19:14:01 -03:00
75ef7b8b27 Add FV specs for TimelockController (#4098)
Co-authored-by: Francisco <fg@frang.io>
2023-03-14 10:27:37 -03:00
ea2d5ad2e7 Update lockfile (#4080)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-13 21:09:01 -03:00
e69248e551 Limit concurrency of formal-verification runs 2023-03-13 21:05:22 -03:00
e739144cb0 Update dependency certora-cli to v3.6.4 (#4110)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Francisco <fg@frang.io>
2023-03-13 18:31:24 -03:00
6794c9460b Run formal verification when label is added (#4112) 2023-03-13 12:45:58 -03:00
f8e3c375d1 Credit YieldBox for virtual offset (#4103) 2023-03-09 17:55:52 -03:00
58a62916de Bump and pin Forge Std submodule (#4102) 2023-03-09 17:41:08 +00:00
3214f6c256 Add FV specification for ERC20Wrapper (#4100)
Co-authored-by: Francisco <fg@frang.io>
2023-03-08 22:12:37 +00:00
5f7f660c6e Add FV specs for Initializable (#4095)
Co-authored-by: Francisco <fg@frang.io>
2023-03-08 22:17:35 +01:00
b952a82d29 Throw error when requested specs are not found (#4101) 2023-03-08 22:16:37 +01:00
a55013e742 Add effect checks on the accesscontrol specs (#4099) 2023-03-08 19:31:46 +01:00
aaad1f4a4f Add FV specs for Ownable and Ownable2Steps (#4094)
Co-authored-by: Santiago Palladino <spalladino@gmail.com>
Co-authored-by: Francisco <fg@frang.io>
2023-03-08 19:30:07 +01:00
4fb6833e32 Formal verification using Certora (#4084)
Co-authored-by: Francisco Giordano <fg@frang.io>
2023-03-06 21:31:48 +00:00
de520fe25a Add byteLengthWithFallback to ShortStrings (#4089)
Co-authored-by: Francisco <fg@frang.io>
2023-03-06 20:44:58 +00:00
7f028d6959 Fix empty short string encoding (#4088)
Co-authored-by: Francisco <fg@frang.io>
2023-03-03 22:45:52 +01:00
eedca5d873 Merge release-v4.8 branch 2023-03-02 21:13:25 -03:00
e58c6d8ff4 Fix linter error 2023-03-02 19:47:41 -03:00
8ba26f388f Merge pull request from GHSA-878m-3g6q-594q
* Test batch minting of 1

* Fix balance tracking

* fix lint

* add changeset

* rename UNSAFE -> unsafe

* fix docs

* fix changeset

* grammar

* add explanation of preserved invariant

* add fuzz tests

* rename variable

* improve property definition

* add burn

* add test ownership multiple batches

* refactor fuzz tests

* change ownership test for better probability

* typo

* reorder comment

* update changelog notes

* edit changelog

* lint

* Update CHANGELOG.md

---------

Co-authored-by: Francisco Giordano <fg@frang.io>
2023-03-02 19:41:28 -03:00
0ebc6e3529 Fix grammar in docs (#4085) 2023-03-02 10:40:36 +01:00
e1a77ab15f Fix an upgrade replay bug in Governor.propose (#4082) 2023-03-01 15:35:15 -03:00
dad73159df Add AccessControlDefaultAdminRules (#4009)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Francisco <fg@frang.io>
2023-02-24 21:48:08 +00:00
2c69f9f9f5 Fix comment on ERC777._beforeTokenTransfer (#3982) 2023-02-24 18:31:54 -03:00
3f3774c5df Improve ERC1363 documentation (#3993)
Co-authored-by: Francisco <fg@frang.io>
2023-02-24 18:28:37 -03:00
8b47e96af1 Add SafeERC20.forceApprove() (#4067) 2023-02-24 20:29:49 +00:00
0fbd039554 Update lockfile (#4018)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-24 17:14:21 -03:00
2c6ef8c875 Fix ERC1363 interfaceId (#4074) 2023-02-24 16:14:49 -03:00
eb38c059d8 Add comment on unchecked arithmetic (division by zero) in Math.sol (#4050)
Co-authored-by: Francisco <fg@frang.io>
2023-02-24 18:34:03 +00:00
8a43ebac28 Document "duplicate" proposal storing in GovernorCompatibilityBravo (#4073)
Co-authored-by: Francisco <fg@frang.io>
2023-02-24 13:48:55 -03:00
b4d765b130 Allow return data length >= 32 in SignatureChecker (#4038)
Co-authored-by: Francisco Giordano <fg@frang.io>
2023-02-24 15:05:46 +00:00
d5581531de Add a "fees" section to the ERC4626 guide (#4054)
Co-authored-by: Francisco Giordano <fg@frang.io>
2023-02-24 11:49:10 -03:00
62dbb1b06a Document clock modes for token and governor (#4058)
Co-authored-by: Francisco <fg@frang.io>
2023-02-24 11:48:30 -03:00
6e88df28cb Mark ERC777 and ERC1820 as deprecated (#4066) 2023-02-23 20:06:22 -03:00
a6b8366980 Improve ERC4626 event coverage (#4072) 2023-02-23 17:06:47 -03:00
9d06a1b64b Remove unused Solhint overrides (#4069) 2023-02-23 12:52:10 +01:00
7b3e7b7055 Re-enable ERC4626 property test on empty vaults (#4068) 2023-02-22 15:23:06 -03:00
53235263a3 Implement 0x00 version of EIP-191 in ECDSA Library (#4063) 2023-02-22 15:22:50 +01:00
adb861fb3b Change Governor.cancel to receive all parameters (#4056) 2023-02-22 10:00:41 +01:00
227473e88c Fix comment in ERC4626 on decimals default (#4060)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2023-02-21 19:27:34 -03:00
df814dd374 Update crytic/slither-action action to v0.3.0 (#4064)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-21 19:26:14 -03:00
1e245aa54b Add isValidERC1271SignatureNow to SignatureChecker library (#3932)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Francisco <fg@frang.io>
2023-02-21 15:16:44 +00:00
815bfbf383 Deprecate the timers library (#4062)
Co-authored-by: Francisco <fg@frang.io>
2023-02-21 11:18:50 -03:00
7ac4349710 Delete no longer needed .gitattributes file 2023-02-17 21:55:42 -03:00
08d085f2c9 Fix ERC4906 compliance of ERC721URIStorage (#4055)
Co-authored-by: Francisco <fg@frang.io>
2023-02-17 13:43:23 -03:00
96a2297e15 Add IERC4906 interface and use in ERC721 (#4012)
Co-authored-by: Francisco Giordano <fg@frang.io>
2023-02-17 09:26:10 +00:00
d64d7aa5d1 ERC4626 inflation attack mitigation (#3979)
Co-authored-by: Francisco <fg@frang.io>
2023-02-17 10:08:31 +01:00
d5d9d4bd3d Simplify ERC721Wrapper.depositFor to save gas (#4048) 2023-02-16 23:35:43 -03:00
5e76b26225 Add Subgraphs to docs sidebar 2023-02-16 14:34:17 -03:00
4ff538af58 Fix flaky timestamp tests (#4046) 2023-02-15 19:16:22 -03:00
4e8aa43a90 Add publishing integrity check after releasing (#4045)
Co-authored-by: Francisco <fg@frang.io>
2023-02-15 18:21:29 -03:00
6d18435098 Add RELEASING.md docs (#3981)
Co-authored-by: Francisco Giordano <fg@frang.io>
2023-02-14 20:03:37 -03:00
2c711d0b05 Restrict ERC721Wrapper wrap by direct transfer (#4043)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2023-02-14 17:47:07 -03:00
5a00628ed3 Update getsentry/action-github-app-token action to v2 (#4036)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-10 15:21:45 -03:00
dfcc1d16c5 Bump http-cache-semantics from 4.1.0 to 4.1.1 (#4024)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-09 18:42:08 -03:00
6259e13a0c Improve ERC721 Wrapper tests (#4039) 2023-02-09 22:36:14 +01:00
790cc5b65a Add timestamp based governor with EIP-6372 and EIP-5805 (#3934)
Co-authored-by: Francisco Giordano <fg@frang.io>
Co-authored-by: Ernesto García <ernestognw@gmail.com>
Co-authored-by: Francisco <frangio.1@gmail.com>
2023-02-09 22:33:55 +01:00
94cd8ef12e Add ERC721 Wrapper (#3863)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2023-02-09 13:43:34 -06:00
5b027e517e Add missing await in tests (#4037) 2023-02-08 21:03:27 +00:00
d625cb45ea Include EIP-5267 discovery in EIP-712 (#3969)
Co-authored-by: Francisco <frangio.1@gmail.com>
Co-authored-by: Francisco <fg@frang.io>
2023-02-08 15:53:57 +01:00
8177c4620e Improve gas efficiency in ECDSA (#3853)
Signed-off-by: Pascal Marco Caversaccio <pascal.caversaccio@hotmail.ch>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Pascal Marco Caversaccio <pcaversaccio@users.noreply.github.com>
2023-02-07 22:18:33 -03:00
4d3e423443 Make ERC20Wrapper.underlying variable private (#4029)
Co-authored-by: Kimani Kelly <kimanikelly@Kimanis-MacBook-Pro.local>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2023-02-07 22:16:36 -03:00
95027565c4 Improve release-cycle.yml error reporting (#4034) 2023-02-07 22:15:24 -03:00
1575cc6908 Update Tally screenshots (#4030) 2023-02-06 12:20:12 -03:00
260e082ed1 Add a library for handling short strings in a gas efficient way (#4023)
Co-authored-by: Francisco <frangio.1@gmail.com>
2023-02-06 09:59:25 +01:00
3b591a48ac Add storageLayout to outputSelection 2023-02-03 21:15:59 -03:00
d13ec90f37 Add warning for supportsERC165InterfaceUnchecked edge case (#4017) 2023-02-03 16:15:41 -03:00
132e5aa97b Add IERC5313.sol (#4013)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2023-02-03 15:57:47 -03:00
740ce2d440 Update renovate.json 2023-02-02 21:08:41 -03:00
91e8d0ba3c Add string and bytes support to the StorageSlots library (#4008)
Co-authored-by: Francisco <frangio.1@gmail.com>
2023-02-01 18:46:05 -03:00
a70ee4e3bb Check storage layout consistency in PRs (#3967)
Co-authored-by: Francisco <frangio.1@gmail.com>
2023-01-31 17:45:24 -03:00
2d05db171a Add note about supply limit in ERC1155Supply 2023-01-31 17:27:05 -03:00
Mio
501a78e134 Fix typos (#4015) 2023-01-31 14:11:37 +01:00
591c12d22d Remove outdated note about virtual view functions (#4014) 2023-01-30 21:00:56 -03:00
1684c57922 Add ERC*Pausable warning for public pausing mechanism (#4007)
Co-authored-by: Francisco <fg@frang.io>
2023-01-28 20:21:07 -03:00
bc6de21fe2 Create ProposalSalt event for TimelockController (#4001)
Co-authored-by: Francisco <frangio.1@gmail.com>
2023-01-27 15:47:43 -03:00
5e28952cbd Add a public Governor.cancel function (#3983) 2023-01-26 20:46:11 +01:00
0320a718e8 Fix Governance docs reference to blocktime (#3994) 2023-01-26 14:38:34 -03:00
d6fb3d645f Add guidelines for pull requests (#4002) 2023-01-26 14:17:18 -03:00
e919d96ff2 Add ERC1155.totalSupply that returns overall supply count (#3962) 2023-01-25 21:39:02 +01:00
69c8d1010e Make upgradeTo and upgradeToAndCall public (#3959)
Co-authored-by: Francisco <fg@frang.io>
2023-01-25 16:46:34 -03:00
a284569a7c Rename ERC20ReturnFalseMock copy.sol to ERC20ReturnFalseMock.sol (#4000) 2023-01-25 14:54:51 +01:00
54c31ad98b Merge master into next-v5.0 (#3980) 2023-01-24 19:48:49 -03:00
5ad74c6d10 Merge branch 'master' into next-v5.0 2023-01-24 19:37:11 -03:00
a34dd8bb1b Add solidity language to missing code snippets (#3992) 2023-01-24 18:00:03 -03:00
c5d040beb9 Remove Address.isContract (#3945)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Francisco Giordano <fg@frang.io>
2023-01-24 17:59:07 -03:00
b1c2c43d6a Lint should not override files (#3988) 2023-01-23 11:30:11 +01:00
c404862cba Use oz-upgrades-unsafe-allow-reachable in ERC1967Upgrade (#3971)
Co-authored-by: Francisco <fg@frang.io>
2023-01-19 22:00:53 +00:00
2a62fb4a2d Improve TransparentUpgradeableProxy's transparency (#3977)
Co-authored-by: Francisco <fg@frang.io>
2023-01-19 18:34:15 -03:00
afcdc58419 Delete tag next once latest is published (#3973)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2023-01-19 17:21:17 -03:00
dc1ffa79e7 Fix changeset action access to ref branch (#3978)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2023-01-19 16:36:54 -03:00
c8b466b7b5 Disable Foundry for slither-action
(cherry picked from commit 4072e853fe)
2023-01-18 23:31:59 -03:00
5a0863ccf0 Change job titles in release-cycle.yml (#3972) 2023-01-18 23:14:40 -03:00
0c89a8b771 Automate release process via Changesets (#3915)
Co-authored-by: Francisco <fg@frang.io>
2023-01-18 20:34:32 -03:00
f81e5f51c1 Use allow-reachable delegatecall in Multicall (#3970) 2023-01-18 18:07:13 -03:00
74b8ae9372 Annotate Multicall contract (#3961)
Co-authored-by: Francisco <fg@frang.io>
2023-01-18 19:40:35 +00:00
c9bc4f8203 Make Ownable2Step.acceptOwnership virtual (#3960) 2023-01-17 23:57:14 -03:00
88a64a802e Update guidelines and project documentation (#3966)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2023-01-17 23:44:56 -03:00
18691d1a6f Show if event parameter is indexed in docs (#3958)
Co-authored-by: Francisco <frangio.1@gmail.com>
2023-01-16 16:04:03 -03:00
30c3c6c16e Clean up after merging master into next-v5.0 (#3956)
Co-authored-by: Francisco <fg@frang.io>
2023-01-14 21:19:47 -03:00
147dc89054 Merge branch 'master' into next-v5.0 2023-01-14 18:51:03 -03:00
785f65183c Fix wrong PR CHANGELOG link (#3957) 2023-01-13 17:23:05 -03:00
a5af0adce4 Ignore reentrancy inexecuteBatch and update Slither config (#3955)
Co-authored-by: Francisco <fg@frang.io>
2023-01-13 17:29:53 +00:00
d89e51ac42 Use actionlint on GitHub Actions workflows (#3953) 2023-01-13 11:05:13 -03:00
717fbc45cb Add docs on non-stability of internal function use (#3952) 2023-01-13 11:17:38 +01:00
ac30219a6a Add explicit permissions to docs workflow 2023-01-12 20:55:53 -03:00
42fab12584 Remove unnecessary CI cache 2023-01-12 17:43:54 -03:00
6b17b33430 Use a staticcall to fetch ERC20.decimals in ERC4626 (#3943)
Co-authored-by: Francisco <frangio.1@gmail.com>
2023-01-12 12:33:15 -03:00
5dbde1a5c9 Fix governance tutorial contract (#3948)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2023-01-12 10:43:29 -03:00
7c6e289782 Prepare tests for hardhat-exposed transition (#3930)
Co-authored-by: Francisco <frangio.1@gmail.com>
2023-01-12 09:51:29 +01:00
86de1e8b6c Pin Slither to 0.9.1 (#3949) 2023-01-12 09:50:06 +01:00
d210847e28 Fix ERC20._update (#3921)
Co-authored-by: Francisco <frangio.1@gmail.com>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2023-01-10 17:21:35 -03:00
a290e13099 Add warning in next-v5.0 branch readme (#3941) 2023-01-10 11:15:22 +01:00
97bba5adaa Remove ERC1155 hooks (#3876)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Francisco <frangio.1@gmail.com>
2023-01-10 11:13:05 +01:00
d59306bd06 Improve ERC20.decimals documentation (#3933) 2023-01-06 14:09:02 +01:00
a28aafdc85 Use Prettier for JS files (#3913)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2023-01-04 15:03:40 +01:00
88754d0b36 Add keys() accessor to EnumerableMaps (#3920)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2023-01-03 22:25:37 +01:00
2fc24fc8d4 Rename param to match the interface (#3917) 2023-01-03 12:30:51 -03:00
3a3c87b1a6 Fix docs for Math.log256 (#3916) 2023-01-03 11:52:53 -03:00
c1d9da4052 Use hardhat-exposed to reduce the need for mocks (#3666)
Co-authored-by: Francisco <fg@frang.io>
2023-01-03 14:38:13 +00:00
a81b0d0b21 Use unchecked in MerkleProof.processMultiProof (#3869)
Signed-off-by: Pascal Marco Caversaccio <pascal.caversaccio@hotmail.ch>
Co-authored-by: Francisco <fg@frang.io>
2023-01-02 22:04:49 -03:00
276b32a5ec Update lockfile (#3909)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-02 21:42:08 +00:00
4fc19ddb8d Add label to Renovate PRs 2023-01-02 18:03:24 -03:00
0892f877b8 Fix base for Renovate config 2023-01-02 17:45:42 -03:00
a4596cab05 Add warning on SELFDESTRUCT usage with isContract (#3875)
Co-authored-by: Francisco <fg@frang.io>
2022-12-30 22:00:53 +00:00
ccc175a9ed Add /out to .gitignore (#3908) 2022-12-30 16:51:22 -03:00
2336bd3e8e Simplify ESLint config (#3903) 2022-12-29 17:08:12 -03:00
cc27aed391 Improve Strings equal tests (#3902)
Co-authored-by: Francisco <fg@frang.io>
2022-12-29 19:11:15 +00:00
bc50d373e3 Rename approved parameter in IERC721 (#3900)
Co-authored-by: Francisco <fg@frang.io>
2022-12-28 23:32:50 +00:00
b0db207e4e Fix typos in testing files (#3899) 2022-12-28 20:16:56 -03:00
cafe5eb985 Update blurb on GovernorVotes compatibility (#3764) 2022-12-28 20:07:29 -03:00
8335676b0e Add Strings.toString for signed integers (#3773)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Gbolahan <89295500+GbolahanAnon@users.noreply.github.com>
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2022-12-28 22:46:52 +00:00
96ff934ad0 Update forge-std submodule to v1.2.0 (#3885)
Signed-off-by: Pascal Marco Caversaccio <pascal.caversaccio@hotmail.ch>
2022-12-28 19:34:44 -03:00
7a6a9d1516 Add Strings.equal (#3774)
Co-authored-by: Francisco <fg@frang.io>
2022-12-28 18:23:24 -03:00
f799475d93 Fix links to Wizard (#3901) 2022-12-28 17:02:40 -03:00
fbbaf3365b Merge branch 'master' into next-v5.0 2022-12-26 23:31:13 -03:00
4147005b0c Update Prettier Solidity (#3898) 2022-12-26 23:28:51 -03:00
446cd9f5fb Update lockfile (#3788)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-23 22:56:03 -03:00
b709eae01d Update Prettier Solidity (#3898) 2022-12-23 22:28:05 -03:00
4072e853fe Disable Foundry for slither-action 2022-12-23 17:43:10 -03:00
a3b9fac30e Update lockfileVersion to 2 (#3897) 2022-12-22 21:49:32 -03:00
3f16692dad Update dependency got to 11.8.5 [SECURITY] (#3894)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-22 21:08:26 -03:00
6b0c9f4e77 Revert "Disable Foundry for slither-action" (#3889) 2022-12-19 18:21:00 -03:00
81dbe643a0 Remove ERC165Storage (#3880)
Co-authored-by: Francisco <frangio.1@gmail.com>
2022-12-19 18:18:33 -03:00
9cbe8b340c Merge branch 'master' into next-v5.0 2022-12-19 18:17:33 -03:00
3c80a42866 Remove hooks from ERC20 (#3838)
Co-authored-by: Francisco <frangio.1@gmail.com>
2022-12-14 16:43:45 -03:00
3d7a93876a Improve documentation of Initializable getters (#3861)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2022-12-07 00:49:15 +00:00
98967feeb2 Disable Foundry for slither-action (#3860) 2022-12-06 11:55:49 -03:00
206a239448 Remove unused variables in tests (#3852) 2022-12-05 17:25:53 -03:00
93cd2ecb73 Improve readability of processMultiProof (#3854)
Signed-off-by: Pascal Marco Caversaccio <pascal.caversaccio@hotmail.ch>
2022-12-05 10:41:44 -03:00
c30fad9955 Add ERC-4626 Upgrade Note (#3849) 2022-12-02 17:10:43 -03:00
88fa71ecd5 Update dependency decode-uri-component to 0.2.1 [SECURITY] (#3845)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-02 12:51:09 -03:00
24d1bb668a Add Ownable2Step to the docs (#3836)
Co-authored-by: Francisco <fg@frang.io>
2022-12-01 10:34:58 -03:00
4e8b2fa659 Add additional conditions when testing ERC4626 roundtrip (#3839) 2022-11-30 15:44:38 -03:00
e2d2ebc8fc Make ERC20Votes independent from ERC20Permit (#3816)
Co-authored-by: Francisco <frangio.1@gmail.com>
2022-11-29 11:25:52 -03:00
bc8f442d00 Remove admin and implementation getters from TransparentUpgradeableProxy (#3820)
Co-authored-by: Francisco <frangio.1@gmail.com>
2022-11-25 15:27:58 -03:00
8f8fd84f1e Improve some NatSpec and revert reasons (#3809)
Co-authored-by: JulissaDantes <julissadcj@gmail.com>
2022-11-25 12:55:16 -03:00
4a9db80cb9 Remove presets (#3637)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
Co-authored-by: JulissaDantes <julissadcj@gmail.com>
2022-11-25 12:46:47 -03:00
8c9a831596 Fix whitespace in docs (#3832)
Co-authored-by: Francisco <frangio.1@gmail.com>
2022-11-23 12:48:26 -03:00
99589794db Add forgotten await to ERC1155URIStorage beforeEach block. (#3807) 2022-11-16 11:15:58 -03:00
b2970b96e5 Update lockfile 2022-11-10 23:27:54 -03:00
7c5f6bc2c8 Merge branch 'release-v4.8' 2022-11-09 19:23:01 -03:00
887985413c Use default admin role in TimelockController (#3799)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Francisco <frangio.1@gmail.com>
2022-11-09 13:18:27 -03:00
b18cf4ba42 Merge branch 'next-v5.0' of https://github.com/OpenZeppelin/openzeppelin-contracts into next-v5.0 2022-11-09 09:27:54 -04:00
39a752e398 Generate gas report for next-v* branches 2022-11-09 09:26:06 -04:00
49c0e4370d 4.8.0 2022-11-08 11:29:29 -03:00
e0137d4cbe Fix outdated docs about timelock admin (#3806)
(cherry picked from commit 47d4ebb734)
2022-11-07 20:00:49 -03:00
e708b096cf Remove outdated note about hooks from documentation (#3789)
Co-authored-by: Francisco <frangio.1@gmail.com>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
(cherry picked from commit 634710d795)
2022-11-07 20:00:48 -03:00
47d4ebb734 Fix outdated docs about timelock admin (#3806) 2022-11-07 20:00:19 -03:00
634710d795 Remove outdated note about hooks from documentation (#3789)
Co-authored-by: Francisco <frangio.1@gmail.com>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2022-11-05 15:13:49 -03:00
c7315e8779 Add ERC4626 standard property tests (#3792)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2022-11-04 17:56:32 +01:00
0b6becd49f Remove the draft prefix to ERC20Permit (#3793)
Co-authored-by: Francisco <frangio.1@gmail.com>
2022-11-04 12:55:55 -03:00
6ff283bebc Merge branch 'master' into next-v5.0 2022-11-04 11:36:45 -04:00
88a3f95715 Optimize condition in _disableInitializers (#3787) 2022-11-03 20:57:56 -03:00
d5ca39e9a2 Rename _isVaultCollateralized to _isVaultHealthy for clarity (#3796) 2022-11-02 11:46:08 -03:00
16fa1834e5 Fix MerkleProof natspec
(cherry picked from commit 7d01facdb8)
2022-11-01 15:22:56 -03:00
7d01facdb8 Fix MerkleProof natspec 2022-11-01 15:22:47 -03:00
8bfcb65924 Update recommendation of JS library for merkle trees
(cherry picked from commit 8d105825e9)
2022-11-01 15:14:20 -03:00
8d105825e9 Update recommendation of JS library for merkle trees 2022-11-01 15:13:50 -03:00
36951d5838 few typo fixes (#3779) 2022-10-26 17:02:57 +02:00
f99bc4e0cf grammar fix (#3782) 2022-10-26 17:02:06 +02:00
25fe191202 Fix comment in ERC721Consecutive (#3778)
Co-authored-by: Francisco <frangio.1@gmail.com>
2022-10-25 01:46:51 +00:00
014ce9c6e6 ERC721ConsecutiveEnumerable is no longer unreachable
(cherry picked from commit a1948250ab)
Signed-off-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2022-10-18 14:20:25 +02:00
a1948250ab ERC721ConsecutiveEnumerable is no longer unreachable 2022-10-18 14:13:05 +02:00
1f18fea1de 4.8.0-rc.2 2022-10-17 18:53:40 +02:00
1a41a503e0 Skip deleted file when updating release version in comments
(cherry picked from commit a71caa28e7)
Signed-off-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2022-10-17 18:53:31 +02:00
a71caa28e7 Skip deleted file when updating release version in comments 2022-10-17 18:52:38 +02:00
3742c16948 Refactor consecutive transfer hooks (#3753)
(cherry picked from commit 08d5e4a9b0)
Signed-off-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2022-10-17 18:42:01 +02:00
08d5e4a9b0 Refactor consecutive transfer hooks (#3753) 2022-10-17 17:09:23 +02:00
02722fcc03 Use unchecked in ERC20Votes and fix typo (#3748)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2022-10-17 17:00:47 +02:00
eb03304b70 Add ReentrancyGuard status getter (#3714)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2022-10-17 14:43:45 +02:00
c463b8a67e Fix typo in comment (#3765) 2022-10-17 14:42:18 +02:00
4e18cdc186 Update merkle multiproof docs with a caution note
(cherry picked from commit 8d908fe2c2)
2022-10-06 19:13:26 -03:00
8d908fe2c2 Update merkle multiproof docs with a caution note 2022-10-06 19:12:29 -03:00
47003aebec typo fix (#3752) 2022-10-05 17:47:39 -03:00
34e5863cd5 Reduce gas in log256 (#3745) 2022-10-05 17:19:28 -03:00
b7aff6363f Update lockfile (#3746)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-10-05 16:26:04 -03:00
9a11de924d Update crytic/slither-action action to v0.2.0 (#3751)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-10-05 16:24:21 -03:00
7201e6707f Fix typo in a comment (#3747) 2022-10-03 10:06:44 +02:00
561d1061fc Fix typos, improve wording and punctuation. (#3741) 2022-09-30 20:13:19 -03:00
50501a751e Update docs pipeline to solidity-docgen@0.6 (#3707)
(cherry picked from commit c52625018b)
2022-09-30 12:55:21 -03:00
f0de978a9e Improve handling and docs for ERC4626.decimals (#3733)
(cherry picked from commit 14f98dbb58)
2022-09-30 12:55:06 -03:00
16408a1dcf Update Arbitrum's vendored contracts to Nitro (#3692)
Co-authored-by: Francisco <frangio.1@gmail.com>
(cherry picked from commit 9938a85558)
2022-09-30 12:55:01 -03:00
0b3acb286a Recommended improvement to ERC721Consecutive (#3712)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
(cherry picked from commit c22db8104e)
2022-09-30 12:54:56 -03:00
c52625018b Update docs pipeline to solidity-docgen@0.6 (#3707) 2022-09-30 12:52:45 -03:00
26dddee1c0 Fix typo (#3738) 2022-09-29 00:05:54 +02:00
14f98dbb58 Improve handling and docs for ERC4626.decimals (#3733) 2022-09-28 15:42:55 -03:00
9938a85558 Update Arbitrum's vendored contracts to Nitro (#3692)
Co-authored-by: Francisco <frangio.1@gmail.com>
2022-09-28 14:46:48 -03:00
c22db8104e Recommended improvement to ERC721Consecutive (#3712)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2022-09-27 16:13:15 -03:00
2a45f99fc4 Bump yargs-parser from 2.4.1 to 20.2.4 (#3726)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-27 12:08:57 -03:00
fb9345814b Remove unnecessary Address library import in SignatureChecker (#3731) 2022-09-27 10:26:17 +02:00
72bbe63ec7 Fix incorrect issue number in CHANGELOG (#3732) 2022-09-27 10:23:23 +02:00
ec88e9d6aa Add support for EOA target in Governor.relay (#3730)
(cherry picked from commit ed12acfb0a)
2022-09-26 15:28:14 -03:00
ed12acfb0a Add support for EOA target in Governor.relay (#3730) 2022-09-26 15:27:33 -03:00
5e8e8bb9f0 Fixes broken link (#3728) 2022-09-25 00:58:09 +02:00
561d0eead3 Add comments to unsafeAccess functions of Arrays library (#3718) 2022-09-23 19:23:32 -03:00
e2362ce74f Add documentation about the security of overrides (#3725) 2022-09-24 00:06:20 +02:00
c08c6e1b84 Add fuzz testing of mulDiv (#3717)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2022-09-23 18:45:20 -03:00
16791134c1 4.8.0-rc.1 2022-09-23 18:59:29 +02:00
76273ecd8e Change admin role allocation in TimelockControler constructor (#3722)
Co-authored-by: Francisco <frangio.1@gmail.com>
(cherry picked from commit 408055dfab)
2022-09-23 12:28:39 -03:00
d89a62e0a6 Improve ERC20FlashMint documentation (#3719)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
(cherry picked from commit aa4b901788)
2022-09-23 12:28:34 -03:00
089f9b95af Ignore specific warnings and make the rest into errors (#3695)
(cherry picked from commit 046121e080)
2022-09-23 12:28:19 -03:00
8740d8f7f3 Update ReentrancyGuard documentation (#3715)
(cherry picked from commit 06e678d6ef)
2022-09-23 12:28:14 -03:00
09369d265c Improve Initializable docstrings (#3704)
Co-authored-by: tincho <tinchoabbate@noreply.users.github.com>
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
(cherry picked from commit a549ec673e)
2022-09-23 12:28:02 -03:00
1bbdf2005d Update the informational link (#3703)
(cherry picked from commit 76b538c226)
2022-09-23 12:27:56 -03:00
c8a0639afe Update dependency solidity-coverage to ^0.8.0 (#3681)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
(cherry picked from commit d6975f8e07)
2022-09-23 12:27:45 -03:00
3f6c8245aa Update lockfile (#3698)
(cherry picked from commit fac768cd2c)
2022-09-23 12:27:39 -03:00
408055dfab Change admin role allocation in TimelockControler constructor (#3722)
Co-authored-by: Francisco <frangio.1@gmail.com>
2022-09-23 16:58:56 +02:00
aa4b901788 Improve ERC20FlashMint documentation (#3719)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2022-09-23 11:48:39 +02:00
8f0d4d4a41 Fix fuzzing coverage (#3716) 2022-09-22 23:13:09 +02:00
046121e080 Ignore specific warnings and make the rest into errors (#3695) 2022-09-22 22:33:13 +02:00
06e678d6ef Update ReentrancyGuard documentation (#3715) 2022-09-22 21:42:52 +02:00
8d3d181207 Fix issue number in CHANGELOG (#3710)
(cherry picked from commit 8769b19860)
Signed-off-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2022-09-20 11:00:49 +02:00
8769b19860 Fix issue number in CHANGELOG (#3710) 2022-09-20 11:00:13 +02:00
a615329423 Make ERC721Votes no longer a Draft (#3699)
(cherry picked from commit 7a14f6c595)
2022-09-17 13:04:59 -03:00
7a14f6c595 Make ERC721Votes no longer a Draft (#3699) 2022-09-17 18:03:03 +02:00
a549ec673e Improve Initializable docstrings (#3704)
Co-authored-by: tincho <tinchoabbate@noreply.users.github.com>
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2022-09-16 18:16:37 +00:00
76b538c226 Update the informational link (#3703) 2022-09-15 19:41:12 -03:00
7deed7a769 Disable fuzzing on upgradeable contracts
(cherry picked from commit 9416743a10)
2022-09-13 19:20:50 -03:00
9416743a10 Disable fuzzing on upgradeable contracts 2022-09-13 19:20:29 -03:00
d6975f8e07 Update dependency solidity-coverage to ^0.8.0 (#3681)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-09-13 14:45:11 -03:00
fac768cd2c Update lockfile (#3698) 2022-09-13 11:43:30 -03:00
5e6fd491f3 4.8.0-rc.0 2022-09-07 18:08:32 -03:00
6a8d977d22 Skip changelog check if label is present (#3687) 2022-09-07 20:13:18 +00:00
3c552e6e03 Fix relevant warnings (#3685) 2022-09-07 15:56:18 -03:00
5d31ad0eb9 Fix: typo & grammar (#3684) 2022-09-07 20:45:09 +02:00
80ae402387 Add fuzz tests for Math.sqrt & Math.logX using Foundry (#3676)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2022-09-07 14:25:29 -03:00
c1d6e39aab Add log2, log10 and log256 functions (#3670) 2022-09-07 08:29:48 +00:00
d857ab5702 Fix EnumerableMap and EnumerableSet generation 2022-09-06 23:12:22 +02:00
42fe56031f Fix EnumerableMap and EnumerableSet warning format 2022-09-06 15:41:47 -03:00
171fa40bc8 ERC721 extension for efficient batch minting (#3311)
Co-authored-by: Francisco <frangio.1@gmail.com>
2022-09-05 23:09:30 +02:00
005a35b02a Optimize Math.max and SignedMath.max (#3679)
Co-authored-by: Daniel Liu <liudaniel@qq.com>
2022-09-05 11:37:43 -03:00
84fafa7832 Fix typos (#3677) 2022-09-05 09:34:42 +02:00
e09ccd1449 Optimize votes lookups for recent checkpoints (#3673) 2022-09-04 22:48:26 +02:00
a60ae0f18b Remove unused migrations directory 2022-09-02 20:48:21 -03:00
66ec91bc45 Update lockfile (#3669)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-09-01 17:04:36 -03:00
1c3410aa75 Fix grammar, wording, and typos in changelog (#3668) 2022-09-01 19:26:06 +02:00
1f0e7cdf04 Add Ownable2Step extension with 2-step transfer (#3620)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Francisco <frangio.1@gmail.com>
2022-09-01 15:46:44 +00:00
160bf1a6eb Optimize toString (#3573)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2022-08-31 23:08:35 +00:00
1eb55e2864 Remove unnecessary virtual (#3650) 2022-08-31 17:25:54 -03:00
4b8b92c8bf Make VestingWallet payable to allow funding at construction (#3665) 2022-08-31 20:18:57 +02:00
affe2456ea Search the whole checkpoint trace if offset overflows during initial exponential search. (#3662) 2022-08-30 22:59:23 +02:00
71aaca2d9d Extend Checkpoints with new sizes and lookup mechanisms (#3589) 2022-08-30 21:32:12 +02:00
4b16e88747 Improve recommendation on ERC721 transferFrom vs safeTransferFrom (#3647)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2022-08-29 17:40:21 -03:00
93bc3b657b Remove Codecov Patch status outside PRs 2022-08-26 14:03:47 -03:00
141130db27 Inherit asset decimals in ERC4626 (#3639) 2022-08-26 09:53:53 +02:00
e45b49eab8 Change 'caller' to 'sender' to more closely match EIP-4626 specs. (#3649) 2022-08-26 09:52:41 +02:00
62bab225c1 Fix wording and grammar in docs (#3645)
Fix wording and grammar
2022-08-25 10:52:41 -03:00
dc14c72e53 Update comment for _beforeTokenTransfer (#3586) 2022-08-24 12:07:35 -03:00
6b9bda872d Optimize Clones assembly (#3640) 2022-08-24 09:25:52 +00:00
6d8017d07e Optimize Create2.computeAddress (#3600)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Francisco <frangio.1@gmail.com>
2022-08-23 17:38:13 -03:00
24fc709533 Set up codespell (#3643) 2022-08-23 12:43:03 -03:00
f491e98d37 Use unchecked for ERC721 balance updates (#3524)
Co-authored-by: Francisco <frangio.1@gmail.com>
2022-08-23 02:48:09 +00:00
1cf4db9615 Generate gas report for next-v* branches 2022-08-19 16:30:19 +02:00
98c3a79b57 Change execution order to avoid reentry through the _beforeTokenTransfer hook (#3611)
Co-authored-by: Francisco <frangio.1@gmail.com>
2022-08-19 10:33:19 -03:00
17bc2dabe0 Procedurally generate EnumerableSet and EnumerableMap (#3429) 2022-08-19 14:12:18 +02:00
c797195f1d Add getter for number of releasable tokens in VestingWallet (#3580)
Co-authored-by: Francisco <frangio.1@gmail.com>
2022-08-19 02:05:18 +00:00
27d4293db6 Remove redundant changelog entry 2022-08-18 22:54:43 -03:00
26cf47a2be Add internal functions _getInitializedVersion and _isInitializing (#3598) 2022-08-18 20:42:31 -03:00
397c946141 Remove the draft prefix for EIP712 as it is now final (#3621)
Co-authored-by: Francisco <frangio.1@gmail.com>
2022-08-18 20:40:45 -03:00
2d4fb93087 Bump undici from 5.8.0 to 5.9.1 (#3632)
Bumps [undici](https://github.com/nodejs/undici) from 5.8.0 to 5.9.1.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v5.8.0...v5.9.1)

---
updated-dependencies:
- dependency-name: undici
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-18 18:47:26 -03:00
54dec0cad5 Fix typo in CHANGELOG (#3630) 2022-08-18 10:04:30 +02:00
bbb9a17872 Fix links in Utilities 2022-08-17 15:40:28 -03:00
6729fec74a Add warning about issue with Arbitrum cross-chain utilities (#3626) 2022-08-17 18:07:36 +02:00
4ae655c368 Update link to Consensys best practices (#3597)
Co-authored-by: Francisco <frangio.1@gmail.com>
2022-08-16 22:37:01 -03:00
324eda228c Remove redundant ECDSA constraint (#3591)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2022-08-16 18:08:07 +00:00
2dc086563f Fix misspelling in comment (#3613) 2022-08-12 10:44:20 +02:00
386848174b Fix preset links in docs 2022-08-11 11:16:41 -03:00
d693d89d99 Fix ECDSA signature malleability (#3610) 2022-08-10 15:40:03 -03:00
ff16696c9c Update ERC777 event documentation (#3594) 2022-08-10 14:21:23 +02:00
ca6f95a7da Improve documentation in UUPSUpgradeable (#3606) 2022-08-10 11:15:08 +02:00
d514cdd26e Preserve camelCase in GovernorCountingSimple (#3608) 2022-08-10 10:50:23 +02:00
85a9bed49e Remove unsued imported library "Math.sol" (#3605) 2022-08-10 10:39:47 +02:00
ec825d8999 Update lockfile (#3592)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-08-02 15:50:51 -03:00
ce0068c21e Fix lint error in scripts/checks/compareGasReports.js 2022-07-29 09:38:10 +02:00
bc14f8dc89 Fix contract bytecode length comparaison 2022-07-29 09:31:02 +02:00
7b5ef46371 Add a GH action that checks changelog (#3588) 2022-07-27 23:10:59 +02:00
c11acfd9d3 Fix compiler warning 2022-07-27 16:47:36 -03:00
ffb0ae76e3 Update changelog 2022-07-27 16:44:34 -03:00
dc4869eb23 Avoid returnbomb in ERC165Checker (#3587)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2022-07-27 16:41:05 +00:00
8ea1fc87c9 Keep track of historical quorum values (#3561)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2022-07-27 13:23:10 -03:00
0d91b620b7 Report changes to contract construction cost in CI (#3579) 2022-07-26 11:42:42 +02:00
81336aefb5 Fix arbitrum L1 to L2 crosschain call detection (#3578)
* Fix arbitrum L1 to L2 crosschain call detection

* fix BridgeArbitrumL2Mock

* update changelog

Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2022-07-25 22:42:37 +02:00
7ddbfe181e Add access control comment for ERC721 _burn function (#3576)
* Added access control comment for ERC721 _burn function

* Update contracts/token/ERC721/ERC721.sol

Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>

* Update contracts/token/ERC721/ERC721.sol

Co-authored-by: Francisco <frangio.1@gmail.com>

Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Francisco <frangio.1@gmail.com>
2022-07-25 22:42:13 +02:00
48dd186870 Improve readme style (#3577)
Co-authored-by: Francisco <frangio.1@gmail.com>
2022-07-25 17:17:35 -03:00
fbf235661e Improve grammar in transfer error messages (#3542) 2022-07-25 17:01:14 -03:00
d1b1e17d23 Add internal overrideable _flashFee in ERC20FlashMint (#3551)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Francisco <frangio.1@gmail.com>
2022-07-22 14:44:58 -03:00
6e8d885ca7 Bump undici from 5.5.1 to 5.8.0 (#3569)
Bumps [undici](https://github.com/nodejs/undici) from 5.5.1 to 5.8.0.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v5.5.1...v5.8.0)

---
updated-dependencies:
- dependency-name: undici
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-21 20:01:10 -03:00
0ccfd2dbd3 Fix error in documentation and typo (#3567) 2022-07-21 12:55:10 -03:00
580b7ab816 Optimize safe casting of signed numbers (#3565) 2022-07-20 12:55:05 -03:00
d3ff81b37f Remove line length configuration for markdown files 2022-07-19 18:33:27 -03:00
1b1dd0ca2c Update link to ERC721 preset in docs (#3553)
Co-authored-by: Francisco <frangio.1@gmail.com>
2022-07-19 10:19:59 -03:00
e0149921b8 Update solmate repo link (#3563) 2022-07-19 10:09:02 -03:00
628a6e2866 Fix issues caused by abi.decode reverting (#3552)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2022-07-18 21:01:20 +00:00
d50e608a4f Add GitPOAP badge to display number of minted GitPOAPs for contributors (#3545) 2022-07-15 12:00:56 +00:00
6ab8d6a67e Improve spelling in ERC1155 revert reasons (#3433) 2022-07-12 14:00:12 +00:00
3210a8653b Modify ReentrancyGuard to reduce contract size (#3515)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Francisco <frangio.1@gmail.com>
2022-07-11 21:01:44 +00:00
96163c87e3 Implicitly clear ERC721 approval on burn (#3538) 2022-07-09 10:25:45 +02:00
3a1c020b7d Skip pull_request actions when fetching ref in gas-compare action 2022-07-09 09:49:16 +02:00
cfc9f840a0 Generate comparative gas repports on PR (#3532)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2022-07-08 19:07:39 -03:00
5e7e9acfa4 Fix broken forum URL (#3537)
Co-authored-by: Francisco <frangio.1@gmail.com>
2022-07-08 19:03:39 -03:00
8b778fa20d Move adds on total earlier to enable the use of unchecked (#3527)
Co-authored-by: Francisco <frangio.1@gmail.com>
2022-07-05 14:49:24 -03:00
e7397844f8 Update lockfile (#3523)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-07-04 16:47:26 -03:00
e02c378745 Implicitly clear ERC721 approval on transfers (#3481)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2022-07-04 15:29:15 -03:00
597654db00 Fixed typos in Math: sqrt function. (#3522) 2022-07-04 15:19:17 -03:00
5fbf494511 Use unchecked arithmetic in "_transfer", "_mint" and "_burn" (#3513) 2022-07-01 22:40:30 +02:00
7a8f269457 Fix changelog (#3519)
fix changelog
2022-06-30 12:02:59 +02:00
4a194b3a1c Fix typo in ERC4626 comments (#3518) 2022-06-30 12:01:04 +02:00
3dac7bbed7 Merge v4.7 back into master (#3516) 2022-06-29 12:34:30 +02:00
b159b3fee2 Minor wording fixes ERC4626 contract (#3510) 2022-06-28 14:56:09 +02:00
e734b42fc2 Enable using ERC165 check for one supported interface directly (#3339)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Francisco <frangio.1@gmail.com>
2022-06-27 17:51:33 -03:00
40172c22d9 Refactor address-to-hex-string conversion in _checkRole function (#3509)
Signed-off-by: Pascal Marco Caversaccio <pascal.caversaccio@hotmail.ch>
Co-authored-by: Francisco <frangio.1@gmail.com>
2022-06-27 20:45:51 +00:00
6f88199db9 Optimize Address.functionCall removing redundant isContract check (#3469)
Co-authored-by: Francisco <frangio.1@gmail.com>
2022-06-27 17:02:33 -03:00
e8c60f92e3 Remove unused using statements in GovernorCompatibilityBravo (#3506) 2022-06-27 13:23:08 +02:00
2894059775 Support memory arrays in MerkleTree multiproof (#3493) 2022-06-27 13:15:52 +02:00
74738721dc Make ERC4626 _deposit and _withdraw internal virtual (#3504) 2022-06-24 14:55:20 -03:00
450c569d78 Add a caution note to ERC4626 about EOA access (#3503) 2022-06-24 10:22:10 +02:00
4bf9ab41f8 Clarify PaymentSplitter shares are static 2022-06-23 18:35:03 -03:00
83277ff916 Remove _setupRole docs usage in favor of _grantRole (#3489) 2022-06-17 15:27:00 -03:00
cb3f2ab900 Address.functionCall internal call stack simplification (#3468) 2022-06-16 15:17:09 +02:00
109778c17c Fix check for generated code when last updated is a release candidate 2022-06-14 15:38:04 -03:00
ed704d82b3 Output diff when test:generation fails 2022-06-14 15:31:26 -03:00
a55b7d1372 Rename ERC20TokenizedVault to ERC4626 (#3467) 2022-06-14 11:39:01 +02:00
5a0bff465d Enable the YUL IR pipeline when building with optimisations (#3279) 2022-06-13 12:16:37 -03:00
4135bf9707 Fix typos in timelock test (#3461)
fix typos
2022-06-11 09:31:30 +02:00
429b2242d8 Disable test for updated generated code on upgradeable contracts 2022-06-10 18:13:47 -03:00
c10a097fa8 Disable all checks but tests on upgradeable repository 2022-06-10 16:37:52 -03:00
cb7dbf8297 Disable coverage on upgradeable repository 2022-06-09 19:58:26 -03:00
7c75b8aa89 Add a SafeERC20:safePermit function (#3280) 2022-06-07 15:17:02 +00:00
08d109d877 Optimize Ownable and Pausable modifiers' size impact (#3347) 2022-06-07 15:21:58 +02:00
jjz
3ac4add548 Add sqrt for math (#3242) 2022-06-07 08:26:45 +02:00
3aa7ff74b0 Update lockfile (#3442)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-06-06 21:31:16 +00:00
994cf9b34b Clarify role of MinimalForwarder (#3399)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2022-06-06 18:27:56 -03:00
f6cd8032ba Fix typo in crosschain.adoc (#3453) 2022-06-06 18:20:23 -03:00
051cc9e446 Revert unwanted breaking change in the Clones library (#3456)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2022-06-06 20:41:48 +00:00
54ce38c2e5 Remove runtime check of ERC1967 storage slots (#3455) 2022-06-06 15:22:51 -03:00
d506e3b1a5 Simplify Initializable (#3450) 2022-06-03 19:30:50 +00:00
113443470c Reorder arguments for multiProof functions (#3447) 2022-06-03 09:36:14 +02:00
35090c1bf1 Add tests for improved coverage (#3448)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2022-06-02 23:01:55 +00:00
04204b8fb9 Improve GitHub Actions (#3451) 2022-06-02 19:42:49 -03:00
5e00787199 ERC4626 (#3171) 2022-06-02 10:03:03 +02:00
62f2c0531b Simplify ERC721 revert reasons (#3438) 2022-06-01 18:22:13 -03:00
4fc9fd3efe Support more efficient merkle proofs through calldata (#3200)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2022-06-01 20:36:42 +00:00
6d00281593 Fix typo in README.adoc (#3445)
Fix typo and link
2022-06-01 22:26:39 +02:00
2b0b0bb186 Fix merkle multiProof for single leaf tree (#3446) 2022-06-01 20:21:56 +00:00
6766b2de3b Add getters for number of unclaimed tokens in PaymentSplitter (#3350) 2022-05-31 19:26:18 +00:00
4942bd19e2 Update lockfile (#3430) 2022-05-30 17:27:50 -03:00
82a63f6389 Remove redundant require in ERC721 (#3434)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2022-05-26 22:22:35 -03:00
488dd562fb Improve error messages for ERC721 and 1155 (#3254)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2022-05-27 00:52:43 +00:00
61294a62af Restore previous behavior of initializer during construction (#3344) 2022-05-25 15:01:45 -03:00
f8157ac854 Add multiProofVerify (#3276) 2022-05-25 09:39:15 +02:00
65b45726b3 Add memory safe assembly annotations (#3384)
Co-authored-by: Nate <nate@Nates-MacBook-Pro.local>
2022-05-23 15:37:08 -03:00
c019e7c5bb Fix typo causing broken URL in ERC20Snapshot comment (#3428) 2022-05-23 14:57:57 -03:00
de74c8c62c Add bytes32 to uint enumerable map (#3416) 2022-05-23 08:02:27 +00:00
b61faf8368 Procedural SafeCast.sol generation (#3245) 2022-05-21 14:38:31 +02:00
c4f76cfa15 Add uint to uint enumerable map (#3338) 2022-05-20 13:31:53 +00:00
6339027a7a Add mention of events possibly emitted (#3421) 2022-05-19 13:35:42 -03:00
46db8a98b0 Rename return parameter (#3413) 2022-05-19 15:52:54 +02:00
c2077f0034 Add warning about use of delete (#3412) 2022-05-18 21:27:33 +02:00
ee4d8380d3 Fix minor typo in IERC1155 and IERC721 docs (#3419) 2022-05-18 15:19:41 +02:00
5772512058 Add address to string conversion (#3403)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2022-05-13 18:46:26 +00:00
cd2da98d4d Refactor magic constant in TimelocController test (#3397) 2022-05-12 22:23:56 +00:00
e633ee9ed3 Fix spelling and grammar in comments (#3408) 2022-05-11 18:10:00 -03:00
3bdf4bfd29 Annotate Memory-Safe Assembly (#3392) 2022-05-06 19:49:02 -03:00
3b9381dfb1 Add customizable fee receiver to ERC20FlashMint (#3327)
Co-authored-by: Mazen Khalil <mazen@immunityledger.org>
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2022-05-06 18:46:23 -03:00
07b1b472c0 Improve wording consistency in code/doc (#3365) 2022-05-04 18:20:59 -03:00
4574ce45b6 Add a cross-chain guide for the documentation (#3325) 2022-05-04 21:19:04 +00:00
5ed20f32cf Update lockfile (#3386)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-05-04 18:04:52 -03:00
14ca3aeb79 Fix links in documentation (#3387) 2022-05-02 18:06:52 -03:00
1d2ab4f41c Add 4.6 upgradeability notice 2022-05-02 18:05:40 -03:00
be3cfa0f90 Add custom error to CrossChainEnabledPolygonChild (#3380) 2022-04-29 16:14:18 +02:00
fcf35e5722 Fix changelog merge issue (#3364) 2022-04-27 09:40:13 +02:00
a035b235b4 Release v4.6 (#3358)
* 4.6.0-rc.0

* Fix release script to only release @openzeppelin/contracts

(cherry picked from commit 2bd75a44bb)

* make ERC2981:royaltyInfo public (#3305)

(cherry picked from commit d2832ca7a9)
Signed-off-by: Hadrien Croubois <hadrien.croubois@gmail.com>

* add transpilation guards to the crosschain mocks (#3306)

(cherry picked from commit 9af5af8fff)
Signed-off-by: Hadrien Croubois <hadrien.croubois@gmail.com>

* Fix tests on upgradeable contracts after transpilation

(cherry picked from commit 0762479dd5)
Signed-off-by: Hadrien Croubois <hadrien.croubois@gmail.com>

* Remove unused constructor argument

(cherry picked from commit 69c3781043)
Signed-off-by: Hadrien Croubois <hadrien.croubois@gmail.com>

* Bump minimum Solidity version for Initializable.sol to 0.8.2 (#3328)

(cherry picked from commit cb14ea3c5c)

* Fix update-comment script to ignore invalid tags

(cherry picked from commit 848fef5b6c)
Signed-off-by: Hadrien Croubois <hadrien.croubois@gmail.com>

* 4.6.0

Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2022-04-27 09:34:09 +02:00
848fef5b6c Fix update-comment script to ignore invalid tags 2022-04-26 18:48:34 +02:00
85627ffa91 Update links in docs (#3356)
* Update links in Access Control section

* Update Tally url

* Update web3 url to the freshest version
2022-04-26 11:34:51 +02:00
c12076fb7e Fix ERC777 link (#3351) 2022-04-23 16:35:04 +02:00
d4e6236b2b Fix deprecated expectEvent.inLogs #3332 (#3333) 2022-04-23 10:20:55 -03:00
5a75065659 Fix typo in CHANGELOG (#3341) 2022-04-14 02:08:36 -03:00
cb14ea3c5c Bump minimum Solidity version for Initializable.sol to 0.8.2 (#3328) 2022-04-14 00:21:52 +02:00
7392d83738 Bump minimist from 1.2.5 to 1.2.6 (#3303)
Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6)

---
updated-dependencies:
- dependency-name: minimist
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-11 10:05:45 -03:00
28dd490726 Optimize ERC1167 proxy creation code by 1 opcode (#3329) 2022-04-08 19:27:11 -03:00
bc810db320 Use a customizable _execute function in TimelockController (#3317)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2022-04-08 17:05:57 -03:00
dd01889434 Remove outdated documentation in ERC2981._setTokenRoyalty 2022-04-07 20:34:04 -03:00
731e199038 Improve docs for ERC721URIStorage._burn (#3324) 2022-04-07 20:28:18 -03:00
d4d8d2ed97 Fix burn documentation (#3246)
Co-authored-by: xombxomb <dmfinn@wustl.edu>
2022-04-05 19:44:20 -03:00
f81b80fb39 Update lockfile (#3309)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-04-05 18:07:25 -03:00
3fb25b604b Update codecov/codecov-action action to v3 (#3320)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-04-05 16:56:57 -03:00
742e85be7c Change zero address revert message in the balanceOf function of ERC721 and ERC1155 (#3314) 2022-04-02 12:13:33 +02:00
69c3781043 Remove unused constructor argument 2022-04-01 00:16:32 -03:00
0762479dd5 Fix tests on upgradeable contracts after transpilation 2022-03-31 23:41:31 -03:00
049701eacd Update crytic/slither-action action to v0.1.1 (#3307)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-03-31 18:42:01 -03:00
f85eb5b725 Use slither action (#3278)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2022-03-31 18:28:47 -03:00
9af5af8fff add transpilation guards to the crosschain mocks (#3306) 2022-03-31 20:04:04 +02:00
d2832ca7a9 make ERC2981:royaltyInfo public (#3305) 2022-03-31 20:01:22 +02:00
2bd75a44bb Fix release script to only release @openzeppelin/contracts 2022-03-30 23:15:27 -03:00
2a4ca65404 Update release script to stop publishing old openzeppelin-solidity package 2022-03-30 22:29:53 -03:00
3f49408fb6 Move event definition at the top of IERC20, IERC777 and IERC1820 (#3228) 2022-03-30 12:36:37 -03:00
e7719ded56 Match IERC721 function order with EIP spec (#3287) 2022-03-30 12:34:17 -03:00
668a648bc6 Add utilities for CrossChain messaging (#3183)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2022-03-30 11:41:04 -03:00
02fcc75bb7 Add ERC1155URIStorage (#3210)
* Add ERC721URIStorage-like extension for ERC1155

* Add tests for ERC1155URIStorage extension

* add changelog entry for ERC721URIStorage

* Fix linting errors

* Emit URI event in ERC1155URIStorage

* Remove exists check and ERC1155Supply dependency

* Fix lint error

* Overwrite ERC1155 uri method

* Update ERC1155URIStorage specs

* Fix ERC1155URIStorageMock

* Rename _setTokenURI => _setURI in ERC1155URIStorage

* Add baseURI to ERC1155URIStorage

* Move super.uri call in ERC1155URIStorage

* Clearify ERC1155URIStorage description in change log

* reorder changelog & add documentation

* improve documentation

* fix typo

Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2022-03-29 09:15:43 +00:00
ae270b0d89 Align data location of interface with implementation (#3295)
Co-authored-by: chriseth <chris@ethereum.org>
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2022-03-28 17:48:28 -03:00
e029096ca4 Add Initialized event (#3294)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2022-03-28 15:36:30 -03:00
76eee35971 Improve revert message in Governor (#3275)
* Fixed typo

* fix testing and adding changelog

Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2022-03-25 11:02:15 +01:00
bfff03c0d2 add missing PR link in Changelog 2022-03-25 10:36:08 +01:00
76fca3aec8 Add ERC721 and ERC1155 receiver support in Governor, Timelock (#3230)
* add ERC721 and ERC1155 receiver support in Governor, Timelock and MinimalForwarder (#3174)

* revert the nft receiver hooks from MinimalForwarder and linting updates

* add ERC165 support & simplify test

* add changelog entry

Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2022-03-24 01:25:00 +01:00
74c9130a59 typo fixed (#3264) 2022-03-23 15:31:25 +01:00
15d5174139 Fix minor typo in CONTRIBUTING.md. (#3284) 2022-03-23 09:21:33 +01:00
05077f70f1 Update actions/cache action to v3 (#3277)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-03-22 18:47:06 -03:00
faf5820f03 Fix many spelling errors (#3274) 2022-03-22 18:16:20 -03:00
0eba5112c8 Allow the re-initialization of contracts (#3232)
* allow re-initialization of contracts

* fix lint

* use a private function to avoid code duplication

* use oz-retyped-from syntax

* add documentation

* rephrase

* documentation

* Update contracts/proxy/utils/Initializable.sol

Co-authored-by: Francisco Giordano <frangio.1@gmail.com>

* reinitialize test

* lint

* typos and style

* add note about relation between initializer and reinitializer

* lint

* set _initializing in the modifier

* remove unnecessary variable set

* rename _preventInitialize -> _disableInitializers

* rename preventInitialize -> disableInitializers

* test nested reinitializers in reverse order

* docs typos and style

* edit docs for consistency between initializer and reinitializer

Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2022-03-22 18:06:29 +00:00
b13bdb0249 Add bytes32 to bytes32 enumerable map (#3192)
* feat(enumerablemap): add bytes32 to bytes32 map

* chore(changelog): edit CHANGELOG

* feat(enumerable map): edit struct visibility
2022-03-22 16:36:29 +01:00
c028c56965 Add changelog entry for #3259 (#3281)
* improve wrapper decimal support

* Update test/token/ERC20/extensions/ERC20Wrapper.test.js

Co-authored-by: Francisco Giordano <frangio.1@gmail.com>

* add changelog entry

Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2022-03-22 16:11:20 +01:00
98716177ae Inherit ERC20Wrapper decimals from the underlying (#3259) 2022-03-22 09:55:49 +01:00
52eeebecda spelling fix 2022-03-14 12:54:08 +01:00
6a5bbfc4cb Refactor governor testing (#3194)
* starting a governor test refactor

* improve governor tests

* refactor compatibility tests using the governor helper

* improve governor helper

* improve governor helper

* refactor governor tests

* refactor testing

* fix testing (still TODO)

* fix tests

* fix tests

* fix spelling

* use different instances of GovernorHelper

* add vote with params support

* coverage

* simplify ERC165 helper

* remove unused proposal argument

* refactor setProposal

* lint

* refactor setProposal return values

* add a data default value

* improve proposal reconstruction and storage in helper

* proposal object refactoring

* lint

Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2022-03-11 09:30:30 +01:00
8372b4f923 Update Hardhat to latest (#3260) 2022-03-10 18:40:50 -03:00
cc1c18098c Replace immutable with constant for _PERMIT_TYPEHASH (#3196)
* replace `immutable` with `constant` for _PERMIT_TYPEHASH

This commit is related to the following issue discussion: https://github.com/OpenZeppelin/contracts-wizard/issues/89#issuecomment-1042391318

Since Solidity version `0.6.12` the `keccak256` of string literals is treated specially and the hash is evaluated at compile time. Since the OpenZeppelin Wizard also uses `constant` for OpenZeppelin's AccessControl's roles declarations, it's good practice to make this consistent.

* Update CHANGELOG

* fix: ensure transpiler compatibility

* fix: fixing var-name-mixedcase

* prettier & lint check

Signed-off-by: Pascal Marco Caversaccio <pascal.caversaccio@hotmail.ch>

Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2022-03-09 17:38:29 +01:00
c72281ea45 docs(erc1155): correct ERC1155Holder.sol import (#3250) 2022-03-09 09:32:46 +01:00
f2a311dc4a Make Votes._getVotingUnits view (#3225)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2022-03-08 21:39:53 +00:00
8b162e39b5 Add a canceller role to the TimelockController (#3165)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2022-03-08 18:28:20 -03:00
62eb4568be Optimize ERC721 _isApprovedOrOwner function (#3248) 2022-03-08 18:18:56 -03:00
f8bfa560e9 Use _spendAllowance in ERC20FlashMint (#3226)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2022-03-08 19:34:24 +00:00
212221d6ff Add mention of OpenZeppelin Defender in readme 2022-03-08 16:24:50 -03:00
Ben
c239e1af8d Fix typo (#3241)
Fix camelcase of 'lastvalue' to 'lastValue'
2022-03-04 15:36:19 -03:00
f590fcdfe9 Fix typo in Proxy.sol 2022-03-04 10:40:20 -03:00
9bded169e8 Update lockfile (#3229)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-03-02 16:47:58 -03:00
dc739dcbe3 Update actions/checkout action to v3 (#3234)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-03-01 20:02:06 -03:00
fd07cc6290 Extend Governor with parameterized votes (#3043)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2022-03-01 17:55:20 -03:00
f9d9279320 Update actions/setup-node action to v3 (#3220)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-03-01 12:54:10 -03:00
abdb20a6bd Change dependency source to work around Truffle limitation (#3218) 2022-02-25 14:49:58 +00:00
3e74681e77 Read allowance from overridable function in increase/decrease (#3213) 2022-02-23 11:28:44 -03:00
f6b614a7c5 Perform ERC1155.afterTokenTransfer hooks before acceptance check (#3215) 2022-02-22 18:24:03 -03:00
458697be32 Fix typos (#3207)
Fix misspelling in ERC20 contract comments.
2022-02-22 18:26:18 +01:00
af7ec04b78 Improve security of the onlyGovernance modifier (#3147)
* add a protection mechanism to prevent relaying transaction that are not
part of an execute operation

* more accurate relay authorization

* force reset the relay authorizations after executions

* refactor of the onlyGovernor modifier

* only whitelist when executor is not governor itself

* fix lint

* add private function for call permission management

* use deque

* fix lint

* remove unecessary dependency

* remove unecessary dependency

* comment rephrasing

* Update contracts/governance/Governor.sol

Co-authored-by: Francisco Giordano <frangio.1@gmail.com>

* cache keccak256(_msgData())

* use Context

* lint

* conditionnal clear

* add test to cover queue.clear()

* lint

* write more extended docs for onlyGovernance

* add changelog entry

Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2022-02-18 21:03:03 +01:00
eae2384178 Add git paragraph to installation section (#3197) 2022-02-18 10:09:07 +01:00
6db2d0ea39 Update dependency yargs to v17 (#3101)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-02-17 23:13:19 -03:00
3fe65ef467 Fix docs navigation 2022-02-16 18:50:54 -03:00
525a672862 Add missing docs about reverts in DoubleEndedQueue 2022-02-16 16:42:33 -03:00
aace774961 Add a double ended queue (#3153)
* add vector, lifo and fifo structures

* fix lint

* need more memory for coverage

* remove Vector wrappers and gas optimization

* refactor Vector testing

* revert package.json changes

* rename to DoubleEndedQueue

* rename and refactor

* refactor tests and expand coverage

* test for custom errors

* add changelog entry

* add docs

* add sample code and note about storage vs. memory

* add available since

* lint

* use underscore for struct members

* add struct documentation

* remove SafeCast in length

* rename i -> index and improve docs

Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2022-02-16 09:32:16 +01:00
6fec54f17f Update lockfile (#3193) 2022-02-15 23:03:33 -03:00
58f635312a Fix typo in CHANGELOG (#3191) 2022-02-15 11:27:08 +01:00
3dfc0a44f8 ERC1155 after token transfer hook (#3166)
* add Hooks _afterTokenTransfer

* avoid duplicate call to _asSingleton

* add changelog entry

* update changelog link to PR

* Update CHANGELOG.md

Co-authored-by: Francisco Giordano <frangio.1@gmail.com>

Co-authored-by: CryptoV8 <91189073+CryptoV8@users.noreply.github.com>
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2022-02-14 16:55:43 +01:00
be3c5ca504 clarify _spendAllowance natspec (#3188) 2022-02-13 14:48:45 +01:00
4cb0926f11 Fix grammar typo in doc (#3186)
Add missing verb "are".
2022-02-11 15:41:22 +01:00
5b6112000c Update lockfile (#3067)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-02-09 18:26:27 -03:00
afb20119b3 Release v4.5 2022-02-09 18:16:53 -03:00
718d0ba2a1 Update dependency simple-get to 2.8.2 [SECURITY] (#3181)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-02-09 13:28:01 -03:00
591e30b7b6 Update dependency node-fetch to 2.6.7 [SECURITY] (#3176)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-02-09 12:38:52 -03:00
24f561a9a1 Update dependency shelljs to 0.8.5 [SECURITY] (#3177)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-02-09 12:38:39 -03:00
32b4eee9a3 Update dependency follow-redirects to 1.14.7 [SECURITY] (#3175)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-02-09 12:30:55 -03:00
c5a6cae898 Add a _spendAllowance function to ERC20 & ERC777 (#3170) 2022-02-09 12:26:53 -03:00
63b466901f Rename some ERC20 parameters to match the standard document. (#3167)
* Renames `sender` to `source`.

The naming variable was incorrect.  The source of the funds is *not* necessarily (and in most cases isn't) the sender of the transaction.  Also, this code has a `msgSender` which further adds confusion.

* Changes to `from/to` instead of `source`.

* Function documentation matches new names

* Changed other instances of sender/recipient to from/to.

Also changed `msgSender` to `owner` in the approval related methods.

* apply changes to IERC20.sol + minor renaming in ERC20.sol

Co-authored-by: Daniel Von Fange <daniel@leancoder.com>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2022-02-08 00:05:29 +01:00
defcf20042 Simplify ERC721 example (#3115) 2022-02-04 18:47:06 -03:00
b119b564df Improve wording for forum link in new issue templates 2022-02-04 12:17:36 -03:00
28986d2f2e Start tokenId at zero in docs (#3162)
- Fixes #3123
2022-02-03 11:45:06 -03:00
85566faeb2 Improve documentation of various governance aspects (#3161)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2022-02-02 13:36:45 -03:00
bfd05d9646 Add "available since" on Base64.sol 2022-02-01 20:04:28 -03:00
574f3b89e1 Add proper revert message on overflow of totalSupply during burn (#3144) 2022-02-01 19:10:11 -03:00
ca755ce799 Add AddressToUintMap (#3150)
* add AddressToUintMap

* Update contracts/utils/structs/EnumerableMap.sol

Co-authored-by: Francisco Giordano <frangio.1@gmail.com>

* address comments

* lint code

* merge mocks into a single file

* add PR link to changelog entry

Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2022-02-01 17:37:32 +01:00
fc01c51c13 Simplify inheritance to avoid overrides 2022-01-31 22:05:20 -03:00
21c5d623d6 Update Copyright notice and include contributors 2022-01-31 17:33:42 -03:00
4f8af2dceb Add test and docs describing a misuse of MerkleProof (#3090)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2022-01-31 12:10:13 -03:00
a81b07ce91 Fix typo in retrieval of onERC721Received selector (#3151) 2022-01-31 10:47:56 +01:00
f55d2716a8 Add function documentation for SignatureChecker. 2022-01-28 22:44:32 -03:00
ae54e6de1d Fix typo in CHANGELOG (#3138)
Remove repeated word "the".
2022-01-27 09:59:11 +01:00
fb950c6166 Add a virtual _checkRole(bytes32) internal function to AccessControl (#3137)
* add a virtual _onlyRole(bytes32) modifier

* _onlyRole(role) → _checkRole(role)

* update doc
2022-01-26 21:36:10 +01:00
6fb1e843cf Make royaltyInfo(uint256 _tokenId, uint256 _salePrice) virtual (#3133)
* Make royaltyInfo(uint256 _tokenId, uint256 _salePrice) virtual

Should be cherrypicked in release 4.5

* fix lint
2022-01-26 17:35:05 +01:00
78deae5a76 Fix typo in CHANGELOG (#3135)
Change `ERC2891` > `ERC2981`.
2022-01-26 09:30:53 +01:00
e298476a90 Simplification of ERC777's transfer & transferFrom by using _send (#3128)
* Update ERC777.sol

* Update ERC777.sol

* Update ERC777.sol

* Update ERC777.sol

* fix revert reasons

Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2022-01-25 14:56:13 +01:00
a5e042cedf Fix use of ^ (xor) instead of ** (power) (#3130) 2022-01-24 18:55:12 -03:00
d57593c148 Lint 2022-01-24 00:42:17 -03:00
7c47ac7193 Add workflow to generate and update docs branches 2022-01-23 19:19:38 -03:00
8f70c8867e Fix typo in ERC721.sol (#3127) 2022-01-23 11:05:41 +01:00
b3b83b558e Add Slither reentrancy check in CI (#3047)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2022-01-21 00:15:54 +00:00
783ac759a9 upgrade solidity-coverage to 0.7.18 to support ERC165 coverage (#3117) 2022-01-18 00:05:17 -03:00
25eeb80b18 Fix broken pull request links in change log (#3114)
Co-authored-by: Han Lin Yap <codler@users.noreply.github.com>
2022-01-16 01:02:27 +01:00
3eb2d43b06 Move abs(int256) from Math to SafeMath (#3110)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2022-01-14 22:27:04 +00:00
ecae978cb5 Make more functions virtual (#3078)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2022-01-13 18:56:36 +00:00
e192fac276 Simplify UUPSUpgradeable along the lines of ERC1822 (#3021)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2022-01-13 15:46:55 -03:00
3458c1e854 Add SignedMath with math utilities for signed integers (#2686)
* add contract and tests

* avoid implicit cast

* add test cases

* fix test names

* modify avarage and add tests

* improve signed average formula

* fix lint

* better average formula

* refactor signed average testing

* add doc and changelog entry

* Update contracts/utils/math/SignedMath.sol

Co-authored-by: Francisco Giordano <frangio.1@gmail.com>

* remove ceilDiv

Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2022-01-12 20:08:59 +01:00
dee772a55f Add documentation to TokenTimelock 2022-01-12 11:51:09 -03:00
1051db3802 Use abi.encodePacked instead of bytes.concat 2022-01-11 16:51:55 -03:00
a8f35b6c25 Make script executable 2022-01-11 16:41:59 -03:00
c366de3626 Fix encoding of signature+calldata in GovernorCompatibilityBravo (#3100)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2022-01-11 15:45:06 -03:00
80d8da0564 Do not reduce approval on transferFrom if current allowance is type(uint256).max (#3085)
* add feature request #3084

* Update contracts/token/ERC20/ERC20.sol

Co-authored-by: Francisco Giordano <frangio.1@gmail.com>

* Add changelog note

* add documentation

* test unlimitted allowance and add ERC777 unlimitted allowance

* reference PR in changelog

* documentation IERC20 -> ERC20

* use asciidoc note syntax

* use asciidoc note syntax

* typo

* typos

Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2022-01-11 00:08:33 +01:00
fd7c4ba8f0 Update pragma in utils/Address.sol to 0.8.1 (#3098) 2022-01-10 19:47:43 -03:00
8dd744fc18 Add missing reference to PR in changelog 2022-01-09 17:50:05 +01:00
828fe365ee Normalize return variable names in IERC721Enumerable (#3079)
* Name missing return variable in IERC721Enumerable

For consistency among all functions.

* remove return variable names
2022-01-07 15:39:46 +01:00
a65c03bc0d Implement Non Fungible Token Royalty (EIP2981) (#3012)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2022-01-06 19:34:57 -03:00
1e815f3308 Restructure intro to ERC721 contract docs 2022-01-06 17:45:21 -03:00
d74605641c Fix typos (#3075)
Correct a couple of misspellings.
2022-01-05 10:13:30 +01:00
a9f994f063 Reduce ERC20 allowance before triggering transfer (#3056)
* Reduce ERC20 allowance before triggering transfer

* adapt ERC777 to reduce allowance before transfer

* fix test for ERC777

* use smaller number to reduce balance

* simplify test description

* don't use deprecated expectEvents.inLogs

* fix test

Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2021-12-31 09:17:12 +00:00
ef0273fde1 Add Base64 library to utils (#2884)
* Add Base64 library to utils

* Fix typo on Base64 padding

* Added documentation for Base64 and references from ERC1155 and ERC721

* Updated Changelog

* Fix typo in utilities doc

* use mstore8 to improve memory accesses

* use shorter strings with encodePacked

* do not use using-for syntax, for clarity

Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-12-29 20:41:20 +01:00
da3a9ae18b Avoid assembly in signature V and S decomposition (#3060)
* Avoid assembly in signature V and S decomposition

* Update ECDSA.sol
2021-12-29 16:22:39 +01:00
e3391cd65f Fix typo (#3058) 2021-12-28 21:52:00 -03:00
e9e177f53b Fix ERC2771ContextMock for upgradeable contracts 2021-12-27 21:26:47 -03:00
fe38eae6cd Re-enable immutable forwarder in ERC2771Context (#2917)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-12-27 21:21:56 -03:00
915ca181ba Add Certora's Governance verification rules (#2997)
Co-authored-by: Shelly Grossman <shelly@certora.com>
Co-authored-by: Aleksander Kryukov <58052996+RedLikeRosesss@users.noreply.github.com>
Co-authored-by: Michael M <91594326+MichaelMorami@users.noreply.github.com>
Co-authored-by: Aleksander Kryukov <firealexkryukov@gmail.com>
2021-12-27 19:11:59 -03:00
a0a8bbb57f Remove note about enabling self-delegation 2021-12-27 12:24:37 -03:00
1ffcb10bd2 Change release script to only update version comment for changed files (#3033)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-12-22 19:21:45 -03:00
10c8fcd3b8 Use invalid opcode to consume all gas in MinimalForwarder (#3035) 2021-12-22 19:01:24 -03:00
cafd900ad6 Fix memory leak in merkle verification (#3039) 2021-12-21 17:01:28 -03:00
e667ec9533 Add Governor Timelock Control Warning (#3032)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-12-20 17:00:13 -03:00
5ac4d93ae3 Add missing letter (#3034) 2021-12-17 15:46:45 +00:00
0550d13aee Add ERC721 import in tutorial 2021-12-16 18:29:31 -03:00
d95cdaae8e Replace excodesize assembly with address.code.length (https://github.com/ethereum/solidity/releases/tag/v0.8.1) (#3025) 2021-12-15 18:54:10 +01:00
4a9cc8b491 Merge branch 'release-v4.4' 2021-12-14 13:34:03 -03:00
6bd6b76d11 4.4.1 2021-12-14 13:14:39 -03:00
13a6ec753a Remove bad date from changelog 2021-12-14 13:14:21 -03:00
bda61cd5e5 Fix typo (#3016) 2021-12-12 22:55:19 +01:00
b42b05311b Add ERC721Votes for NFT-based governance (#2944)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
Co-authored-by: Hadrien Croubois <hadrien@openzeppelin.com>
2021-12-10 18:58:45 -03:00
553c8fdec7 Update initializer modifier to prevent reentrancy during initialization (#3006)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
(cherry picked from commit 08840b9f8c)
2021-12-10 13:10:17 -03:00
9a7e4a0112 Remove trailing whitespace 2021-12-10 13:09:46 -03:00
e141d8917a Create v4.4.1 section in changelog 2021-12-10 13:04:03 -03:00
08840b9f8c Update initializer modifier to prevent reentrancy during initialization (#3006)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-12-10 13:02:35 -03:00
0c858e2071 Improve revert reason in ERC721 (#2975)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-12-09 23:42:18 +00:00
4625192940 Fix changelog entry for GovernorPreventLateQuorum 2021-12-09 20:32:53 -03:00
2a09e50d09 Update lockfile (#2993)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-12-08 20:17:11 -03:00
04109f8bee Address: explain dangers of isContract (#2994)
Co-authored-by: Ivo Georgiev <ivo@strem.io>
2021-12-08 20:10:40 -03:00
8ef7655e7b Fix a typo in erc20-supply.adoc (#3005)
Fix a typo
2021-12-07 13:41:21 +01:00
a05312f1b7 fix changelog structure 2021-12-01 18:20:42 +01:00
abf6024faf Add a governor module to protect against late quorum (#2973)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-12-01 13:56:31 -03:00
6089f11c2f Add a relay mechanism in the governor (#2926)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-11-30 17:19:20 -03:00
3536587665 Fix typo (#2992) 2021-11-30 17:15:29 +01:00
7d17acfb2f Merge branch 'release-v4.4' 2021-11-25 16:56:07 -03:00
4961a51cc7 4.4.0 2021-11-25 16:35:37 -03:00
94a0b8f573 Make VestingWallet token event argument indexed (#2988)
(cherry picked from commit 0859c70936)
2021-11-25 16:03:00 -03:00
0859c70936 Make VestingWallet token event argument indexed (#2988) 2021-11-25 14:38:18 -03:00
6481b05e4f Add changelog entry for deprecation of presets 2021-11-25 14:23:30 -03:00
c739d1976b Update security email domain and Immunefi text 2021-11-25 11:05:11 -03:00
f6db5c1f30 A function which returns the absolute value of a signed value (#2984)
* Add a function which returns the absolute (and obviously unsigned) value of a signed value.

* add changelog entry and fix lint

Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2021-11-24 14:09:05 +01:00
2f2604d673 Deprecate presets in favor of Wizard (#2986) 2021-11-24 10:14:14 +01:00
0413d58860 add bug bounty info
(cherry picked from commit 86bd4d7389)
2021-11-22 15:06:10 +01:00
86bd4d7389 add bug bounty info 2021-11-22 15:05:21 +01:00
52d42d6e03 Improve docs wording on constructors and proxies (#2935) 2021-11-19 15:08:56 -03:00
4c8642b70a Update lockfile (#2932)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-11-18 11:29:08 -03:00
a57e638f57 Improve GovernorTimelockControl.state() to detect direct cancel (#2977) 2021-11-18 09:53:05 -03:00
a4cee9ed37 make setters in GovernorSettings virtual
(cherry picked from commit 6e5bf05211)
2021-11-18 10:17:31 +01:00
6e5bf05211 make setters in GovernorSettings virtual 2021-11-18 10:15:48 +01:00
65ef662a2b 4.4.0-rc.1 2021-11-16 10:23:53 -03:00
8b8ee57a1a Make quorum behavior match GovernorBravo (#2974)
* Make quorum inclusive minimum in GovernorCompatibilityBravo

* add PR link

(cherry picked from commit a94cf0509f)
2021-11-16 10:08:08 -03:00
a94cf0509f Make quorum behavior match GovernorBravo (#2974)
* Make quorum inclusive minimum in GovernorCompatibilityBravo

* add PR link
2021-11-16 13:24:22 +01:00
cf6e32fc54 Fix Timelock Controller description typo (#2960)
(cherry picked from commit e63b09c9ad)
2021-11-15 18:08:07 -03:00
3a3e643eb9 Fix typo and reframed a sentence (#2951)
Corrected spelling for a word on line number 3 and sentence reframed on line number 309

(cherry picked from commit 2b4e023180)
2021-11-15 18:08:07 -03:00
462d6fa2b2 Grammar correction in utilities doc (#2952)
Fix grammar in a sentence

(cherry picked from commit b5daea6d5f)
2021-11-15 18:08:07 -03:00
70138680cf Fix ERC1155 supply tracking (#2956)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
(cherry picked from commit 4088540aef)
2021-11-15 18:07:21 -03:00
e63b09c9ad Fix Timelock Controller description typo (#2960) 2021-11-11 14:49:53 +01:00
3db4393b58 Fix link to #2849 in changelog
(cherry picked from commit 57630d2a64)
2021-11-09 15:40:19 -03:00
57630d2a64 Fix link to #2849 in changelog 2021-11-09 15:39:58 -03:00
2b4e023180 Fix typo and reframed a sentence (#2951)
Corrected spelling for a word on line number 3 and sentence reframed on line number 309
2021-11-08 23:05:32 +01:00
b5daea6d5f Grammar correction in utilities doc (#2952)
Fix grammar in a sentence
2021-11-08 23:04:44 +01:00
4088540aef Fix ERC1155 supply tracking (#2956)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-11-08 18:47:21 -03:00
09e5888ca8 fix typos in GovernorSettings (#2957)
(cherry picked from commit ce51655c81)
Signed-off-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2021-11-08 17:26:05 +01:00
ce51655c81 fix typos in GovernorSettings (#2957) 2021-11-08 17:23:23 +01:00
6dab43c3a9 AccessControlEnumerable: Hook into the internal function (#2946)
* AccessControlEnumerable: Hook into the internal function

* add changelog entry

(cherry picked from commit 7579828180)
2021-11-08 12:23:37 -03:00
7579828180 AccessControlEnumerable: Hook into the internal function (#2946)
* AccessControlEnumerable: Hook into the internal function

* add changelog entry
2021-11-08 12:22:13 -03:00
342265d290 Update governance.adoc (#2948) 2021-11-06 22:29:51 +01:00
5cdf2a8fdf Fix markdown rendering in utilities.adoc (#2934) 2021-11-04 19:08:23 -03:00
fbfe19d6db Improve documentation around ERC1155 2021-11-03 10:35:42 -03:00
ee14987721 Improve formatting of docs for TimelockController roles 2021-11-01 17:32:00 -03:00
5a398018ee Add missing newline in docs 2021-11-01 17:26:37 -03:00
a73ad8cc8c Fix update-comment.js 2021-11-01 17:26:27 -03:00
46ce0cfa33 Update index.adoc (#2922)
Fixed typo
2021-10-28 17:44:07 -03:00
a51e181e3b Fix unbounded recursion in ERC20WithAutoMinerReward example 2021-10-28 13:14:21 -03:00
db58acead1 Fix changelog links
(cherry picked from commit 2b046d79e1)
2021-10-27 18:19:35 -03:00
2b046d79e1 Fix changelog links 2021-10-27 18:14:06 -03:00
a56258945a Add mention of Solidity policy in our own security policy 2021-10-27 11:19:54 -03:00
0a87a4e75b 4.4.0-rc.0 2021-10-20 17:21:04 -03:00
7dcc7b372f Fix update-comment.js 2021-10-20 17:20:49 -03:00
9e13852135 Fix typo (#2919) 2021-10-20 08:33:08 +02:00
c9bdb1f0ae Add a comment documenting the package version being used (#2918) 2021-10-19 19:18:19 -03:00
7fe5326c2d Add changelog entries for #2849 2021-10-19 15:37:11 -03:00
b12af48a7d Add Governor module for governance-settable parameters (#2904)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-10-19 15:33:02 -03:00
0db97c9681 updated docs for governor votes, 0 is against not for (#2915)
* updated docs for governor votes, 0 is against not for

* Revert unecessary changelog entry

Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2021-10-18 18:41:02 +02:00
88e4b69bfb Add a VestingWallet (#2748)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-10-18 12:47:37 -03:00
e6f26b46fc Fix code sample in utilities.adoc 2021-10-14 23:31:24 -03:00
7006e4e3e6 Remove invalid parameters in MerkleProof tests (#2912) 2021-10-14 22:02:49 -03:00
d244b81972 Add a MerkleProof.processProof utility function (#2841)
* Add a MerkleProof.processProof utility function

* Add changelog entry

* fix lint

* return index when processingProof

* fix lint

* fix test

* Apply suggestions from code review

Co-authored-by: Francisco Giordano <frangio.1@gmail.com>

* improve documentation

* Apply suggestions from code review

Co-authored-by: Francisco Giordano <frangio.1@gmail.com>

* remove index - see discussion in the PR

* update changelog

Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-10-14 11:50:35 +02:00
5b28259dac #890: Add ECDSA.toEthSignedMessageHash(bytes) for abritrary length message hashing (#2865)
* #890: Add ECDSA#toEthSignedMessage for bytes type

* refactor

* add test, refactor

* select overloaded function explicitly

* use short test message string

* add changelog entry

Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2021-10-11 14:59:30 +02:00
efb5b0a28f Extend PaymentSplitter to support ERC20 tokens (#2858)
* Add MultiPaymentSplitter

with ERC20 support on top of the existing PaymentSplitter

* consistency and linting

* Add MultiPaymentSplitter tests

* fix lint

* add changelog entry

* add MultiPaymentSplitter to documentation

* rework PaymentSplitter to include ERC20 support by default

* remove test file for MultiPaymentSplitter

* fix lint

* completelly split erc20 and token tracking

* address some PR comments

* add notice about rebasing tokens

* fix minor error in tests

Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-10-07 16:17:10 +02:00
abeb0fbf5c Delay the Pending state until strictly after proposal.voteStart (#2892)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-10-06 19:29:57 -03:00
caba6b93ef Add an internal _setApprovalForAll function (721 & 1155) (#2834)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-10-06 13:48:18 +00:00
e2fa301bfb Improve parameters naming and remove unecessary returns (#2891) 2021-10-06 10:34:27 -03:00
29eeb2828e Fix EIP712 for delegatecalls (#2852)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-10-06 10:24:46 -03:00
75d422feca Update lockfile (#2842)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-10-05 22:36:25 -03:00
6f23efa970 Review wording of SafeMath need in Solidity 0.8 (#2898) 2021-10-05 16:12:51 +02:00
1b27c13096 Fix typo in doc of SignatureChecker (#2881) 2021-09-24 13:27:53 +00:00
f77fd4667e fix typo in GovernorCountingSimple (#2879)
Co-authored-by: Joey Santoro <joseph.santoro@duke.edu>
2021-09-23 08:37:02 +00:00
6af4ed6169 revokeRole spec mismatch (#2872)
revokeRole emits {RoleRevoked} event if `account` has been revoked `role`

Greetings from ChainSecurity!
2021-09-21 10:16:14 +02:00
01f2ff1ba1 Allow Governor + CompoundTimelock to manage native tokens (eth) in and out of the timelock contract. (#2849)
* Change GovernorTimelockCompound to support ETH in Timelock

* refactor compound timelock module

* Allow governor to receive ETH is executor == address(this)
2021-09-17 16:57:00 +02:00
296223f876 Merge branch 'release-v4.3' 2021-09-15 10:41:50 -03:00
0c4de6721d 4.3.2 2021-09-14 18:06:39 -03:00
024cc50df4 Restrict upgrade to proxy context in UUPSUpgradeable
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
(cherry picked from commit 6241995ad3)
2021-09-14 18:06:00 -03:00
6241995ad3 Restrict upgrade to proxy context in UUPSUpgradeable
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-09-14 17:33:17 -03:00
d02cc020e8 Remove deprecated prepublish script 2021-09-14 17:29:19 -03:00
bc5c8e2c9c Improve wording of recommendation in Initializable 2021-09-14 16:57:26 -03:00
7237b1672e Make some private functions internal to allow the developpement of "withSignature" functions (like permit) (#2568)
* add internal _setOwner in Ownable

* address issues raised in #2567

* updte changelog entry

* improve changelog and documentation

* rephrasing doc

* add cahngelog improvement lost in merge

* notify deprecation of _setupRole in changelog

* Demote caution to note

* Update CHANGELOG.md

Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-09-14 09:03:47 +02:00
5e34a84d4a Fix ERC721URIStorage description in docs 2021-09-13 18:32:43 -03:00
38448c104a Add recommendation to initialize all contracts that use Initializable 2021-09-13 18:08:50 -03:00
8a5b67fb79 Add notice about location of funds in Governor+Timelock setup (#2855) 2021-09-13 17:43:49 -03:00
aefcb3e8aa Bump tar from 4.4.17 to 4.4.19 (#2843)
Bumps [tar](https://github.com/npm/node-tar) from 4.4.17 to 4.4.19.
- [Release notes](https://github.com/npm/node-tar/releases)
- [Changelog](https://github.com/npm/node-tar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-tar/compare/v4.4.17...v4.4.19)

---
updated-dependencies:
- dependency-name: tar
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-01 14:28:28 +02:00
fb36326a58 Support london with coverage using initialBaseFee = 0 (#2838) 2021-08-30 16:42:22 -03:00
9b4326d91e Fixed a typo (#2835) 2021-08-30 15:20:35 +02:00
cec4f2ef57 Add additional isOperationReady check in TimelockController 2021-08-24 16:23:12 -03:00
52188a2127 Add changelog entry for 3.4.1 2021-08-24 16:09:25 -03:00
83644fdb6a Remove unused SafeMath.sol import (#2823) 2021-08-20 21:26:41 +00:00
56d4063e92 Add comment about optimizer in GovernorCompatibilityBravo 2021-08-20 12:38:44 -03:00
1baa009266 Merge branch 'release-v4.3' 2021-08-17 22:39:45 -03:00
4ac1070cd3 Improve Governor documentation 2021-08-17 11:20:10 -03:00
38c1dd098c Remove duplicate lines from changelog 2021-08-16 16:54:41 -03:00
b174f067df Fix typo casted -> cast 2021-08-13 18:44:44 -03:00
9253c614d2 Fix typo casted -> cast 2021-08-13 18:16:38 -03:00
049ff9a3c7 add workflow to trigger transpilation to upgradeable contracts 2021-08-13 18:15:37 -03:00
73425c22d8 Update lockfile (#2787)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-08-12 14:35:20 +00:00
832ff3b9f9 Fix docs function for ECDSA (#2819) 2021-08-10 17:37:50 -03:00
740 changed files with 55485 additions and 42945 deletions

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': major
---
`ERC1155Receiver`: Removed in favor of `ERC1155Holder`.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': major
---
`TimelockController`: Changed the role architecture to use `DEFAULT_ADMIN_ROLE` as the admin for all roles, instead of the bespoke `TIMELOCK_ADMIN_ROLE` that was used previously. This aligns with the general recommendation for `AccessControl` and makes the addition of new roles easier. Accordingly, the `admin` parameter and timelock will now be granted `DEFAULT_ADMIN_ROLE` instead of `TIMELOCK_ADMIN_ROLE`. ([#3799](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/3799))

View File

@ -0,0 +1,4 @@
---
'openzeppelin-solidity': major
---
Use `abi.encodeCall` in place of `abi.encodeWithSelector` and `abi.encodeWithSignature` for improved type-checking of parameters

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': major
---
`ERC2771Forwarder`: Added `deadline` for expiring transactions, batching, and more secure handling of `msg.value`.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': minor
---
`Math`: Make `ceilDiv` to revert on 0 division even if the numerator is 0

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': major
---
`Governor`: Refactored internals to implement common queuing logic in the core module of the Governor. Added `queue` and `_queueOperations` functions that act at different levels. Modules that implement queuing via timelocks are expected to override `_queueOperations` to implement the timelock-specific logic. Added `_executeOperations` as the equivalent for execution.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': major
---
`ERC20`, `ERC721`, `ERC1155`: Deleted `_beforeTokenTransfer` and `_afterTokenTransfer` hooks, added a new internal `_update` function for customizations, and refactored all extensions using those hooks to use `_update` instead. ([#3838](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/3838), [#3876](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/3876), [#4377](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4377))

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': major
---
`ERC1155Supply`: add a `totalSupply()` function that returns the total amount of token circulating, this change will restrict the total tokens minted across all ids to 2\*\*256-1 .

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': patch
---
`Ownable`: Prevent using address(0) as the initial owner.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': major
---
`Ownable`: Add an `initialOwner` parameter to the constructor, making the ownership initialization explicit.

12
.changeset/config.json Normal file
View File

@ -0,0 +1,12 @@
{
"$schema": "https://unpkg.com/@changesets/config@2.3.0/schema.json",
"changelog": [
"@changesets/changelog-github",
{
"repo": "OpenZeppelin/openzeppelin-contracts"
}
],
"commit": false,
"access": "public",
"baseBranch": "master"
}

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': minor
---
`Proxy`: Removed redundant `receive` function.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': patch
---
Optimize `Strings.equal`

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': major
---
`ERC721`: `_approve` no longer allows approving the owner of the tokenId. `_setApprovalForAll` no longer allows setting address(0) as an operator.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': major
---
`ERC721URIStorage`: Allow setting the token URI prior to minting.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': major
---
`UUPSUpgradeable`, `TransparentUpgradeableProxy` and `ProxyAdmin`: Removed `upgradeTo` and `upgrade` functions, and made `upgradeToAndCall` and `upgradeAndCall` ignore the data argument if it is empty. It is no longer possible to invoke the receive function (or send value with empty data) along with an upgrade.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': major
---
`ERC721URIStorage`, `ERC721Royalty`: Stop resetting token-specific URI and royalties when burning.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': major
---
`Address`: Removed the ability to customize error messages. A common custom error is always used if the underlying revert reason cannot be bubbled up.

View File

@ -0,0 +1,7 @@
---
'openzeppelin-solidity': minor
---
Replace some uses of `abi.encodePacked` with clearer alternatives (e.g. `bytes.concat`, `string.concat`). (#4504)[https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4504]
pr: #4296

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': minor
---
`Arrays`: Optimize `findUpperBound` by removing redundant SLOAD.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': patch
---
`ECDSA`: Use unchecked arithmetic for the `tryRecover` function that receives the `r` and `vs` short-signature fields separately.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': major
---
`Checkpoints`: library moved from `utils` to `utils/structs`

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': major
---
`SafeERC20`: Removed `safePermit` in favor of documentation-only `permit` recommendations.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': major
---
`Governor`: Optimized use of storage for proposal data

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': major
---
`ERC1967Utils`: Refactor the `ERC1967Upgrade` abstract contract as a library.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': major
---
`TransparentUpgradeableProxy`: Admin is now stored in an immutable variable (set during construction) to avoid unnecessary storage reads on every proxy call. This removed the ability to ever change the admin. Transfer of the upgrade capability is exclusively handled through the ownership of the `ProxyAdmin`.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': major
---
`VestingWallet`: Use `Ownable` instead of an immutable `beneficiary`.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': major
---
`ERC20`: Remove `Approval` event previously emitted in `transferFrom` to indicate that part of the allowance was consumed. With this change, allowances are no longer reconstructible from events. See the code for guidelines on how to re-enable this event if needed.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': major
---
Move the logic to validate ERC-1822 during an upgrade from `ERC1967Utils` to `UUPSUpgradeable`.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': patch
---
`VestingWallet`: Fix revert during 1 second time window when duration is 0.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': minor
---
`Arrays`: Add `unsafeMemoryAccess` helpers to read from a memory array without checking the length.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': major
---
`MessageHashUtils`: Add a new library for creating message digest to be used along with signing or recovery such as ECDSA or ERC-1271. These functions are moved from the `ECDSA` library.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': minor
---
`GovernorTimelockControl`: Clean up timelock id on execution for gas refund.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': patch
---
`MerkleProof`: Use custom error to report invalid multiproof instead of reverting with overflow panic.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': minor
---
`Initializable`: Use intermediate variables to improve readability.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': minor
---
`EIP712`: Add internal getters for the name and version strings

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': minor
---
`TimelockController`: Add a state getter that returns an `OperationState` enum.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': major
---
Replace revert strings and require statements with custom errors.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': major
---
`Nonces`: Added a new contract to keep track of user nonces. Used for signatures in `ERC20Permit`, `ERC20Votes`, and `ERC721Votes`. ([#3816](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/3816))

View File

@ -0,0 +1,6 @@
---
'openzeppelin-solidity': patch
---
`Governor`: Add validation in ERC1155 and ERC721 receiver hooks to ensure Governor is the executor.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': major
---
Switched to using explicit Solidity import statements. Some previously available symbols may now have to be separately imported.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': patch
---
`Math`: Optimized stack operations in `mulDiv`.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': major
---
`Governor`: Add support for casting votes with ERC-1271 signatures by using a `bytes memory signature` instead of `r`, `s` and `v` arguments in the `castVoteBySig` and `castVoteWithReasonAndParamsBySig` functions.

85
.changeset/pre.json Normal file
View File

@ -0,0 +1,85 @@
{
"mode": "pre",
"tag": "rc",
"initialVersions": {
"openzeppelin-solidity": "4.9.2"
},
"changesets": [
"afraid-walls-smell",
"angry-ties-switch",
"big-plums-cover",
"blue-horses-do",
"blue-scissors-design",
"brave-lobsters-punch",
"bright-tomatoes-sing",
"chilled-spiders-attack",
"clever-bats-kick",
"clever-pumas-beg",
"eight-peaches-guess",
"eighty-crabs-listen",
"eighty-lemons-shake",
"empty-cheetahs-hunt",
"empty-taxis-kiss",
"fair-humans-peel",
"fifty-owls-retire",
"flat-bottles-wonder",
"fluffy-countries-buy",
"four-adults-knock",
"fresh-birds-kiss",
"green-pumpkins-end",
"grumpy-bulldogs-call",
"grumpy-worms-tease",
"happy-falcons-walk",
"healthy-gorillas-applaud",
"heavy-drinks-fail",
"hip-beds-provide",
"hip-goats-fail",
"hot-coins-judge",
"hot-dingos-kiss",
"hot-plums-approve",
"large-humans-remain",
"lazy-rice-joke",
"little-falcons-build",
"loud-shrimps-play",
"lovely-geckos-hide",
"mean-walls-watch",
"mighty-donuts-smile",
"orange-apes-draw",
"pink-suns-mix",
"popular-deers-raise",
"proud-seals-complain",
"proud-spiders-attend",
"purple-cats-cheer",
"quiet-trainers-kick",
"red-dots-fold",
"rotten-insects-wash",
"serious-books-lie",
"short-eels-enjoy",
"silly-bees-beam",
"six-frogs-turn",
"sixty-numbers-reply",
"slimy-penguins-attack",
"smooth-books-wink",
"smooth-cougars-jump",
"spicy-sheep-eat",
"spotty-hotels-type",
"strong-poems-thank",
"swift-bags-divide",
"swift-numbers-cry",
"tasty-tomatoes-turn",
"tender-shirts-turn",
"thick-pumpkins-exercise",
"thin-camels-matter",
"tough-drinks-hammer",
"two-wasps-punch",
"unlucky-beans-obey",
"violet-dancers-cough",
"violet-melons-press",
"warm-guests-rule",
"wet-bears-heal",
"wild-beds-visit",
"wild-peas-remain",
"wild-rockets-rush",
"wild-windows-trade"
]
}

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': patch
---
`BeaconProxy`: Use an immutable variable to store the address of the beacon. It is no longer possible for a `BeaconProxy` to upgrade by changing to another beacon.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': major
---
`ERC721`: Renamed `_requireMinted` to `_requireOwned` and added a return value with the current owner. Implemented `ownerOf` in terms of `_requireOwned`.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': major
---
`GovernorTimelockControl`: Add the Governor instance address as part of the TimelockController operation `salt` to avoid operation id collisions between governors using the same TimelockController.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': minor
---
`AccessManager`: Added a new contract for managing access control of complex systems in a consolidated location.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': major
---
Overrides are now used internally for a number of functions that were previously hardcoded to their default implementation in certain locations: `ERC1155Supply.totalSupply`, `ERC721.ownerOf`, `ERC721.balanceOf` and `ERC721.totalSupply` in `ERC721Enumerable`, `ERC20.totalSupply` in `ERC20FlashMint`, and `ERC1967._getImplementation` in `ERC1967Proxy`.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': major
---
`ProxyAdmin`: Removed `getProxyAdmin` and `getProxyImplementation` getters. ([#3820](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/3820))

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': patch
---
`ERC1155`: Optimize array allocation.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': major
---
Bump minimum compiler version required to 0.8.20

View File

@ -0,0 +1,7 @@
---
'openzeppelin-solidity': major
---
`ERC20Votes`: Changed internal vote accounting to reusable `Votes` module previously used by `ERC721Votes`. Removed implicit `ERC20Permit` inheritance. Note that the `DOMAIN_SEPARATOR` getter was previously guaranteed to be available for `ERC20Votes` contracts, but is no longer available unless `ERC20Permit` is explicitly used; ERC-5267 support is included in `ERC20Votes` with `EIP712` and is recommended as an alternative.
pr: #3816

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': major
---
`ERC20`: Remove the non-standard `increaseAllowance` and `decreaseAllowance` functions.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': major
---
`Governor`: Add `voter` and `nonce` parameters in signed ballots, to avoid forging signatures for random addresses, prevent signature replay, and allow invalidating signatures. Add `voter` as a new parameter in the `castVoteBySig` and `castVoteWithReasonAndParamsBySig` functions.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': major
---
`TransparentUpgradeableProxy`: Removed `admin` and `implementation` getters, which were only callable by the proxy owner and thus not very useful. ([#3820](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/3820))

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': major
---
`ERC1155`: Remove check for address zero in `balanceOf`.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': major
---
`ReentrancyGuard`, `Pausable`: Moved to `utils` directory.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': major
---
`access`: Move `AccessControl` extensions to a dedicated directory.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': patch
---
`ERC721Consecutive`: Add a `_firstConsecutiveId` internal function that can be overridden to change the id of the first token minted through `_mintConsecutive`.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': major
---
`DoubleEndedQueue`: refactor internal structure to use `uint128` instead of `int128`. This has no effect on the library interface.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': patch
---
`Governor`: Add a mechanism to restrict the address of the proposer using a suffix in the description.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': minor
---
`Governor`, `Initializable`, and `UUPSUpgradeable`: Use internal functions in modifiers to optimize bytecode size.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': major
---
`Strings`: Rename `toString(int256)` to `toStringSigned(int256)`.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': major
---
`BeaconProxy`: Reject value in initialization unless a payable function is explicitly invoked.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': major
---
`Initializable`: Use the namespaced storage pattern to avoid putting critical variables in slot 0. Allow reinitializer versions greater than 256.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': minor
---
`ERC1155`: Bubble errors triggered in the `onERC1155Received` and `onERC1155BatchReceived` hooks.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': patch
---
`ERC1155`: Optimize array accesses by skipping bounds checking when unnecessary.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': minor
---
`AccessControl`: Add a boolean return value to the internal `_grantRole` and `_revokeRole` functions indicating whether the role was granted or revoked.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': patch
---
`ERC2771Context`: Return the forwarder address whenever the `msg.data` of a call originating from a trusted forwarder is not long enough to contain the request signer address (i.e. `msg.data.length` is less than 20 bytes), as specified by ERC-2771.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': minor
---
Remove the `override` specifier from functions that only override a single interface function.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': major
---
`GovernorTimelockAccess`: Added a module to connect a governor with an instance of `AccessManager`, allowing the governor to make calls that are delay-restricted by the manager using the normal `queue` workflow.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': patch
---
`ERC2771Context`: Prevent revert in `_msgData()` when a call originating from a trusted forwarder is not long enough to contain the request signer address (i.e. `msg.data.length` is less than 20 bytes). Return the full calldata in that case.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': major
---
Upgradeable contracts now use namespaced storage (EIP-7201).

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': major
---
`GovernorStorage`: Added a new governor extension that stores the proposal details in storage, with an interface that operates on `proposalId`, as well as proposal enumerability. This replaces the old `GovernorCompatibilityBravo` module.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': major
---
`Votes`: Use Trace208 for checkpoints. This enables EIP-6372 clock support for keys but reduces the max supported voting power to uint208.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': major
---
`Math`: Renamed members of `Rounding` enum, and added a new rounding mode for "away from zero".

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': major
---
`SafeERC20`: Refactor `safeDecreaseAllowance` and `safeIncreaseAllowance` to support USDT-like tokens.

View File

@ -6,6 +6,7 @@ coverage:
patch:
default:
target: 95%
only_pulls: true
project:
default:
threshold: 1%

View File

@ -17,5 +17,5 @@ indent_size = 4
[*.js]
indent_size = 2
[*.adoc]
[*.{adoc,md}]
max_line_length = 0

View File

@ -1,64 +1,20 @@
{
"root": true,
"extends" : [
"standard",
"plugin:promise/recommended",
],
"plugins": [
"mocha-no-only",
"promise",
"eslint:recommended",
"prettier",
],
"env": {
"browser" : true,
"node" : true,
"mocha" : true,
"jest" : true,
"es2022": true,
"browser": true,
"node": true,
"mocha": true,
},
"globals" : {
"artifacts": false,
"contract": false,
"assert": false,
"web3": false,
"usePlugin": false,
"extendEnvironment": false,
},
"rules": {
// Strict mode
"strict": ["error", "global"],
// Code style
"array-bracket-spacing": ["off"],
"camelcase": ["error", {"properties": "always"}],
"comma-dangle": ["error", "always-multiline"],
"comma-spacing": ["error", {"before": false, "after": true}],
"dot-notation": ["error", {"allowKeywords": true, "allowPattern": ""}],
"eol-last": ["error", "always"],
"eqeqeq": ["error", "smart"],
"generator-star-spacing": ["error", "before"],
"indent": ["error", 2],
"linebreak-style": ["error", "unix"],
"max-len": ["error", 120, 2],
"no-debugger": "off",
"no-dupe-args": "error",
"no-dupe-keys": "error",
"no-mixed-spaces-and-tabs": ["error", "smart-tabs"],
"no-redeclare": ["error", {"builtinGlobals": true}],
"no-trailing-spaces": ["error", { "skipBlankLines": false }],
"no-undef": "error",
"no-use-before-define": "off",
"no-var": "error",
"object-curly-spacing": ["error", "always"],
"prefer-const": "error",
"quotes": ["error", "single"],
"semi": ["error", "always"],
"space-before-function-paren": ["error", "always"],
"mocha-no-only/mocha-no-only": ["error"],
"promise/always-return": "off",
"promise/avoid-new": "off",
},
"parserOptions": {
"ecmaVersion": 2018
"artifacts": "readonly",
"contract": "readonly",
"web3": "readonly",
"extendEnvironment": "readonly",
"expect": "readonly",
}
}

1
.gitattributes vendored
View File

@ -1 +0,0 @@
*.sol linguist-language=Solidity

View File

@ -1,4 +1,4 @@
contact_links:
- name: Support request
- name: Questions & Support Requests
url: https://forum.openzeppelin.com/c/support/contracts/18
about: Ask the community in the Community Forum
about: Ask in the OpenZeppelin Forum

View File

@ -17,4 +17,4 @@ Fixes #???? <!-- Fill in with issue number -->
- [ ] Tests
- [ ] Documentation
- [ ] Changelog entry
- [ ] Changeset entry (run `npx changeset add`)

49
.github/actions/gas-compare/action.yml vendored Normal file
View File

@ -0,0 +1,49 @@
name: Compare gas costs
inputs:
token:
description: github token
required: true
report:
description: report to read from
required: false
default: gasReporterOutput.json
out_report:
description: report to read
required: false
default: ${{ github.ref_name }}.gasreport.json
ref_report:
description: report to read from
required: false
default: ${{ github.base_ref }}.gasreport.json
runs:
using: composite
steps:
- name: Download reference report
if: github.event_name == 'pull_request'
run: |
RUN_ID=`gh run list --repo ${{ github.repository }} --branch ${{ github.base_ref }} --workflow ${{ github.workflow }} --limit 100 --json 'conclusion,databaseId,event' --jq 'map(select(.conclusion=="success" and .event!="pull_request"))[0].databaseId'`
gh run download ${RUN_ID} --repo ${{ github.repository }} -n gasreport
env:
GITHUB_TOKEN: ${{ inputs.token }}
shell: bash
continue-on-error: true
id: reference
- name: Compare reports
if: steps.reference.outcome == 'success' && github.event_name == 'pull_request'
run: |
node scripts/checks/compareGasReports.js ${{ inputs.report }} ${{ inputs.ref_report }} >> $GITHUB_STEP_SUMMARY
env:
STYLE: markdown
shell: bash
- name: Rename report for upload
if: github.event_name != 'pull_request'
run: |
mv ${{ inputs.report }} ${{ inputs.out_report }}
shell: bash
- name: Save report
if: github.event_name != 'pull_request'
uses: actions/upload-artifact@v3
with:
name: gasreport
path: ${{ inputs.out_report }}

19
.github/actions/setup/action.yml vendored Normal file
View File

@ -0,0 +1,19 @@
name: Setup
runs:
using: composite
steps:
- uses: actions/setup-node@v3
with:
node-version: 16.x
- uses: actions/cache@v3
id: cache
with:
path: '**/node_modules'
key: npm-v3-${{ hashFiles('**/package-lock.json') }}
- name: Install dependencies
run: npm ci
shell: bash
if: steps.cache.outputs.cache-hit != 'true'
env:
SKIP_COMPILE: true

View File

@ -0,0 +1,55 @@
name: Compare storage layouts
inputs:
token:
description: github token
required: true
buildinfo:
description: compilation artifacts
required: false
default: artifacts/build-info/*.json
layout:
description: extracted storage layout
required: false
default: HEAD.layout.json
out_layout:
description: storage layout to upload
required: false
default: ${{ github.ref_name }}.layout.json
ref_layout:
description: storage layout for the reference branch
required: false
default: ${{ github.base_ref }}.layout.json
runs:
using: composite
steps:
- name: Extract layout
run: |
node scripts/checks/extract-layout.js ${{ inputs.buildinfo }} > ${{ inputs.layout }}
shell: bash
- name: Download reference
if: github.event_name == 'pull_request'
run: |
RUN_ID=`gh run list --repo ${{ github.repository }} --branch ${{ github.base_ref }} --workflow ${{ github.workflow }} --limit 100 --json 'conclusion,databaseId,event' --jq 'map(select(.conclusion=="success" and .event!="pull_request"))[0].databaseId'`
gh run download ${RUN_ID} --repo ${{ github.repository }} -n layout
env:
GITHUB_TOKEN: ${{ inputs.token }}
shell: bash
continue-on-error: true
id: reference
- name: Compare layouts
if: steps.reference.outcome == 'success' && github.event_name == 'pull_request'
run: |
node scripts/checks/compare-layout.js --head ${{ inputs.layout }} --ref ${{ inputs.ref_layout }}
shell: bash
- name: Rename artifacts for upload
if: github.event_name != 'pull_request'
run: |
mv ${{ inputs.layout }} ${{ inputs.out_layout }}
shell: bash
- name: Save artifacts
if: github.event_name != 'pull_request'
uses: actions/upload-artifact@v3
with:
name: layout
path: ${{ inputs.out_layout }}

18
.github/workflows/actionlint.yml vendored Normal file
View File

@ -0,0 +1,18 @@
name: lint workflows
on:
pull_request:
paths:
- '.github/**/*.ya?ml'
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Add problem matchers
run: |
# https://github.com/rhysd/actionlint/blob/3a2f2c7/docs/usage.md#problem-matchers
curl -LO https://raw.githubusercontent.com/rhysd/actionlint/main/.github/actionlint-matcher.json
echo "::add-matcher::actionlint-matcher.json"
- uses: docker://rhysd/actionlint:latest

28
.github/workflows/changeset.yml vendored Normal file
View File

@ -0,0 +1,28 @@
name: changeset
on:
pull_request:
branches:
- master
types:
- opened
- synchronize
- labeled
- unlabeled
concurrency:
group: changeset-${{ github.ref }}
cancel-in-progress: true
jobs:
check:
runs-on: ubuntu-latest
if: ${{ !contains(github.event.pull_request.labels.*.name, 'ignore-changeset') }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # Include history so Changesets finds merge-base
- name: Set up environment
uses: ./.github/actions/setup
- name: Check changeset
run: npx changeset status --since=origin/${{ github.base_ref }}

116
.github/workflows/checks.yml vendored Normal file
View File

@ -0,0 +1,116 @@
name: checks
on:
push:
branches:
- master
- next-v*
- release-v*
pull_request: {}
workflow_dispatch: {}
concurrency:
group: checks-${{ github.ref }}
cancel-in-progress: true
env:
NODE_OPTIONS: --max_old_space_size=5120
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up environment
uses: ./.github/actions/setup
- run: npm run lint
tests:
runs-on: ubuntu-latest
env:
FORCE_COLOR: 1
GAS: true
steps:
- uses: actions/checkout@v4
- name: Set up environment
uses: ./.github/actions/setup
- name: Run tests and generate gas report
run: npm run test
- name: Check linearisation of the inheritance graph
run: npm run test:inheritance
- name: Check proceduraly generated contracts are up-to-date
run: npm run test:generation
- name: Compare gas costs
uses: ./.github/actions/gas-compare
if: github.base_ref == 'master'
with:
token: ${{ github.token }}
tests-upgradeable:
runs-on: ubuntu-latest
env:
FORCE_COLOR: 1
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # Include history so patch conflicts are resolved automatically
- name: Set up environment
uses: ./.github/actions/setup
- name: Transpile to upgradeable
run: bash scripts/upgradeable/transpile.sh
- name: Run tests
run: npm run test
- name: Check linearisation of the inheritance graph
run: npm run test:inheritance
- name: Check storage layout
uses: ./.github/actions/storage-layout
if: github.base_ref == 'master'
continue-on-error: ${{ contains(github.event.pull_request.labels.*.name, 'breaking change') }}
with:
token: ${{ github.token }}
tests-foundry:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly
- name: Run tests
run: forge test -vv
coverage:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up environment
uses: ./.github/actions/setup
- run: npm run coverage
- uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
slither:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up environment
uses: ./.github/actions/setup
- run: rm foundry.toml
- uses: crytic/slither-action@v0.3.0
with:
node-version: 18.15
codespell:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run CodeSpell
uses: codespell-project/actions-codespell@v2.0
with:
check_hidden: true
check_filenames: true
skip: package-lock.json,*.pdf

19
.github/workflows/docs.yml vendored Normal file
View File

@ -0,0 +1,19 @@
name: Build Docs
on:
push:
branches: [release-v*]
permissions:
contents: write
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up environment
uses: ./.github/actions/setup
- run: bash scripts/git-user-config.sh
- run: node scripts/update-docs-branch.js
- run: git push --all origin

View File

@ -0,0 +1,68 @@
name: formal verification
on:
pull_request:
types:
- opened
- reopened
- synchronize
- labeled
workflow_dispatch: {}
env:
PIP_VERSION: '3.10'
JAVA_VERSION: '11'
SOLC_VERSION: '0.8.20'
concurrency: ${{ github.workflow }}-${{ github.ref }}
jobs:
apply-diff:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Apply patches
run: make -C certora apply
verify:
runs-on: ubuntu-latest
if: github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'formal-verification')
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up environment
uses: ./.github/actions/setup
- name: identify specs that need to be run
id: arguments
run: |
if [[ ${{ github.event_name }} = 'pull_request' ]];
then
RESULT=$(git diff ${{ github.event.pull_request.head.sha }}..${{ github.event.pull_request.base.sha }} --name-only certora/specs/*.spec | while IFS= read -r file; do [[ -f $file ]] && basename "${file%.spec}"; done | tr "\n" " ")
else
RESULT='--all'
fi
echo "result=$RESULT" >> "$GITHUB_OUTPUT"
- name: Install python
uses: actions/setup-python@v4
with:
python-version: ${{ env.PIP_VERSION }}
cache: 'pip'
- name: Install python packages
run: pip install -r requirements.txt
- name: Install java
uses: actions/setup-java@v3
with:
distribution: temurin
java-version: ${{ env.JAVA_VERSION }}
- name: Install solc
run: |
wget https://github.com/ethereum/solidity/releases/download/v${{ env.SOLC_VERSION }}/solc-static-linux
sudo mv solc-static-linux /usr/local/bin/solc
chmod +x /usr/local/bin/solc
- name: Verify specification
run: |
make -C certora apply
node certora/run.js ${{ steps.arguments.outputs.result }} >> "$GITHUB_STEP_SUMMARY"
env:
CERTORAKEY: ${{ secrets.CERTORAKEY }}

218
.github/workflows/release-cycle.yml vendored Normal file
View File

@ -0,0 +1,218 @@
# D: Manual Dispatch
# M: Merge release PR
# C: Commit
# ┌───────────┐ ┌─────────────┐ ┌────────────────┐
# │Development├──D──►RC-Unreleased│ ┌──►Final-Unreleased│
# └───────────┘ └─┬─────────▲─┘ │ └─┬────────────▲─┘
# │ │ │ │ │
# M C D M C
# │ │ │ │ │
# ┌▼─────────┴┐ │ ┌▼────────────┴┐
# │RC-Released├───┘ │Final-Released│
# └───────────┘ └──────────────┘
name: Release Cycle
on:
push:
branches:
- release-v*
workflow_dispatch: {}
concurrency: ${{ github.workflow }}-${{ github.ref }}
jobs:
state:
name: Check state
permissions:
pull-requests: read
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up environment
uses: ./.github/actions/setup
- id: state
name: Get state
uses: actions/github-script@v6
env:
TRIGGERING_ACTOR: ${{ github.triggering_actor }}
with:
result-encoding: string
script: await require('./scripts/release/workflow/state.js')({ github, context, core })
outputs:
# Job Flags
start: ${{ steps.state.outputs.start }}
changesets: ${{ steps.state.outputs.changesets }}
promote: ${{ steps.state.outputs.promote }}
publish: ${{ steps.state.outputs.publish }}
merge: ${{ steps.state.outputs.merge }}
# Global variables
is_prerelease: ${{ steps.state.outputs.is_prerelease }}
start:
needs: state
name: Start new release candidate
permissions:
contents: write
actions: write
if: needs.state.outputs.start == 'true'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up environment
uses: ./.github/actions/setup
- run: bash scripts/git-user-config.sh
- id: start
name: Create branch with release candidate
run: bash scripts/release/workflow/start.sh
- name: Re-run workflow
uses: actions/github-script@v6
env:
REF: ${{ steps.start.outputs.branch }}
with:
script: await require('./scripts/release/workflow/rerun.js')({ github, context })
promote:
needs: state
name: Promote to final release
permissions:
contents: write
actions: write
if: needs.state.outputs.promote == 'true'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up environment
uses: ./.github/actions/setup
- run: bash scripts/git-user-config.sh
- name: Exit prerelease state
if: needs.state.outputs.is_prerelease == 'true'
run: bash scripts/release/workflow/exit-prerelease.sh
- name: Re-run workflow
uses: actions/github-script@v6
with:
script: await require('./scripts/release/workflow/rerun.js')({ github, context })
changesets:
needs: state
name: Update PR to release
permissions:
contents: write
pull-requests: write
if: needs.state.outputs.changesets == 'true'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # To get all tags
- name: Set up environment
uses: ./.github/actions/setup
- name: Set release title
uses: actions/github-script@v6
with:
result-encoding: string
script: await require('./scripts/release/workflow/set-changesets-pr-title.js')({ core })
- name: Create PR
uses: changesets/action@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PRERELEASE: ${{ needs.state.outputs.is_prerelease }}
with:
version: npm run version
title: ${{ env.TITLE }}
commit: ${{ env.TITLE }}
body: | # Wait for support on this https://github.com/changesets/action/pull/250
This is an automated PR for releasing ${{ github.repository }}
Check [CHANGELOG.md](${{ github.repository }}/CHANGELOG.md)
publish:
needs: state
name: Publish to npm
environment: npm
permissions:
contents: write
if: needs.state.outputs.publish == 'true'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up environment
uses: ./.github/actions/setup
- id: pack
name: Pack
run: bash scripts/release/workflow/pack.sh
env:
PRERELEASE: ${{ needs.state.outputs.is_prerelease }}
- name: Upload tarball artifact
uses: actions/upload-artifact@v3
with:
name: ${{ github.ref_name }}
path: ${{ steps.pack.outputs.tarball }}
- name: Tag
run: npx changeset tag
- name: Publish
run: bash scripts/release/workflow/publish.sh
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
TARBALL: ${{ steps.pack.outputs.tarball }}
TAG: ${{ steps.pack.outputs.tag }}
- name: Push tags
run: git push --tags
- name: Create Github Release
uses: actions/github-script@v6
env:
PRERELEASE: ${{ needs.state.outputs.is_prerelease }}
with:
script: await require('./scripts/release/workflow/github-release.js')({ github, context })
outputs:
tarball_name: ${{ steps.pack.outputs.tarball_name }}
integrity_check:
needs: publish
name: Tarball Integrity Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Download tarball artifact
id: artifact
# Replace with actions/upload-artifact@v3 when
# https://github.com/actions/download-artifact/pull/194 gets released
uses: actions/download-artifact@e9ef242655d12993efdcda9058dee2db83a2cb9b
with:
name: ${{ github.ref_name }}
- name: Check integrity
run: bash scripts/release/workflow/integrity-check.sh
env:
TARBALL: ${{ steps.artifact.outputs.download-path }}/${{ needs.publish.outputs.tarball_name }}
merge:
needs: state
name: Create PR back to master
permissions:
contents: write
pull-requests: write
if: needs.state.outputs.merge == 'true'
runs-on: ubuntu-latest
env:
MERGE_BRANCH: merge/${{ github.ref_name }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # All branches
- name: Set up environment
uses: ./.github/actions/setup
- run: bash scripts/git-user-config.sh
- name: Create branch to merge
run: |
git checkout -B "$MERGE_BRANCH" "$GITHUB_REF_NAME"
git push -f origin "$MERGE_BRANCH"
- name: Create PR back to master
uses: actions/github-script@v6
with:
script: |
await github.rest.pulls.create({
owner: context.repo.owner,
repo: context.repo.repo,
head: process.env.MERGE_BRANCH,
base: 'master',
title: '${{ format('Merge {0} branch', github.ref_name) }}'
});

View File

@ -1,56 +0,0 @@
name: Test
on:
push:
branches:
- master
- release-v*
pull_request: {}
workflow_dispatch: {}
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: 12.x
- uses: actions/cache@v2
id: cache
with:
path: '**/node_modules'
key: npm-v2-${{ hashFiles('**/package-lock.json') }}
restore-keys: npm-v2-
- run: npm ci
if: steps.cache.outputs.cache-hit != 'true'
- run: npm run lint
- run: npm run test
env:
FORCE_COLOR: 1
ENABLE_GAS_REPORT: true
- run: npm run test:inheritance
- name: Print gas report
run: cat gas-report.txt
coverage:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 2
- uses: actions/setup-node@v2
with:
node-version: 12.x
- uses: actions/cache@v2
id: cache
with:
path: '**/node_modules'
key: npm-v2-${{ hashFiles('**/package-lock.json') }}
restore-keys: npm-v2-
- run: npm ci
if: steps.cache.outputs.cache-hit != 'true'
- run: npm run coverage
env:
NODE_OPTIONS: --max_old_space_size=4096
- uses: codecov/codecov-action@v2

View File

@ -1,4 +1,4 @@
name: Upgradeable Trigger
name: transpile upgradeable
on:
push:
@ -7,17 +7,24 @@ on:
- release-v*
jobs:
trigger:
transpile:
environment: push-upgradeable
runs-on: ubuntu-latest
steps:
- id: app
uses: getsentry/action-github-app-token@v1
- uses: actions/checkout@v4
with:
app_id: ${{ secrets.UPGRADEABLE_APP_ID }}
private_key: ${{ secrets.UPGRADEABLE_APP_PK }}
- run: |
curl -X POST \
https://api.github.com/repos/OpenZeppelin/openzeppelin-contracts-upgradeable/dispatches \
-H 'Accept: application/vnd.github.v3+json' \
-H 'Authorization: token ${{ steps.app.outputs.token }}' \
-d '{ "event_type": "Update", "client_payload": { "ref": "${{ github.ref }}" } }'
repository: OpenZeppelin/openzeppelin-contracts-upgradeable
fetch-depth: 0
token: ${{ secrets.GH_TOKEN_UPGRADEABLE }}
- name: Fetch current non-upgradeable branch
run: |
git fetch "https://github.com/${{ github.repository }}.git" "$REF"
git checkout FETCH_HEAD
env:
REF: ${{ github.ref }}
- name: Set up environment
uses: ./.github/actions/setup
- run: bash scripts/git-user-config.sh
- name: Transpile to upgradeable
run: bash scripts/upgradeable/transpile-onto.sh ${{ github.ref_name }} origin/${{ github.ref_name }}
- run: git push origin ${{ github.ref_name }}

18
.gitignore vendored
View File

@ -54,6 +54,18 @@ allFiredEvents
.coverage_cache
.coverage_contracts
# hardhat
cache
artifacts
# hardat-exposed
contracts-exposed
# Hardhat
/cache
/artifacts
# Foundry
/out
# Certora
.certora*
.last_confs
certora_*
.zip-output-url.txt

7
.gitmodules vendored Normal file
View File

@ -0,0 +1,7 @@
[submodule "lib/forge-std"]
branch = v1
path = lib/forge-std
url = https://github.com/foundry-rs/forge-std
[submodule "lib/erc4626-tests"]
path = lib/erc4626-tests
url = https://github.com/a16z/erc4626-tests.git

View File

@ -1,11 +1,15 @@
{
"printWidth": 120,
"singleQuote": true,
"trailingComma": "all",
"arrowParens": "avoid",
"overrides": [
{
"files": "*.sol",
"options": {
"printWidth": 120,
"explicitTypes": "always"
"singleQuote": false
}
}
]
],
"plugins": ["prettier-plugin-solidity"]
}

View File

@ -1,15 +1,13 @@
module.exports = {
norpc: true,
testCommand: 'npm test',
compileCommand: 'npm run compile',
skipFiles: [
'mocks',
],
providerOptions: {
default_balance_ether: '10000000000000000000000000',
},
mocha: {
fgrep: '[skip-on-coverage]',
invert: true,
},
}
norpc: true,
testCommand: 'npm test',
compileCommand: 'npm run compile',
skipFiles: ['mocks'],
providerOptions: {
default_balance_ether: '10000000000000000000000000',
},
mocha: {
fgrep: '[skip-on-coverage]',
invert: true,
},
};

View File

@ -1,14 +0,0 @@
{
"rules": {
"no-unused-vars": "error",
"const-name-snakecase": "error",
"contract-name-camelcase": "error",
"event-name-camelcase": "error",
"func-name-mixedcase": "error",
"func-param-name-mixedcase": "error",
"modifier-name-mixedcase": "error",
"private-vars-leading-underscore": "error",
"var-name-mixedcase": "error",
"imports-on-top": "error"
}
}

Some files were not shown because too many files have changed in this diff Show More