Compare commits

...

1114 Commits

Author SHA1 Message Date
3bb7ec72d0 Update README.md 2023-10-04 21:21:25 -03:00
d03ead5436 Update README.md 2023-10-04 21:19:32 -03:00
0e1d262872 Update README.md 2023-10-04 21:17:51 -03:00
f92dce51ed Reset Hardhat Network before each test suite (#4652) 2023-10-04 20:00:02 -03:00
0560576c7a Improve AccessManaged and AuthorityUtils tests (#4632)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Francisco Giordano <fg@frang.io>
2023-10-04 22:15:41 +00:00
baf0e91279 Improve AccessManager tests (#4613)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Francisco Giordano <fg@frang.io>
2023-10-04 17:34:18 -03:00
aca4030e4a Formal verification of AccessManager (#4611)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
Co-authored-by: Francisco Giordano <fg@frang.io>
2023-10-04 21:17:15 +02:00
39400b78ba Ensure constant getters show in docs (#4649) 2023-10-04 12:54:49 -03:00
2c6b859dd0 Fix coverage analysis (#4648) 2023-10-03 17:43:12 -03:00
5d43060cdc Fix release tagging (#4646) 2023-10-03 15:46:18 -03:00
b4a9c47e9b Fix typos 2023-10-02 17:43:51 -03:00
b849906ce4 Make AccessManager.execute/schedule more conservative when delay is 0 (#4644) 2023-10-02 16:43:12 -03:00
abba0d047a Update remappings.txt for upgradeable contracts and set up submodule (#4639)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2023-10-02 15:41:18 -03:00
5ed5a86d1d Update eth-gas-reporter (#4643) 2023-10-01 16:43:47 -03:00
ef3e7771a7 Fix upgradeable patch in release branches (#4637) 2023-09-28 19:43:33 -03:00
58463a9823 Enable partial transpilation for upgradeable package (#4628)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2023-09-28 18:31:49 -03:00
970a7184ad Add changesets for #4624 (#4635) 2023-09-28 18:29:50 -03:00
dee645e914 Fix warning format in the readme (#4634) 2023-09-28 16:58:08 -03:00
57865f8b20 Add named return parameters and _checkSelector function to AccessManager (#4624) 2023-09-28 16:52:42 -03:00
2472e51e80 Improve documentation about backwards compatibility (#4627)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2023-09-28 12:54:44 -03:00
33ceb2320c Fix typo in tests (#4625) 2023-09-27 10:12:37 +02:00
bd4169bb15 Update solidity-coverage (#4623) 2023-09-21 22:57:34 -03:00
ce7e6042a8 Add version to custom Solhint plugin 2023-09-21 22:25:08 -03:00
da04f40e98 Update lockfile (#4556)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Francisco Giordano <fg@frang.io>
2023-09-21 22:04:06 -03:00
181d518609 Update readme for release candidate (#4618) 2023-09-20 16:19:48 -03:00
f0316a4cef Fix docs updates on prereleases 2023-09-19 17:24:03 -03:00
ae986db608 Enable docs generation for prereleases 2023-09-19 16:17:35 -03:00
31aa460467 Update docs-utils to support prereleases 2023-09-19 16:13:10 -03: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
6edb6dd1ca 4.3.1 2021-08-26 17:59:03 -03:00
0ec7f4c25d Add additional isOperationReady check in TimelockController
(cherry picked from commit cec4f2ef57)
2021-08-24 16:23:37 -03: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
1d2e15fbd7 4.3.0 2021-08-17 12:35:02 -03:00
e3cbfcd44b Improve Governor documentation
(cherry picked from commit 4ac1070cd3)
2021-08-17 11:20:50 -03:00
4ac1070cd3 Improve Governor documentation 2021-08-17 11:20:10 -03:00
bb2b687b46 Remove duplicate lines from changelog
(cherry picked from commit 38c1dd098c)
2021-08-16 16:55:23 -03:00
38c1dd098c Remove duplicate lines from changelog 2021-08-16 16:54:41 -03:00
494cc6d3a5 Fix typo casted -> cast
(cherry picked from commit b174f067df)
2021-08-13 18:45:15 -03:00
b174f067df Fix typo casted -> cast 2021-08-13 18:44:44 -03:00
7072b623af Fix typo casted -> cast
(cherry picked from commit 9253c614d2)
2021-08-13 18:17:22 -03:00
4a6d82acb9 add workflow to trigger transpilation to upgradeable contracts
(cherry picked from commit 049ff9a3c7)
2021-08-13 18:17:21 -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
635e36ff08 4.3.0-rc.0 2021-08-06 16:08:58 +02:00
6618f9f184 Fix documentation of functions in interfaces directory 2021-08-06 11:06:30 -03:00
7fcacb549b Fix name of interfaces directory in changelog 2021-08-06 11:04:40 -03:00
541e82144f Optimize EOA signature verification (#2661)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-08-06 10:47:52 -03:00
18668870fd Add an interface folder that lists common interfaces (#2517)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-08-06 10:36:34 -03:00
694f169832 Remove changelog entry for test changes 2021-08-06 10:14:00 -03:00
7279273ebb Fix inconsistencies in contract/test hierachy (#2814)
* Fix inconsistencies in contract/test hierachy

* changelog entry
2021-08-06 13:43:23 +02:00
d89f2a4ac6 Update ERC721.behavior.js (#2801) 2021-08-05 19:44:13 +02:00
48375aa908 Read optional compiler version from args/envvars (#2810) 2021-08-05 16:03:50 +02:00
29957d4a47 Add Governor guide (#2811) 2021-08-04 19:08:44 -03:00
4b152bd8ce Improve Governor (#2794)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2021-08-04 18:29:13 -03:00
f782943099 Move variable declaration to top of test file (#2806)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-08-03 14:19:21 +00:00
3da0cf698f Uncomment assertion in ERC2771Context.test.js (#2796) 2021-08-03 11:06:24 -03:00
e1c0f3eaef Update tests for RFC 2606 (#2802) 2021-08-02 23:41:13 +00:00
8bcf0ad7ab Use Hardhat recommended Mocha configuration (#2805) 2021-08-02 20:35:12 -03:00
56b3b7a487 Remove mention of 2.0.0 audit in docs 2021-08-02 20:06:30 -03:00
bbd68b721d Update security policy regarding past major releases 2021-08-02 19:57:04 -03:00
2d1e82c901 remove duplicated 'private-vars-leading-underscore' solhint rule (#2800) 2021-08-02 18:02:40 +02:00
9a385dcb45 fix typo 2021-08-02 12:14:20 +02:00
3dadd40034 Avoid safe math in BitMap (#2797) 2021-07-30 09:48:45 +02:00
566a774222 Update lockfile (#2774)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-07-20 10:49:34 -03:00
865dc9365c Update codecov/codecov-action action to v2 (#2779)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-07-20 13:48:26 +00:00
0500c9e53e Use "OpenZeppelin Contracts" where appropriate (#2778) 2021-07-20 10:35:58 -03:00
d3c5bdf4de Fix yellowpaper reference (#2775) 2021-07-19 09:45:04 -03:00
7e41bf2259 Remove ERC20FlashMint from drafts section in docs 2021-07-16 19:44:40 -03:00
6c1a634053 Add Governor contracts (#2672)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-07-16 12:44:01 -03:00
f88e555234 Add values() functions to EnumerableSets (#2768)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-07-16 12:06:47 -03:00
87826f807a Update lockfile 2021-07-16 11:58:22 -03:00
b8fdc620aa Downgrade yargs to v16 2021-07-16 11:49:12 -03:00
466cf05912 Deprecate openzeppelin-solidity on every release 2021-07-16 11:22:47 -03:00
8467143f2a Update lockfile (#2763)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-07-14 16:14:51 -03:00
c346c09b01 Clarify zero address usage in proposer and executor roles in Timelock (#2765)
* Clarify zero address usage in proposer and executor roles in access control

* Address zero only applies to executor

* Fix incorrect role
2021-07-14 16:39:08 +02:00
3935b907d4 Fix NatSpec comment syntax 2021-07-13 17:10:54 -03:00
4e2641a915 Simplify selector access (#2766) 2021-07-13 01:23:14 +02:00
973b0f883a fix typo in erc20 docs (#2764) 2021-07-12 16:45:39 +02:00
6d97f09195 Gas optimization on average function of Math.sol (#2757)
* change implementation to save gas

* add average test with two max uni256 number
2021-07-10 21:28:12 +02:00
1c1ebd765d Remove defer tag for Wizard embed script 2021-07-09 16:38:44 -03:00
9eba3ef29a fix two minor typos (#2755) 2021-07-08 17:23:13 +02:00
e4696f7315 Update lockfile (#2752)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-07-06 19:23:06 -03:00
23b3807ea7 Use private instead of immutable in ERC2771Context (#2754) 2021-07-06 14:41:03 -03:00
15b92e4097 Add missing "await" in tests (#2749)
* add missing await in tests

* fix test description
2021-07-06 17:20:08 +02:00
922058dbc8 Change comma to decimal point in comment (#2742) 2021-07-05 12:20:27 -03:00
b9e2c7896d Merge branch 'release-v4.2' 2021-06-30 14:31:57 -03:00
9fbc1d71c0 4.2.0 2021-06-30 14:29:37 -03:00
3ae911b442 Update lockfile (#2732)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-06-29 17:46:11 -03:00
eea376911b Reorder AccessControl event to emit after assignment (#2738) 2021-06-24 10:38:02 -03:00
1db3037808 Fix misleading comments (#2737)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-06-24 10:37:20 -03:00
556e366ce5 4.2.0-rc.0 2021-06-23 09:54:29 -03:00
6842518b1b Wrapper extension for ERC20 token (#2633)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-06-22 19:27:33 -03:00
8a775cd8d4 Emit DelegateVotesChanged events after Transfer (#2733) 2021-06-22 19:14:40 -03:00
4d0f8c1da8 Check inheritance tree consistency (#2727)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-06-18 15:08:13 +00:00
27e09007cc Reorder state changes and event emission for consistency (#2719)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-06-18 14:58:50 +00:00
00128bd260 Fix function ordering in ERC1967Upgrades (#2722) 2021-06-14 18:54:19 -03:00
f710bafae8 Fix typos (#2723) 2021-06-14 18:51:56 -03:00
788d338c9b Improve naming of internal variables (#2721) 2021-06-14 18:51:37 -03:00
6f50f6e1ef Remove repeated code from ERC1967Upgrade (#2720) 2021-06-14 18:50:51 -03:00
fd111df16d Remove unecessary code from Context (#2718) 2021-06-14 18:44:00 -03:00
17958adaca Uninstall unused mocha dependency 2021-06-14 17:41:34 -03:00
0a05f6fa45 Add a recover(bytes32,bytes32,bytes32) that follows EIP2098 (#2713) 2021-06-14 15:12:08 -03:00
78103f3137 Update lockfile (#2717)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-06-14 18:55:46 +02:00
f7da53cebd Add a BitMap struct (#2710)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-06-11 15:24:00 -03:00
75f6dbb86c Add import statements and GitHub link in API docs (#2714) 2021-06-11 15:09:32 -03:00
9d5f77db9d Update lockfile (#2702)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-06-07 19:45:26 +02:00
b0cf6fbb7a Add Prettier for linting and fix Solhint config (#2697)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-06-07 12:33:03 -03:00
e3661abe84 Split ERC20Votes and ERC20VotesComp (#2706)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-06-04 12:52:19 -03:00
1488d4f678 Improve ECDSA tests and docs (#2619) 2021-06-01 17:59:24 -03:00
adc50d465c Tweak ERC20Votes revert reasons and documentation (#2696)
* adapt revert reason convention

* add whitespace

* tweak documentation

* fix tests
2021-05-27 18:16:37 +02:00
f6efd8aced Add totalSupply checkpoints to ER20Votes (#2695)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-05-27 15:13:18 +00:00
ad3c18eb5f Fix the ERC721 link in the ERC1155 doc (#2694) 2021-05-26 19:11:08 +00:00
eabec630b9 Update lockfile (#2690)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-05-26 15:27:55 -03:00
406c83649b Introduce ERC1155 totalSupply() and exists() functions (#2593)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-05-20 21:46:21 +00:00
5f50b9f6e0 Update lockfile (#2675)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-05-20 11:45:43 -03:00
1b37c21da5 reserve unchecked for when guarded by explicit require (#2685) 2021-05-20 16:40:18 +02:00
7144ec8db4 Fix whitespace in ERC777 (#2667) 2021-05-20 11:01:20 -03:00
f31bb101ad Move ERC20Votes and ERC20FlashMint out of draft (#2673)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-05-20 11:00:22 -03:00
7c754d0665 Add ceiling division operation to the Math.sol library (#2681)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-05-20 13:53:31 +00:00
5f7eda1f98 Tokens: wrap safe substractions in uchecked block (#2669)
* Tokens: wrap definitely safe subs in unchecked

* Add change in changelog

Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2021-05-20 10:33:28 +02:00
f8f6d56c58 Update README intro with link to Wizard 2021-05-19 20:58:29 -03:00
8ad458e955 Explain how baseURI is used for building the tokenURI (#2679) 2021-05-19 16:07:56 -03:00
8ea06b75aa Add a Counter.reset function (#2678) 2021-05-19 15:52:43 -03:00
c3ae4790c7 Fix Changelog structure 2021-05-14 15:42:18 +02:00
5cd86f740d Update lockfile (#2666)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-05-12 16:14:31 +00:00
aa06c9fbc1 Use Node 12 in CI 2021-05-12 13:06:07 -03:00
100ca0b8a2 ERC20 extension for governance tokens (vote delegation and snapshots) (#2632)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-05-12 10:13:59 -03:00
8669481309 Fix typo in comment (#2660) 2021-05-05 10:41:46 -03:00
1dc4a319ab Use shorter syntax for Escrow addition (#2646) 2021-05-04 20:04:51 +00:00
08ba72afa2 Fix ERC721._beforeTokenTransfer docs (#2653) 2021-05-04 11:10:24 -03:00
0a905d674b Fix typo in tokens.adoc (#2654) 2021-05-03 16:56:50 -03:00
319afebdc0 Fix typo in ERC20._mint docs (#2648) 2021-05-03 16:54:23 -03:00
f1e92dd184 Fix code comments (#2658) 2021-05-03 16:50:07 -03:00
9048e565d7 Update dependency yargs to v17 (#2655)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-05-03 16:43:57 -03:00
95dec684ad Update lockfile (#2656)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-05-03 16:42:54 -03:00
0d40f705a7 Add link to full list of upgrades resources 2021-04-29 22:58:59 -03:00
df8a0fe8dc Complete documentation of UUPSUpgradeable 2021-04-29 22:43:39 -03:00
50a9b4d1e7 Fix package-lock.json 2021-04-29 18:14:13 -03:00
2e30b9f382 Merge branch 'release-v4.1' 2021-04-29 18:06:52 -03:00
23869e5b2a 4.1.0 2021-04-29 18:04:21 -03:00
3ba2a1354f Update solidity-docgen 2021-04-27 09:40:20 -03:00
903df56837 Review structure of Proxies API docs (#2645)
(cherry picked from commit 4a53ee5a13)
2021-04-27 09:29:52 -03:00
4a53ee5a13 Review structure of Proxies API docs (#2645) 2021-04-27 09:29:13 -03:00
cfd6e7eab9 Fix documentation typos
(cherry picked from commit a98814b930)
2021-04-26 15:41:36 -03:00
a98814b930 Fix documentation typos 2021-04-26 15:41:17 -03:00
10c763da6f Fix whitespace in doc comments
(cherry picked from commit a020a55f9d)
2021-04-26 15:37:22 -03:00
a020a55f9d Fix whitespace in doc comments 2021-04-26 15:37:04 -03:00
6552adafb2 Merge ERC1967Storage into ERC1967Upgrade (#2644)
(cherry picked from commit 5756e31999)
2021-04-26 15:16:44 -03:00
5756e31999 Merge ERC1967Storage into ERC1967Upgrade (#2644) 2021-04-26 15:16:19 -03:00
8ae9f0914b Update lockfile (#2643)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-04-26 10:56:01 -03:00
3c4a18f0df Update Stability document with current practices 2021-04-22 11:51:17 -03:00
165e6f1948 EnumerableSet: Remove Boundary Check in _at (#2606)
* remove boundary check

* fix tests for EnumerableSet "index out of bound"

* Changelog

Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2021-04-20 19:51:26 +00:00
750a17653d Optimize removal in EnumerableSet (#2605)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-04-20 18:08:34 +00:00
07b48484ff Fix ERC721 guide for 4.x 2021-04-20 12:37:15 -03:00
a664fb1e45 Improve code comments in ERC1967._upgradeToAndCallSecure
(cherry picked from commit 2e6ef74593)
2021-04-19 19:37:19 -03:00
2e6ef74593 Improve code comments in ERC1967._upgradeToAndCallSecure 2021-04-19 19:36:14 -03:00
440b65bf77 Refactor ERC1155 transfers to use internal functions (#2636)
* Refactor ERC1155 transfers to use internal functions #2622

* apply length check to all internal calls

Co-authored-by: Robert Kaiser <kairo@kairo.at>
2021-04-19 22:13:15 +02:00
df7996b671 add Available since 4.1 comments
(cherry picked from commit 9a698e6b7b)
2021-04-19 20:55:39 +02:00
9a698e6b7b add Available since 4.1 comments 2021-04-19 20:55:16 +02:00
915109b2c4 Move UUPSUpgradeable to proxy/utils
(cherry picked from commit b9125001f0)
2021-04-19 20:46:58 +02:00
2fa86736dd typo: remove duplicate word (#2631)
(cherry picked from commit f17624194b)
2021-04-19 20:46:55 +02:00
b9125001f0 Move UUPSUpgradeable to proxy/utils 2021-04-19 20:44:10 +02:00
f17624194b typo: remove duplicate word (#2631) 2021-04-16 20:07:09 -03:00
7360a2532d Add missing changelog entry
(cherry picked from commit 72eb905c58)
2021-04-16 20:38:45 +02:00
72eb905c58 Add missing changelog entry 2021-04-16 20:37:54 +02:00
ad90dbdaff 4.1.0-rc.0 2021-04-16 18:14:24 +02:00
e0a2b195e4 Add modifier & internal function with standard revert message in AccessControl (#2609)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-04-16 12:15:09 -03:00
1c676ac0ec Implement UUPS proxy (ERC1822) (#2542)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-04-16 11:41:47 -03:00
538b6d21b1 Update ERC721 guide for 4.0 (#2630) 2021-04-15 23:49:53 -03:00
3157aff844 Update docs for setting ERC20 decimals (#2629) 2021-04-14 16:00:22 +00:00
f4898a2e3a Update lockfile (#2627)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-04-12 19:17:28 -03:00
555be63c90 Add support for EIP2098 "short signatures" in the ECDSA library (#2582)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-04-09 22:58:03 +00:00
057efbfe95 Update lockfile (#2604)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-04-09 17:33:14 -03:00
585db1f667 Improve Hardhat config (#2612)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-04-09 11:09:16 -03:00
7f6a1666fa Add Multicall module (#2608) 2021-04-07 17:26:40 +00:00
0c621246d3 Add tooling to verify signatures with support for ERC1271 (#2532)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-04-07 13:09:17 +00:00
5bd798c6e1 Add ERC3156 extension of ERC20 (flash minting and lending) (#2543)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-04-06 03:13:10 +00:00
5ecd2b850c Add Contracts Wizard docs page (#2624) 2021-04-05 17:46:57 -03:00
243adff49c fix typo in ERC20's documentation 2021-03-26 14:06:58 +01:00
378531b709 Fix merge issue in CHANGELOG.md 2021-03-23 16:28:01 +01:00
9584c23594 Update package-lock.json 2021-03-23 12:19:17 -03:00
64f20ec624 Fix release.sh for npm 7 2021-03-23 12:15:21 -03:00
783e928ae8 Merge branch 'release-v4.0' 2021-03-23 12:13:57 -03:00
a673994de5 4.0.0 2021-03-23 12:06:54 -03:00
9b0e27c98c add missing rewrite rule in scripts/migrate-imports.js
(cherry picked from commit a3712a3288)
2021-03-22 18:08:36 +01:00
a3712a3288 add missing rewrite rule in scripts/migrate-imports.js 2021-03-22 18:07:02 +01:00
74e03de760 removes unused dependency (#2603) 2021-03-21 19:22:45 +01:00
09e302384a Update lockfile (#2592)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-03-16 16:07:24 -03:00
3dc374ddcf Make overide of ERC721.isApprovedForAll affect the ERC721 logic (#2597) 2021-03-16 15:32:22 -03:00
90a72f9acd Fix ERC721URIStorage in documentation
(cherry picked from commit 7c1625b0e0)
2021-03-15 16:48:43 -03:00
7c1625b0e0 Fix ERC721URIStorage in documentation 2021-03-15 16:47:39 -03:00
cd443f0d5b Add tests to extend code coverage (#2586) 2021-03-15 13:01:47 -03:00
d5194725b7 Add optimization for EnumerableSet (#2588)
Co-authored-by: Reason <Reason@Lee.com>
2021-03-13 10:19:29 +01:00
82e3ec3afe Fix MerkleProof generation in tests and add some documentation (#2585) 2021-03-12 21:41:54 +00:00
682def9f89 Typo in ERC20 constructor docstring (#2581) 2021-03-11 17:28:26 +01:00
96aece07f3 Fix docs formatting in IERC20Permit (#2579)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-03-10 19:48:22 -03:00
508a879ef0 Remove merkleTree.js in favor of merkletreejs dependency (#2578) 2021-03-10 18:30:16 +01:00
5171e46c47 Add an internal _useNonce(address) function in ERC20Permit (#2565) 2021-03-10 12:24:12 -03:00
1ee939e7c4 4.0.0-rc.0 2021-03-09 15:38:49 +01:00
59f33c1cc1 remove extra changelog entry 2021-03-09 15:32:54 +01:00
fb95a8b34b move changelog entry to the appropriate section 2021-03-09 15:31:34 +01:00
d104ced953 fix changelog format
(cherry picked from commit 2658e01baa)
2021-03-09 15:25:22 +01:00
1fd54698ff Update lockfile (#2573)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
(cherry picked from commit 9612b891c9)
2021-03-09 15:23:05 +01:00
2658e01baa fix changelog format 2021-03-09 15:21:58 +01:00
9612b891c9 Update lockfile (#2573)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-03-08 22:11:26 -03:00
27fc833550 Make ERC1155.uri public (#2576)
(cherry picked from commit 5dbbda5435)
2021-03-08 17:37:25 -03:00
0b3e0d74b0 Further reorganisation of the repo (#2575)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
(cherry picked from commit f076ff5dbd)
2021-03-08 17:37:03 -03:00
d75b4cf613 Update changelog to list beta bugfix separately
(cherry picked from commit 5aab6ff81b)
2021-03-08 17:37:00 -03:00
5aab6ff81b Update changelog to list beta bugfix separately 2021-03-08 17:33:04 -03:00
f076ff5dbd Further reorganisation of the repo (#2575)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-03-08 17:06:54 -03:00
b8ab763581 Add IERC20Metadata with name, symbol and decimals (#2561)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-03-08 19:53:01 +00:00
78a9821129 Mint ERC777 without reception ack (#2552) 2021-03-08 19:44:31 +00:00
5dbbda5435 Make ERC1155.uri public (#2576) 2021-03-08 15:42:34 -03:00
b1e0aa487d Fix AccessControlEnumerable not tracking renounceRole (#2572)
* Fix AccessControlEnumerable not tracking renounceRole

* Updated changelog

(cherry picked from commit 7adf0d88a0)
2021-03-08 14:32:21 +01:00
6505e28c40 removes invalid character in comments (#2571)
(cherry picked from commit fc004c0ad2)
2021-03-08 14:32:09 +01:00
7adf0d88a0 Fix AccessControlEnumerable not tracking renounceRole (#2572)
* Fix AccessControlEnumerable not tracking renounceRole

* Updated changelog
2021-03-08 13:44:20 +01:00
fc004c0ad2 removes invalid character in comments (#2571) 2021-03-08 13:42:35 +01:00
f07c39be8a Add ERC165 interface detection to AccessControl (#2562)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
(cherry picked from commit 29ffe6f426)
2021-03-04 18:50:49 -03:00
29ffe6f426 Add ERC165 interface detection to AccessControl (#2562)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2021-03-04 18:50:12 -03:00
ec63c604ab Fix prepack script 2021-03-03 17:06:05 +01:00
69ca2ad676 Fix name of ERC721URIStorage contract in changelog
(cherry picked from commit 3d587f3043)
2021-03-03 12:50:05 -03:00
3d587f3043 Fix name of ERC721URIStorage contract in changelog 2021-03-03 12:49:22 -03:00
ae1e384a9a Fix prepack script
(cherry picked from commit 10c52439dd5118d4b671e12d691bfde42c987fb9)
2021-03-03 16:32:22 +01:00
1705067e65 Add ERC721URIStorage extension (#2555) 2021-03-03 12:13:09 -03:00
618a735816 Enable optimizations when publishing package (#2557) 2021-03-03 12:01:54 -03:00
103ff8e23d Rename variable master to implementation #2 (#2553) 2021-03-03 12:31:33 +01:00
cdb929aada Rename variable master to implementation 2021-03-02 21:25:56 -03:00
62af16b9f2 Optimize constructor of ERC777 (#2551) 2021-03-02 21:29:05 +01:00
ba1d773176 Fix link to TimelockController 2021-03-02 15:53:03 -03:00
583146f9d6 Fix typo Controler -> Controller 2021-03-02 15:32:10 -03:00
c789941d76 Rename UpgradeableProxy to ERC1967Proxy (#2547)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-03-02 11:20:59 -03:00
232c355b3a Fix mentions of buidler (#2548) 2021-03-02 09:24:37 +01:00
773c7265e8 Change title of meta transactions page in docs sidebar 2021-03-01 14:38:12 -03:00
742c436d28 Update lockfile (#2546)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-03-01 14:02:18 -03:00
36b855972b Optimize implementation of ERC20Capped (#2524) 2021-02-24 22:07:03 +00:00
735c03fcf3 Fix package.json files field 2021-02-24 00:35:47 -03:00
4519c237c5 Fix migrate-imports.js test for upgradeable paths 2021-02-23 23:50:40 -03:00
4ee9fd77fd Check upgradeable paths in migrate-imports test 2021-02-23 23:29:43 -03:00
729 changed files with 58926 additions and 41418 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,6 @@
---
'openzeppelin-solidity': patch
---
`AccessManager`, `AccessManaged`, `GovernorTimelockAccess`: Ensure that calldata shorter than 4 bytes is not padded to 4 bytes.
pr: #4624

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
---
Upgradeable Contracts: No longer transpile interfaces, libraries, and stateless contracts.

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.

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,6 @@
---
'openzeppelin-solidity': patch
---
`AccessManager`: Use named return parameters in functions that return multiple values.
pr: #4624

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': major
---
`AccessManager`: Make `schedule` and `execute` more conservative when delay is 0.

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

@ -10,5 +10,5 @@ about: Suggest an idea for OpenZeppelin Contracts
**📝 Details**
<!-- Please describe your feature request in detail. -->
<!-- Make sure that you have reviewed the OpenZeppelin Contributor Guidelines. -->
<!-- Make sure that you have reviewed the OpenZeppelin Contracts Contributor Guidelines. -->
<!-- https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/CONTRIBUTING.md -->

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 }}

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

@ -0,0 +1,21 @@
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'
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly

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 }}

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

@ -0,0 +1,118 @@
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: Copy non-upgradeable contracts as dependency
run: |
mkdir -p lib/openzeppelin-contracts
cp -rnT contracts lib/openzeppelin-contracts/contracts
- 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: Set up environment
uses: ./.github/actions/setup
- 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 }}

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

@ -0,0 +1,214 @@
# 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: 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: 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,55 +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: 10.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: 1
- 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: 10.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@v1

34
.github/workflows/upgradeable.yml vendored Normal file
View File

@ -0,0 +1,34 @@
name: transpile upgradeable
on:
push:
branches:
- master
- release-v*
jobs:
transpile:
environment: push-upgradeable
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
repository: OpenZeppelin/openzeppelin-contracts-upgradeable
fetch-depth: 0
token: ${{ secrets.GH_TOKEN_UPGRADEABLE }}
- name: Fetch current non-upgradeable branch
run: |
git fetch "$REMOTE" master # Fetch default branch first for patch to apply cleanly
git fetch "$REMOTE" "$REF"
git checkout FETCH_HEAD
env:
REF: ${{ github.ref }}
REMOTE: https://github.com/${{ github.repository }}.git
- 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 }}
env:
SUBMODULE_REMOTE: https://github.com/${{ github.repository }}.git
- run: git push origin ${{ github.ref_name }}

19
.gitignore vendored
View File

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

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