Compare commits

...

2214 Commits

Author SHA1 Message Date
264f00fe39 更新合约文档,翻译为中文以增强可读性,包括 AccessControl、Ownable、ERC20 和 IERC20 的相关说明。修正了一些注释以确保准确性和一致性。
Some checks failed
transpile upgradeable / transpile (push) Has been cancelled
2025-07-12 23:27:57 +08:00
bc8f775df2 Add Calldata variants of ECDSA.recover, ECDSA.tryRecover and SignatureChecker.isValidSignatureNow (#5788) 2025-07-11 16:57:04 +02:00
667bb9b5c3 Clarify documentation for IAccessManager.canCall (#5795) 2025-07-11 16:54:18 +02:00
5def3f7c7e Add reverseBits operations to Bytes.sol (#5724)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2025-07-10 10:36:41 -06:00
21cd7e8aa3 Add Memory utility library (#5189)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Arr00 <13561405+arr00@users.noreply.github.com>
2025-07-10 09:15:27 +02:00
a5350ecdd3 Add Strings.toHexString(bytes) (#5761) 2025-07-09 14:20:46 -06:00
fd9bbaec30 Add ERC-7786 interface (#5737) 2025-07-09 21:50:48 +02:00
6ef73e3386 Add Account framework docs and guides (#5660) 2025-07-09 09:10:48 -06:00
a95d01c30d Address 5.4 audit documentation improvements (#5779) 2025-07-09 15:53:47 +02:00
ba35d580f4 Cause _addSigners to revert if it triggers a totalWeight overflow (#5790) 2025-07-09 09:08:13 +02:00
f9f7db03f3 Fix flaky test testFuzzFutureBlocks (#5783)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2025-07-06 18:49:39 +02:00
0aaa23e57d Minimize pragma for MultiSignerERC7913Weighted.sol (#5778) 2025-07-03 13:51:56 -06:00
5936cd8025 Improve naming consystency in EnumerableSet (#5776) 2025-07-03 13:29:43 -06:00
292b3542fc Do not emit an event when setSignerWeight is a no-op (#5775) 2025-07-03 13:19:29 -06:00
6e14ecc01a Fix typos in release-5.4 (#5777) 2025-07-03 16:36:12 +02:00
cc94ea4930 MultiSignerERC7913: prevent setting the threshold to zero (#5772) 2025-06-27 13:29:40 +02:00
1a87de9326 Use hardhat network helper to clear code blockhash test (#5768)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2025-06-26 10:50:39 -04:00
2422d7cf7f Update hardhat and hardhat-ethers dependencies (#5752)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2025-06-25 16:45:59 +02:00
387ce69e6b Add script to automatically minimize pragma (#5740)
Co-authored-by: Arr00 <13561405+arr00@users.noreply.github.com>
2025-06-25 09:56:44 -04:00
56fe41c588 Update dependency halmos to v0.3.0 (#5763)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-25 10:50:09 +02:00
90117f33f0 Bump pbkdf2 from 3.1.2 to 3.1.3 (#5766)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-25 10:49:51 +02:00
b84db20fb2 Add checkpoint variant with uint256 keys and values (#5748)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2025-06-23 11:55:24 -04:00
6079eb3f01 Add signer constructors (#5757)
Co-authored-by: ernestognw <ernestognw@gmail.com>
2025-06-20 13:09:28 +02:00
61f81e313c Annotate stateless cryptography contracts (#5756) 2025-06-20 11:49:06 +02:00
668221e314 Fix upgradeable workflow by not running the linter on transpiled output (#5754) 2025-06-19 14:11:57 +02:00
2909098755 ERC-7930 (#5736)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2025-06-19 09:17:04 +02:00
51da8ae490 Update dependency yargs to v18 (#5704)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2025-06-18 22:01:19 +02:00
6ccfb7b891 Update dependency node to v22 (#5616)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2025-06-18 14:41:05 +02:00
3eddace0cb Update dependency prettier-plugin-solidity to v2 (#5654)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2025-06-17 17:07:27 +02:00
800200d452 Add Codeowners (#5749) 2025-06-16 22:30:31 +02:00
f27019d48e Add draft- prefix to ERC-7821 (#5742) 2025-06-13 20:34:57 +02:00
7be5dde82d Add MultiSignerERC7913Weighted (#5718) 2025-06-12 20:09:50 +02:00
5c79432e40 ERC20Bridgable (ERC-7802) (#5735)
Co-authored-by: ernestognw <ernestognw@gmail.com>
Co-authored-by: Arr00 <13561405+arr00@users.noreply.github.com>
2025-06-11 18:19:56 -06:00
bbc4d7ae67 Fix pragma check for upgradeable test (#5738) 2025-06-11 14:28:35 -04:00
8dcc4b9e88 Improve test of Blockhash.sol: all cases on supported and unsupported chains (#5732) 2025-06-11 19:48:25 +02:00
78c8da8648 Update pragma check: validate by actually running the compiler (#5730)
Co-authored-by: Arr00 <13561405+arr00@users.noreply.github.com>
2025-06-11 10:55:49 -06:00
e11cac459e Add draft- prefix to ERC-7579 and ERC-7739 related files (#5728)
Co-authored-by: ernestognw <ernestognw@gmail.com>
Co-authored-by: Arr00 <13561405+arr00@users.noreply.github.com>
2025-06-09 14:10:35 -06:00
13d9086d0b Minimize Solidity pragma versions for interface compatibility (#5727) 2025-06-09 10:38:05 -06:00
be547e4d14 Update language in legal disclaimer (#5720) 2025-06-06 17:28:26 -04:00
4d13a007e2 Rename isValidERC7913SignatureNow to isValidSignatureNow (#5719) 2025-06-06 10:07:22 +02:00
1d9400e053 Add ERC7913 signers and utilities (#5659)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2025-06-05 09:22:26 -06:00
8bff2a72d9 Add Governor extension GovernorNoncesKeyed to use NoncesKeyed for vote by sig (#5574)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: ernestognw <ernestognw@gmail.com>
2025-06-05 15:03:18 +02:00
b6a5e89de7 Fix docs references to cryptographic utilities (#5717) 2025-06-04 18:23:02 -06:00
37f873d50b Increase SignatureChecker minimum pragma to 0.8.24 (#5716) 2025-06-04 10:44:41 -06:00
b3d6f71d0c Fix typos (#5631)
Co-authored-by: Olexandr88 <radole1203@gmail.com>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Arr00 <13561405+arr00@users.noreply.github.com>
Co-authored-by: Maxim Tiron <xzstnc@mail.ru>
2025-06-04 10:51:10 +02:00
d20b9e30bd Add paginated version of EnumerableSet.values() and EnumerableMap.keys() (#5713)
Co-authored-by: ernestognw <ernestognw@gmail.com>
2025-06-04 09:33:00 +02:00
f45e9158b7 Reorder cryptography folder (#5711)
Co-authored-by: ernestognw <ernestognw@gmail.com>
2025-06-03 21:40:34 -06:00
784d4f71b1 Add non-value types in EnumerableSet and EnumerableMap (#5658)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2025-06-03 16:26:06 +02:00
4bafedfe72 Update dependency lint-staged to v16 (#5679)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2025-06-03 09:28:34 +02:00
83d2a247be Add Account framework (#5657) 2025-06-02 08:22:57 -06:00
88962fb5ab Add EIP7702Utils (#5587) 2025-06-01 21:08:11 -06:00
a6ae04acf8 Refactor Blockhash lib (#5702) 2025-05-29 17:23:34 +02:00
a7d38c7a33 Revert #5663 changes that were missed in #5696 (#5703) 2025-05-27 14:44:59 -04:00
441b1c1c5b Remove legacy peer dependency npm tag (#5696) 2025-05-23 17:14:40 -06:00
8e3ea8b48d Update EIP712 upgradeable patch file (#5690)
Co-authored-by: ernestognw <ernestognw@gmail.com>
2025-05-22 12:32:56 -06:00
48bd2864c6 Updated SignatureChecker NatSpec to better reflect EIP-7702 behavior (#5670) 2025-05-16 09:37:07 -06:00
de89798004 Add docs for the Time library (#5684)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2025-05-16 09:36:38 -06:00
ccde353a20 Document the non-zero delay enforcement in AccessControlDefaultAdminRules (#5687)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2025-05-15 15:30:37 -06:00
e34251682b Remove duplicated changesets (#5673) 2025-05-08 10:35:51 -04:00
633a1c85ca Rewrite assembly slot offset for consistency (#5325) 2025-05-07 13:54:42 -06:00
bdf8affec3 Upgrade hardhat to v2.24.0 (#5671) 2025-05-07 10:38:04 -06:00
4aaf40ac5d Remove unused imports with solhint plus extra rules (#5661) 2025-05-07 10:23:49 -06:00
6bcc3a470d Update dependency ethers to v6.14.0 (#5668)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: ernestognw <ernestognw@gmail.com>
2025-05-06 21:34:52 -06:00
a3a9e8cc3b Add ERC7739 and ERC7739Utils (#5664) 2025-05-06 12:47:36 -06:00
08566bfe0d Test ethers 6.13.6-beta.1, use solc 0.8.27 and prague EVM version (#5663) 2025-05-05 16:20:05 -06:00
9393147db7 Remove BlockhashMock (#5662) 2025-05-02 16:55:05 -04:00
d61a349165 Update lockfile (#5615)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: ernestognw <ernestognw@gmail.com>
2025-05-02 13:17:54 -06:00
1958f092b0 Bump elliptic and @ethersproject/signing-key (#5624)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2025-05-02 11:32:10 -06:00
b1e517cba2 Bump serialize-javascript, mocha and solidity-coverage (#5625)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2025-05-02 11:31:57 -06:00
3a52d35555 Bump base-x from 3.0.9 to 3.0.11 (#5655)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: ernestognw <ernestognw@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-02 11:13:45 -06:00
3e75ff1862 Add blockhash to docs (#5653)
Co-authored-by: ernestognw <ernestognw@gmail.com>
2025-04-29 17:04:32 -06:00
6dd191a979 Add Blockhash library following EIP-2935 (#5642)
Co-authored-by: Arr00 <13561405+arr00@users.noreply.github.com>
2025-04-29 16:05:27 -06:00
56c07e59c4 Show stack trace for failing foundry tests in CI (#5647) 2025-04-24 11:18:57 -04:00
da32fb3bd8 Add missing id-token: write permission in release pipeline (#5645)
Signed-off-by: Pascal Marco Caversaccio <pascal.caversaccio@hotmail.ch>
2025-04-22 15:24:43 -06:00
3a14bcc783 Add provenance to NPM publish during release cycle (#5644) 2025-04-21 16:53:38 -06:00
aaf955de56 Migrate to inheritdoc (#5636)
Co-authored-by: Arr00 <13561405+arr00@users.noreply.github.com>
2025-04-21 14:19:10 -04:00
06ea3b1b4e Add Slither reentrancy exception to GovernorTimelockAccess._queueOperations (#5643)
Co-authored-by: Arr00 <13561405+arr00@users.noreply.github.com>
2025-04-21 12:02:30 -06:00
21c8312b02 Remove AccessControlNonRevokable mock and unnecesary changelog entry (#5635) 2025-04-10 12:15:42 -06:00
d183d9b07a Merge release-v5.3 branch (#5632)
Signed-off-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Francisco Giordano <fg@frang.io>
Co-authored-by: Joseph Delong <joseph@delong.me>
Co-authored-by: Arr00 <13561405+arr00@users.noreply.github.com>
Co-authored-by: Renan Souza <renan.rodrigues.souza1@gmail.com>
Co-authored-by: Ernesto García <ernestognw@gmail.com>
Co-authored-by: Voronor <129545215+voronor@users.noreply.github.com>
Co-authored-by: StackOverflowExcept1on <109800286+StackOverflowExcept1on@users.noreply.github.com>
Co-authored-by: Michalis Kargakis <kargakis@protonmail.com>
Co-authored-by: Bilog WEB3 <155262265+Bilogweb3@users.noreply.github.com>
Co-authored-by: Fallengirl <155266340+Fallengirl@users.noreply.github.com>
Co-authored-by: XxAlex74xX <30472093+XxAlex74xX@users.noreply.github.com>
Co-authored-by: PixelPilot <161360836+PixelPil0t1@users.noreply.github.com>
Co-authored-by: kilavvy <140459108+kilavvy@users.noreply.github.com>
Co-authored-by: Devkuni <155117116+detrina@users.noreply.github.com>
Co-authored-by: Danbo <140512416+dannbbb1@users.noreply.github.com>
Co-authored-by: Ann Wagner <chant_77_swirly@icloud.com>
Co-authored-by: comfsrt <155266597+comfsrt@users.noreply.github.com>
Co-authored-by: Bob <158583129+bouchmann@users.noreply.github.com>
Co-authored-by: JohnBonny <158583902+JohnBonny@users.noreply.github.com>
Co-authored-by: moonman <155266991+moooonman@users.noreply.github.com>
Co-authored-by: kazak <alright-epsilon8h@icloud.com>
Co-authored-by: Wei <ybxerlvqtx@rambler.ru>
Co-authored-by: Maxim Evtush <154841002+maximevtush@users.noreply.github.com>
Co-authored-by: Vitalyr <158586577+Vitaliyr888@users.noreply.github.com>
Co-authored-by: pendrue <158588659+pendrue@users.noreply.github.com>
Co-authored-by: Tronica <wudmytrotest404@gmail.com>
Co-authored-by: emmmm <155267286+eeemmmmmm@users.noreply.github.com>
Co-authored-by: bigbear <155267841+aso20455@users.noreply.github.com>
Co-authored-by: Tomás Andróil <tomasandroil@gmail.com>
Co-authored-by: GooseMatrix <155266802+GooseMatrix@users.noreply.github.com>
Co-authored-by: jasmy <3776356370@qq.com>
Co-authored-by: SITADRITA1 <mrlime2018@gmail.com>
Co-authored-by: Ocenka <testoviydiman1@gmail.com>
2025-04-09 20:47:07 +02:00
10a776bae6 Add v5.3 audit report (#5626) 2025-04-04 22:31:03 +02:00
aa29301672 Fix issue with detection of RIP7212 precompile (#5620)
Co-authored-by: Arr00 <13561405+arr00@users.noreply.github.com>
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2025-04-03 09:02:04 -06:00
450b833278 Group typo fixes #2 (#5561)
Co-authored-by: Arr00 <13561405+arr00@users.noreply.github.com>
Co-authored-by: ernestognw <ernestognw@gmail.com>
2025-04-01 14:23:19 -06:00
1873ecb38e Update dependency eslint-config-prettier to v10 (#5430)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-28 10:19:48 -06:00
952775e4f1 Implement ERC-7821 calldata compression in ERC7579Utils (#5602) 2025-03-27 09:27:34 +01:00
a31b4a438a Update lockfile (#5545)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-26 11:34:50 -06:00
5a5867e548 Bump axios from 1.7.4 to 1.8.4 (#5598)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-26 12:03:06 +01:00
1eb82eca85 ERC2771Context gas improvements (#5590)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2025-03-26 12:00:40 +01:00
0a77e54c30 Use Entrypoint's provided hashing function to support v0.8.0 change of hash (#5586)
Co-authored-by: ernestognw <ernestognw@gmail.com>
Co-authored-by: Arr00 <13561405+arr00@users.noreply.github.com>
2025-03-25 20:41:28 +01:00
d9933585b6 Use new tagged slither action release (#5600) 2025-03-24 19:40:07 -04:00
6015d7ef79 Use patched version of slither ci (#5594) 2025-03-20 16:25:30 +01:00
fda6b85f2c Improve error granularity of EnumerableMap behavior tests (#5581) 2025-03-13 15:40:36 +01:00
8a4eadea51 Add support for more types in Arrays.sol (#5568) 2025-03-13 13:44:41 +01:00
f740084582 Revert "Add Bytes32x2Set (#5442)" (#5569) 2025-03-11 17:16:41 +01:00
ca7a4e39de Group typo fixes (#5466)
Co-authored-by: Bilog WEB3 <155262265+Bilogweb3@users.noreply.github.com>
Co-authored-by: Fallengirl <155266340+Fallengirl@users.noreply.github.com>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: XxAlex74xX <30472093+XxAlex74xX@users.noreply.github.com>
Co-authored-by: Arr00 <13561405+arr00@users.noreply.github.com>
Co-authored-by: PixelPilot <161360836+PixelPil0t1@users.noreply.github.com>
Co-authored-by: kilavvy <140459108+kilavvy@users.noreply.github.com>
Co-authored-by: Devkuni <155117116+detrina@users.noreply.github.com>
Co-authored-by: Danbo <140512416+dannbbb1@users.noreply.github.com>
Co-authored-by: Ann Wagner <chant_77_swirly@icloud.com>
Co-authored-by: comfsrt <155266597+comfsrt@users.noreply.github.com>
Co-authored-by: Bob <158583129+bouchmann@users.noreply.github.com>
Co-authored-by: JohnBonny <158583902+JohnBonny@users.noreply.github.com>
Co-authored-by: moonman <155266991+moooonman@users.noreply.github.com>
Co-authored-by: kazak <alright-epsilon8h@icloud.com>
Co-authored-by: Wei <ybxerlvqtx@rambler.ru>
Co-authored-by: Maxim Evtush <154841002+maximevtush@users.noreply.github.com>
Co-authored-by: Vitalyr <158586577+Vitaliyr888@users.noreply.github.com>
Co-authored-by: pendrue <158588659+pendrue@users.noreply.github.com>
Co-authored-by: Tronica <wudmytrotest404@gmail.com>
Co-authored-by: emmmm <155267286+eeemmmmmm@users.noreply.github.com>
Co-authored-by: bigbear <155267841+aso20455@users.noreply.github.com>
Co-authored-by: Tomás Andróil <tomasandroil@gmail.com>
Co-authored-by: GooseMatrix <155266802+GooseMatrix@users.noreply.github.com>
Co-authored-by: jasmy <3776356370@qq.com>
Co-authored-by: SITADRITA1 <mrlime2018@gmail.com>
Co-authored-by: Ocenka <testoviydiman1@gmail.com>
2025-03-06 09:58:25 +01:00
fa995ef1fe Add espaceJSON to String.sol (#5508)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Arr00 <13561405+arr00@users.noreply.github.com>
2025-03-03 15:31:43 +01:00
3882a09163 Update dependency halmos to v0.2.6 (#5515)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-28 22:24:09 +01:00
15653ff10e Bump undici (#5544)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-28 22:22:30 +01:00
71bc0f7774 Add function to update a leaf in a MerkleTree structure (#5453)
Co-authored-by: Arr00 <13561405+arr00@users.noreply.github.com>
2025-02-28 21:22:56 +01:00
7276774f34 Add a governance extension that implements super quorum (#5492)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Arr00 <13561405+arr00@users.noreply.github.com>
2025-02-28 21:13:07 +01:00
ddba55780a Update dependency globals to v16 (#5518)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-28 21:06:33 +01:00
a4b0d89900 MessageHashUtils: Add toDataWithIntendedValidatorHash(address, bytes32) (#5081)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Arr00 <13561405+arr00@users.noreply.github.com>
2025-02-28 21:00:43 +01:00
a9b1f58b00 Add saturating (unsigned) math operations and optimize try operations (#5527) 2025-02-27 10:03:54 +01:00
506e1f827a Ensure cross-platform of coverage.sh (#5316) 2025-02-26 14:09:01 +01:00
f999ba42a1 Add 512bits add and mult operations (#5035) 2025-02-26 11:04:14 +01:00
2ed8956992 Add _initializableStorageSlot (#5337)
Co-authored-by: Arr00 <13561405+arr00@users.noreply.github.com>
2025-02-24 15:40:42 +01:00
3bdc3a35c5 Add Arachnid's and Micah's deployer to the common contracts (#5519) 2025-02-21 22:54:43 +01:00
930598edfb Authority utils assembly (#5074) 2025-02-20 00:10:27 +08:00
9586aaf352 Support foundry v1.0 (#5511) 2025-02-15 20:54:49 +01:00
f281e98c94 Make TimelockController receive function virtual (#5506)
Co-authored-by: Arr00 <13561405+arr00@users.noreply.github.com>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2025-02-14 09:28:26 +01:00
fa8bed68af Treat code-size warnings as errors (#5101)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2025-02-13 12:16:21 -05:00
dbd9805207 Test behavior of SignatureChecker against the identity precompile (0x4) (#5501) 2025-02-13 10:21:24 -05:00
7ccb79f6ce Update FUNDING.json hierarchy (#5500)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2025-02-12 15:17:17 +01:00
be2b016679 Update FUNDING.json (#5496)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2025-02-11 21:16:57 +01:00
f4237626c2 Make set-max-old-space-size.sh compatible with sh (#5493)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2025-02-10 12:24:02 -05:00
3658269505 Add clear function to Enumerable{Set,Map} (#5486)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2025-02-10 18:02:43 +01:00
441dc141ac Add Bytes32x2Set (#5442)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2025-02-04 14:30:53 -05:00
2141d3faf5 Rename ERC4337Utils ENTRYPOINT to ENTRYPOINT_V07 (#5472)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2025-02-04 12:39:24 -06:00
43b3319e5b Add ERC6909 Implementation along with extensions (#5394)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2025-02-04 13:47:21 +01:00
df878c87fc Use slither v0.10.4 (#5488) 2025-02-04 13:29:20 +01:00
b9dbfa7ceb Improve promise rejections handling in hardhat/async-test-sanity.js (#5429)
Co-authored-by: Arr00 <13561405+arr00@users.noreply.github.com>
2025-02-04 10:55:06 +01:00
19c2f2f5a5 SafeERC20.trySafeTransfer{,from} (#5483) 2025-02-03 12:26:37 -06:00
c089efa8b5 Add forum badge correct link (#5481) 2025-02-03 17:30:49 +01:00
828dbc357c Add stake management function to ERC4337Utils (#5471) 2025-01-31 09:35:57 -06:00
840c974028 Use stable foundry version in CI (#5465) 2025-01-28 11:36:32 -05:00
0d0e4aabdb Update dependency halmos to v0.2.4 (#5461)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-27 10:02:52 +01:00
4ccfe380e0 Fix the CLI output of formal verification runs (#5445) 2025-01-27 10:02:03 +01:00
8c1b0ca82d Add a governor extension that implements a proposal guardian (#5303)
Co-authored-by: Arr00 <13561405+arr00@users.noreply.github.com>
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2025-01-27 09:56:35 +01:00
495a287e9a Fix interface docs ordering and add missing interface (#5460) 2025-01-24 15:11:39 -05:00
fd812ee954 Group typographical errors (#5443)
Co-authored-by: futreall <86553580+futreall@users.noreply.github.com>
Co-authored-by: Marco <wudmytrotest200@gmail.com>
Co-authored-by: Dmitry <98899785+mdqst@users.noreply.github.com>
Co-authored-by: Dmytrol <46675332+Dimitrolito@users.noreply.github.com>
Co-authored-by: Noisy <125606576+donatik27@users.noreply.github.com>
Co-authored-by: Danil <37103154+Danyylka@users.noreply.github.com>
Co-authored-by: CrazyFrog <anna.shuraeva13@gmail.com>
Co-authored-by: Bryer <0xbryer@gmail.com>
Co-authored-by: Viktor Pavlik <160131789+Vikt0rPavlik@users.noreply.github.com>
Co-authored-by: Skylar Ray <137945430+sky-coderay@users.noreply.github.com>
Co-authored-by: Brawn <nftdropped@gmail.com>
Co-authored-by: fuder.eth <139509124+vtjl10@users.noreply.github.com>
Co-authored-by: FT <140458077+zeevick10@users.noreply.github.com>
Co-authored-by: Ann Wagner <chant_77_swirly@icloud.com>
Co-authored-by: Hopium <135053852+Hopium21@users.noreply.github.com>
Co-authored-by: Arr00 <13561405+arr00@users.noreply.github.com>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2025-01-24 18:18:59 +01:00
6e752dc169 Remove unused setBaseURI tests (#5456)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2025-01-24 10:47:06 -06:00
7ae222bf2f Update actions/upload-artifact action to v4 (#4826) 2025-01-24 16:31:05 +01:00
6dc9242937 Fix Broken Docs References (#5436) 2025-01-24 10:12:16 +01:00
a55fabc405 Remove Unnecessary Initialisation of _paused (#5448)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2025-01-23 12:20:07 -05:00
9e66e2f9f5 Replace overriden with overridden in GovernorCountingOverridable.sol (#5446)
Co-authored-by: Arr00 <13561405+arr00@users.noreply.github.com>
Co-authored-by: ernestognw <ernestognw@gmail.com>
2025-01-22 13:38:10 -06:00
332bcb5f4d Refactor EnumerableSet.behavior.js for reuse in the community repo (#5441) 2025-01-20 18:03:16 +01:00
ea736bd45b Update LICENSE (#5434) 2025-01-15 16:35:50 +01:00
96b40d02c3 Expose _isTrustedByTarget internally in ERC2771Forwarder (#5416) 2025-01-10 14:59:14 -06:00
13781c1f49 Add missing Calldata, Bytes, CAIP2 and CAIP10 API references (#5428) 2025-01-10 10:43:28 -06:00
2e27a0c74b Update governor docs (#5420) 2025-01-10 10:43:11 -06:00
352ab13687 Add a Calldata library with emptyBytes and emptyString functions (#5422)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2025-01-09 19:48:32 -06:00
7b74442c5e Merge release-v5.2 branch (#5424)
Signed-off-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Sam Bugs <101145325+0xsambugs@users.noreply.github.com>
Co-authored-by: Ernesto García <ernestognw@gmail.com>
Co-authored-by: Arr00 <13561405+arr00@users.noreply.github.com>
Co-authored-by: wizard <112275929+famouswizard@users.noreply.github.com>
Co-authored-by: leopardracer <136604165+leopardracer@users.noreply.github.com>
Co-authored-by: cairo <cairoeth@protonmail.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Francisco Giordano <fg@frang.io>
Co-authored-by: Simka <0xsimka@gmail.com>
Co-authored-by: Voronor <129545215+voronor@users.noreply.github.com>
2025-01-09 17:16:31 +01:00
a2a5dc26a1 Update _revokeRole documentation in AccessControl (#5321)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2025-01-06 18:43:40 -06:00
a99b31f990 Optimize MerkleTree for loops by using uint256 iterators (#5415)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2025-01-06 18:02:58 -06:00
45dd083602 Update ReentrancyGuardTransient documentation (#5417) 2025-01-06 17:53:34 -06:00
bf69b60146 Make IERC7579Execution payable (#5410) 2025-01-06 11:20:11 +01:00
4c3ef87cf5 Await .eventually test matchers (#5408) 2024-12-28 12:02:00 -06:00
dd04dfe75d Update links to the eth_sign JSON-RPC method in MessageHashUtils (#5407) 2024-12-26 19:26:15 -06:00
c3b3ae7e82 Fix inaccurate comment for the callGasLimit function in ERC4337Utils (#5397) 2024-12-23 12:39:10 -06:00
c73c23ffc9 Update outdated links in docs (#5380)
Co-authored-by: Arr00 <13561405+arr00@users.noreply.github.com>
2024-12-23 11:12:33 -05:00
ba8b5cfd42 Remove unnecessary trailing / in prepare-docs.sh (#5323)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2024-12-20 13:23:30 -06:00
7526c8fe3b Add interface for ERC6909 (#5343)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2024-12-20 14:56:20 +01:00
d4ed5f9068 Automatically deploy entrypoint, and make it available in the hre (#5391) 2024-12-19 18:04:30 +01:00
482665495b Fix envvar setting for test and coverage (#5392) 2024-12-19 17:04:21 +01:00
03e06bf08c Add GovernorSequentialProposalId extension for sequential numbers on proposals (#5290)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2024-12-19 11:19:06 +01:00
3b240d7e6a Use the asset getter in totalAssets, _deposit and _withdraw in ERC4626 (#5322) 2024-12-19 11:15:56 +01:00
e8f24d6ba0 Set max old space size on coverage and test (#5382)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2024-12-19 11:13:55 +01:00
855c39cf58 Update dependency halmos to v0.2.3 (#5296)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-18 23:18:48 +01:00
b50f22d153 Remove compile_force_framework: hardhat from slither config (#5390) 2024-12-18 13:51:08 -06:00
bf4d40d8c8 Fix pragma-consistency.js's comment (#5381) 2024-12-18 12:43:48 +01:00
73b46e3bd1 Bubble up revert data on failed Address.sendValue (#5379) 2024-12-17 12:48:40 +01:00
fad2b6e16b Update codecov/codecov-action action to v5 (#5298)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2024-12-16 10:43:34 +01:00
2655a89165 Update actions/setup-java action to v4 (#4770)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2024-12-16 10:21:09 +01:00
f20c062ead Update dependency undici to v7 (#5327)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-16 09:38:00 +01:00
535b54da59 Rename arrayLengthPointer to arrayLengthOffset and add changeset (#5371) 2024-12-13 12:46:04 -06:00
a71f79fbbc Remove relative path in solhint.config.js in favor of npm virtual package (#5368)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2024-12-13 10:54:45 -06:00
77d4a73c87 Add checks to ERC7579Utils.decodeBatch (#5353)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
Co-authored-by: Francisco Giordano <fg@frang.io>
2024-12-12 14:53:52 -06:00
5df10703cd Vendor entrypoint bytecode (#5362) 2024-12-12 09:09:20 -06:00
ad906fe39b fix typo Update inheritance-ordering.js (#5354) 2024-12-12 12:35:10 +01:00
8939cb7835 Documentation: Fix README.adoc (#5361) 2024-12-12 12:34:22 +01:00
2875a0f782 Add v5.2 audit report (#5341) 2024-12-11 10:32:36 -06:00
a39556f475 Fix GovernorTimelockCompound and TESTING.md grammar (#5356) 2024-12-11 10:09:11 -06:00
ff3134197f Amend shouldSupportInterfaces refactor (#5359) 2024-12-10 22:31:26 +01:00
6dacc68c46 Refactor shouldSupportInterfaces helper (#5358) 2024-12-10 14:29:22 -06:00
1c1186af1c Allow pass in custom arguments to shouldSupportInterfaces test helper (#5350)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2024-12-10 11:47:32 -06:00
0643d17e8d Bump ws, ethers and hardhat-gas-reporter (#5345) 2024-12-06 18:47:26 +01:00
8829465a08 Run linter on commit instead of push (#5340)
Co-authored-by: Arr00 <13561405+arr00@users.noreply.github.com>
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2024-12-06 09:49:07 +01:00
063fbb3a1f Fix typo in ERC721 API reference docs (#5329)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2024-12-05 15:30:23 -06:00
779c27ad36 Cherry-pick "Fix v5.2 testing" from the release-v5.2 branch (#5342)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2024-12-05 13:48:49 -06:00
6e05b68bd9 Remove token value mention in ERC-1155 documentation (#5336) 2024-12-03 17:30:56 -06:00
a3a6db86d5 Fix typo in ERC4337Utils.paymasterData comments (#5333) 2024-12-02 14:48:25 +01:00
78be1b39aa Implement feedback for M-01, L-08, L-09 (#5324)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2024-11-29 10:53:54 -06:00
653963beb2 Various changes to code clarity (Fix N-07) (#5317)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
Co-authored-by: Arr00 <13561405+arr00@users.noreply.github.com>
2024-11-27 14:25:30 -06:00
fdf7012d3b Optimize log256's binary search (#5284) 2024-11-26 12:15:53 -06:00
4afd599329 Document canonicalization in CAIP2 and CAIP10 libraries (#5319) 2024-11-26 10:33:52 -06:00
0df841d2d7 Complete docstrings L-10 (#5315) 2024-11-25 14:31:30 -06:00
c3cb7a0295 Deduplicate logic in Votes.sol (#5314)
Co-authored-by: Arr00 <13561405+arr00@users.noreply.github.com>
2024-11-25 11:47:55 -06:00
2562c11f25 Document VotesExtended assumptions (#5306)
Co-authored-by: ernestognw <ernestognw@gmail.com>
2024-11-25 11:43:21 -06:00
e1d44e0342 Add factory(), factoryData() and paymasterData() helpers to ERC4337Utils (#5313)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2024-11-25 11:35:09 -06:00
0513853ca5 Rephrase VoteReduced event docs (#5318) 2024-11-25 11:28:59 -06:00
ed98138a78 Add missing docstrings (#5311)
Co-authored-by: cairo <cairoeth@protonmail.com>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2024-11-25 12:15:23 -05:00
b3ce884628 Refactor parseUint, parseInt and parseHexUint to check bounds (#5304)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2024-11-25 11:05:40 +01:00
d11ed2fb0a fix: typos in documentation files (#5305) 2024-11-22 16:48:56 +01:00
23f4452b21 Document voting counting until casted in GovernorCountingOverridable (#5309)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2024-11-22 16:45:05 +01:00
ccb39d2765 Improve general documentation for 5.2 (#5310) 2024-11-21 16:43:13 +01:00
7105693e3c Change NoncesKeyed._useNonce to return a keyed value (#5312) 2024-11-21 16:34:00 +01:00
a277d472d6 Fix typo in GUIDELINES.md (#5297)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2024-11-21 15:20:14 +01:00
ccb5f2d8ca Fix 5.2 audit L-05, N-03, N-04, N-05 and N-06 issues (#5308) 2024-11-20 15:21:49 +07:00
ffca412299 Note native ERC20 behavior in VestingWallet (#5299)
Co-authored-by: Arr00 <13561405+arr00@users.noreply.github.com>
2024-11-20 09:59:49 +07:00
dac63c4612 Fix docs in the extending-contracts section (#5300) 2024-11-18 15:40:14 +07:00
448efeea66 Optimize log2 with a lookup table (#5236)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: cairo <cairoeth@protonmail.com>
2024-10-29 17:09:20 +01:00
3da7a869aa Update dependency p-limit to v6 (#5104)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: cairo <cairoeth@protonmail.com>
2024-10-29 10:25:02 +01:00
f96237308f Update forge and change visibility in fuzz tests (#5103)
Co-authored-by: cairo <cairoeth@protonmail.com>
2024-10-28 23:33:25 +07:00
bcdfa848a6 Remove unused import in SafeERC20 (#5278) 2024-10-25 17:26:35 +02:00
28aed34dc5 Merge account abstraction work into master (#5274)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
Co-authored-by: Elias Rad <146735585+nnsW3@users.noreply.github.com>
Co-authored-by: cairo <cairoeth@protonmail.com>
Co-authored-by: Arr00 <13561405+arr00@users.noreply.github.com>
2024-10-23 09:19:13 +02:00
2fa4d103fe Add NoncesKeyed variant (#5272) 2024-10-23 09:16:10 +02:00
205f59e9b6 Update dependency eslint to v9 (#4996)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: cairo <cairoeth@protonmail.com>
2024-10-23 08:31:39 +02:00
29f4059773 Bump pragma of files that depend on mcopy (#5276) 2024-10-22 17:01:26 -04:00
c343ee3768 Bump pragma to 0.8.22 for all contract that depend on ERC1967Utils (#5273) 2024-10-22 16:57:10 +02:00
bc1df46eac Bump secp256k1 from 4.0.3 to 4.0.4 (#5275)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-22 09:31:20 +02:00
c12cf86e0d Fuzz tampered tests for ERC2771Forwarder (#5258)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2024-10-21 13:44:22 +02:00
a4dc928a93 ERC20: optimized gas costs in _spendAllowance (#5271) 2024-10-21 13:39:21 +02:00
5bb3f3e788 Simplify content in security documentation (#5233)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: cairo <cairoeth@protonmail.com>
2024-10-19 14:16:09 +02:00
f989fff931 Remove missed changeset from 5.1-rc.1 (#5270) 2024-10-18 15:07:34 +02:00
2a83a217af GovernorCountingOverridable testing with timestamp (#5269) 2024-10-18 14:45:36 +02:00
378914ceab Delegate override vote (#5192)
Co-authored-by: Arr00 <13561405+arr00@users.noreply.github.com>
2024-10-18 14:17:20 +02:00
0034c30224 Merge release-v5.1 branch (#5266)
Signed-off-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: cairo <cairoeth@protonmail.com>
Co-authored-by: Ernesto García <ernestognw@gmail.com>
Co-authored-by: sudo rm -rf --no-preserve-root / <pcaversaccio@users.noreply.github.com>
Co-authored-by: danilo neves cruz <cruzdanilo@gmail.com>
Co-authored-by: omahs <73983677+omahs@users.noreply.github.com>
Co-authored-by: skyge <1506186404li@gmail.com>
Co-authored-by: PurrProof <149718167+PurrProof@users.noreply.github.com>
Co-authored-by: Eric Lau <ericglau@outlook.com>
Co-authored-by: plooten <sunxingzhecrypto@gmail.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Md Zartaj Afser <91191500+Zartaj0@users.noreply.github.com>
2024-10-17 17:41:15 +02:00
3291252c86 Document risk of SafeERC20 and ERC-7674 (#5262) 2024-10-17 13:33:22 +02:00
fe6249ec2c Bytes library and CAIP2/CAIP10 helpers (#5252)
Co-authored-by: cairo <cairoeth@protonmail.com>
Co-authored-by: Ernesto García <ernestognw@gmail.com>
Co-authored-by: Arr00 <13561405+arr00@users.noreply.github.com>
2024-10-14 22:41:08 +02:00
bd588959ad Add toUint, toInt and hexToUint to Strings (#5166)
Co-authored-by: cairo <cairoeth@protonmail.com>
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2024-10-14 17:13:33 +02:00
72c152dc1c Fix spelling issues in documentation (#5235) 2024-10-09 22:23:01 -06:00
6325009675 Split StorageSlot into TransientSlot (#5239)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2024-10-08 13:39:53 -06:00
2bedb02bfc Fix typo in CHANGELOG.md (#5240) 2024-10-08 13:11:30 -06:00
8b591baef4 Add 5.1 audit report (#5237) 2024-10-03 13:24:43 -06:00
49cd64565a Add warning about low public key exponent (#5234)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2024-10-01 11:50:58 -06:00
b72e3da0ec Bump forge-std to v1.9.3 (#5230) 2024-09-30 14:38:42 -07:00
e3cfe1c5dd Fix P256 corner cases (#5218)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2024-09-30 10:05:44 -06:00
d3ca1d1f00 Fix invalid link and typos (#5232) 2024-09-30 14:55:03 +02:00
cceac54953 Add introduction tag for v5.1 contracts (#5228)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2024-09-27 17:47:15 +02:00
ae753b7eac Improve VestingWallet's constructor and RSA.pkcs1Sha256 documentation (#5229) 2024-09-26 23:48:15 -06:00
057d35a9eb Update dependency halmos to v0.2.0 (#5225)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-25 16:28:02 -06:00
414cb9e6fd Consistently name multiple returned values (#5177) 2024-09-25 16:23:31 -06:00
4c481d6584 Implement 5.1 Full Audit Naming Suggestions (#5215)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: cairo <cairoeth@protonmail.com>
2024-09-25 16:18:40 -06:00
f6db28630c Add P256 and RSA documentation sections (#5227) 2024-09-25 14:53:54 -07:00
cc67e0eb83 Add comment and tests for zero address behavior in Ownable2Step.transferOwnership() (#5226)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2024-09-25 09:34:12 -06:00
2f0bc58946 Update and clarify documentation comments (#5206)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2024-09-23 09:17:10 -06:00
e866815c7d Fix typo in ERC4626 docs (#5222)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2024-09-23 09:16:54 -06:00
530179a71f Disallow empty CircularBuffer setup (#5214) 2024-09-19 11:20:04 -06:00
b1f6bbe69f Add note about memory manipulation in MerkleTree (#5213) 2024-09-19 17:08:52 +02:00
8a309ab5ec Update documentation of helper interface (#5179)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2024-09-19 15:54:54 +02:00
f3825ab335 Clarify mapping named parameters (#5204) 2024-09-19 15:16:52 +02:00
204ffee531 Clarify reference commits and licenses (#5205) 2024-09-19 15:16:19 +02:00
3cfebcb5c4 Refactor Heap.sol to remove index and lookup (#5190)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2024-09-19 14:29:39 +02:00
f20981528f refactor: enhance ERC6372 behavior test with detailed checks (#5164) 2024-09-19 14:18:31 +02:00
3f901696f7 Clean dirty addresses and booleans (#5195)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2024-09-18 18:21:17 +02:00
809ded806f Remove redundant modulo operation in P256 (#5200) 2024-09-17 14:42:06 -06:00
37c35a1eaa Update to match Solidity pragma (#5198) 2024-09-17 14:39:45 -06:00
6e224307b4 Fix typographical errors (#5194) 2024-09-13 19:26:46 +02:00
cae60c595b Tag memory safe assembly blocks (#5193) 2024-09-09 21:49:34 +02:00
c01a0fa27f Bump version of ERC20TemporaryApproval to transient minimum (#5191) 2024-09-08 12:32:56 +02:00
55d69573fc Clarify Governor events' lack of indexed parameters (#5175)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2024-09-05 20:39:42 +02:00
cb7faaf4db Add clone variant with per-instance immutable arguments (#5109)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2024-09-04 09:41:40 +02:00
dfb3ec36b5 Make padding skip clear in Base64URL encoding (#5176) 2024-09-03 11:37:09 -06:00
9e970eb9fa Guidelines for named return values (#5178) 2024-09-03 09:04:18 -06:00
55fd53c6d2 Add note about 100% royalty in IERC2981 (#5173) 2024-09-03 15:49:37 +02:00
373eabeca6 Optimizations to P256 operations (#5181)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2024-09-03 14:29:26 +02:00
29a953954d Revert "Remove double declaration of P in P256 (#5159)" (#5180) 2024-08-30 21:31:00 +02:00
83f954d8c4 Add memory side effects notes when using function pointers (#5174) 2024-08-30 13:44:05 +02:00
a9161aa93f Update dependency glob to v11 (#5107)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-29 21:16:27 -06:00
d8bbd34676 Update declaration of memory safe assembly blocks (#5172) 2024-08-29 15:07:17 -06:00
1e7ca3eea6 Remove redundant array access in Checkpoints (#5169) 2024-08-29 14:38:31 -06:00
37619479cd Remove unused import in IAccessManaged (#5170) 2024-08-29 13:45:16 -06:00
3547cdce21 Fix typographical errors (#5171) 2024-08-29 13:41:30 -06:00
48c67c7de0 Add missing docstrings (#5168)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2024-08-29 11:58:35 -06:00
1edc2ae004 Update dependency halmos to v0.1.14 and Python to 3.11 (#5147)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: cairo <cairoeth@protonmail.com>
2024-08-22 15:51:58 -07:00
5fc38baea2 Fix documentation typos (#5118)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2024-08-22 15:28:11 -07:00
eb4e8632f7 Bump axios from 1.6.8 to 1.7.4 (#5156)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-21 14:40:11 -06:00
db464dd23b Remove double declaration of P in P256 (#5159) 2024-08-21 14:35:52 -06:00
0b58a783b9 Update codespell-project/actions-codespell action to v2.1 (#5151)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-20 07:51:07 -06:00
4764ea5075 Fix prepare when using as git repository dependency
Co-authored-by: Ernesto García <ernestognw@gmail.com>
Co-authored-by: cairo <cairoeth@protonmail.com>
2024-08-12 14:54:18 -04:00
c304b6710b Update MerkleProof note clarifying empty set definition (#5144)
Co-authored-by: cairo <cairoeth@protonmail.com>
Co-authored-by: sudo rm -rf --no-preserve-root / <pcaversaccio@users.noreply.github.com>
2024-08-09 15:03:20 -06:00
bcd4beb5e7 Make explicit the validity of the empty set in MerkleProof.sol (#5142) 2024-08-07 09:34:02 -06:00
24a641d9c9 Get leaves from memory in processMultiProofCalldata (#5140) 2024-08-03 00:00:26 +02:00
aec36ddd6a Create a ERC1363Utils helper similar to existing ERC721Utils and ERC1155Utils (#5133)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
Co-authored-by: cairo <cairoeth@protonmail.com>
2024-08-02 13:06:42 -06:00
e3786e63e6 Fix natspec comment missing * (#5136) 2024-07-31 20:18:27 +02:00
c1d49a3259 Add note about opinionated design to ERC4626Fees (#5129) 2024-07-29 14:09:27 -06:00
9d6a0cc7e9 Fix documentation of private function _upperLookupBinary in Checkpoints.sol (#5128)
Co-authored-by: cairo <cairoeth@protonmail.com>
2024-07-29 18:58:02 +02:00
659f3063f8 Fix typo in Heap.sol documentation (#5121) 2024-07-24 10:32:55 +02:00
231fae33f0 Add Binary heap structure (#5084)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
Co-authored-by: cairo <cairoeth@protonmail.com>
2024-07-23 11:31:26 -06:00
9e73c4b581 Typographic error in Math.sol comment fix (#5115) 2024-07-22 22:09:13 -06:00
e30b390d84 Add ERC7674 (draft) (#5071)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
Co-authored-by: cairo <cairoeth@protonmail.com>
2024-07-22 17:23:08 +02:00
19a657bef8 Protect Packing.pack and Packing.replace against values that include dirty bits (#5117) 2024-07-21 20:56:15 +02:00
b73bcb231f Process and verify merkle proofs (and multiproof) with custom hash function (#4887)
Co-authored-by: ernestognw <ernestognw@gmail.com>
2024-07-15 18:08:58 +02:00
4b33d326fa Update dependency rimraf to v6 (#5108)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-15 13:31:57 +02:00
05f218fb66 Implement P256 verification via RIP-7212 precompile with Solidity fallback (#4881)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
Co-authored-by: cairo <cairoeth@protonmail.com>
Co-authored-by: sudo rm -rf --no-preserve-root / <pcaversaccio@users.noreply.github.com>
2024-07-03 09:17:46 +02:00
ccc110360f Add Foundry tests to coverage (#5098)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2024-06-29 18:24:18 +02:00
9af280dc4b Bump braces from 3.0.2 to 3.0.3 (#5083)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-27 16:18:47 -06:00
01cae33130 Clarify hardhat and foundry configs and enable optimization by default (#5099) 2024-06-27 16:03:50 -06:00
483fc3f1f8 Update LICENSE (#5100) 2024-06-26 16:57:40 -06:00
5480641e5c Reduce memory leakage from returndata in SafeERC20 (#5090)
Co-authored-by: ernestognw <ernestognw@gmail.com>
Co-authored-by: cairo <cairoeth@protonmail.com>
2024-06-25 09:32:54 -06:00
c3f8b760ad Fix docs links to ERC165 (#5096) 2024-06-21 16:02:42 -06:00
442886ed5f Fix repeated words in ERC2771Forwarder comments (#5088) 2024-06-17 12:49:25 -06:00
83c7e45092 Fix dirty bits in upper bits in implementation address in Clones.sol (#5069)
Co-authored-by: ernestognw <ernestognw@gmail.com>
2024-06-14 10:29:05 -06:00
8a990e6d6a Avoid storing hashing function pointers in storage make MerkleTree structure upgrade-safe (#5080)
Co-authored-by: cairo <cairoeth@protonmail.com>
Co-authored-by: ernestognw <ernestognw@gmail.com>
2024-06-13 14:50:10 +02:00
53b5d84212 Add bytes6 to the Packing library. (#5077) 2024-06-12 16:23:35 -06:00
dc62599257 Extended packing and extracting library for value types (#5056)
Co-authored-by: ernestognw <ernestognw@gmail.com>
2024-06-11 12:07:00 -06:00
d8e799db98 Implement RSA verification (#4952)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
Co-authored-by: cairo <cairoeth@protonmail.com>
2024-06-11 11:16:30 -06:00
de4154710b Use Arrays.unsafeMemoryAccess in ERC1155Supply (#5068)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2024-06-07 14:41:40 -06:00
337bfd5ea4 Add utility function for converting an address to checksummed string (#5067) 2024-06-04 21:43:14 +02:00
8a890ffffa Update ERC1363 error signatures (#5010)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
Co-authored-by: cairo <101215230+cairoeth@users.noreply.github.com>
2024-06-04 12:42:20 +02:00
06449fe7bc Improve wording in _checkAuthorized's natspec (#5066) 2024-06-03 13:07:21 -06:00
c1d6ad5a30 Add GovernorCountingFractional (#5045)
Co-authored-by: ernestognw <ernestognw@gmail.com>
Co-authored-by: Francisco <fg@frang.io>
2024-05-30 13:49:36 -06:00
dd1e8988ab Generate already lint code from procedural generation (#5060) 2024-05-30 09:16:12 -06:00
a241f09905 Use free memory pointer for returndatacopy (#5057) 2024-05-27 21:29:07 +02:00
faa6255b80 Fix typo in Governance docs (#5048)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2024-05-27 13:15:47 +02:00
984233dcad Bubble up returndata from reverted Create2 deployments (#5052)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: ernestognw <ernestognw@gmail.com>
2024-05-27 12:45:32 +02:00
52e0e3e783 Extend onlyAuthorized to support extra functions in AccessManager (#5014)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2024-05-27 11:09:42 +02:00
b64c90202a Fix Codespell (#5055) 2024-05-27 10:48:02 +02:00
1224d197c7 Update dependency halmos to v0.1.13 (#5054)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-23 12:49:26 -06:00
f1a69f164e Add Halmos support for formal verification (#5034)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2024-05-23 09:01:12 -06:00
9de916dd9c Update dependency solhint to v5 (#5038)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2024-05-23 15:09:37 +02:00
fe68c12f9c Fix spelling (#5049) 2024-05-23 15:06:42 +02:00
d947fb056d Fix typo in GovernorVotesQuorumFraction.test.js (#5041) 2024-05-17 15:24:06 +02:00
255e27e6d2 Update crytic/slither-action action to v0.4.0 (#5030)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-14 14:29:17 -06:00
ca2b85d786 Update actions/setup-python action to v5 (#4781)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2024-05-13 18:52:30 -06:00
48ce444477 Fix Governor.t.sol's duplicate words (#5037) 2024-05-13 14:31:29 -06:00
05d4bf57ff Fix Typo in Math.sol (#5033) 2024-05-13 09:33:47 -06:00
52c36d412e Fix UPGRADE_INTERFACE_VERSION documentation in ProxyAdmin (#5031) 2024-05-03 15:27:03 +02:00
c80b675b8d Add CircularBuffer data structure (#4913)
Co-authored-by: ernestognw <ernestognw@gmail.com>
2024-04-26 10:28:59 -06:00
60697cb09a Fix typo in Math.ternary (#5026)
Signed-off-by: snoppy <michaleli@foxmail.com>
2024-04-25 12:04:34 -06:00
4032b42694 Branchless ternary, min and max methods (#4976)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2024-04-23 14:08:08 +02:00
60afc99053 Update codecov/codecov-action action to v4 (#4978) 2024-04-23 13:59:56 +02:00
11dc5e3809 Expose an initializer function for non-abstract contracts in their upgradeable versions (#5008)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2024-04-09 12:03:02 +02:00
427b8bb028 Make Votes.sol _makeDelegateVotes internal (#5007) 2024-04-08 15:25:47 -06:00
df78791c96 Fix broken references in doc-site (#5004)
Co-authored-by: ernestognw <ernestognw@gmail.com>
2024-04-08 15:25:19 -06:00
40cfb80e4b Update dependency undici to v6 (#4994)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: ernestognw <ernestognw@gmail.com>
2024-04-08 13:46:44 -06:00
5212e8eb18 Bump ERC1967Utils pragma to 0.8.21 and set Slither CI version to 0.10.1 (#5005)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: ernestognw <ernestognw@gmail.com>
2024-04-08 11:45:24 -06:00
f8c2e1035e Add Packing library (#4992)
Co-authored-by: ernestognw <ernestognw@gmail.com>
2024-04-05 14:59:18 +02:00
90fd7cc7dd Bump undici from 5.26.2 to 5.28.4 (#4990)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-04 17:21:10 -06:00
bbc6ef90b7 Get ERC-1967 event from interface (#4987) 2024-04-04 17:18:15 -06:00
b6e07917eb Transient version of ReentrancyGuard (#4988)
Co-authored-by: ernestognw <ernestognw@gmail.com>
2024-04-04 14:33:30 -06:00
8a7a9c5857 Update dependency hardhat-gas-reporter to v2 (#4986)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-04 01:40:32 +02:00
d6ad9db0a0 Add transient storage slot support in StorageSlot.sol (#4980)
Co-authored-by: ernestognw <ernestognw@gmail.com>
2024-04-04 01:15:30 +02:00
2d259ac346 Update dependency solhint to v4 (#4708)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-03 22:49:22 +02:00
6f4ebf1190 Update dependency hardhat-gas-reporter to v2 (#4979)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2024-04-03 10:09:56 -06:00
db97666d0b Update crytic/slither-action action to v0.3.2 (#4984)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-02 19:29:27 -06:00
cb2aaaa04a Add slot derivation library (#4975) 2024-03-27 21:17:46 +00:00
5e3ba29b08 Procedurally generate Arrays.sol (#4859)
Co-authored-by: ernestognw <ernestognw@gmail.com>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2024-03-27 13:17:19 +00:00
d1f39cd00b Update crytic/slither-action action to v0.3.1 (#4865)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-27 13:01:14 +00:00
6d94d00b98 Update actions/github-script action to v7 (#4738)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-27 13:00:00 +00:00
0a5fba7a7e Update ERC2771Forwarder assembly comment (#4972)
Co-authored-by: ernestognw <ernestognw@gmail.com>
2024-03-26 12:03:56 +00:00
9558e546d9 Remove redundant memory usage in ERC2981 royaltyInfo (#4538)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2024-03-25 17:06:28 +01:00
d398d68944 Mask computed address in Create2 and Clones libraries (#4941)
Co-authored-by: ernestognw <ernestognw@gmail.com>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2024-03-25 14:33:45 +00:00
ad27fb654a Optimize nested mapping access in ERC721Enumerable (#4545)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2024-03-25 12:14:16 +00:00
159fc11d81 Remove repetitive word from CHANGELOG.md (#4970)
Signed-off-by: majorteach <csgcgl@126.com>
2024-03-25 12:06:52 +00:00
9f123d6a84 Bump follow-redirects from 1.15.4 to 1.15.6 (#4960)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-25 11:28:15 +00:00
976a3d5362 Run linter before pushing to git (#4962)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2024-03-21 18:47:01 +01:00
e203e02523 Remove outdated comment in ERC-20 (#4968)
Co-authored-by: ernestognw <ernestognw@gmail.com>
2024-03-21 16:42:56 +01:00
0c18fac08a Update Solidity files in docs (#4956)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2024-03-20 16:04:00 +00:00
6ae2c17bfe Remove outdated comment in ERC-20 (#4964) 2024-03-18 22:21:34 +00:00
e682c7e5b5 Fix typos in utilities and access control docs (#4920)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2024-03-14 20:40:07 +01:00
c03952acbe Remove async from describe blocks and add missing await in tests (#4942)
Co-authored-by: ernestognw <ernestognw@gmail.com>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2024-03-14 17:35:08 +01:00
33ea1111b0 Avoid validating ECDSA signatures for addresses with code in SignatureChecker (#4951)
Co-authored-by: ernestognw <ernestognw@gmail.com>
2024-03-14 16:27:15 +00:00
6b4ec6c6c6 Remove root from MerkleTree (#4949)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2024-03-12 10:30:54 -06:00
8cc7f2dcbf Remove repetitive words in the docs (#4944)
Signed-off-by: cuinix <915115094@qq.com>
2024-03-08 13:17:53 +01:00
92ff025622 Add a MerkleTree builder (#3617)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2024-03-07 16:27:38 +01:00
e83142944f Add ability to create clones with initial value in Clones.sol (#4936)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: ernestognw <ernestognw@gmail.com>
2024-03-06 13:44:42 -06:00
8b2f29ceb0 Optimize Clone.sol yul (#4927) 2024-03-06 09:37:20 +01:00
7417c5946f Remove redundant getVotes call in Governor (#4940)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: ernestognw <ernestognw@gmail.com>
2024-03-04 18:34:05 +01:00
0a3f880753 Update documentation in IAccessControl (#4924)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2024-03-04 16:17:51 +00:00
7a29f7df51 Improve MerkleProof tests (#4937)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2024-03-01 14:46:52 -06:00
c8369d483c Fix typo in ERC721Utils.sol (#4938) 2024-03-01 15:49:25 +00:00
105fa4e1b0 Merge release-v4.9 branch (#4932)
Co-authored-by: ernestognw <ernestognw@gmail.com>
2024-02-29 20:04:20 +00:00
5705e8208b Merge release-v5.0 branch (#4930) 2024-02-29 13:48:02 -06:00
51b3e37d07 Update LICENSE (#4934) 2024-02-29 13:40:43 -06:00
92224533b1 Merge pull request from GHSA-9vx6-7xxf-x967
* add tests for the encode reads dirty data issue

* Fix the encode reads dirty data issue

* add changeset

* trigger the issue without assembly

* rename mock

* gas optimization

* Apply suggestions from code review

Co-authored-by: Ernesto García <ernestognw@gmail.com>

* alternative fix: cheaper

* update comment

* fix lint

---------

Co-authored-by: Ernesto García <ernestognw@gmail.com>
2024-02-29 10:03:32 -06:00
8b4b7b8d04 Simplify finance tests (#4912) 2024-02-22 15:15:26 +00:00
141c947921 Update chai matchers (#4899)
Co-authored-by: ernestognw <ernestognw@gmail.com>
2024-02-19 19:27:39 +01:00
3def8f9d15 Rewrite comments using superscript for avoid confusion with xor operator (#4903) 2024-02-16 16:06:07 +00:00
140d66fad8 Improved integer square root (#4403)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2024-02-16 09:56:29 -06:00
96e5c0830a Deduplicate code in scripts/helpers and test/helpers/iterate (#4895)
Co-authored-by: ernestognw <ernestognw@gmail.com>
2024-02-15 17:40:48 -06:00
4e7e6e54da Add bytes memory version of Math.modExp (#4893)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2024-02-14 10:06:34 +01:00
ae1bafcb48 Add VestingWalletWithCliff (#4870)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2024-02-13 10:01:45 +01:00
f8b1ddf591 Add variants of Array.sort for address[] and bytes32[] (#4883)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2024-02-12 16:34:07 +00:00
72c0da9ae0 Fix typo in AccessManaged.sol (#4890) 2024-02-12 10:13:11 -06:00
8b12f83a70 Remove gas optimization changeset entries (#4889) 2024-02-09 22:36:14 +01:00
17a8955cd8 Optimize Math operations using branchless bool to uint translation. (#4878)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: ernestognw <ernestognw@gmail.com>
2024-02-07 10:20:25 +01:00
0a757ec463 Add sort in memory to Arrays library (#4846)
Co-authored-by: RenanSouza2 <renan.rodrigues.souza1@gmail.com>
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2024-02-06 20:49:12 +00:00
036c3cbef2 Replace custom errors with native panic codes in DoubleEndedQueue (#4872)
Co-authored-by: ernestognw <ernestognw@gmail.com>
2024-02-06 21:02:01 +01:00
e73913c3c1 Update hardhat-exposed to remove mock/_import.sol (#4879) 2024-02-06 19:16:47 +00:00
9d3b9be04f Fix natspec comments in ERC-1155 (#4876) 2024-02-06 15:58:00 +00:00
192e873fcb Add Math.modExp and a Panic library (#3298)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: ernestognw <ernestognw@gmail.com>
2024-02-02 18:40:00 +01:00
cc431f53e0 Remove deprecated Truffle code (#4868) 2024-02-01 21:36:31 +00:00
7eba10dd1e Move ERC721 and ERC1155 receiver checks to dedicate libraries (#4845)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2024-01-30 12:58:35 -06:00
61117c4db8 Bound lookup in arrays with duplicate (#4842)
Co-authored-by: RenanSouza2 <renan.rodrigues.souza1@gmail.com>
Co-authored-by: ernestognw <ernestognw@gmail.com>
2024-01-29 20:44:33 +01:00
7439664490 Remove note about event access in ERC1967Utils.sol (#4861) 2024-01-29 11:42:53 -06:00
b5a7f977d8 Improve ERC-1363 documentation (#4854)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
Co-authored-by: Vittorio Minacori <vittoriominacori@gmail.com>
2024-01-24 16:27:04 +01:00
6b30d2d8de Fuzz Base64 and Base64URL (#4853)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2024-01-24 09:09:41 -06:00
e86bb45477 Add a Math.inv function that inverse a number in Z/nZ (#4839)
Co-authored-by: ernestognw <ernestognw@gmail.com>
2024-01-24 09:57:24 +01:00
e5f02bc608 Add ERC1363 implementation (#4631)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: ernestognw <ernestognw@gmail.com>
2024-01-24 08:38:25 +00:00
a51f1e1354 List every contract in each API doc section (#4848)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2024-01-23 09:55:09 -06:00
a5c4cd8182 Add new EnumerableMap types (#4843)
Co-authored-by: ernestognw <ernestognw@gmail.com>
2024-01-22 19:25:01 +00:00
e5c63635e3 Remove documented requirement in IERC1155's balanceOf (#4847) 2024-01-19 10:52:32 +01:00
dfae50fa5b Refactor abs without logical branching (#4497)
Co-authored-by: Francisco Giordano <fg@frang.io>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: ernestognw <ernestognw@gmail.com>
2024-01-18 20:22:47 +00:00
72c642e13e Lower fuzz runs to 5000 (#4835) 2024-01-18 10:03:07 +01:00
b27cd83eba Remove hardhat-foundry and check harnesses compilation in CI (#4832)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2024-01-17 20:32:32 +01:00
ec7ee76494 Update actions/cache action to v4 (#4841)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-17 13:24:46 -06:00
0b343abcb5 Enable more solhint rules (#4836) 2024-01-17 09:23:18 -06:00
06eb785fcf Remove obsolete ERC4626 mint NatSpec (#4837)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2024-01-17 09:20:28 -06:00
d7490e4f59 Fix gas report format (#4838) 2024-01-17 09:16:51 -06:00
d2ba1f6251 Remove redundant memory usage in Checkpoints (#4540)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2024-01-17 10:51:36 +01:00
692dbc560f Add Base64Url encoding (#4822)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2024-01-16 16:12:50 -06:00
281ab15886 Run gas-compare action on push to master (#4834) 2024-01-16 11:09:50 +01:00
2fb73e5004 Remove outdated release script (#4833) 2024-01-14 11:13:02 -06:00
efb8c1af6e Fix gas report generation (#4824)
Co-authored-by: ernestognw <ernestognw@gmail.com>
2024-01-12 23:24:17 +00:00
e68720efb6 Refactor supports interface (#4817) 2024-01-12 16:45:49 -06:00
920225a1c7 Add missing return value names in IAccessManager (#4829)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2024-01-11 18:01:48 -06:00
a4b98bc79f Update actions/download-artifact digest to v3 (#4795)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: ernestognw <ernestognw@gmail.com>
2024-01-11 11:33:39 -06:00
a80563c008 Migrate to Node 20 (#4756) 2024-01-11 16:13:21 +00:00
fa87080d10 Bump follow-redirects from 1.15.3 to 1.15.4 (#4823)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-10 22:01:30 -06:00
ef68ac3ed8 Add getRoleMembers method to return all accounts that have role (#4546)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2024-01-04 14:07:53 +00:00
b4ceb054de Fix documentation inaccuracies in Governor (#4815) 2024-01-02 17:18:22 -06:00
04cb014144 Make tests style more uniform (#4812) 2024-01-02 10:31:33 -06:00
a72c9561b9 Finalize test migration: remove legacy dependencies and test helpers (#4797) 2023-12-26 23:46:06 +01:00
abcf9dd8b7 Replace Defender Admin with Transaction Proposals (#4804)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2023-12-22 15:52:00 -06:00
015ef69287 Refactor time helper and remove custom error helper. (#4803)
Co-authored-by: ernestognw <ernestognw@gmail.com>
2023-12-22 19:50:25 +00:00
be0572a8dc Migrate ERC1155 tests to ethers v6 (#4771)
Co-authored-by: ernestognw <ernestognw@gmail.com>
2023-12-21 21:57:39 +00:00
e70a0118ef Remove changesets already included in CHANGELOG (#4805) 2023-12-21 16:08:59 +01:00
f213a10522 Remove Governor's guide ERC6372 disclaimer for Tally (#4801) 2023-12-19 21:56:43 +01:00
f627500649 Update SupportsInterface.behavior.js (#4674)
Co-authored-by: ernestognw <ernestognw@gmail.com>
2023-12-19 15:14:25 +01:00
44965d7779 Migrate SafeERC20.test.js (#4798)
Co-authored-by: ernestognw <ernestognw@gmail.com>
2023-12-19 10:00:16 +01:00
5bca2119ca Migrate ERC165 tests (#4794) 2023-12-18 19:28:16 -06:00
c3cd70811b Migrate governance tests to ethers.js (#4728)
Co-authored-by: ernestognw <ernestognw@gmail.com>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2023-12-18 21:09:23 +01:00
d155600d55 Migrate utils/types/time tests to ethers.js (#4778)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2023-12-15 17:50:46 +01:00
88211e8fba Migrate ERC721 tests (#4793)
Co-authored-by: ernestognw <ernestognw@gmail.com>
2023-12-14 10:07:55 +01:00
88512b23d2 Migrate ERC20 extensions tests to ethers v6 (#4773)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: ernestognw <ernestognw@gmail.com>
2023-12-13 22:31:56 +00:00
6ba452dea4 Merge release-v5.0 branch (#4787)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Francisco Giordano <fg@frang.io>
Co-authored-by: Ernesto García <ernestognw@gmail.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Eric Lau <ericglau@outlook.com>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Zack Reneau-Wedeen <z.reneau.wedeen@gmail.com>
2023-12-08 15:47:12 +00:00
3af62716dd Make Multicall context-aware 2023-12-07 12:37:52 -06:00
cffb2f1ddc Migrate math tests to ethers.js v6 (#4769)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2023-12-04 13:00:00 -06:00
ef699fa6a2 Update Math try* operations return reference (#4775) 2023-12-01 14:46:46 +01:00
552cffde56 Add Governor note for state changes between proposal creation and execution (#4766)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2023-11-30 15:04:34 +01:00
ae69142379 Migrate proxy folder to ethersjs (#4746)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: ernestognw <ernestognw@gmail.com>
2023-11-29 21:51:08 +00:00
c35057978f Migrate ERC20 and ERC20Wrapper tests to ethersjs (#4743)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2023-11-29 13:57:16 -06:00
a32077bbac Update dependency @changesets/read to ^0.6.0 (#4764)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-29 00:03:42 +00:00
c411700572 Refactor EnumerableSet generation and tests (#4762) 2023-11-28 17:51:58 -06:00
74e396a967 Update dependency @changesets/changelog-github to ^0.5.0 (#4763)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-28 17:49:38 -06:00
e3478edfe7 Update dependency @changesets/pre to v2 (#4765)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-28 17:47:45 -06:00
e0ac73cd6e Refactor enumerableMap generate and tests (#4760) 2023-11-28 17:41:10 -06:00
769071d473 Add note in ERC20Wrapper about rebasing tokens (#4755)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2023-11-27 15:39:42 +00:00
0b1b5f89ef Create FUNDING.json (#4751) 2023-11-24 11:21:27 -06:00
78d5708340 Migrate utils to ethersjs v6 (#4736)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: ernestognw <ernestognw@gmail.com>
2023-11-24 01:32:30 +00:00
330c39b662 Implement revert tests for VestingWallet (#4733)
Co-authored-by: ernestognw <ernestognw@gmail.com>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2023-11-23 20:45:45 +00:00
e5fb718d40 Optimized gas costs in ceilDiv (#4553) 2023-11-23 09:31:14 -06:00
0950532d9a Migrate utils-structs tests to ethersjs (#4748)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: ernestognw <ernestognw@gmail.com>
2023-11-23 05:38:20 +00:00
7bd2b2aaf6 Use ERC-XXX syntax (#4730)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: ernestognw <ernestognw@gmail.com>
2023-11-22 23:18:04 -06:00
bf75bccaea Migrate address to ethersjs (#4739)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: ernestognw <ernestognw@gmail.com>
2023-11-22 22:52:44 -06:00
6a56b3b08d Migrate EIP712 to ethersjs (#4750)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: ernestognw <ernestognw@gmail.com>
2023-11-22 22:40:12 -06:00
9702b67ce1 Migrate utils-cryptography to ethers (#4749)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: ernestognw <ernestognw@gmail.com>
2023-11-22 21:35:55 -06:00
e473bcf859 Migrate metatx tests to ethers.js (#4737)
Co-authored-by: ernestognw <ernestognw@gmail.com>
2023-11-22 20:24:21 -06:00
6bc1173c8e Update dependency @nomicfoundation/hardhat-toolbox to v4 (#4742)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-17 10:34:51 +03:00
4e17c2e958 Update SECURITY.md and remove support for 2.x version (#4683) 2023-11-14 21:40:26 +00:00
4e419d407c Bump axios from 1.5.1 to 1.6.1 (#4734)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-12 15:48:07 +00:00
7294d34c17 Rename VotesTimestamp to ERC20VotesTimestampMock (#4731) 2023-11-10 15:15:38 +00:00
7de6fd4a26 Close access-control.adoc code block (#4726) 2023-11-09 16:27:40 +00:00
cf6ff90b6d Migrate AccessManager tests to ethers (#4710)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2023-11-09 15:56:54 +00:00
cb1ef861e5 Add AccessManager guide (#4691)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Eric Lau <ericglau@outlook.com>
Co-authored-by: Zack Reneau-Wedeen <z.reneau.wedeen@gmail.com>
2023-11-09 15:09:05 +00:00
f1f427ddaf Migrate finance tests to ethers.js (#4723)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: ernestognw <ernestognw@gmail.com>
2023-11-08 18:14:06 +00:00
248be2fab0 Improve ERC4626 virtual offset notes (#4722) 2023-11-08 16:18:23 +00:00
74016c376a Update docs for Ownable2Step (#4721)
Co-authored-by: Nicolás Venturo <nicolas.venturo@gmail.com>
2023-11-07 16:35:58 +00:00
94697be8a3 Fixed Misleading Typo in CHANGELOG.md related to false solidity version (#4697)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2023-10-26 12:31:45 -06:00
2ec2ed9695 Migrate AccessControl tests (#4694)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2023-10-25 20:52:09 -06:00
7c8b7a2728 Migrate MerkleProof tests among other testing utilities (#4689) 2023-10-23 12:24:46 -06:00
149e1b79fe Migrate Ownable tests (#4657)
Co-authored-by: ernestognw <ernestognw@gmail.com>
2023-10-17 10:05:58 +02:00
aed22fbc22 Add view modifier to proxyAdmin in TransparentUpgradeableProxy (#4688)
Co-authored-by: Eric Lau <ericglau@outlook.com>
2023-10-17 10:03:04 +02:00
9c22fb5f33 Clarify is fine relying on the storage slot 2023-10-16 15:51:33 -06:00
16ee2e16da Update dependency undici to v5.26.2 [SECURITY] (#4687)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-16 12:17:48 -06:00
6383299d71 AccessManager tests consolidation (#4655) 2023-10-12 11:32:30 -06:00
b48d658228 Update the "utilities" documentation page (#4678)
Co-authored-by: ernestognw <ernestognw@gmail.com>
2023-10-12 19:08:15 +02:00
3eb5cfb22a Nonces FV (#4528)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2023-10-12 16:30:02 +02:00
7ef4333301 Add compile step in checks.yml (#4675) 2023-10-12 11:27:50 +02:00
faa83c693a Add note about SafeMath.sol remaining functions moved to Math.sol (#4676) 2023-10-12 11:24:31 +02:00
793d92a333 Document ERC1155 event differences (#4666) 2023-10-06 15:40:03 -03:00
3e6c86392c Merge release-v5.0 branch (#4665)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Francisco Giordano <fg@frang.io>
Co-authored-by: Ernesto García <ernestognw@gmail.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Eric Lau <ericglau@outlook.com>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2023-10-05 15:30:30 -03:00
a754936a47 Remove v5.0 release candidate note and add audit (#4663)
Co-authored-by: Francisco Giordano <fg@frang.io>
2023-10-05 14:45:18 -03:00
e78628bfcf Document AccessManager functions and events in IAccessManager (#4660)
Co-authored-by: Francisco <fg@frang.io>
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2023-10-05 12:55:11 -03:00
0f89a7e5f8 Update "Using with Upgrades" page for 5.0 (#4659) 2023-10-05 14:51:52 +00:00
e12511b53e Fix guides for 5.0 (#4654)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
2023-10-04 22:37:11 -03:00
655bd58487 Improve GovernorTimelockAccess tests (#4642)
Co-authored-by: Francisco <fg@frang.io>
2023-10-04 21:29:25 -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
954f6110d6 4.0.0-beta.1 2021-03-03 16:23:38 +01:00
4390b8df12 Add ERC721URIStorage extension (#2555)
(cherry picked from commit 1705067e65)
2021-03-03 16:15:51 +01:00
cb88e15b33 Enable optimizations when publishing package (#2557)
(cherry picked from commit 618a735816)
2021-03-03 16:15:26 +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
136de91049 Rename variable master to implementation #2 (#2553)
(cherry picked from commit 103ff8e23d)
2021-03-03 12:33:03 +01:00
103ff8e23d Rename variable master to implementation #2 (#2553) 2021-03-03 12:31:33 +01:00
e2bf45f262 Rename variable master to implementation
(cherry picked from commit cdb929aada)
2021-03-02 21:30:26 -03:00
cdb929aada Rename variable master to implementation 2021-03-02 21:25:56 -03:00
93d990c653 Optimize constructor of ERC777 (#2551)
(cherry picked from commit 62af16b9f2)
2021-03-02 21:31:07 +01:00
62af16b9f2 Optimize constructor of ERC777 (#2551) 2021-03-02 21:29:05 +01:00
3dfd02b4b4 Fix link to TimelockController
(cherry picked from commit ba1d773176)
2021-03-02 21:14:33 +01:00
7a7bd8f6d7 Fix typo Controler -> Controller
(cherry picked from commit 583146f9d6)
2021-03-02 21:14:26 +01:00
16312fcfb9 Rename UpgradeableProxy to ERC1967Proxy (#2547)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
(cherry picked from commit c789941d76)
2021-03-02 21:14:08 +01:00
a81a88cca0 Fix mentions of buidler (#2548)
(cherry picked from commit 232c355b3a)
2021-03-02 21:14:00 +01:00
5acedf5027 Change title of meta transactions page in docs sidebar
(cherry picked from commit 773c7265e8)
2021-03-02 21:13:51 +01:00
566c601d41 Update lockfile (#2546)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
(cherry picked from commit 742c436d28)
2021-03-02 21:13:39 +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
15214a53ce Optimize implementation of ERC20Capped (#2524)
(cherry picked from commit 36b855972b)
2021-03-01 12:09:21 -03:00
36b855972b Optimize implementation of ERC20Capped (#2524) 2021-02-24 22:07:03 +00:00
d5f4862405 Fix package.json files field
(cherry picked from commit 735c03fcf3)
2021-02-24 00:36:08 -03:00
735c03fcf3 Fix package.json files field 2021-02-24 00:35:47 -03:00
4a1985f870 Fix migrate-imports.js test for upgradeable paths
(cherry picked from commit 4519c237c5)
2021-02-24 00:20:07 -03:00
4519c237c5 Fix migrate-imports.js test for upgradeable paths 2021-02-23 23:50:40 -03:00
ac8279a0a5 Update Antora component version 2021-02-23 23:31:48 -03:00
7cab19a2e4 Check upgradeable paths in migrate-imports test
(cherry picked from commit 4ee9fd77fd)
2021-02-23 23:31:34 -03:00
4ee9fd77fd Check upgradeable paths in migrate-imports test 2021-02-23 23:29:43 -03:00
556cdf5f1a 4.0.0-beta.0 2021-02-22 17:44:21 -03:00
c760fe9a2e Update package-lock.json 2021-02-22 17:44:02 -03:00
24a0bc23cf Reorganize the repo structure (#2503)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-02-22 16:44:16 +00:00
c3178ff942 Add message to caution that SafeMath.sol is for Solidity 0.8 2021-02-19 18:17:42 -03:00
f8cc8b844a Minimal support for ERC2771 (GSNv2) (#2508)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-02-19 15:36:48 -03:00
e341bdc1b7 Remove enumerable from AccessControl and add AccessControlEnumerable extension (#2512)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-02-19 17:36:56 +00:00
09734e8028 Remove enumerable from ERC721 and add an ERC721Enumerable extension (#2511)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-02-19 13:24:39 -03:00
7d20d0e2d2 Use immutable variables where possible (#2528)
Co-authored-by: rotciv <victorfage@gmail.com>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2021-02-19 11:11:54 -03:00
0059b17dfc Remove _isConstructor() check in initializer modifier (#2531)
* Remove _isConstructor() check in initializer modifier

* add changelog entry
2021-02-18 20:53:00 -03:00
e733b24dfe Refactor ERC165 to use function overriding instead of storage (#2505)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-02-18 19:02:28 +00:00
f7c8252611 Remove GSNv1 contracts (#2521)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-02-18 15:27:18 +00:00
e66e3ca523 Improve gas efficiency of EnumerableMap (#2518)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-02-18 15:19:57 +00:00
24660c3e48 Fix keccak256 typo (#2525) 2021-02-17 13:34:39 +01:00
ee6348a7a0 change CHANGELOG indentation for consistency 2021-02-09 17:25:41 +01:00
a44303c373 Remove double sload when doing math checks in tokens (#2506)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-02-09 12:58:23 -03:00
f49e9ee41b Update lockfile (#2493)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-02-09 11:59:35 -03:00
1ba03b164a Add support for eth-gas-reporter (#2501)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-02-09 00:42:35 +00:00
9c1e703990 Add a Strings.toHexString function (#2504)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-02-08 20:55:56 +00:00
f2112be4d8 Add revert string to Counter decrement overflow (#2500) 2021-02-04 20:28:13 +00:00
c82895fb65 Fix codecov reports 2021-02-04 17:15:32 -03:00
b840341a77 Remove the storage associated with decimals (#2502)
* Removing the storage associated with decimals

* changelog entry

* changelog link to new issue number

* Update contracts/token/ERC20/ERC20.sol

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

* Update contracts/token/ERC20/ERC20.sol

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

* Update CHANGELOG.md

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

Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-02-04 20:06:00 +01:00
ed7623273a Fix prepare-docs-solc.js for Hardhat 2021-02-04 14:22:19 -03:00
9425a7e0ab Merge branch 'solc-0.8'
Conflicts:
	CHANGELOG.md
	package-lock.json
	test/math/SafeMath.test.js
2021-02-02 22:13:28 +01:00
93438eca0b Merge 3.4 master into solc-0.8 (#2499)
* 3.4.0-rc.0

* Allow manual dispatch of Test CI job

* Update lockfile (#2481)

Co-authored-by: Renovate Bot <bot@renovateapp.com>

* Add "available since" comments in documentation

* Add "available since" comments in documentation

(cherry picked from commit 63a0343dda)

* Remove SafeMathMock compilation warnings (#2497)

* Remove SafeMathMock compilation warnings (#2497)

(cherry picked from commit f4e57fd529)

* 3.4.0

* fix safemath test to use renamed function from the mock

Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-02-02 22:07:56 +01:00
e28615628b Merge branch 'release-v3.4' 2021-02-02 16:16:16 -03:00
fa64a1ced0 3.4.0 2021-02-02 16:15:12 -03:00
0f553e7f9e Remove SafeMathMock compilation warnings (#2497)
(cherry picked from commit f4e57fd529)
2021-02-02 12:03:02 -03:00
f4e57fd529 Remove SafeMathMock compilation warnings (#2497) 2021-02-02 11:46:23 -03:00
a0e2bca79a Add "available since" comments in documentation
(cherry picked from commit 63a0343dda)
2021-02-01 21:45:27 -03:00
63a0343dda Add "available since" comments in documentation 2021-02-01 21:44:58 -03:00
5db7413827 re-enabling safemath revert reasons in ERC20, ERC777 and ERC1155 (#2491)
* re-enabling safemath revert reasons in ERC20 and ERC1155

* adding revert messages to ERC777

* removing uncheck block
2021-02-01 11:00:16 +01:00
d163aeb80d Update lockfile (#2481)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-01-29 19:41:00 -03:00
60205944bb Adopt new Solidity features interfaceId, try/catch, keccak constants (#2487)
* Clean code

-  using type().interfaceId to improve readeability of ERC165 registration
- hardcoding some keccak256 that are otherwise computed at construction.

* hardcode keccak256 result

* Improve code readeability using try/catch

* Remove hardcoded hash 

tests show that solc 0.8.0 does the optimization as expected

* Use try/catch to improve readability

* ERC165Checker: Do not revert when returndata is empty + new test

* Address PR comments

* improve testing of ERC721Receiver errors

* put back comment about invalid interface id

* coverage does not support 0.8.1. Reverting back to 0.8.0

* bubble all data with length > 0 if onERC721Receive fails.

* Fix test: revert without message trigger is bubble with the default message

* using enum object to improve readability
2021-01-29 22:20:49 +01:00
03832c130c Make Context._msgData return "bytes calldata" (#2492) 2021-01-29 12:51:51 -03:00
9f93e25b88 Merge branch 'solc-0.7' into 'solc-0.8' 2021-01-27 18:36:46 -03:00
afaebc3869 Disable solhint until Solidity 0.8 supported 2021-01-27 18:17:13 -03:00
fdf57a9788 Lint 2021-01-27 18:14:15 -03:00
5609cd4c74 Fix merge errors 2021-01-27 18:04:52 -03:00
a0323d446c Transition from buidler to hardhat 2021-01-27 11:37:18 +01:00
0db76e98f9 Merge branch 'solc-0.7' into solc-0.8 2021-01-27 11:28:23 +01:00
fa33fbce75 Allow manual dispatch of Test CI job
(cherry picked from commit bcc7192af7)
2021-01-26 18:21:49 -03:00
bcc7192af7 Allow manual dispatch of Test CI job 2021-01-26 18:20:33 -03:00
0d27b7a7ff Add package-lock.json 2021-01-26 18:18:58 -03:00
6d202894b6 Merge branch 'master' 2021-01-26 18:58:15 +01:00
ff300b10e1 3.4.0-rc.0 2021-01-26 13:31:55 -03:00
18c7efe800 Make view and pure functions virtual (#2473)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-01-26 13:23:23 -03:00
0931062a3f Use Address.sendValue instead of address.transfer in RefundEscrow (#2480)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-01-26 13:07:19 -03:00
3b4c951838 Fix ERC777 potential reentrancy issues (#2483) 2021-01-26 10:57:18 -03:00
c2c08af16d Add ERC165Checker.getSupportedInterfaces (#2469)
Co-authored-by: conspyrosy <1027439+Spyros-Stylianou@users.noreply.github.com>
Co-authored-by: kamiebisu <kamiebisu@protonmail.com>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-01-19 17:55:22 -03:00
9e49be41b6 Add ERC1167 library (minimal proxy) (#2449)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-01-19 17:54:47 -03:00
dd86c97e18 Fix scripts/prepare-docs.sh 2021-01-19 14:56:17 -03:00
5a8e6bda51 Update pull request template 2021-01-19 13:41:00 -03:00
c34211417c Refactor SafeMath to avoid memory leaks (#2462)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-01-18 18:06:27 -03:00
974c534210 Update contracts to support Solidity 0.8.x (#2442)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-01-14 19:38:53 -03:00
5a58fd2de0 Update lockfile (#2467)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-01-13 21:06:06 -03:00
faec973e09 Make non-view functions virtual (#2468) 2021-01-13 18:25:39 -03:00
65b7e515a2 Align comments (#2458) 2021-01-11 16:43:45 -03:00
318c4b44ea Move Context from GSN to utils directory (#2453)
Co-authored-by: Hadrien Croubois <hadrien@openzeppelin.com>
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-01-07 13:04:13 -03:00
b6e5187973 Use Address.sendValue for PaymentSplitter (#2456)
* use Address.sendValue instead of .transfer

* changelog entry

Co-authored-by: Hadrien Croubois <hadrien@openzeppelin.com>
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2021-01-07 13:03:20 -03:00
1e8cb4b4a4 Bubble revert reasons in proxy initialization (#2454)
Co-authored-by: Hadrien Croubois <hadrien@openzeppelin.com>
2021-01-07 12:45:36 -03:00
9daa0d4d2f Update lockfile (#2447)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-01-04 15:19:03 -03:00
ceb7324657 Update TimelockController.sol (#2446) 2020-12-23 20:25:01 -03:00
da00d28cb7 Rename "amount" to "value" in permit (#2445) 2020-12-23 12:09:16 -03:00
c23d5e0143 Update lockfile (#2444)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-12-22 16:31:03 -03:00
d8658dbc47 Update actions/setup-node action to v2 (#2440)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-12-22 16:06:12 -03:00
a6a4c042f5 Adjust for chainid becoming view in 0.8.0. (#2443)
Co-authored-by: Alex Beregszaszi <alex@rtfs.hu>

Co-authored-by: Daniel Kirchner <daniel@ekpyron.org>
2020-12-21 18:14:21 -03:00
6be0b410dc Use explicit conversions between addresses and numbers (#2439)
Co-authored-by: hrkrshnn <webmail.hari@gmail.com>
Co-authored-by: cameel <cameel2@gmail.com>
2020-12-17 22:51:48 -03:00
051d340171 Use bytes1 and avoid using the obsolete byte type (#2438) 2020-12-14 16:42:01 -03:00
0a4233f0f6 Update lockfile (#2435)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-12-14 13:50:33 -03:00
ecc66719bd Add ERC20 Permit (EIP-2612) (#2237)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
Co-authored-by: Santiago Palladino <spalladino@gmail.com>
2020-12-11 13:34:02 -03:00
03d51c5677 Bump ini from 1.3.5 to 1.3.7 (#2430)
Bumps [ini](https://github.com/isaacs/ini) from 1.3.5 to 1.3.7.
- [Release notes](https://github.com/isaacs/ini/releases)
- [Commits](https://github.com/isaacs/ini/compare/v1.3.5...v1.3.7)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-10 19:14:51 -03:00
268c6ab36c Edit ERC20 API index to make it clearer 2020-12-09 20:04:08 -03:00
0786f31f22 Update lockfile (#2428)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-12-09 13:32:42 -03:00
883116e4af Add ERC20 and ERC777 fixed supply presets #2377 (#2399)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2020-12-02 14:51:33 -03:00
5748034cd3 Add EIP 712 helpers (#2418) 2020-12-02 13:17:24 -03:00
061e7f0da7 Fix Solidity warning 2020-12-01 18:33:58 -03:00
a138dc3970 Remove stalebot 2020-12-01 12:33:09 -03:00
fa2b204535 Update TimelockController docs (#2415)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2020-11-30 20:14:02 -03:00
73c7af102b Configure Codecov parameters 2020-11-30 19:03:58 -03:00
18a8ae5a8a Change styling for headings in API pages 2020-11-30 18:09:32 -03:00
fa65bf89be Remove inheritance that conflicts with upgradeable transpiler 2020-11-30 16:34:07 -03:00
60c8b0e02f Update lockfile (#2416)
* Update lockfile

* fix ERC1155Pausable test

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2020-11-30 16:16:58 -03:00
acac4a7fca Merge branch 'release-v3.3' 2020-11-26 20:48:06 -03:00
6be5ffe54f 3.3.0 2020-11-26 20:43:43 -03:00
ba843f0ad9 Fix release script 2020-11-26 20:42:32 -03:00
4297be6ac1 Use custom ids for timelock docs section titles
(cherry picked from commit 7d02933da3)
2020-11-26 19:13:44 -03:00
7d02933da3 Use custom ids for timelock docs section titles 2020-11-26 19:12:58 -03:00
d2003a6fff Fix NatSpec comment syntax
(cherry picked from commit ef0483b4be)
2020-11-26 18:57:46 -03:00
ef0483b4be Fix NatSpec comment syntax 2020-11-26 18:56:49 -03:00
9e51b2e5df Add beacon proxy changelog entry 2020-11-26 13:10:54 -03:00
951e946e71 Add a beacon proxy contract (#2411)
Co-authored-by: Santiago Palladino <spalladino@gmail.com>
2020-11-26 13:03:01 -03:00
1fccf6fa53 3.3.0-rc.2 2020-11-24 18:51:47 -03:00
7f8fc584de Remove Address.functionDelegateCall 2020-11-24 18:47:09 -03:00
1d1d2ba661 Add mention of TimelockController in intro to access docs
(cherry picked from commit 520bf7ac61)
2020-11-24 18:15:57 -03:00
520bf7ac61 Add mention of TimelockController in intro to access docs 2020-11-24 18:14:40 -03:00
85f50d3e06 Update lockfile (#2412)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2020-11-24 17:06:01 -03:00
e12cb97e16 Only display own modifiers in contract docs index 2020-11-20 13:37:22 -03:00
a3a7e6fa34 Remove Context from function index in docs site 2020-11-20 13:12:15 -03:00
3881175d72 Fix TimelockController link in changelog
(cherry picked from commit ef32c04795)
2020-11-19 16:05:16 -03:00
ef32c04795 Fix TimelockController link in changelog 2020-11-19 16:04:12 -03:00
42da4d6867 Fix name of argument in docstring
Fixes #2410
2020-11-18 18:54:09 -03:00
f7bb84ce4c Add changelog entry about support for both 0.6 and 0.7
(cherry picked from commit 5bd1c0d063)
2020-11-18 16:31:41 -03:00
5bd1c0d063 Add changelog entry about support for both 0.6 and 0.7 2020-11-18 16:31:15 -03:00
c67d81bae1 3.3.0-rc.1 2020-11-17 21:39:45 -03:00
a5d1ac7ed0 Merge branch 'master' into release-v3.3 2020-11-17 21:39:07 -03:00
b8187aa529 Merge branch 'master' into solc-0.7 2020-11-17 21:37:54 -03:00
877f440331 Fix package.json version out of sync 2020-11-17 21:37:21 -03:00
58892471a3 Merge branch 'master' into solc-0.7 2020-11-17 21:34:25 -03:00
90ed1af972 Support compiling with solc 0.7 (#2408) 2020-11-17 21:29:39 -03:00
21344b91ed Lint 2020-11-17 20:26:17 -03:00
3f9673c177 Update package-lock.json 2020-11-17 19:52:43 -03:00
fce2513827 Remove date from changelog 2020-11-17 19:25:45 -03:00
3debb8820e Fix changelog versioning to include date only after final release
(cherry picked from commit d3a4e31fe2)
2020-11-17 19:24:35 -03:00
d3a4e31fe2 Fix changelog versioning to include date only after final release 2020-11-17 19:23:02 -03:00
25ac33486c 3.3.0-rc.0 2020-11-17 18:58:48 -03:00
5803e11663 Improve script to version changelog 2020-11-17 18:50:10 -03:00
b33372cc92 Fix changelog entry for Bytes32Set 2020-11-17 18:27:23 -03:00
bcb2b5d1cd Update lockfile (#2407)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-11-16 15:44:11 -03:00
3f2a2b5f62 Configure compilation with solc 0.7.4 2020-11-16 14:17:03 -03:00
4972bf4f23 Merge branch 'master' into solc-0.7 2020-11-16 14:11:46 -03:00
3d2e5c0310 Update lockfile (#2384)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2020-11-13 22:50:00 -03:00
f547b6ff27 Remove outdated comment in testing.md 2020-11-13 16:44:11 -03:00
5272799bdd Fix ERC1155 URI example (#2401) 2020-11-12 18:23:35 -03:00
1a230e3aa5 Rename upgrade-safe package to upgradeable 2020-11-12 16:10:01 -03:00
679b7d147c Clean Buidler cache before publishing 2020-11-11 17:47:15 -03:00
8effd1e02a Add scripts for when publishing @openzeppelin/contracts directly
(cherry picked from commit a1408a3411)
2020-11-11 16:40:23 -03:00
cb19930b83 Run tests on release branches 2020-11-11 12:49:23 -03:00
c6b07b33c5 Lint 2020-11-11 12:24:08 -03:00
47e37975c9 Remove bad SafeCast test 2020-11-11 12:22:06 -03:00
5472eedbad Add guide about OZ Contracts Upgrade Safe (#2403)
Co-authored-by: Andrew B Coathup <28278242+abcoathup@users.noreply.github.com>
2020-11-10 18:24:47 -03:00
af95fe7a93 Reorder package.json fields 2020-11-09 16:40:38 -03:00
705b0b0001 Improve GitHub Actions node_modules caching 2020-11-06 23:39:56 -03:00
35c931126b Remove old contracts/examples directory from package.json 2020-11-06 19:45:08 -03:00
6aada9d356 Update dependencies 2020-11-06 17:20:48 -03:00
da9161fc91 Migrate to GitHub Actions 2020-11-06 17:20:45 -03:00
1e78adc28c Refactor buidler config 2020-11-06 14:28:01 -03:00
fcdf8f4618 Add BytesSet (#2395)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2020-11-04 16:57:48 -03:00
8533499507 Lint 2020-10-29 16:42:32 -03:00
fb4659c5d7 Change convention for unreleased changelog entries 2020-10-28 17:23:54 -03:00
a1408a3411 Add scripts for when publishing @openzeppelin/contracts directly 2020-10-28 17:05:14 -03:00
f06738828b Migrate to Hardhat (#2397) 2020-10-28 17:03:05 -03:00
b6b1c0130b 3.2.2-solc-0.7 2020-10-28 16:33:23 -03:00
ea305cf32e Change convention for unreleased changelog entries 2020-10-28 16:33:08 -03:00
d41102d6c3 add changelog entry for #2396 2020-10-28 16:27:38 -03:00
0c27ecc536 configure renovate using openzeppelin shareable config 2020-10-28 14:05:14 -03:00
0f55c18595 Fix/solc 0.7.4 warnings #2391 (#2396)
* Fix unnamed return variable warning

This commit fixes warnings thrown by the solc 0.7.4 compiler:
"Warning: Unnamed return variable can remain unassigned. Add an explicit
return with value to all non-reverting code paths or name the variable."

* Fix function state mutability warning

This commit fixes warnings thrown by the solc 0.7.4 compiler:
"Warning: Function state mutability can be restricted to pure"

* Fix shadows an existing declaration warning

This commit fixes warnings thrown by the solc 0.7.4 compiler:
"Warning: This declaration shadows an existing declaration."

1. Arguments by default are not underscored.
2. If the name isn't available due to shadowing, use prefix underscore.
3. If prefix underscore isn't available due to shadowing, use suffix underscore.
2020-10-28 13:42:38 -03:00
e5fbbda9ba Add audit links to readme and doc index (#2392) 2020-10-21 15:59:43 -03:00
7650210ad6 Make contracts abstract if they had internal constructors (#2383) 2020-10-20 12:24:46 -03:00
ba125961d6 Update lockfile (#2381) 2020-10-16 12:48:30 -03:00
2bb06b1af4 Replace if (...) revert() with require(...) (#2376) 2020-10-13 18:36:47 -03:00
8108f2f9b9 Fixed comment typo (#2372) 2020-10-07 17:43:40 -03:00
08dfaab829 Add changelog entry for TimelockController 2020-10-05 16:26:41 -03:00
d1c121b599 Test ERC165 support in ERC1155Holder (#2365) 2020-09-18 19:19:29 -03:00
e98b187e64 Fix typos in ERC20 docs (#2364) 2020-09-17 19:45:12 -03:00
87326f7313 Add functionStaticCall and functionDelegateCall methods to Address library (#2333)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2020-09-17 16:19:11 -03:00
7f3eee750a Add TimelockController (#2354)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2020-09-17 16:16:05 -03:00
ace35fdeda Update all dependencies transitively (#2363) 2020-09-16 12:14:53 -03:00
bf4c9d700d Update all non-major dependencies (#2349)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-09-15 23:39:41 -03:00
c7d99531a7 Re-enable coverage analysis (#2291)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2020-09-15 20:59:42 -03:00
ca7ee098ca Fix whitespace in IERC721Receiver (#2359)
Slight nit on spacing to reduce # of lines // conform to other OZ function syntax
2020-09-15 19:30:09 -03:00
ec8efd52b4 3.2.1-solc-0.7 2020-09-15 18:17:10 -03:00
9a83ced46e Add changelog entry for 3.2.1-solc-0.7 2020-09-15 18:15:15 -03:00
0d7bf01ac1 Merge branch 'solc-0.7' into release-v3.2.0-solc-0.7 2020-09-15 17:48:27 -03:00
1229c28ce0 Update ERC20.sol (#2357)
Remove unused `Address` library import, references.
2020-09-14 13:35:46 -03:00
f7ca35c9c6 Configure solhint for solc 0.7 2020-09-10 20:41:40 -03:00
c08d1439dd Bump solhint to 3.2.0
(cherry picked from commit 09d437c1f9)
2020-09-10 20:39:26 -03:00
09d437c1f9 Bump solhint to 3.2.0 2020-09-10 20:37:32 -03:00
492d4ac013 Merge branch 'release-v3.2.0' into master 2020-09-10 20:27:39 -03:00
870ea2a88a Add -solc-0.7 version tag 2020-09-10 20:26:59 -03:00
29f4a38c0d Merge branch 'release-v3.2.0' into release-v3.2.0-solc-0.7 2020-09-10 20:14:37 -03:00
1ada3b633e 3.2.0 2020-09-10 20:10:42 -03:00
0ce14a078a Merge branch 'release-v3.2.0' into release-v3.2.0-solc-0.7 2020-09-09 17:43:31 -03:00
45b81c969f Add note about proxy changes in the changelog
(cherry picked from commit cfb7f80003)
2020-09-09 17:43:23 -03:00
cfb7f80003 Add note about proxy changes in the changelog 2020-09-09 17:43:00 -03:00
628dea7a08 update new contracts for solidity 0.7 2020-09-08 20:15:43 -03:00
22de765f3c Merge branch 'release-v3.2.0' into release-v3.2.0-solc-0.7 2020-09-08 20:14:42 -03:00
ae4e9845de Fix a grammatical error in a comment (#2352)
changed a comment in the isContract function to make it grammatically right.
2020-09-08 14:50:12 -03:00
95dc7525ac Bump decompress from 4.2.0 to 4.2.1 (#2347)
Bumps [decompress](https://github.com/kevva/decompress) from 4.2.0 to 4.2.1.
- [Release notes](https://github.com/kevva/decompress/releases)
- [Commits](https://github.com/kevva/decompress/compare/v4.2.0...v4.2.1)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-09-07 20:08:27 -03:00
f1cce7e223 Bump tree-kill from 1.2.1 to 1.2.2 (#2348)
Bumps [tree-kill](https://github.com/pkrumins/node-tree-kill) from 1.2.1 to 1.2.2.
- [Release notes](https://github.com/pkrumins/node-tree-kill/releases)
- [Commits](https://github.com/pkrumins/node-tree-kill/compare/v1.2.1...v1.2.2)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-09-07 20:08:01 -03:00
f2fb8cf23b 3.2.0-rc.0 2020-09-03 16:26:55 -03:00
9f900f6dba Add changelog entries for proxies and ERC20Snapshot 2020-09-03 14:20:42 -03:00
91f16a7e47 Adapt proxies to Contracts conventions (#2345) 2020-09-03 13:49:47 -03:00
6bc2ae3731 Add documentation for proxies (#2344) 2020-09-02 20:19:54 -03:00
885b76f66f Fix AsciiDoc missing attribute references 2020-09-01 18:48:43 -03:00
ded2b0a55c Fix minor typos and grammar in docs (#2338)
* Fix typos and formatting

* Add Solidity release dates: releases-stability
2020-09-01 15:19:17 -03:00
0f08b1d099 Update dependency mocha to v8.1.3 (#2340)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-09-01 15:10:54 -03:00
aaa5ef81cf Fix typos (#2343) 2020-09-01 14:57:40 -03:00
cb791a1b21 Add Proxies from OpenZeppelin SDK (#2335) 2020-08-27 21:02:42 -03:00
0b489f4d79 Improve test descriptions #1157 (#2334)
Co-authored-by: Paolo Dibitonto <p.dibitonto@almaviva.it>
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2020-08-25 14:58:45 -03:00
c187517395 fix solhint func-visibility for 0.7.0 2020-08-24 18:20:50 -03:00
89e2b7424b Merge branch 'master' into solc-0.7 2020-08-24 18:14:25 -03:00
1f06fd7e66 Update all non-major dependencies (#2317)
* Update all non-major dependencies

* disable solhint reason-string rule

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2020-08-24 18:00:34 -03:00
e5da0986bb Fix code style parameters in Event (#2324)
* chore: fix code style parameters in Event

* chore: update code style for events
2020-08-19 11:23:36 -03:00
0fc9578fe6 Merge CODE_STYLE.md into GUIDELINES.md (#2330) 2020-08-18 20:57:49 -03:00
b1ea59e814 Improve testing for ERC20Snapshot (#2331) 2020-08-18 20:40:51 -03:00
7d48d79b53 Fixed sidebar reference in README.md (#2329) 2020-08-18 12:50:35 -03:00
6d5a73815d Fix ERC20Snapshot#_beforeTokenTransfer (#2328) 2020-08-14 11:59:20 -03:00
d1f336d8fd use svg logo for better scaling 2020-08-12 20:51:33 -03:00
48072e439d Fix function state mutability warning (#2327)
Changes state mutability of granularity function from view to pure.
2020-08-12 16:06:21 -03:00
9700e6b4bd Use beforeTokenTransfer hook in ERC20Snapshot (#2312) 2020-08-11 16:51:58 -03:00
722879b32d increase mocha timeout 2020-08-11 16:45:44 -03:00
943a663a31 Updated ERC1155 tests (#2107)
Co-authored-by: Alan Lu <alanlu1023@gmail.com>
Co-authored-by: Nicolás Venturo <nicolas.venturo@gmail.com>
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2020-08-11 16:42:51 -03:00
2acb1abb1f 3.1.0-solc-0.7 2020-07-30 17:04:48 -03:00
4eb8d2bb10 Revert "feat: use extcodesize for isContract to reduce gas (#2311)"
This reverts commit c801c8d2bb.
2020-07-30 16:53:44 -03:00
04fc35707d Migrate contracts to Solidity 0.7 (#2319)
* Update contract pragmas to solidity 0.7

* Remove internal declaration on constructors

* Reference SafeMath explicitely

* Remove public constructor declaration from abstract contracts

* Remove public constructor declaration from non-abstract contracts
2020-07-29 18:11:32 -03:00
09014f90f9 Remove acronym from Readme 2020-07-24 12:52:40 -03:00
0c667ca32a docs: add note explaining opinionated presets (#2313)
* docs: add notes explaining presets

* fix links for mint function

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

Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2020-07-21 19:04:21 -03:00
7c4a2a0a29 Fix comment reference for function hash (#2307)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2020-07-21 17:06:36 -03:00
c801c8d2bb feat: use extcodesize for isContract to reduce gas (#2311)
* feat: use extcodesize for isContract to reduce gas

* feat: add changelog entry
2020-07-14 17:08:41 -03:00
98e862e162 Update all non-major dependencies (#2309)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-07-13 14:39:19 -03:00
b9d72d2991 Clean up build directory when publishing 2020-07-07 21:15:26 -03:00
c6612871fb Fix remaining preset links 2020-07-01 17:37:25 -03:00
b991fca341 Fix presets link 2020-07-01 12:25:05 -03:00
ef3bbbcf40 Add readme notices with link to docs site (#2300)
* add readme notices

* remove period after url
2020-06-29 17:23:53 -03:00
32f0fe5d08 Add to ERC1155 doc and minor fixes (#2282)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2020-06-25 14:28:50 -03:00
6d987f1418 Merge branch 'release-v3.1.0' 2020-06-23 16:10:59 -03:00
de99bccbfd 3.1.0 2020-06-23 16:09:01 -03:00
0cc882ef9d typo fix: forwared -> forwarded (#2290) 2020-06-23 14:25:30 -03:00
3f4420527b Separate mapping keyword by whitespace (#2287)
Co-authored-by: pm_468 <oleg.kuzmenko@lindenvalley.de>
2020-06-19 11:00:05 -03:00
21d06999f6 delete dependabot config 2020-06-16 19:40:06 -03:00
f3803d3a5d Bump mocha from 7.2.0 to 8.0.1 (#2280)
Bumps [mocha](https://github.com/mochajs/mocha) from 7.2.0 to 8.0.1.
- [Release notes](https://github.com/mochajs/mocha/releases)
- [Changelog](https://github.com/mochajs/mocha/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mochajs/mocha/compare/v7.2.0...v8.0.1)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-16 15:48:42 -03:00
c6da044dc5 Update ERC20 Supply guide (#2276)
* update for ERC20PresetMinterPauser

* fix erc20 supply guide to use hooks
2020-06-12 20:20:33 -03:00
02a6b05bde Update functionCall docs
(cherry picked from commit 242400e9ea)
2020-06-12 13:23:07 -03:00
242400e9ea Update functionCall docs 2020-06-12 13:22:52 -03:00
8c1daaab57 3.1.0-rc.0 2020-06-11 16:53:19 -03:00
7f62c8e145 Fix docs links to overloaded functions (#2275)
* fix links to overloaded functions

* fix Address xrefs

Co-authored-by: Nicolás Venturo <nicolas.venturo@gmail.com>
2020-06-11 16:50:00 -03:00
e2876b947d Fix docs link 2020-06-11 16:49:14 -03:00
ed3a513f86 Fix broken links 2020-06-11 16:48:00 -03:00
b72088a90a Add 'available since' notices 2020-06-11 16:46:33 -03:00
8b58fc7191 feat: add wrapper function for low level calls (#2264)
* feat: add wrapper function for low level calls

* add error message parameter

* adding unit tests and required mocks

* implement error message on SafeERC20

* fixed variable name in tests

* Add missing tests

* Improve docs.

* Add functionCallWithValue

* Add functionCallWithValue

* Skip balance check on non-value functionCall variants

* Increase out of gas test timeout

* Fix compile errors

* Apply suggestions from code review

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

* Add missing tests

* Add changelog entry

Co-authored-by: Nicolás Venturo <nicolas.venturo@gmail.com>
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2020-06-11 16:25:46 -03:00
d9fa59f30a Address ERC1155 changes (#2267)
* Make holder fns public

* Add context, remove msg.sender from check

* Fix location of Holder arguments

* Add beforeTransfer hook

* Minor test improvements

* Add ERC1155Burnable and tests

* Add ERC1155Pausable

* Add ERC1155PresetMinterPauser.sol

* Add uri constructors

* Improved revert reasons

* Initial docs improvements

* Add missing docs

* Improve acceptance checks revert reasons

* Apply suggestions from code review

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

* Remove note about 1155 preset uri in mint

* Add rquirements to balanceOfBatch

* Add note about URI and uri

* Fix list in docs

* Fix lint errors

* Use natural sorting for API titles

* Fix doc references

* Escape {id} references to remove docgen warnings

* Added intro docs, fixed links

* Apply suggestions from code review

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

* Add changelog entry

Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2020-06-09 14:47:51 -03:00
13e2132b69 docs: minor - spelling, grammar (#2273) 2020-06-09 13:18:38 -03:00
298e1b5fdc Merge branch 'release-v3.0.0' 2020-06-08 13:14:15 -03:00
5294f3b9b7 3.0.2 2020-06-08 13:09:47 -03:00
b191e67552 Add changelog entry 2020-06-08 13:07:02 -03:00
fac773ac99 Add SPX license identifier (#2235)
(cherry picked from commit 56de324afe)
2020-06-08 13:05:11 -03:00
82769e54c3 Fix 721 preset docs 2020-06-05 19:26:40 -03:00
022f2bc177 Improve SignedSafeMath docs 2020-06-05 18:42:28 -03:00
ccf79ee483 Fix SafeMath docs 2020-06-05 18:42:28 -03:00
ecf0725dd1 Documentation/erc721 contracts (#2218)
* Adds / Updates documentation of ERC721 contract

* Improve ERC721Burnable documentation

* Fix typo

* Revert changes on ERC721 private functions

* Add documentation to the ERC721 contract's constructor

* Add IERC721Receiver & ERC721Holder documentations

* Add references to IERC721 functions

* Add references to IERC721Metadata/Receiver

* PR fixes

* Fixes to ERC721 documentation

* Add missing fixes

Co-authored-by: Nicolás Venturo <nicolas.venturo@gmail.com>
2020-06-05 14:29:06 -03:00
d3ef93a9a5 Deprecate SafeERC20.safeApprove (#2268)
* Deprecate SafeERC20.safeApprove

* Add changelog entry
2020-06-05 14:13:53 -03:00
47a7a575e8 [Security] Bump websocket-extensions from 0.1.3 to 0.1.4 (#2269)
Bumps [websocket-extensions](https://github.com/faye/websocket-extensions-node) from 0.1.3 to 0.1.4. **This update includes a security fix.**
- [Release notes](https://github.com/faye/websocket-extensions-node/releases)
- [Changelog](https://github.com/faye/websocket-extensions-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/faye/websocket-extensions-node/compare/0.1.3...0.1.4)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-05 14:12:27 -03:00
ff8fe4be7e [Security] Bump acorn from 6.4.0 to 6.4.1 (#2270)
Bumps [acorn](https://github.com/acornjs/acorn) from 6.4.0 to 6.4.1. **This update includes security fixes.**
- [Release notes](https://github.com/acornjs/acorn/releases)
- [Commits](https://github.com/acornjs/acorn/compare/6.4.0...6.4.1)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-05 14:12:10 -03:00
d7a6e7be2e Feature/uint enumerable set tests #2253 (#2254)
* feature: setting sublevel test scenario for AddressSet

* feat: adding tests for EnumerableSet.UintSet

* feat: adding Behavior and AddressSet and UintSet tests
2020-06-04 14:57:35 -03:00
a81e948fc9 Add a simple catch-all implementation of the metadata URI interface (#2029)
* Initial ERC1155 implementation with some tests (#1803)

* Initial ERC1155 implementation with some tests

* Remove mocked isERC1155TokenReceiver

* Revert reason edit nit

* Remove parameters associated with isERC1155TokenReceiver call

* Add tests for approvals and single transfers

* Add tests for transferring to contracts

* Add tests for batch transfers

* Make expectEvent.inTransaction tests async

* Renamed "owner" to "account" and "holder"

* Document unspecified balanceOfBatch reversion on zero behavior

* Ensure accounts can't set their own operator status

* Specify descriptive messages for underflow errors

* Bring SafeMath.add calls in line with OZ style

* Explicitly prevent _burn on the zero account

* Implement batch minting/burning

* Refactored operator approval check into isApprovedForAll calls

* Renamed ERC1155TokenReceiver to ERC1155Receiver

* Added ERC1155Holder

* Fix lint issues

* Migrate tests to @openzeppelin/test-environment

* port ERC1155 to Solidity 0.6

* make ERC1155 constructor more similar to ERC721 one

* also migrate mock contracts to Solidity 0.6

* mark all non-view functions as virtual

* add simple catch-all implementation for the metadata URI interface

* include an internal function to set the URI so users can implement functionality to switch URIs

* add tests for ERC1155 metadata URI

* fix nits, mostly pointed out by linter

* convert ERC1155 metadata URI work to Solidity 0.6

* mark all non-view functions as virtual

* Port ERC 1155 branch to Solidity 0.6 (and current master) (#2130)

* port ERC1155 to Solidity 0.6

* make ERC1155 constructor more similar to ERC721 one

* also migrate mock contracts to Solidity 0.6

* mark all non-view functions as virtual

* Update contracts/token/ERC1155/IERC1155MetadataURI.sol

Starting on Solidity v0.6.2, interfaces can now inherit. \o/

Co-authored-by: Nicolás Venturo <nicolas.venturo@gmail.com>

* Fix compile errors

* Remove URI event

* Merge MetadataCatchAll into ERC1155

* Improve documentation.

* Simplify tests

* Move tests into ERC1155 tests

* Update documentation

* Bump minimum compiler version for inteface inheritance

* Fix holder tests

* Improve setUri docs

* Fix docs generation

Co-authored-by: Alan Lu <alanlu1023@gmail.com>
Co-authored-by: Nicolás Venturo <nicolas.venturo@gmail.com>
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2020-06-03 11:56:58 -03:00
ccfd370b89 Update Test Helpers to 0.5.6 (#2261)
* update test-helpers to 0.5.6-rc.0

* remove comment that no longer applies

* fix uses of expectEvent.notEmitted

* remove mocha only

* update to final version

* Update test/token/ERC777/ERC777.test.js

Co-authored-by: Nicolás Venturo <nicolas.venturo@gmail.com>

Co-authored-by: Nicolás Venturo <nicolas.venturo@gmail.com>
2020-06-02 17:00:56 -03:00
91516b2318 Allow overriding of ERC1155 functions (#2263)
* Make receiver functions private

* Make external functions public
2020-06-02 15:06:34 -03:00
52f7b6e03b Remove TokenVesting reference from Timelock docs (#2262) 2020-06-02 13:32:14 -03:00
64ab594ad6 Modify token presets "mint" function as virtual to allow extending (#2257)
* Modify token presets "mint" function as virtual to allow extending in parent contracts

* Update ERC20PresetMinterPauser.sol

* Update ERC721PresetMinterPauserAutoId.sol

* Update CHANGELOG.md

Co-authored-by: Nicolás Venturo <nicolas.venturo@gmail.com>
2020-06-01 17:17:32 -03:00
394987f365 Fix ERC777 hook docs, fixes #2256 2020-06-01 13:17:15 -03:00
df4b317fb3 Update start docs command line (#2255) 2020-06-01 11:53:04 -03:00
142f6c3f05 configure renovate to run weekly 2020-05-30 23:15:48 -03:00
414adb94f0 Update dependency ethereumjs-util to v7.0.2 (#2250)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-05-29 17:01:43 -03:00
7ee98cf525 Configure Renovate (#2248)
* Add renovate.json

* configure renovatebot

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2020-05-29 16:43:57 -03:00
d418da6b91 Decrease CREATE2 address computation gas usage from 623 to 539 (#2244)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2020-05-28 20:47:45 -03:00
2a0f2a8ba8 Update LICENSE (#2247)
bump to 2020 reference for (c)
2020-05-28 19:15:43 -03:00
5513dfd3cf Adding SafeCast variants for signed integers (#2243)
* feat: Adding SafeCast variants for signed integers

* Add newline at EOF

* Update CHANGELOG.md

* Update contracts/utils/SafeCast.sol

Co-authored-by: Nicolás Venturo <nicolas.venturo@gmail.com>

Co-authored-by: Nicolás Venturo <nicolas.venturo@gmail.com>
2020-05-26 19:17:34 -03:00
c18ffd7c81 Bump mocha from 7.1.2 to 7.2.0 (#2245)
Bumps [mocha](https://github.com/mochajs/mocha) from 7.1.2 to 7.2.0.
- [Release notes](https://github.com/mochajs/mocha/releases)
- [Changelog](https://github.com/mochajs/mocha/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mochajs/mocha/compare/v7.1.2...v7.2.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-26 18:09:17 -03:00
424ab2a024 Update SafeERC20.sol (#2246)
tweak intro dev comment to reflect more typical use case, wrapping an `IERC20` reference for a deposit contract using others' ERC-20 tokens. I might be mistaken ~ but typically SafeERC20 won't be used in conjunction with ERC20 for OZ token deployments?
2020-05-26 13:39:54 -03:00
e2b97d6712 Update readme to reflect docsite, fixes #2168 2020-05-19 13:54:11 -03:00
217a616fde Bump ethereumjs-util from 7.0.0 to 7.0.1 (#2238)
Bumps [ethereumjs-util](https://github.com/ethereumjs/ethereumjs-util) from 7.0.0 to 7.0.1.
- [Release notes](https://github.com/ethereumjs/ethereumjs-util/releases)
- [Changelog](https://github.com/ethereumjs/ethereumjs-util/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ethereumjs/ethereumjs-util/compare/v7.0.0...v7.0.1)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-18 15:53:38 -03:00
56de324afe Add SPX license identifier (#2235) 2020-05-14 21:58:11 -03:00
fa36244bec separate prepare and prepack scripts to fix CI 2020-05-13 17:28:13 -03:00
4fe31f8d4d Fixed typo in ERC20PresetMinterPauser (#2233)
* Fixed typo in ERC20PresetMinterPauser

* Update ERC721PresetMinterPauserAutoId.sol

Co-authored-by: Nicolás Venturo <nicolas.venturo@gmail.com>
2020-05-13 13:26:16 -03:00
cfa9ad9943 Fix ReentrancyGuard for Proxy Pattern (#2171)
* Fix ReentrancyGuard for Proxy Pattern

* Update ReentrancyGuard.sol

* Change constant values

* Add changelog entry

Co-authored-by: Nicolás Venturo <nicolas.venturo@gmail.com>
2020-05-12 20:23:28 -03:00
fd981ad315 fix removal of mocks from published package 2020-05-12 17:36:16 -03:00
5f9a86a8f2 Remove leftovers of TokenVesting contract 2020-05-08 17:04:22 -03:00
956d6632d9 ERC1155 feature pending tasks (#2014)
* Initial ERC1155 implementation with some tests (#1803)

* Initial ERC1155 implementation with some tests

* Remove mocked isERC1155TokenReceiver

* Revert reason edit nit

* Remove parameters associated with isERC1155TokenReceiver call

* Add tests for approvals and single transfers

* Add tests for transferring to contracts

* Add tests for batch transfers

* Make expectEvent.inTransaction tests async

* Renamed "owner" to "account" and "holder"

* Document unspecified balanceOfBatch reversion on zero behavior

* Ensure accounts can't set their own operator status

* Specify descriptive messages for underflow errors

* Bring SafeMath.add calls in line with OZ style

* Explicitly prevent _burn on the zero account

* Implement batch minting/burning

* Refactored operator approval check into isApprovedForAll calls

* Renamed ERC1155TokenReceiver to ERC1155Receiver

* Added ERC1155Holder

* Fix lint issues

* Migrate tests to @openzeppelin/test-environment

* Port ERC 1155 branch to Solidity 0.6 (and current master) (#2130)

* port ERC1155 to Solidity 0.6

* make ERC1155 constructor more similar to ERC721 one

* also migrate mock contracts to Solidity 0.6

* mark all non-view functions as virtual

Co-authored-by: Alan Lu <alanlu1023@gmail.com>
Co-authored-by: Nicolás Venturo <nicolas.venturo@gmail.com>
Co-authored-by: Robert Kaiser <kairo@kairo.at>
2020-05-08 13:38:43 -03:00
0c7b2ec09e Make Context abstract (#2229) 2020-05-08 13:02:07 -03:00
4cbcaf35e4 Fix linter errors 2020-05-08 12:57:43 -03:00
73baf0b635 Feature/Adding RoleAdminChanged event in AccessControl (#2214)
* Emit new event RoleAdminChanged

* Adding new RoleAdminChanged event in Tests

* Update suggested comments on new Event

Co-authored-by: Nicolás Venturo <nicolas.venturo@gmail.com>

* Adding PreviousAdminRole to event

* Update AccessControl.test.js

* Update CHANGELOG.md

Co-authored-by: Nicolás Venturo <nicolas.venturo@gmail.com>
2020-05-06 17:21:39 -03:00
78dc37739f Making IERC721Receiver an interface (#2225)
* Making IERC721Receiver an interface

* Update IERC721Receiver.sol

Co-authored-by: Nicolás Venturo <nicolas.venturo@gmail.com>
2020-05-06 16:47:53 -03:00
ac0a4327a9 Bump solidity-docgen from 0.4.1 to 0.5.3 (#2221)
* Bump solidity-docgen from 0.4.1 to 0.5.3

Bumps solidity-docgen from 0.4.1 to 0.5.3.

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

* Update prepare-docs.sh

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2020-05-04 17:14:12 -03:00
c20e620a06 Improve Pausable docs 2020-05-04 16:37:05 -03:00
4bc45e35c2 [Security] Bump acorn from 6.4.0 to 6.4.1 (#2224)
Bumps [acorn](https://github.com/acornjs/acorn) from 6.4.0 to 6.4.1. **This update includes security fixes.**
- [Release notes](https://github.com/acornjs/acorn/releases)
- [Commits](https://github.com/acornjs/acorn/compare/6.4.0...6.4.1)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-04 15:04:48 -03:00
b362e886ec Bump ethereumjs-util from 6.2.0 to 7.0.0 (#2222)
* Bump ethereumjs-util from 6.2.0 to 7.0.0

Bumps [ethereumjs-util](https://github.com/ethereumjs/ethereumjs-util) from 6.2.0 to 7.0.0.
- [Release notes](https://github.com/ethereumjs/ethereumjs-util/releases)
- [Changelog](https://github.com/ethereumjs/ethereumjs-util/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ethereumjs/ethereumjs-util/compare/v6.2.0...v7.0.0)

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

* update use of ethereumjs-util

* fix use of keccak hash function

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2020-05-04 14:55:16 -03:00
ca38899ede Upgrade solhint to 3.0 (#2223) 2020-05-04 14:49:41 -03:00
61973af29f Remove misleading SafeMath comment 2020-04-28 12:46:32 -03:00
087d314daf 3.0.1 2020-04-27 15:30:27 -03:00
6e3de4d48a Merge pull request #2213 from nventuro/merge-v2.5.1
Merge v2.5.1 into v3.0.0
2020-04-27 15:25:11 -03:00
dc3f92210b Bump mocha from 7.1.1 to 7.1.2 (#2216)
Bumps [mocha](https://github.com/mochajs/mocha) from 7.1.1 to 7.1.2.
- [Release notes](https://github.com/mochajs/mocha/releases)
- [Changelog](https://github.com/mochajs/mocha/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mochajs/mocha/compare/v7.1.1...v7.1.2)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-04-27 12:00:45 -03:00
1ff8a97d11 add docs badge 2020-04-24 19:46:24 -03:00
dd226e1987 Add latest audit notice 2020-04-24 16:35:24 -03:00
d0f67f99a7 Add changelog entry 2020-04-24 16:08:00 -03:00
e156b617b9 Merge branch 'release-v2.5.0' 2020-04-24 16:04:40 -03:00
837828967a 2.5.1 2020-04-24 15:57:33 -03:00
3843c9beb7 Add changelog entry 2020-04-24 15:34:38 -03:00
c75b016919 Add missing requirements to ERC777 (#2212)
* Restore _approve check for zero sender

* Add non-zero operator check to _send
2020-04-24 15:33:22 -03:00
ad290e7181 Use msg.sender in docs 2020-04-23 12:15:06 -03:00
364da52a49 Add note about default admin role security (#2211)
* Add note about default admin security

* Update contracts/access/AccessControl.sol

Co-Authored-By: Francisco Giordano <frangio.1@gmail.com>

Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2020-04-22 17:17:33 -03:00
e50e496f5b Remove unnecessary linter ignore 2020-04-21 15:04:04 -03:00
c4be4d16e8 ERC721 documentation (#2164)
* Add documentation to the IERC721 contract

* Add documentation to the IERC721Metadata contract

* Add documentation to the IERC721Enumerable contract

* Improves IERC721 documentation

* Improves IERC721Metadata documentation

* Improves IERC721Enumerable documentation

* Fixes documentations issues in IERC721

* Improves ERC721 interfaces documentation
2020-04-21 15:00:48 -03:00
6f40ed3fbf Fix crossreference 2020-04-20 21:27:48 -03:00
57551c8516 Fix asciidoc typos 2020-04-20 21:06:36 -03:00
b7452960be 3.0.0 2020-04-20 20:37:38 -03:00
32f55009af Remove outdated notes to v2.x docs 2020-04-20 20:37:20 -03:00
a4320108d5 Remove prerelease tag from docs 2020-04-20 20:24:24 -03:00
05085aa605 Merge branch 'master' into release-v3.0.0 2020-04-20 20:21:14 -03:00
528c23d679 Remove ethpm.json and update releasing docs (#2205)
* remove ethpm.json

* update releasing document

* fix release documentation to be more realistic
2020-04-20 20:10:30 -03:00
715ec806f0 ERC721 deploy ready fixes (#2192)
* Add baseURI to ERC721MinterPauser constructor

* Add tokenURI to mint

* Remove tokenId and tokenURI from ERC721 deploy ready

* Rename ERC721MinterPauser to ERC721MinterAutoID, remove Pausable mechanisms

* Restore pausing to ERC721

* Rename deploy ready to presets

* Rename ERC721 preset
2020-04-20 20:05:48 -03:00
5bb8d0245b Improve Hooks documentation (#2199)
* Improve Hooks docs

* Improve Utils docs

* Apply suggestions from code review

Co-Authored-By: Francisco Giordano <frangio.1@gmail.com>

* Add enumerable code samples

* Remove import statement from example

Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2020-04-20 16:43:05 -03:00
c986dfb256 [Security] Bump acorn from 6.4.0 to 6.4.1 (#2204)
Bumps [acorn](https://github.com/acornjs/acorn) from 6.4.0 to 6.4.1. **This update includes security fixes.**
- [Release notes](https://github.com/acornjs/acorn/releases)
- [Commits](https://github.com/acornjs/acorn/compare/6.4.0...6.4.1)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-04-20 14:17:12 -03:00
6d5ef3ef5f Bump solhint from 3.0.0-rc.7 to 3.0.0-rc.8 (#2202)
Bumps [solhint](https://github.com/protofire/solhint) from 3.0.0-rc.7 to 3.0.0-rc.8.
- [Release notes](https://github.com/protofire/solhint/releases)
- [Changelog](https://github.com/protofire/solhint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/protofire/solhint/compare/v3.0.0-rc.7...v3.0.0-rc.8)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-04-20 14:02:33 -03:00
2663c5ee0f Bump @openzeppelin/test-environment from 0.1.3 to 0.1.4 (#2201)
Bumps [@openzeppelin/test-environment](https://github.com/OpenZeppelin/openzeppelin-test-environment) from 0.1.3 to 0.1.4.
- [Release notes](https://github.com/OpenZeppelin/openzeppelin-test-environment/releases)
- [Changelog](https://github.com/OpenZeppelin/openzeppelin-test-environment/blob/master/CHANGELOG.md)
- [Commits](https://github.com/OpenZeppelin/openzeppelin-test-environment/compare/v0.1.3...v0.1.4)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-04-20 13:43:00 -03:00
1075898b06 Bump @openzeppelin/cli from 2.8.1 to 2.8.2 (#2200)
Bumps [@openzeppelin/cli](https://github.com/OpenZeppelin/openzeppelin-sdk) from 2.8.1 to 2.8.2.
- [Release notes](https://github.com/OpenZeppelin/openzeppelin-sdk/releases)
- [Commits](https://github.com/OpenZeppelin/openzeppelin-sdk/compare/v2.8.1...v2.8.2)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-04-20 12:33:00 -03:00
c7705712ba Remove in-constructor requirements (#2195)
* Remove isConstructor requirement from _setupRole

* Remove isConstructor requirement from _setupDecimals

* Update contracts/access/AccessControl.sol

Co-Authored-By: Francisco Giordano <frangio.1@gmail.com>

Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2020-04-17 17:00:30 -03:00
13e113df81 Improve usage of toString 2020-04-17 11:37:58 -03:00
cca71ab709 Fix deprecation warnings (#2115)
* Fix deprecation warnings

* Workaround linter bug
2020-04-16 12:13:49 -03:00
8b10cb38d8 Rename Strings.fromUint256 to Strings.toString (#2188)
* rename Strings.fromUint256 to Strings.toString

* add changelog entry

* fix conflict with js toString method
2020-04-15 18:04:00 -03:00
3e139baa50 Add missing hook to ERC777, fix relevant documentation (#2191)
* Improve ERC20/721 Pausable docs

* Add ERC20Pausable mint and burn tests

* Add ERC721Pausable mint and burn tests

* Add _beforeTransfer hook in ERC777 to mint and burn
2020-04-15 17:58:24 -03:00
b6513f6ad7 provide 'automatic' token URI by appending the token ID to the base URI (#2174)
* provide 'automatic' token URI by appending the token ID to the base URI, if a base is set but no token-specific URI is available

* make the three cases more explicit, avoid else after return

* adjust comments to reflect reality
2020-04-15 15:39:33 -03:00
4ca719bf8b Fix typo 2020-04-15 14:35:27 -03:00
3216fd9729 Configure line length in .editorconfig 2020-04-15 13:33:49 -03:00
b734bf3fa5 Tweak wording in ERC20Snapshot docs 2020-04-15 13:33:24 -03:00
3b10205c8e Improve ERC20Snapshot documentation (#2186)
Co-authored-by: Nicolás Venturo <nicolas.venturo@gmail.com>
2020-04-14 19:06:51 -03:00
d2ab599bd3 Update IERC777.sol (#2184) 2020-04-14 14:41:33 -03:00
281bcb747e Bump @openzeppelin/cli from 2.8.0 to 2.8.1 (#2182)
Bumps [@openzeppelin/cli](https://github.com/OpenZeppelin/openzeppelin-sdk) from 2.8.0 to 2.8.1.
- [Release notes](https://github.com/OpenZeppelin/openzeppelin-sdk/releases)
- [Commits](https://github.com/OpenZeppelin/openzeppelin-sdk/compare/v2.8.0...v2.8.1)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-04-13 13:30:27 -03:00
e03c05774b Bump solhint from 3.0.0-rc.6 to 3.0.0-rc.7 (#2183)
Bumps [solhint](https://github.com/protofire/solhint) from 3.0.0-rc.6 to 3.0.0-rc.7.
- [Release notes](https://github.com/protofire/solhint/releases)
- [Changelog](https://github.com/protofire/solhint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/protofire/solhint/compare/v3.0.0-rc.6...v3.0.0-rc.7)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-04-13 13:21:09 -03:00
05d1618d01 Update Contracts docs to make examples compile (#2170)
* Update access-control.adoc to make compile

Add call to `ERC20("MyToken", "TKN")` in `MyToken` constructor

* Update access-control.adoc to make compile

Add call to `ERC20("MyToken", "TKN")` in `MyToken` constructor

* Update access-control.adoc MyToken formatting

* Update erc20-supply.adoc to make compile

Add call to `ERC20("MyToken", "TKN")` in `ERC20FixedSupply` constructor

* Update erc20-supply.adoc to make compile

Add constructor to `ERC20WithMinerReward`

* Update erc20-supply.adoc to make compile

In `MinerRewardMinter` use `ERC20MinterPauser`

* Update erc20-supply.adoc to make compile

Add constructor and override to `ERC20WithAutoMinerReward`

* Update erc777.adoc to make compile

* Update gsn-strategies.adoc to make compile

* Update gsn-strategies.adoc to make compile

Fix imports, add overrides, and revert reason to `MyContract`
2020-04-07 08:45:48 -03:00
885378e421 Fix some of the code formatting in docs 2020-04-03 21:13:55 -03:00
0292d793f3 add passthrough delimiters to avoid italics from underscores (#2169)
Co-authored-by: Nicolás Venturo <nicolas.venturo@gmail.com>
2020-04-03 20:51:14 -03:00
f4566aaade Fix rc generator 2020-04-03 17:55:36 -03:00
d8a5ffeee9 Fix prerelease marker 2020-04-03 17:23:57 -03:00
9edee8a7a8 Fix linter errors 2020-04-03 17:15:40 -03:00
bbb245fc43 Add rc marker to docs 2020-04-03 17:13:56 -03:00
cd6f52997e Merge branch 'master' into release-v3.0.0 2020-04-03 17:06:39 -03:00
c4e5daff86 Fix Pausable docs 2020-04-03 17:06:33 -03:00
96a7113a16 Fix broken links 2020-04-03 17:05:36 -03:00
21ceabc77c Improve API docgen sorting 2020-04-03 17:02:04 -03:00
7c19c56844 Improve API docgen sorting 2020-04-03 17:01:29 -03:00
63a3665a17 3.0.0-rc.1 2020-04-03 16:22:56 -03:00
92a60b2587 Merge branch 'master' into release-v3.0.0 2020-04-03 16:22:25 -03:00
a0f6bd3926 Add 'deploy-ready' token contracts (#2167)
* Add ERC20DeployReady

* Add ERC721DeployReady

* Improve docs

* Fix linter errors

* Rename DeployReady contracts to MinterPauser, add docs

* Fix deploy ready docs

* Minor doc adjustment
2020-04-03 16:21:58 -03:00
402c6ab4cc Update docs (#2168)
* Update docs for ERC20 and ERC721

* Add EnumerableMap to docs

* Update misc guides

* Apply suggestions from code review

Co-Authored-By: Francisco Giordano <frangio.1@gmail.com>

Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2020-04-03 13:17:24 -03:00
6668a4d05c Remove unused behavior 2020-04-02 19:14:33 -03:00
bd0778461d Add EnumerableMap, refactor ERC721 (#2160)
* Implement AddressSet in terms of a generic Set

* Add Uint256Set

* Add EnumerableMap

* Fix wording on EnumerableSet docs and tests

* Refactor ERC721 using EnumerableSet and EnumerableMap

* Fix tests

* Fix linter error

* Gas optimization for EnumerableMap

* Gas optimization for EnumerableSet

* Remove often not-taken if from Enumerable data structures

* Fix failing test

* Gas optimization for EnumerableMap

* Fix linter errors

* Add comment for clarification

* Improve test naming

* Rename EnumerableMap.add to set

* Add overload for EnumerableMap.get with custom error message

* Improve Enumerable docs

* Rename Uint256Set to UintSet

* Add changelog entry
2020-04-02 15:43:06 -03:00
0408e51ae6 Bundle ERC20Detailed (#2161)
* Merge ERC20Detailed into ERC20, make derived contracts abstract

* Fix Create2 tests

* Fix failing test

* Default decimals to 18

* Add tests for setupDecimals

* Add changelog entry

* Update CHANGELOG.md

* Update CHANGELOG.md

* Replace isConstructor for !isContract

* Update CHANGELOG.md

Co-Authored-By: Francisco Giordano <frangio.1@gmail.com>

Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2020-04-02 15:30:21 -03:00
5b5d91c9d4 Remove 'external' functions (#2162)
* Remove _grantRole and _revokeRole, replace with _setupRole

* Make all external AccessControl functions public

* Remove Ownable._transferOwnership

* Rename ERC721's _safeTransferFrom and _transferFrom to _safeTransfer and _transfer

* Make all ERC721 external functions public

* Make all miscelaneous external functions public instead

* Add changelog entry

* Move calldata arguments to memory

* Update contracts/access/AccessControl.sol

Co-Authored-By: Francisco Giordano <frangio.1@gmail.com>

* Restrict setupRole to the constructor

* Replace isConstructor for !isContract

Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2020-04-02 15:29:58 -03:00
1bc923b6a2 fix use of asciidoc quotes 2020-03-30 20:13:30 -03:00
d704b5257b Fix typo in changelog, replace burn(owner) with burn(tokenId) (#2159) 2020-03-30 13:34:36 -03:00
06ae096586 Bump @openzeppelin/cli from 2.7.2 to 2.8.0 (#2157)
Bumps [@openzeppelin/cli](https://github.com/OpenZeppelin/openzeppelin-sdk) from 2.7.2 to 2.8.0.
- [Release notes](https://github.com/OpenZeppelin/openzeppelin-sdk/releases)
- [Commits](https://github.com/OpenZeppelin/openzeppelin-sdk/compare/v2.7.2...v2.8.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-30 13:22:59 -03:00
0f9adc1749 Fix broken xrefs (#2153)
* fix mentions of drafts.adoc

* fix 721.adoc
2020-03-30 12:47:13 -03:00
feb7ead005 Add revert if the bytecode length is zero (#2117)
* Add revert if the bytecode length is not greater than zero

* Add value parameter to create2 deploy function

Add tests for contract balance revert and depositing funds

* Change parameter name to amount for clarity

* Fix test for value sending

* Fix linter error

* Change revert reason

* Improve Create2.deploy documentation

* Slight test improvement

* Add changelog entry

Co-authored-by: Nicolás Venturo <nicolas.venturo@gmail.com>
2020-03-28 12:55:13 -03:00
7415ebe8bc API improvements for EnumerableSet (#2151)
* Add revert reason to EnumerableSet.get.

* Rename EnumerableSet values to keys

* Rename get to at

* Add changelog entry

* Rename keys to values

* Add leading underscore to struct members
2020-03-27 18:39:18 -03:00
24c37c1f9e Bundle ERC721 extensions into base contract (#2149)
* Add IERC721Metadata implementation into ERC721

* Add IERC721Enumerable into ERC721

* Update ERC721Pausable and ERC721Burnable

* Delete ERC721Metadata, ERC721Enumerable and ERC721 (now ERC721)

* Update mocks

* Update tests

* Update contracts/token/ERC721/ERC721.sol

Co-Authored-By: Francisco Giordano <frangio.1@gmail.com>

* Make ERC721Pausable and ERC721Burnable abstract

Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2020-03-27 17:27:41 -03:00
c8bef057f8 [Security] Bump acorn from 6.4.0 to 6.4.1 (#2152)
Bumps [acorn](https://github.com/acornjs/acorn) from 6.4.0 to 6.4.1. **This update includes a security fix.**
- [Release notes](https://github.com/acornjs/acorn/releases)
- [Commits](https://github.com/acornjs/acorn/compare/6.4.0...6.4.1)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-27 17:19:00 -03:00
97894a140d Adhere to naming convention (#2150)
* Upgrade to latest solhint rc

* Add private-vars-leading-underscore linter rule

* Add leading underscore to GSNRecipient constants

* Remove leading underscore from ERC165Checker functions

* Add leading underscore to multiple private constants

* Fix linter errors in mocks

* Add leading underscore to ERC777's ERC1820 registry

* Add changelog entry
2020-03-27 13:49:08 -03:00
4476a2d531 Unsigned conversion #2111 (#2123)
* Add signed to unsigned conversion to SafeCast

* Update SafeCast exception message

* Add test for SafeCast int to uint conversion

- Update SafeCastMock
- Add tests for SafeCast int256 to uint256

* Update SafeCast int to uint definition

Apply suggestions from code review.

Co-Authored-By: Nicolás Venturo <nicolas.venturo@gmail.com>

* Update test for SafeCast int to uint conversion

* Update SafeCast test after code review

- Change "downcasts" to "casts"
- Move test closer to its function

* Fix error in SafeCast toUint256 description

* Fix breaking error in SafeCast

* Add uint256 to int256 conversion to SafeCast

- Add function
- Add mock
- Add test

* Update SafeCast unsigned to signed conversion

- Update error in conversion to be more clear
- Update constants in test to be powers of 2 instead of shifts

* Add changelog entry

* Update SafeCast tests

- Add minus in INT256_MIN for clarity

Co-Authored-By: Nicolás Venturo <nicolas.venturo@gmail.com>

Co-authored-by: Nicolás Venturo <nicolas.venturo@gmail.com>
2020-03-27 10:56:30 -03:00
7554ea84a3 Update support request (#2148) 2020-03-26 10:11:55 -03:00
3118bb33ac Add forum link in new issue page 2020-03-25 19:59:41 -03:00
7c3606a19b Bump solidity-docgen from 0.4.0-beta.1 to 0.4.1 (#2145)
Bumps solidity-docgen from 0.4.0-beta.1 to 0.4.1.

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-25 15:06:43 -03:00
d6616fdb0d Bump mocha from 7.1.0 to 7.1.1 (#2144)
Bumps [mocha](https://github.com/mochajs/mocha) from 7.1.0 to 7.1.1.
- [Release notes](https://github.com/mochajs/mocha/releases)
- [Changelog](https://github.com/mochajs/mocha/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mochajs/mocha/compare/v7.1.0...v7.1.1)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-25 15:06:10 -03:00
c8aab57d8c Bump eslint-config-standard from 14.1.0 to 14.1.1 (#2143)
Bumps [eslint-config-standard](https://github.com/standard/eslint-config-standard) from 14.1.0 to 14.1.1.
- [Release notes](https://github.com/standard/eslint-config-standard/releases)
- [Changelog](https://github.com/standard/eslint-config-standard/blob/master/CHANGELOG.md)
- [Commits](https://github.com/standard/eslint-config-standard/compare/v14.1.0...v14.1.1)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-25 15:05:46 -03:00
3ae631c81d Fix display of array arguments in documentation (#2141)
* remove pass:normal from docs template

* add back pass:normal for auto links
2020-03-20 19:22:24 -03:00
0afba1fb9d [Security] Bump handlebars from 4.1.2 to 4.7.3 (#2138)
Bumps [handlebars](https://github.com/wycats/handlebars.js) from 4.1.2 to 4.7.3. **This update includes a security fix.**
- [Release notes](https://github.com/wycats/handlebars.js/releases)
- [Changelog](https://github.com/wycats/handlebars.js/blob/master/release-notes.md)
- [Commits](https://github.com/wycats/handlebars.js/compare/v4.1.2...v4.7.3)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: Nicolás Venturo <nicolas.venturo@gmail.com>
2020-03-18 00:07:59 -03:00
a65bcfdbe8 [Security] Bump acorn from 5.7.3 to 6.4.1 (#2137)
Bumps [acorn](https://github.com/acornjs/acorn) from 5.7.3 to 6.4.1. **This update includes a security fix.**
- [Release notes](https://github.com/acornjs/acorn/releases)
- [Commits](https://github.com/acornjs/acorn/compare/5.7.3...6.4.1)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-18 00:07:34 -03:00
60a73c6365 Merge branch 'master' into release-v3.0.0 2020-03-17 12:01:13 -03:00
5112b6b1b5 update solidity-docgen with support for solidity 0.6 (#2136) 2020-03-17 12:00:43 -03:00
865aae0106 Temporarily hide hooks page 2020-03-17 11:49:05 -03:00
5ccecab631 Add prerelease marker 2020-03-17 11:48:13 -03:00
a3c6e5f088 3.0.0-rc.0 2020-03-16 20:47:28 -03:00
a8d6f13c94 Remove all 'available since' notices 2020-03-16 20:44:56 -03:00
e7b22483af Make ERC777 operator the caller (#2134)
* Make the sender the operator

* Make hook methods private

* Add changelog entry
2020-03-16 19:49:17 -03:00
90058040f0 Make AccessControl GSN compatible (#2135) 2020-03-16 19:40:28 -03:00
63c89c772b [Security] Bump acorn from 6.4.0 to 6.4.1 (#2132)
Bumps [acorn](https://github.com/acornjs/acorn) from 6.4.0 to 6.4.1. **This update includes a security fix.**
- [Release notes](https://github.com/acornjs/acorn/releases)
- [Commits](https://github.com/acornjs/acorn/compare/6.4.0...6.4.1)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-16 19:37:48 -03:00
9975a1a0c2 Remove Address.toPayable (#2133)
* Remove Address.toPayable

* Add changelog entry
2020-03-16 18:22:02 -03:00
eb34ae67ff Make IERC721 contracts interfaces instead (#2113)
* Make IERC721 contracts interfaces instead

* Bump minimum compiler version for IERC721
2020-03-16 18:21:16 -03:00
f1db30955d Remove deprecated functions and contracts (#2125)
* Remove ERC721.burn(owner, tokenId)

* Remove ERC721._checkOnERC721Received from the contract's API

* Fix linter error

* Remove Escrow and PullPayment withdrawWithGas, replace for withdraw

* Add changelog entry

* Add reentrancy notice
2020-03-16 17:42:33 -03:00
c173392e15 Revamped Access Control (#2112)
* Remove Roles

* Add AccessControl and tests

* Removed IAccessControl

* Add RoleGranted and RoleRevoked events

* Make roles grantable and revokable regardless of their previous status

* Fix typo

* Add documentation

* Cleanup tests

* Add enumeration tests

* Add _setRoleAdmin tests

* Fix lint error

* Fix AccessControl link in docs

* WIP on access control guide

* Rename getRoleMembersCount

* Add tests for new role admin

* Make AccessControl GSN compatible

* Update access control guide

* Rename admin to adminRole

* Rename roleIds to roles

* Add 'operator' to RoleGranted and RoleRevoked events.

* Only emit events if the roles were not previously granted/revoked

* Uncomment expectEvent.not tests

* Rename operator to sender

* Add changelog entry
2020-03-16 17:41:24 -03:00
c9630526e2 Draft and lifecycles directories cleanup (#2122)
* Move Pausable into utils

* Move Strings into utils

* Move Counters into utils

* Move SignedSafeMath into math

* Remove ERC1046

* Make ERC20Snapshot.snapshot internal

* Move ERC20Snapshot into ERC20

* Add drafts deprecation notice

* Remove drafts directory

* Add changelog entry

* Apply suggestions from code review

Co-Authored-By: Francisco Giordano <frangio.1@gmail.com>

Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2020-03-16 16:27:15 -03:00
8176a901a9 Cleanup of Ownership directory (#2120)
* Remove Ownable.isOwner.

* Remove ownable behavior from tests

* Make Escrow use Ownable instead of Secondary

* Migrate GSNRecipientERC20Fee to Ownable

* Remove Secondary

* Move Ownable to access directory

* Remove mentions of Secondary

* Add changelog entry

* Move Ownable tests to access

* Remove unused mock
2020-03-16 15:12:29 -03:00
baaadde3c5 Remove ERC20._burnFrom (#2119)
* Remove ERC20._burnFrom

* Add changelog entry
2020-03-16 15:06:19 -03:00
68ad1ed18f Bump @openzeppelin/cli from 2.7.1 to 2.7.2 (#2129)
Bumps [@openzeppelin/cli](https://github.com/OpenZeppelin/openzeppelin-sdk) from 2.7.1 to 2.7.2.
- [Release notes](https://github.com/OpenZeppelin/openzeppelin-sdk/releases)
- [Commits](https://github.com/OpenZeppelin/openzeppelin-sdk/compare/v2.7.1...v2.7.2)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-16 13:28:42 -03:00
d14007d035 Bump @openzeppelin/test-helpers from 0.5.4 to 0.5.5 (#2127)
Bumps [@openzeppelin/test-helpers](https://github.com/OpenZeppelin/openzeppelin-test-helpers) from 0.5.4 to 0.5.5.
- [Release notes](https://github.com/OpenZeppelin/openzeppelin-test-helpers/releases)
- [Changelog](https://github.com/OpenZeppelin/openzeppelin-test-helpers/blob/master/CHANGELOG.md)
- [Commits](https://github.com/OpenZeppelin/openzeppelin-test-helpers/compare/v0.5.4...v0.5.5)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-16 13:28:18 -03:00
a949d4e2bf Bump @openzeppelin/gsn-provider from 0.1.9 to 0.1.10 (#2126)
Bumps [@openzeppelin/gsn-provider](https://github.com/OpenZeppelin/openzeppelin-gsn-provider) from 0.1.9 to 0.1.10.
- [Release notes](https://github.com/OpenZeppelin/openzeppelin-gsn-provider/releases)
- [Changelog](https://github.com/OpenZeppelin/openzeppelin-gsn-provider/blob/master/CHANGELOG.md)
- [Commits](https://github.com/OpenZeppelin/openzeppelin-gsn-provider/compare/v0.1.9...v0.1.10)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-16 13:28:05 -03:00
ed2c289c2c Bump acorn from 6.4.0 to 6.4.1 (#2124)
Bumps [acorn](https://github.com/acornjs/acorn) from 6.4.0 to 6.4.1.
- [Release notes](https://github.com/acornjs/acorn/releases)
- [Commits](https://github.com/acornjs/acorn/compare/6.4.0...6.4.1)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-03-13 17:54:03 -03:00
7acd60d152 Add notice about deprecated Crowdsales (#2116)
* Remove crowdsales from sidebar documentation, add links to old version

* Remove mentions of Crowdsales from the documentation
2020-03-11 15:26:21 -03:00
0449062126 Bump solhint from 3.0.0-rc.3 to 3.0.0-rc.5 (#2109)
Bumps [solhint](https://github.com/protofire/solhint) from 3.0.0-rc.3 to 3.0.0-rc.5.
- [Release notes](https://github.com/protofire/solhint/releases)
- [Changelog](https://github.com/protofire/solhint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/protofire/solhint/commits)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-11 12:56:26 -03:00
65e4ffde58 Make ECDSA.recover revert on error. (#2114)
* Make ECDSA.recover revert on error

* Removed unused test

* Remove duplicate line

* Add tests for invalid signatures

* Fix linter errors

* Add changelog entry
2020-03-10 20:13:32 -03:00
e2813df879 Use bytes32 explicitly for Create2.computeAddress() (#2088)
* Use bytes32 explicitly for Create2.computeAddress(), to force users cache hash of the bytecode

* Remove only from test :)
2020-03-09 13:02:14 -03:00
ca19cea05e install @openzeppelin/docs-utils 2020-03-09 11:37:41 -03:00
3296ca7219 Rearrange erc721metadata layout to mimic eth-pkg (#2098)
In https://github.com/OpenZeppelin/openzeppelin-contracts-ethereum-package/pull/76, we are rearranging the erc721metadata contract storage layout, so the new variable is added at the end. This commit applies the same change to the vanilla contracts repository, so migration from 2.5 to 3.0 is easier for users using the transpiler.
2020-03-04 15:31:57 -03:00
cb458f3250 Bump mocha from 7.0.1 to 7.1.0 (#2104)
Bumps [mocha](https://github.com/mochajs/mocha) from 7.0.1 to 7.1.0.
- [Release notes](https://github.com/mochajs/mocha/releases)
- [Changelog](https://github.com/mochajs/mocha/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mochajs/mocha/compare/v7.0.1...v7.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-02 13:05:48 -03:00
21d2b90d74 allow running specific test files on their own 2020-02-28 18:56:14 -03:00
ab19138f1f Bump @openzeppelin/test-environment from 0.1.2 to 0.1.3 (#2101)
Bumps [@openzeppelin/test-environment](https://github.com/OpenZeppelin/openzeppelin-test-environment) from 0.1.2 to 0.1.3.
- [Release notes](https://github.com/OpenZeppelin/openzeppelin-test-environment/releases)
- [Changelog](https://github.com/OpenZeppelin/openzeppelin-test-environment/blob/master/CHANGELOG.md)
- [Commits](https://github.com/OpenZeppelin/openzeppelin-test-environment/compare/v0.1.2...v0.1.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-26 15:17:07 -03:00
970122a9d5 Bump solhint from 3.0.0-rc.2 to 3.0.0-rc.3 (#2096)
Bumps [solhint](https://github.com/protofire/solhint) from 3.0.0-rc.2 to 3.0.0-rc.3.
- [Release notes](https://github.com/protofire/solhint/releases)
- [Changelog](https://github.com/protofire/solhint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/protofire/solhint/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-18 11:20:10 -03:00
62065cf043 add prepare-docs script to subpackage 2020-02-17 19:02:13 -03:00
03b61e074e Bump @openzeppelin/cli from 2.7.0-rc.2 to 2.7.1 (#2097)
Bumps [@openzeppelin/cli](https://github.com/OpenZeppelin/openzeppelin-sdk) from 2.7.0-rc.2 to 2.7.1.
- [Release notes](https://github.com/OpenZeppelin/openzeppelin-sdk/releases)
- [Commits](https://github.com/OpenZeppelin/openzeppelin-sdk/compare/v2.7.0-rc.2...v2.7.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-17 18:22:57 -03:00
1350f49939 Bump openzeppelin-docs-utils from af3466e to 459f171 (#2094)
Bumps [openzeppelin-docs-utils](https://github.com/OpenZeppelin/docs-utils) from `af3466e` to `459f171`.
- [Release notes](https://github.com/OpenZeppelin/docs-utils/releases)
- [Commits](af3466e234...459f1710a0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-17 17:00:43 -03:00
1c22c79a32 [Security] Bump eslint-utils from 1.4.0 to 1.4.3 (#2093)
Bumps [eslint-utils](https://github.com/mysticatea/eslint-utils) from 1.4.0 to 1.4.3. **This update includes security fixes.**
- [Release notes](https://github.com/mysticatea/eslint-utils/releases)
- [Commits](https://github.com/mysticatea/eslint-utils/compare/v1.4.0...v1.4.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-17 16:43:26 -03:00
08cea10aa7 Fix operatorBurn description typo. (#2091) 2020-02-17 16:31:26 -03:00
82147dc2ee [Security] Bump handlebars from 4.1.2 to 4.7.3 (#2095)
Bumps [handlebars](https://github.com/wycats/handlebars.js) from 4.1.2 to 4.7.3. **This update includes a security fix.**
- [Release notes](https://github.com/wycats/handlebars.js/releases)
- [Changelog](https://github.com/wycats/handlebars.js/blob/master/release-notes.md)
- [Commits](https://github.com/wycats/handlebars.js/compare/v4.1.2...v4.7.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-17 16:23:28 -03:00
e4d2830f1d Update release script for major releases 2020-02-14 13:37:28 -03:00
19417c7cd5 Rename CREATE2 argument from bytecodeHash to bytecode and add new method for precomputed bytecode hash (#2087)
* Rename CREATE2 argument from bytecodeHash to bytecode and add new method for precomputed bytecode hash

* Remove only from test

* Fix linter error
2020-02-14 11:29:38 -03:00
5dfe7215a9 Migrate Contracts to Solidity v0.6 (#2080)
* Initial migration to Solidity 0.6.x - v3.0 first steps (#2063)

* Initial migration, missing GSN, 721, 777 and Crowdsales.

* Add _beforeTokenOperation and _afterTokenOperation.

* Add documentation for hooks.

* Add hooks doc

* Add missing drafts

* Add back ERC721 with hooks

* Bring back ERC777

* Notes on hooks

* Bring back GSN

* Make functions virtual

* Make GSN overrides explicit

* Fix ERC20Pausable tests

* Remove virtual from some view functions

* Update linter

* Delete examples

* Remove unnecessary virtual

* Remove roles from Pausable

* Remove roles

* Remove users of roles

* Adapt ERC20 tests

* Fix ERC721 tests

* Add all ERC721 hooks

* Add ERC777 hooks

* Fix remaining tests

* Bump compiler version

* Move 721BurnableMock into mocks directory

* Remove _before hooks

* Fix tests

* Upgrade linter

* Put modifiers last

* Remove _beforeTokenApproval and _beforeOperatorApproval hooks
2020-02-14 11:12:32 -03:00
04a1b21874 update docs-utils to keep docs version in sync 2020-02-11 19:04:17 -03:00
f905a14f5f Fix docsite link 2020-02-06 18:07:03 -03:00
4a531fe588 Add note about gas costs (#2079)
* Add note about gas costs

* Update wording
2020-02-06 15:26:19 -03:00
25dec297bf Bump solidity-docgen (#2078) 2020-02-05 12:07:29 -03:00
8e58cda8c3 Revert "Fix ignoring mock artifacts on release"
This reverts commit e7bded655b.
2020-02-05 00:04:29 -03:00
e7bded655b Fix ignoring mock artifacts on release 2020-02-04 20:23:01 -03:00
5f357d85de Merge branch 'release-v2.5.0' 2020-02-04 20:22:32 -03:00
58a3368215 2.5.0 2020-02-04 19:39:23 -03:00
941d305044 Update docs 2020-02-04 19:35:31 -03:00
1b938e39a8 EnumerableSet improvements (#2077)
* Remove newAddressSet

* Add count and get functions.

* Fix lint

(cherry picked from commit 7988c044e0)
2020-02-04 19:33:57 -03:00
7988c044e0 EnumerableSet improvements (#2077)
* Remove newAddressSet

* Add count and get functions.

* Fix lint
2020-02-04 19:15:32 -03:00
0ac83ce289 Fix EnumerableSetMock for 2.5.rc1 (#2069)
* Drafted Enumerable.sol.

* Drafted test framework.

* Tweaked the tests to follow oz structure.

* Coded EnumerableSet.

* Moved EnumerableSet to `utils`.

* Fixed linting.

* Improved comments.

* Tweaked contract description.

* Renamed struct to AddressSet.

* Relaxed version pragma to 0.5.0

* Removed events.

* Revert on useless operations.

* Small comment.

* Created AddressSet factory method.

* Failed transactions return false.

* Transactions now return false on failure.

* Remove comments from mock

* Rename mock functions

* Adapt tests to code style, use test-helpers

* Fix bug in remove, improve tests.

* Add changelog entry

* Add entry on Utils doc

* Add optimization for removal of last slot

* Update docs

* Fix headings of utilities documentation

* Simplified mock.

* Fixed comment.

* Revert "Fixed comment."

This reverts commit 39627f9a6f.

* Revert "Simplified mock."

This reverts commit 67468e464b.

* Simplified mock.

Co-authored-by: Nicolás Venturo <nicolas.venturo@gmail.com>
(cherry picked from commit 8975289c6b)
2020-02-04 18:06:34 -03:00
8975289c6b Fix EnumerableSetMock for 2.5.rc1 (#2069)
* Drafted Enumerable.sol.

* Drafted test framework.

* Tweaked the tests to follow oz structure.

* Coded EnumerableSet.

* Moved EnumerableSet to `utils`.

* Fixed linting.

* Improved comments.

* Tweaked contract description.

* Renamed struct to AddressSet.

* Relaxed version pragma to 0.5.0

* Removed events.

* Revert on useless operations.

* Small comment.

* Created AddressSet factory method.

* Failed transactions return false.

* Transactions now return false on failure.

* Remove comments from mock

* Rename mock functions

* Adapt tests to code style, use test-helpers

* Fix bug in remove, improve tests.

* Add changelog entry

* Add entry on Utils doc

* Add optimization for removal of last slot

* Update docs

* Fix headings of utilities documentation

* Simplified mock.

* Fixed comment.

* Revert "Fixed comment."

This reverts commit 39627f9a6f.

* Revert "Simplified mock."

This reverts commit 67468e464b.

* Simplified mock.

Co-authored-by: Nicolás Venturo <nicolas.venturo@gmail.com>
2020-01-30 15:42:21 -03:00
6102ddf675 Update README link to learn guide (#2070)
Reported from Community Member via Intercom
2020-01-30 14:30:52 -03:00
5a67a69f80 [Security] Bump eslint-utils from 1.4.0 to 1.4.3 (#2064)
Bumps [eslint-utils](https://github.com/mysticatea/eslint-utils) from 1.4.0 to 1.4.3. **This update includes security fixes.**
- [Release notes](https://github.com/mysticatea/eslint-utils/releases)
- [Commits](https://github.com/mysticatea/eslint-utils/compare/v1.4.0...v1.4.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-27 12:42:40 -03:00
f2512a4f7b [Security] Bump handlebars from 4.1.2 to 4.7.2 (#2065)
Bumps [handlebars](https://github.com/wycats/handlebars.js) from 4.1.2 to 4.7.2. **This update includes a security fix.**
- [Release notes](https://github.com/wycats/handlebars.js/releases)
- [Changelog](https://github.com/wycats/handlebars.js/blob/master/release-notes.md)
- [Commits](https://github.com/wycats/handlebars.js/compare/v4.1.2...v4.7.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-27 12:31:09 -03:00
06be0ab39a Bump mocha from 7.0.0 to 7.0.1 (#2066)
Bumps [mocha](https://github.com/mochajs/mocha) from 7.0.0 to 7.0.1.
- [Release notes](https://github.com/mochajs/mocha/releases)
- [Changelog](https://github.com/mochajs/mocha/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mochajs/mocha/compare/v7.0.0...v7.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-27 12:30:42 -03:00
d775e315cc Update package homepage. 2020-01-24 15:07:37 -03:00
e4a8a5533e 2.5.0-rc.0 2020-01-24 14:56:29 -03:00
88dc1ca6fc Reorder functions to prevent shadowing warning 2020-01-24 14:56:17 -03:00
1e0f07751e Implementation of an address Enumerable Set (#2061)
* Drafted Enumerable.sol.

* Drafted test framework.

* Tweaked the tests to follow oz structure.

* Coded EnumerableSet.

* Moved EnumerableSet to `utils`.

* Fixed linting.

* Improved comments.

* Tweaked contract description.

* Renamed struct to AddressSet.

* Relaxed version pragma to 0.5.0

* Removed events.

* Revert on useless operations.

* Small comment.

* Created AddressSet factory method.

* Failed transactions return false.

* Transactions now return false on failure.

* Remove comments from mock

* Rename mock functions

* Adapt tests to code style, use test-helpers

* Fix bug in remove, improve tests.

* Add changelog entry

* Add entry on Utils doc

* Add optimization for removal of last slot

* Update docs

* Fix headings of utilities documentation

Co-authored-by: Nicolás Venturo <nicolas.venturo@gmail.com>
2020-01-24 14:50:24 -03:00
73abd54cbe Made private methods internal to allow for overriding (#2027)
* Made private methods internal to allow for overriding

* Revert package.lock changes.

* Make _move private again

* Expose the ERC1820 registry address

* Add changelog entry

Co-authored-by: Nicolás Venturo <nicolas.venturo@gmail.com>
2020-01-23 16:35:21 -03:00
7d7cbcad14 Fix/improve revert reason #1727 (#2018)
* adding mock contacts, test code

* adding changes to ERC721.sol per @frangio's comments on original PR #1943

* fix solhint warnings

* Update contracts/token/ERC721/ERC721.sol

Co-Authored-By: Francisco Giordano <frangio.1@gmail.com>

* same revert wording per @frangio's review suggestion

* per @frangio's feedback, changing the inline assembly to accomplish: we want to ignore the first 4 bytes of content, so we should read the length and decrease it by 4, then take the memory location and add 4 to it, then store the new length at the new memory location, then that is the new byte array that we want.

* change revert msg assembly per PR comment by @frangio

* unify revert msg in test code

* fix some failed tests, wording change

* Update contracts/token/ERC721/ERC721.sol

Co-Authored-By: Francisco Giordano <frangio.1@gmail.com>

* Update contracts/token/ERC721/ERC721.sol

Co-Authored-By: Francisco Giordano <frangio.1@gmail.com>

* fix test case, revert without reason

* fix 'ERC721ReceiverRevertsMock: Transaction rejected by receiver'

* style change per review by @frangio

* fix revert reason forwarding

* remove duplicate contracts/mocks/ERC721ReceiverRevertsMock.sol per review https://github.com/OpenZeppelin/openzeppelin-contracts/pull/2018\#issuecomment-574381034

* Add changelog entry

* Fix tests

* Make tests more clear

Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
Co-authored-by: Nicolás Venturo <nicolas.venturo@gmail.com>
2020-01-23 16:33:09 -03:00
e493fb3e95 Add 'available since' notes. Fixes #2054 2020-01-23 15:26:25 -03:00
8c40a5b275 Create2 feature pending tasks (#2013)
* Add Create2 library (#1744)

* feat(contracts): Add Create2 library to use create2 evm opcode

* Upgrade sol-coverage

* Add changelog entry

* Update comments and code style

* Remove create2 helper

* Fix linter error

* Fix truffle dependency

* Fix linter error

* refactor(Create2): Remove _deploy internal function

* test(Create2): test Create2 with inline assembly code

* fix(Create2): Check address returned form create2 instead of codesize of created contract

* refactor(Create2):Add revert reason when Create2 deploy fails (#2062)

* fix merge with master

* fix test

Co-authored-by: Augusto Lemble <me@augustol.com>
2020-01-23 15:08:54 -03:00
d6698c3bfb Copy docsite landing to readme (#2058)
* Copy docsite landing to readme

* Fix code sample

* Apply suggestions from code review

Co-Authored-By: Francisco Giordano <frangio.1@gmail.com>

* Update code sample

Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2020-01-23 13:36:21 -03:00
b1e811430a Upgrade test-environment dependency 2020-01-20 16:32:42 -03:00
06983a2075 add note suggesting reentrancy post (#2059) 2020-01-20 16:02:49 -03:00
d037217769 Update README (#2056)
* Update README to use releases-stability URL

Change https://docs.openzeppelin.com/contracts/api-stability to https://docs.openzeppelin.com/contracts/releases-stability (even though it redirects)

* Update README to include CLI as dev env

Add OpenZeppelin CLI to list of development environments

* Update README to use releases-stability URL

Change https://docs.openzeppelin.com/contracts/api-stability to https://docs.openzeppelin.com/contracts/releases-stability (even though it redirects)
2020-01-16 14:51:06 -03:00
410e4f8ab9 Fix link to GSN overview (#2053)
* Fix link to GSN overview

* Update contracts/GSN/README.adoc

Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2020-01-15 14:44:09 -03:00
54d2aec232 issue#1980 (#2038)
* issue#1980

* fix public to external
2020-01-14 16:18:19 -03:00
d006a750ee Bump eslint-plugin-import from 2.18.2 to 2.20.0 (#2051)
Bumps [eslint-plugin-import](https://github.com/benmosher/eslint-plugin-import) from 2.18.2 to 2.20.0.
- [Release notes](https://github.com/benmosher/eslint-plugin-import/releases)
- [Changelog](https://github.com/benmosher/eslint-plugin-import/blob/master/CHANGELOG.md)
- [Commits](https://github.com/benmosher/eslint-plugin-import/compare/v2.18.2...v2.20.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-14 11:54:34 -03:00
5376e5d349 Bump @openzeppelin/gsn-helpers from 0.2.1 to 0.2.3 (#2052)
Bumps [@openzeppelin/gsn-helpers](https://github.com/OpenZeppelin/openzeppelin-gsn-helpers) from 0.2.1 to 0.2.3.
- [Release notes](https://github.com/OpenZeppelin/openzeppelin-gsn-helpers/releases)
- [Commits](https://github.com/OpenZeppelin/openzeppelin-gsn-helpers/compare/v0.2.1...v0.2.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-14 11:54:17 -03:00
e5805c4979 Bump openzeppelin-docs-utils from dc7ce30 to f6b5291 (#2050)
Bumps [openzeppelin-docs-utils](https://github.com/OpenZeppelin/docs-utils) from `dc7ce30` to `f6b5291`.
- [Release notes](https://github.com/OpenZeppelin/docs-utils/releases)
- [Commits](dc7ce3006b...f6b5291a2e)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-14 11:54:01 -03:00
73cbd6a38b fix typo 2020-01-13 15:52:29 -03:00
7014d94108 Fix doc links 2020-01-13 13:46:53 -03:00
62651e8147 Docs overhaul (#2045)
* Reorder navbar

* Adapt content to new docsite structure, add links

* Fix list

* fix list

* Apply suggestions from code review

Co-Authored-By: Francisco Giordano <frangio.1@gmail.com>

* Update index.adoc

Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2020-01-13 13:44:34 -03:00
f9650b4cb8 Remove .gitkeep as it's not needed. (#2046) 2020-01-07 17:18:28 -03:00
249b5e9a4b Bump mocha from 6.2.2 to 7.0.0 (#2042)
Bumps [mocha](https://github.com/mochajs/mocha) from 6.2.2 to 7.0.0.
- [Release notes](https://github.com/mochajs/mocha/releases)
- [Changelog](https://github.com/mochajs/mocha/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mochajs/mocha/compare/v6.2.2...v7.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-06 14:42:13 -03:00
67a71519d3 [Security] Bump handlebars from 4.1.2 to 4.5.3 (#2033)
Bumps [handlebars](https://github.com/wycats/handlebars.js) from 4.1.2 to 4.5.3. **This update includes a security fix.**
- [Release notes](https://github.com/wycats/handlebars.js/releases)
- [Changelog](https://github.com/wycats/handlebars.js/blob/master/release-notes.md)
- [Commits](https://github.com/wycats/handlebars.js/compare/v4.1.2...v4.5.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-26 17:41:23 -03:00
ccdeca65a1 make stalebot ignore prs tagged "meta" 2019-12-19 19:13:42 -03:00
fbddf5ba5b Test common case first (#2023) 2019-12-16 16:21:06 -03:00
cf0e71b4ed Update crowdsales.adoc fix invalid conversion (#2026)
Code sample for MyCrowdsaleDeployer causes TypeError:
```
browser/MyCrowdsaleDeployer.sol:21:13: TypeError: Invalid type for argument in function call. 
Invalid implicit conversion from address to contract IERC20 requested.
            address(token)            // the token
            ^------------^
```
Change: 
```solidity
address(token)   // the token
```
To:
```solidity
token   // the token
```

Reported by community member in the forum: https://forum.openzeppelin.com/t/invalid-implicit-conversion-from-address-to-contract-ierc20-requested/1937
2019-12-16 16:15:03 -03:00
73a5903789 Update README.adoc 2019-12-10 15:57:14 -03:00
5d47aa85bc Correct documentation for isContract check (#2017)
* Correct documentation for isContract check

* Update Address.sol

* Update Address.sol

* add missing newline before asciidoc list
2019-12-10 13:14:18 -03:00
3eaf50005f disable oz cli interactivity in compile script 2019-12-09 16:55:17 -03:00
aec642c5ab [Security] Bump eslint-utils from 1.4.0 to 1.4.3 (#2019)
Bumps [eslint-utils](https://github.com/mysticatea/eslint-utils) from 1.4.0 to 1.4.3. **This update includes security fixes.**
- [Release notes](https://github.com/mysticatea/eslint-utils/releases)
- [Commits](https://github.com/mysticatea/eslint-utils/compare/v1.4.0...v1.4.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-09 16:25:16 -03:00
d0d5c2835e Bump openzeppelin-docs-utils from 8e3fa25 to dc7ce30 (#2021)
Bumps [openzeppelin-docs-utils](https://github.com/OpenZeppelin/docs-utils) from `8e3fa25` to `dc7ce30`.
- [Release notes](https://github.com/OpenZeppelin/docs-utils/releases)
- [Commits](8e3fa25573...dc7ce3006b)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-09 15:44:01 -03:00
2593457503 rename docs-utils dependency 2019-12-03 12:28:01 -03:00
b56e00eb61 Fix documentation previews in pull requests (#2015)
* migrate to openzeppelin-docs-preview script

* update netlify configuration

* update docs-preview-script dependency

* remove old docs directory from gitignore

* update oz-docs script for live reload

* update oz-docs scripts to latest

* replace child_process.execFileSync with spawnSync

* update oz-docs-preview
2019-12-02 19:13:13 -03:00
0c644cc470 [Security] Bump eslint-utils from 1.4.0 to 1.4.3 (#2012)
Bumps [eslint-utils](https://github.com/mysticatea/eslint-utils) from 1.4.0 to 1.4.3. **This update includes security fixes.**
- [Release notes](https://github.com/mysticatea/eslint-utils/releases)
- [Commits](https://github.com/mysticatea/eslint-utils/compare/v1.4.0...v1.4.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-02 10:22:38 -03:00
5f92adc2e7 Migrate from truffle to test-environment (#2007)
* Sketch

* Migrate all tests to test-env

* Finish migration to test-env

* Add config

* Work on GSN tests

* Migrate to newer test-env version and loader syntax

* Add GSN setup

* Finish test-env migration

* Setup coverage using test-env

* Migrate to npm package

* Fix package.json

* Add compile step to CI

* Add comment on coverage setup

* Remove dependency on @truffle/contract

* Fix package-lock merge

* Fix linter errors

* Upgrade test-environment, depend locally on ganche-coverage

* Improve coverage script

* Improve sign.js API

* Move accounts destructuring to describe block

* Switch to prebuilt ethereumjs-vm package

* Upgrade test-enviroment version

* use workspace in circleci config

* remove unnecessary npx
2019-11-28 15:46:42 -03:00
ca6a5dc8a2 Changes ERC777 external functions to public for allowing overrides #1994 (#2001)
* Changes ERC777 external functions to public for allowing overrides #1994

* Changes ERC777 external functions to public for allowing overrides (#1994)
2019-11-27 19:29:05 -03:00
cc0f89e331 Bump nodemon from 1.19.4 to 2.0.1 (#2008)
Bumps [nodemon](https://github.com/remy/nodemon) from 1.19.4 to 2.0.1.
- [Release notes](https://github.com/remy/nodemon/releases)
- [Commits](https://github.com/remy/nodemon/compare/v1.19.4...v2.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-25 12:20:22 -03:00
28b95ef5be ReentrancyGuard gas optimization (#1996)
* Improve gas efficiency of reentrancyGuard

* Add changelog entry

* Fix ReentrancyGuard test
2019-11-23 20:44:45 -03:00
4237eea7d8 Bump @openzeppelin/test-helpers from 0.5.3 to 0.5.4 (#1999)
Bumps [@openzeppelin/test-helpers](https://github.com/OpenZeppelin/openzeppelin-test-helpers) from 0.5.3 to 0.5.4.
- [Release notes](https://github.com/OpenZeppelin/openzeppelin-test-helpers/releases)
- [Changelog](https://github.com/OpenZeppelin/openzeppelin-test-helpers/blob/master/CHANGELOG.md)
- [Commits](https://github.com/OpenZeppelin/openzeppelin-test-helpers/compare/v0.5.3...v0.5.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-20 20:21:17 -03:00
95e54173e9 Update MerkleProof.sol (#1997) 2019-11-19 20:13:22 -03:00
8e980480aa Fix broken crossreference links (#2005)
* Bump solidity-docgen from 0.3.11 to 0.3.13

Bumps solidity-docgen from 0.3.11 to 0.3.13.

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

* fix broken crossreference links
2019-11-19 17:41:51 -03:00
49042f2b1a feat: add baseTokenURI to ERC721Metadata (#1970)
* feat: add baseTokenURI

* fix: tests

* chore: dev notation

* chore: changelog

* chore: typo

* Remove extra getters, return empty URI by default

* Update docs

* Rename baseTokenURI to baseURI

* Roll back visibility change of tokenURI

* Update changelog entry

* Version setBaseURI docs

* Improve internal names and comments

* Fix compilation errors

* Add an external getter for baseURI
2019-11-15 20:22:37 -03:00
714f13df7e fix docs template to include only own items 2019-11-15 18:53:20 -03:00
33047ffddc Update ReentrancyGuard for Istanbul Hard Fork (#1992)
* Update ReentrancyGuard for Istanbul Hard Fork

Changes:
Added L37, `_guardCounter = 1;`

Rationale:
The planned _Istanbul Hard Fork_ will implement [EIP 2200](e4d4ea348e/EIPS/eip-2200.md), which implements "net gas metering" for `sstore` operations. If the final value of `_guardCounter` is unchanged relative to the original value of it, a gas refund will be applied and charges for changing the value of `_guardCounter` will effectively not exist. This ends up being cheaper than the current implementation ONLY AFTER Istanbul. Before Istanbul, the added line actually ends up costing more gas.

Note that if `_guardCounter` is `0` initially, the initial cost and subsequent refund will both be larger than if `_guardCounter` is `1` initially. Although in both cases, the net gas cost (`gasCost - gasRefund`) are equal, it's better in terms of cost to have both the gas cost and refund smaller, as there is some limit to the percentage of a gas refund that can actually be realized.

* Update CHANGELOG.md

Added note for change to ReentrancyGuard.sol

* Update ReentrancyGuard.sol

* Update CHANGELOG.md
2019-11-13 14:54:15 -03:00
f90700f3f1 add detail to deprecation notice 2019-11-12 17:52:38 -03:00
ab43553f0f add explicit npm ci in prepare-docs 2019-11-11 17:50:56 -03:00
9cac50e428 Bump ethereumjs-util from 6.1.0 to 6.2.0 (#1988)
Bumps [ethereumjs-util](https://github.com/ethereumjs/ethereumjs-util) from 6.1.0 to 6.2.0.
- [Release notes](https://github.com/ethereumjs/ethereumjs-util/releases)
- [Changelog](https://github.com/ethereumjs/ethereumjs-util/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ethereumjs/ethereumjs-util/compare/v6.1.0...v6.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-11 16:40:01 -03:00
bc84ea450c Bump solidity-docgen from 0.3.9 to 0.3.11 (#1989)
Bumps solidity-docgen from 0.3.9 to 0.3.11.

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-11 15:42:13 -03:00
3608fb4ae9 Bump truffle from 5.0.42 to 5.0.44 (#1990)
Bumps [truffle](https://github.com/trufflesuite/truffle) from 5.0.42 to 5.0.44.
- [Release notes](https://github.com/trufflesuite/truffle/releases)
- [Commits](https://github.com/trufflesuite/truffle/compare/truffle@5.0.42...truffle@5.0.44)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-11 15:19:54 -03:00
aa73460a8d Update CHANGELOG.md 2019-11-07 23:09:32 -03:00
a20408a9e0 Update CHANGELOG.md 2019-11-07 23:09:18 -03:00
81b1e48107 typo fixes (#1983)
"standard also bring" -> "standard also brings"
"killer feature are" -> "killer feature is"
2019-11-05 15:38:17 -03:00
207f315231 tweak formatting of changelog 2019-11-05 12:59:50 -03:00
c3f2ed8168 tweak instructions on how to upgrade from beta 2019-11-01 15:46:09 -03:00
f4c5ce3009 Add section on how to upgrade from 2.4-beta (#1981)
* add how to upgrade from 2.4-beta

* add how-to

* Update CHANGELOG.md
2019-11-01 15:10:46 -03:00
5b2de262fd Made _burn internal instead of private (#1908) 2019-10-31 19:57:38 -03:00
21d19dccb5 bump solidity-docgen from 0.3.7 to 0.3.9 2019-10-31 12:16:07 -03:00
19a6590306 bump solidity-docgen from 0.3.5 to 0.3.7 2019-10-30 13:33:35 -03:00
8e3563968f add explanation of drafts category 2019-10-30 12:57:19 -03:00
d839c24e4b Merge branch 'release-v2.4.0' 2019-10-29 17:56:10 -03:00
cdf655f770 2.4.0 2019-10-29 17:44:30 -03:00
f5c95cc5cb add changes to minimum solidity compiler version in the changelog
(cherry picked from commit bddbbe99a7)
2019-10-29 17:41:55 -03:00
bddbbe99a7 add changes to minimum solidity compiler version in the changelog 2019-10-29 17:40:43 -03:00
c4bb7b7bb9 remove beta notice 2019-10-29 17:23:48 -03:00
1eb80ddb22 move changelog entry to new features section
(cherry picked from commit 2d30415373)
2019-10-29 17:21:37 -03:00
feaf051fef added feature availability info to documentation
(cherry picked from commit 9113335cb3)
2019-10-29 17:21:29 -03:00
4c997ea09e make PullPayment.withdrawPaymentsWithGas external
(cherry picked from commit 76a1d7a3cd)
2019-10-29 17:21:23 -03:00
1c220e175d Forward all gas on PullPayment withdrawal (#1976)
* Add withdrawWithGas

* Improve docs

* Add changelog entry

* Update contracts/payment/PullPayment.sol

Co-Authored-By: Francisco Giordano <frangio.1@gmail.com>

* Remove repeated comment

* Update changelog entry

* Fix inline docs

* Fix changelog formatting

(cherry picked from commit d6e10ab786)
2019-10-29 17:21:17 -03:00
ab4d43ce14 fix script for preparing contracts package
(cherry picked from commit eaee98f227)
2019-10-29 17:21:08 -03:00
875f179fab Update access-control.adoc (#1968)
Fixed:
-DetailedERC20 in the constructor
-minters should be _minters
-New example instead of rename function

(cherry picked from commit 5c8fa0f0cf)
2019-10-29 17:20:59 -03:00
e84e191322 Fixes dead link in Readme. (#1969)
(cherry picked from commit fcd77a4a37)
2019-10-29 17:20:48 -03:00
a1b3de68c1 fix pr reference number for Address.sendValue
(cherry picked from commit 5702a84429)
2019-10-29 17:20:42 -03:00
b0dbe0fc59 Transfer replacement (#1962)
* Add Address.sendEther

* Add documentation to sendEther

* Add changelog entry

* Rename sendEther to sendValue

(cherry picked from commit 8d166f3e35)
2019-10-29 17:20:18 -03:00
6efbee609e GSN renaming (#1963)
* Merge GSNBouncerBase into GSNRecipient

* Remove emtpy implementations for _pre and _post

* Rename bouncers to recipients

* Rename bouncers documentation to strategies

* Rewrite guides and docstrings to use the strategy naming scheme

* Address review comments

* Apply suggestions from code review

Co-Authored-By: Francisco Giordano <frangio.1@gmail.com>

* change wording of docs

(cherry picked from commit aae95db4e0)
2019-10-29 17:18:26 -03:00
21d014d481 Improve PullPayment docs (#1965)
* Improve PullPayment docs

* Reword escrow note

* Update contracts/payment/PullPayment.sol

Co-Authored-By: Francisco Giordano <frangio.1@gmail.com>
(cherry picked from commit 9e19d90cd9)
2019-10-29 17:18:26 -03:00
7c31b98e6c Remove SignatureBouncer from draft docs (#1964)
(cherry picked from commit 53f1b11668)
2019-10-29 17:18:26 -03:00
bfbbf4dfe7 change 'visibility' class to 'item-kind' in docs template
(cherry picked from commit 13b85c6848)
2019-10-29 17:18:26 -03:00
86bfdfce96 add indicators for events and modifiers (#1954)
(cherry picked from commit eda29e06b2)
2019-10-29 17:18:26 -03:00
9df4f7971e Design tweaks to documentation template (#1937)
* switch index to show arg names

* add index separators

* add classes to style variable type and name

* add class for inherited part of index

* use inheritedItems in contracts template

* refactor template to use explicit if and each

(cherry picked from commit 5d6a040fc3)
2019-10-29 17:18:26 -03:00
f5fe378cc6 update solidity-docgen
(cherry picked from commit e557a54ce7)
2019-10-29 17:18:26 -03:00
5183c6a307 Show visibility (#1945)
(cherry picked from commit 77ae18f12f)
2019-10-29 17:13:03 -03:00
80125a1be5 fix gsn api links
(cherry picked from commit c866522833)
2019-10-29 17:12:07 -03:00
4f4d305784 Fix the GSNBouncerERC20Fee token decimals to 18 (#1929)
* fix erc20 fee token decimals to 18

* lint

* Update contracts/GSN/bouncers/GSNBouncerERC20Fee.sol

Co-Authored-By: Nicolás Venturo <nicolas.venturo@gmail.com>

* change location of hardcoded decimals for clarity

* remove mention of decimals from docs

* remove trailing whitespace from guide

(cherry picked from commit b8ccf8e0f1)
2019-10-29 17:11:26 -03:00
8026a8ae2e GSNSignatureBouncer fix (#1920)
* GSNSignatureBoucer does not accept zero address

* Linting code.

* Update contracts/GSN/bouncers/GSNBouncerSignature.sol

Makes sense!

Co-Authored-By: Nicolás Venturo <nicolas.venturo@gmail.com>

* Update test/GSN/GSNBouncerSignature.test.js

ok!

Co-Authored-By: Nicolás Venturo <nicolas.venturo@gmail.com>

* Add zero address constant from OZ test Helpers

* revert prettier formatting

(cherry picked from commit f9a94788fb)
2019-10-29 17:11:14 -03:00
f9f0eec359 abcoathup GSN Bouncers review (#1916)
* Fix typo

* Replace pseudo code contracts with sample code

* Update GSN Bouncers text

* More text changes

* Update with latest code and remove reference to allowance

* Capitalize Custom Bouncer

* Update docs/modules/ROOT/pages/gsn-bouncers.adoc

Co-Authored-By: Francisco Giordano <frangio.1@gmail.com>

* Update gsn-bouncers.adoc with Antora cross reference

Co-Authored-By: Francisco Giordano <frangio.1@gmail.com>

* Revert to handling msg.sender msg.data differently

* Change by default to simplest implementation

* Change signing to include signature for GSNBouncerSignature

* Reword summary of what is in the guide

* Remove "The" from before `GSNBouncer...`

* Fix code snippet markdown

* Change to API references to xref:api

* Remove code from How it works sections

* Explain 1:1 exchange rate

* Change transaction request to relayed call

* Minor fixes

* Add info to Custom Bouncers

* Typo

* Minor fixes

* reorder sentence based on review gsn-bouncers.adoc

Co-Authored-By: Francisco Giordano <frangio.1@gmail.com>

* Improve wording of signing of relayed call parameters by trusted signer

(cherry picked from commit 18473d0100)
2019-10-29 17:11:04 -03:00
53edc70ab6 Remove extra parenthesis (#1919)
(cherry picked from commit 54182bf31c)
2019-10-29 17:10:52 -03:00
f615fd1a46 Fix bouncer signature tests (#1915)
* Fix bouncer signature tests

* Update GSNBouncerSignature.test.js

(cherry picked from commit 19a41980a1)
2019-10-29 17:09:30 -03:00
dd2094b86e Make _msgSender() payable (#1913)
(cherry picked from commit 52dc14c368)
2019-10-29 17:08:19 -03:00
c247a21cb5 Make ERC1820 address constant (#1912)
(cherry picked from commit 6148abb1b1)
2019-10-29 17:08:11 -03:00
a3603b9098 Remove SignatureBouncer contract
(cherry picked from commit c876254457)
2019-10-29 17:07:58 -03:00
7d1c5eb71b Improve IRelayRecipient no-impl note
(cherry picked from commit e855ca450a)
2019-10-29 17:07:21 -03:00
dba4d5023d Merge GSNContext into GSNRecipient (#1906)
* Merge GSNContext into GSNRecipient

* Update GSNRecipient.test.js

* Update GSNRecipient.sol

* Make GSNRecipient inherit from Context

(cherry picked from commit 1efa9f6281)
2019-10-29 17:07:06 -03:00
5f1d8e19da Improve GSN documentation (#1900)
* Improve IRelayRecipient docs

* Fix link

* Update IRelayHub docs to the docsite format

* Update IRelayRecipient docs to the dociste format

* Fix typo

* Improve GSN readme

* Fix link

* Update GSNRecipient docs

* Apply suggestions from code review

Co-Authored-By: Andrew B Coathup <28278242+abcoathup@users.noreply.github.com>

* Apply suggestions from code review

Co-Authored-By: Andrew B Coathup <28278242+abcoathup@users.noreply.github.com>

* Apply suggestions from code review

Co-Authored-By: Andrew B Coathup <28278242+abcoathup@users.noreply.github.com>
(cherry picked from commit d864228624)
2019-10-29 17:06:59 -03:00
89a90fda4c fix strikethrough style in docs
(cherry picked from commit 5274b3d84c)
2019-10-29 17:06:50 -03:00
a71047952d Replace confirmRelayedCall with approveRelayedCall (#1904)
* Replace confirmRelayedCall with approveRelayedCall

* Update gsn-bouncers.adoc

* Update deprecated enums

(cherry picked from commit 9c733a7bf8)
2019-10-29 17:06:40 -03:00
23dc15898f Bump required compiler version for Address (#1898)
(cherry picked from commit 4e527a20a5)
2019-10-29 17:06:21 -03:00
bd51db5bf0 Syncing naming of value and amount. (#1895)
(cherry picked from commit 5d183d0efe)
2019-10-29 17:06:06 -03:00
25b82b0db8 Update Context.sol (#1892)
Fix typos in instructions

(cherry picked from commit 2836b066c9)
2019-10-29 17:05:37 -03:00
a0e74cd756 Fix links to bouncers guide
(cherry picked from commit d8a25d17aa)
2019-10-29 17:05:25 -03:00
99dca07f5f Fix link to basic guide
(cherry picked from commit 5ec7204948)
2019-10-29 17:05:12 -03:00
00947dee3d fix link
(cherry picked from commit 1e42749847)
2019-10-29 17:05:00 -03:00
2d30415373 move changelog entry to new features section 2019-10-29 16:58:39 -03:00
9113335cb3 added feature availability info to documentation 2019-10-29 16:58:17 -03:00
76a1d7a3cd make PullPayment.withdrawPaymentsWithGas external 2019-10-29 16:40:18 -03:00
d6e10ab786 Forward all gas on PullPayment withdrawal (#1976)
* Add withdrawWithGas

* Improve docs

* Add changelog entry

* Update contracts/payment/PullPayment.sol

Co-Authored-By: Francisco Giordano <frangio.1@gmail.com>

* Remove repeated comment

* Update changelog entry

* Fix inline docs

* Fix changelog formatting
2019-10-28 20:06:02 -03:00
eaee98f227 fix script for preparing contracts package 2019-10-28 19:31:21 -03:00
4757f1c1c9 Bump @openzeppelin/gsn-helpers from 0.2.0 to 0.2.1 (#1974)
Bumps [@openzeppelin/gsn-helpers](https://github.com/OpenZeppelin/openzeppelin-gsn-helpers) from 0.2.0 to 0.2.1.
- [Release notes](https://github.com/OpenZeppelin/openzeppelin-gsn-helpers/releases)
- [Commits](https://github.com/OpenZeppelin/openzeppelin-gsn-helpers/compare/v0.2.0...v0.2.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-28 17:17:20 -03:00
c58d5cdfed Bump @openzeppelin/gsn-provider from 0.1.8 to 0.1.9 (#1973)
Bumps [@openzeppelin/gsn-provider](https://github.com/OpenZeppelin/openzeppelin-gsn-provider) from 0.1.8 to 0.1.9.
- [Release notes](https://github.com/OpenZeppelin/openzeppelin-gsn-provider/releases)
- [Commits](https://github.com/OpenZeppelin/openzeppelin-gsn-provider/commits/v0.1.9)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-28 15:05:25 -03:00
5c8fa0f0cf Update access-control.adoc (#1968)
Fixed:
-DetailedERC20 in the constructor
-minters should be _minters
-New example instead of rename function
2019-10-28 13:35:26 -03:00
fcd77a4a37 Fixes dead link in Readme. (#1969) 2019-10-28 13:22:01 -03:00
5702a84429 fix pr reference number for Address.sendValue 2019-10-28 13:20:17 -03:00
91992eed0a Bump truffle from 5.0.41 to 5.0.42 (#1971)
Bumps [truffle](https://github.com/trufflesuite/truffle) from 5.0.41 to 5.0.42.
- [Release notes](https://github.com/trufflesuite/truffle/releases)
- [Commits](https://github.com/trufflesuite/truffle/compare/truffle@5.0.41...truffle@5.0.42)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-28 13:12:09 -03:00
f6f918c64c Bump eslint-config-standard from 11.0.0 to 14.1.0 (#1975)
Bumps [eslint-config-standard](https://github.com/standard/eslint-config-standard) from 11.0.0 to 14.1.0.
- [Release notes](https://github.com/standard/eslint-config-standard/releases)
- [Changelog](https://github.com/standard/eslint-config-standard/blob/master/CHANGELOG.md)
- [Commits](https://github.com/standard/eslint-config-standard/compare/v11.0.0...v14.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-28 11:47:36 -03:00
8d166f3e35 Transfer replacement (#1962)
* Add Address.sendEther

* Add documentation to sendEther

* Add changelog entry

* Rename sendEther to sendValue
2019-10-25 15:53:16 -03:00
aae95db4e0 GSN renaming (#1963)
* Merge GSNBouncerBase into GSNRecipient

* Remove emtpy implementations for _pre and _post

* Rename bouncers to recipients

* Rename bouncers documentation to strategies

* Rewrite guides and docstrings to use the strategy naming scheme

* Address review comments

* Apply suggestions from code review

Co-Authored-By: Francisco Giordano <frangio.1@gmail.com>

* change wording of docs
2019-10-25 13:36:56 -03:00
9e19d90cd9 Improve PullPayment docs (#1965)
* Improve PullPayment docs

* Reword escrow note

* Update contracts/payment/PullPayment.sol

Co-Authored-By: Francisco Giordano <frangio.1@gmail.com>
2019-10-24 19:04:50 -03:00
53f1b11668 Remove SignatureBouncer from draft docs (#1964) 2019-10-24 17:42:06 -03:00
3e1519ac1e Delete unused function (#1961) 2019-10-22 19:39:20 -03:00
2c11ed59fa Safe Casting Library from uint256 to uintXX (#1926)
* Include Safe Casting Library with complete and exhaustive test-suite.

* linting test file.

* Typo in SafeCast import statement

* Update test/utils/SafeCast.test.js

* Rename `castUXX` to `toUintXX` from suggestion

* Tackling the quick and easy suggestions regarding error string improvements etc.

* typo and changelog update.

* Improve SafeCast tests

* Update test/utils/SafeCast.test.js

* Update test/utils/SafeCast.test.js

* incorrect import

* add SafeCast to docs site

* Update CHANGELOG.md

* Update SafeCast.sol
2019-10-22 13:59:11 -03:00
bfca6bd379 Bump eslint-plugin-node from 8.0.1 to 10.0.0 (#1958)
Bumps [eslint-plugin-node](https://github.com/mysticatea/eslint-plugin-node) from 8.0.1 to 10.0.0.
- [Release notes](https://github.com/mysticatea/eslint-plugin-node/releases)
- [Commits](https://github.com/mysticatea/eslint-plugin-node/compare/v8.0.1...v10.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-21 14:59:36 -03:00
85a081ff36 Bump eslint-plugin-standard from 3.1.0 to 4.0.1 (#1957)
Bumps [eslint-plugin-standard](https://github.com/standard/eslint-plugin-standard) from 3.1.0 to 4.0.1.
- [Release notes](https://github.com/standard/eslint-plugin-standard/releases)
- [Commits](https://github.com/standard/eslint-plugin-standard/compare/v3.1.0...v4.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-21 14:54:32 -03:00
566519fd6b Bump nodemon from 1.19.3 to 1.19.4 (#1959)
Bumps [nodemon](https://github.com/remy/nodemon) from 1.19.3 to 1.19.4.
- [Release notes](https://github.com/remy/nodemon/releases)
- [Commits](https://github.com/remy/nodemon/compare/v1.19.3...v1.19.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-21 14:37:40 -03:00
8077ae890e Bump @openzeppelin/test-helpers from 0.5.1 to 0.5.3 (#1960)
Bumps [@openzeppelin/test-helpers](https://github.com/OpenZeppelin/openzeppelin-test-helpers) from 0.5.1 to 0.5.3.
- [Release notes](https://github.com/OpenZeppelin/openzeppelin-test-helpers/releases)
- [Changelog](https://github.com/OpenZeppelin/openzeppelin-test-helpers/blob/master/CHANGELOG.md)
- [Commits](https://github.com/OpenZeppelin/openzeppelin-test-helpers/compare/v0.5.1...v0.5.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-21 14:29:01 -03:00
13b85c6848 change 'visibility' class to 'item-kind' in docs template 2019-10-18 14:57:15 -03:00
eda29e06b2 add indicators for events and modifiers (#1954) 2019-10-17 21:01:29 -03:00
5d6a040fc3 Design tweaks to documentation template (#1937)
* switch index to show arg names

* add index separators

* add classes to style variable type and name

* add class for inherited part of index

* use inheritedItems in contracts template

* refactor template to use explicit if and each
2019-10-17 18:42:31 -03:00
e557a54ce7 update solidity-docgen 2019-10-17 18:24:32 -03:00
b62c677420 Update truffle (#1953) 2019-10-17 17:22:42 -03:00
8836fac06f Bump eslint from 4.19.1 to 6.5.1 (#1948)
* Bump eslint from 4.19.1 to 6.5.1

Bumps [eslint](https://github.com/eslint/eslint) from 4.19.1 to 6.5.1.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v4.19.1...v6.5.1)

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

* better ignore rules for eslint

* set ecmascript version to support object spread operator
2019-10-15 17:14:22 -03:00
77ae18f12f Show visibility (#1945) 2019-10-15 13:24:13 -03:00
285ccecd66 Bump eslint-plugin-node from 5.2.1 to 8.0.1 (#1946)
Bumps [eslint-plugin-node](https://github.com/mysticatea/eslint-plugin-node) from 5.2.1 to 8.0.1.
- [Release notes](https://github.com/mysticatea/eslint-plugin-node/releases)
- [Commits](https://github.com/mysticatea/eslint-plugin-node/compare/v5.2.1...v8.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-15 13:22:59 -03:00
59933b77ce Bump truffle from 5.0.39 to 5.0.40 (#1947)
Bumps [truffle](https://github.com/trufflesuite/truffle) from 5.0.39 to 5.0.40.
- [Release notes](https://github.com/trufflesuite/truffle/releases)
- [Commits](https://github.com/trufflesuite/truffle/compare/truffle@5.0.39...truffle@5.0.40)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-15 13:22:41 -03:00
2ec317ac03 doc.fix(test/TESTING.md): few words and mention Truffle (#1944) 2019-10-11 15:34:07 -03:00
3274d9db00 Upgrade to @openzeppelin/test-helpers@0.5.1 (#1942) 2019-10-10 19:38:23 -03:00
c866522833 fix gsn api links 2019-10-09 15:56:33 -03:00
4edd0ee799 doc:fix unit test directory name (#1939) 2019-10-09 13:30:11 -03:00
45befe6e95 Bump solhint from 2.1.0 to 2.3.0 (#1936)
* Bump solhint from 2.1.0 to 2.3.0

Bumps [solhint](https://github.com/protofire/solhint) from 2.1.0 to 2.3.0.
- [Release notes](https://github.com/protofire/solhint/releases)
- [Changelog](https://github.com/protofire/solhint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/protofire/solhint/commits)

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

* Fix linter
2019-10-08 16:08:07 -03:00
40647ad04a Bump eslint-config-standard from 10.2.1 to 11.0.0 (#1935)
Bumps [eslint-config-standard](https://github.com/standard/eslint-config-standard) from 10.2.1 to 11.0.0.
- [Release notes](https://github.com/standard/eslint-config-standard/releases)
- [Changelog](https://github.com/standard/eslint-config-standard/blob/master/CHANGELOG.md)
- [Commits](https://github.com/standard/eslint-config-standard/compare/v10.2.1...v11.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-07 19:56:59 -03:00
38502031ae Bump concurrently from 4.1.2 to 5.0.0 (#1934)
Bumps [concurrently](https://github.com/kimmobrunfeldt/concurrently) from 4.1.2 to 5.0.0.
- [Release notes](https://github.com/kimmobrunfeldt/concurrently/releases)
- [Commits](https://github.com/kimmobrunfeldt/concurrently/compare/v4.1.2...v5.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-07 19:56:38 -03:00
445d8987f3 Bump @openzeppelin/gsn-helpers from 0.1.9 to 0.2.0 (#1933)
Bumps [@openzeppelin/gsn-helpers](https://github.com/OpenZeppelin/openzeppelin-gsn-helpers) from 0.1.9 to 0.2.0.
- [Release notes](https://github.com/OpenZeppelin/openzeppelin-gsn-helpers/releases)
- [Commits](https://github.com/OpenZeppelin/openzeppelin-gsn-helpers/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-07 19:56:19 -03:00
fa1cbc435f Bump eslint-plugin-promise from 3.8.0 to 4.2.1 (#1932)
Bumps [eslint-plugin-promise](https://github.com/xjamundx/eslint-plugin-promise) from 3.8.0 to 4.2.1.
- [Release notes](https://github.com/xjamundx/eslint-plugin-promise/releases)
- [Changelog](https://github.com/xjamundx/eslint-plugin-promise/blob/master/CHANGELOG.md)
- [Commits](https://github.com/xjamundx/eslint-plugin-promise/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-07 19:56:10 -03:00
111cde942f Update dependencies + configure Dependabot (#1931)
* update dependencies with npm update

* add dependabt config

* change dependabot schedule to weekly

* configure dependabot to increase package.json versions
2019-10-07 19:28:43 -03:00
b8ccf8e0f1 Fix the GSNBouncerERC20Fee token decimals to 18 (#1929)
* fix erc20 fee token decimals to 18

* lint

* Update contracts/GSN/bouncers/GSNBouncerERC20Fee.sol

Co-Authored-By: Nicolás Venturo <nicolas.venturo@gmail.com>

* change location of hardcoded decimals for clarity

* remove mention of decimals from docs

* remove trailing whitespace from guide
2019-10-07 19:21:28 -03:00
fba77596ce delete extraneous file 2019-10-04 16:15:25 -03:00
f9a94788fb GSNSignatureBouncer fix (#1920)
* GSNSignatureBoucer does not accept zero address

* Linting code.

* Update contracts/GSN/bouncers/GSNBouncerSignature.sol

Makes sense!

Co-Authored-By: Nicolás Venturo <nicolas.venturo@gmail.com>

* Update test/GSN/GSNBouncerSignature.test.js

ok!

Co-Authored-By: Nicolás Venturo <nicolas.venturo@gmail.com>

* Add zero address constant from OZ test Helpers

* revert prettier formatting
2019-10-04 12:39:56 -03:00
18473d0100 abcoathup GSN Bouncers review (#1916)
* Fix typo

* Replace pseudo code contracts with sample code

* Update GSN Bouncers text

* More text changes

* Update with latest code and remove reference to allowance

* Capitalize Custom Bouncer

* Update docs/modules/ROOT/pages/gsn-bouncers.adoc

Co-Authored-By: Francisco Giordano <frangio.1@gmail.com>

* Update gsn-bouncers.adoc with Antora cross reference

Co-Authored-By: Francisco Giordano <frangio.1@gmail.com>

* Revert to handling msg.sender msg.data differently

* Change by default to simplest implementation

* Change signing to include signature for GSNBouncerSignature

* Reword summary of what is in the guide

* Remove "The" from before `GSNBouncer...`

* Fix code snippet markdown

* Change to API references to xref:api

* Remove code from How it works sections

* Explain 1:1 exchange rate

* Change transaction request to relayed call

* Minor fixes

* Add info to Custom Bouncers

* Typo

* Minor fixes

* reorder sentence based on review gsn-bouncers.adoc

Co-Authored-By: Francisco Giordano <frangio.1@gmail.com>

* Improve wording of signing of relayed call parameters by trusted signer
2019-09-24 21:18:46 -05:00
54182bf31c Remove extra parenthesis (#1919) 2019-09-17 11:52:06 -03:00
5ab6b99607 refactor(ERC165Checker) replaced assembly code with staticcall() (#1829)
* refactor(ERC165Checker) replaced assembly code with function

* returned false if result.length==0

* trigger ci

* updated ERC165Checker to return false if result.length < 32
2019-09-11 19:11:43 -03:00
b33b906b6e Update Counter.sol (#1917)
* Update Counter.sol

Added a comment in increment to make this more visible to not use SafeMath here.

* Update Counters.sol
2019-09-11 14:11:31 -03:00
19a41980a1 Fix bouncer signature tests (#1915)
* Fix bouncer signature tests

* Update GSNBouncerSignature.test.js
2019-09-11 13:51:07 -03:00
6f8e672f3f Gas optimizations in Ownable and Secondary contracts #1905 (#1910) 2019-09-09 18:47:05 -03:00
52dc14c368 Make _msgSender() payable (#1913) 2019-09-09 12:24:46 -03:00
6148abb1b1 Make ERC1820 address constant (#1912) 2019-09-06 17:16:02 -03:00
a2ffe21aa2 Revert to working truffle version 2019-09-06 16:26:26 -03:00
c876254457 Remove SignatureBouncer contract 2019-09-06 16:02:09 -03:00
681db1d330 Upgrade Solidity compiler version 2019-09-06 15:59:17 -03:00
d9accb63fc Update circle base image 2019-09-06 15:57:36 -03:00
72ccec4e6c Update dependencies 2019-09-06 15:47:19 -03:00
54ee1c7ff5 Fixing really minor typo (#1911) 2019-09-04 11:45:49 -03:00
e855ca450a Improve IRelayRecipient no-impl note 2019-08-30 17:54:08 -03:00
1efa9f6281 Merge GSNContext into GSNRecipient (#1906)
* Merge GSNContext into GSNRecipient

* Update GSNRecipient.test.js

* Update GSNRecipient.sol

* Make GSNRecipient inherit from Context
2019-08-30 17:18:42 -03:00
d864228624 Improve GSN documentation (#1900)
* Improve IRelayRecipient docs

* Fix link

* Update IRelayHub docs to the docsite format

* Update IRelayRecipient docs to the dociste format

* Fix typo

* Improve GSN readme

* Fix link

* Update GSNRecipient docs

* Apply suggestions from code review

Co-Authored-By: Andrew B Coathup <28278242+abcoathup@users.noreply.github.com>

* Apply suggestions from code review

Co-Authored-By: Andrew B Coathup <28278242+abcoathup@users.noreply.github.com>

* Apply suggestions from code review

Co-Authored-By: Andrew B Coathup <28278242+abcoathup@users.noreply.github.com>
2019-08-29 18:57:17 -03:00
5274b3d84c fix strikethrough style in docs 2019-08-29 16:40:44 -03:00
9c733a7bf8 Replace confirmRelayedCall with approveRelayedCall (#1904)
* Replace confirmRelayedCall with approveRelayedCall

* Update gsn-bouncers.adoc

* Update deprecated enums
2019-08-29 11:58:52 -03:00
52c30edab8 Bump mixin-deep from 1.3.1 to 1.3.2 (#1901)
Bumps [mixin-deep](https://github.com/jonschlinkert/mixin-deep) from 1.3.1 to 1.3.2.
- [Release notes](https://github.com/jonschlinkert/mixin-deep/releases)
- [Commits](https://github.com/jonschlinkert/mixin-deep/compare/1.3.1...1.3.2)

Signed-off-by: dependabot[bot] <support@github.com>
2019-08-28 12:59:15 -03:00
ba0fd11f52 Renamed symbols as as a part of Issue#1148 (#1891) 2019-08-26 21:00:06 -03:00
635a381460 Fix Part 1 : added tests for getApproved (#1820)
* added tests for getApproved

* added tests for getApproved

* added to changelog

* Corrected some linting issues

* Removed unneccrary tests as pointed out here: b49c2de086 (r307927816)

* Correct Changelog character

* Update ERC721.behavior.js
2019-08-26 20:59:22 -03:00
4e527a20a5 Bump required compiler version for Address (#1898) 2019-08-26 20:12:46 -03:00
92b2e2800a Bump eslint-utils from 1.3.1 to 1.4.2 (#1899)
Bumps [eslint-utils](https://github.com/mysticatea/eslint-utils) from 1.3.1 to 1.4.2.
- [Release notes](https://github.com/mysticatea/eslint-utils/releases)
- [Commits](https://github.com/mysticatea/eslint-utils/compare/v1.3.1...v1.4.2)

Signed-off-by: dependabot[bot] <support@github.com>
2019-08-26 16:11:23 -03:00
5d183d0efe Syncing naming of value and amount. (#1895) 2019-08-26 12:24:43 -03:00
188a5fd700 Minor refactoring of the .circleci config.yaml (#1885)
* Adding in "<<: *defaults" under "coverage"

* Refactoring by capturing similar setup commands into single alias

* Reverting changes, I am not certain exactly how to refactor these setup steps, but at least the &default refactor can be made.
2019-08-23 11:39:31 +02:00
2836b066c9 Update Context.sol (#1892)
Fix typos in instructions
2019-08-22 09:19:26 +02:00
d8a25d17aa Fix links to bouncers guide 2019-08-18 23:48:53 +02:00
5ec7204948 Fix link to basic guide 2019-08-18 23:33:58 +02:00
1e42749847 fix link 2019-08-18 22:38:37 +02:00
c77181c976 2.4.0-beta.2 2019-08-16 21:31:54 +02:00
f9a306bbdf remove release date 2019-08-16 21:31:34 +02:00
c0042cd9d0 Merge branch 'master' into release-v2.4.0 2019-08-16 21:25:51 +02:00
49eae91441 change double quotes for single quotes 2019-08-16 21:24:10 +02:00
6a01da193e add release push command 2019-08-16 21:14:13 +02:00
3e33066dde 2.4.0-beta.1 2019-08-16 21:12:05 +02:00
5bcaf7a2d8 remove release date that was wrong 2019-08-16 21:11:07 +02:00
0fa5270f7e fix changelog editing script 2019-08-16 21:09:20 +02:00
226c6bd8f1 Remove SignatureBouncer from drafts (#1879)
* Remove SignatureBouncer

* Update changelog entry

* Fix coverage

* Update CHANGELOG.md
2019-08-16 15:49:13 -03:00
89d07a2492 Update gsn.adoc 2019-08-16 20:38:56 +02:00
f1c7e63923 Add docs to GSN API (#1887)
* move gsn link

* change underscore to dash

* add content to gsn api ref

* change link of GSN announcement

* Update contracts/GSN/bouncers/GSNBouncerERC20Fee.sol

Co-Authored-By: Nicolás Venturo <nicolas.venturo@gmail.com>

* fix crossreference to gsn guide
2019-08-16 20:30:37 +02:00
79c30f96aa Remove intro from gsn guide (#1886)
* Remove intro from gsn guide

We are moving the intro to the top-level in the docsite, and focusing this guide into writing gsn-enabled contracts.

* Update docs/modules/ROOT/pages/gsn.adoc

Co-Authored-By: Francisco Giordano <frangio.1@gmail.com>

* Update gsn.adoc
2019-08-16 20:08:56 +02:00
9fdc91758d add note in api ref about unreleased features 2019-08-16 20:06:35 +02:00
18d7e24a2c rename docsite script to docs and update docs setup description 2019-08-16 20:03:49 +02:00
29e20ff9bf change underscore to dash 2019-08-16 19:32:04 +02:00
b2b31b2551 remove unstructured storage from GSNContext (#1881) 2019-08-15 19:33:41 -03:00
2b3aa0d220 Update gsn_advanced.adoc (#1884)
* Update gsn_advanced.adoc

Line 15 - where it says, "prevent malicious users from spending the transactions subsidy", with transactions subsidy, is it supposed to be possessive "transaction's subsidy" or is the plural in the wrong place "transaction subsidies"?

Line 176 - where it says "or it is not allowed to spend that amount". Is IT referring to the sender/person or the tx? If IT refers to a person, then change to "or they are not allowed..." for gender neutral.

Line 213 - Where it says, "Please not how the gas cost estimation", a verb is missing, please what?

* Update gsn_advanced.adoc

Apply suggestions by Amy
2019-08-15 20:25:06 +02:00
f2c3af4d0f update note about gsn being under development 2019-08-15 19:09:30 +02:00
ee5fdaf639 remove comment that made bash fail
(cherry picked from commit 5c19876fbf)
2019-08-15 19:01:30 +02:00
5c19876fbf remove comment that made bash fail 2019-08-15 19:00:48 +02:00
3ae589ebc5 add option to change prerelease suffix 2019-08-15 19:00:37 +02:00
cab26fd046 Update .editorconfig 2019-08-14 17:59:38 +02:00
1062 changed files with 106956 additions and 30600 deletions

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': patch
---
Add constructors to the different signers.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': minor
---
`AccountERC7579`: Extension of `Account` that implements support for ERC-7579 modules of type executor, validator, and fallback handler.

12
.changeset/config.json Normal file
View File

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

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': minor
---
`Memory`: Add library with utilities to manipulate memory

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': minor
---
`Checkpoints`: Add a new checkpoint variant `Checkpoint256` using `uint256` type for the value and key.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': minor
---
`EnumerableMap`: Add `keys(uint256,uint256)` that returns a subset (slice) of the keys in the map.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': minor
---
`EIP7702Utils`: Add a library for checking if an address has an EIP-7702 delegation in place.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': minor
---
`Account`: Added a simple ERC-4337 account implementation with minimal logic to process user operations.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': minor
---
`EnumerableSet`: Add `values(uint256,uint256)` that returns a subset (slice) of the values in the set.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': minor
---
`SignerERC7702`: Implementation of `AbstractSigner` for Externally Owned Accounts (EOAs). Useful with ERC-7702.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': minor
---
`EnumerableMap`: Add support for `BytesToBytesMap` type.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': minor
---
`ERC7739`: An abstract contract to validate signatures following the rehashing scheme from `ERC7739Utils`.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': minor
---
`Bytes`: Add `reverseBytes32`, `reverseBytes16`, `reverseBytes8`, `reverseBytes4`, and `reverseBytes2` functions to reverse byte order for converting between little-endian and big-endian representations.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': minor
---
`Strings`: Add `toHexString(bytes)`.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': minor
---
`ERC7913P256Verifier` and `ERC7913RSAVerifier`: Ready to use ERC-7913 verifiers that implement key verification for P256 (secp256r1) and RSA keys.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': minor
---
`EnumerableSet`: Add support for `StringSet` and `BytesSet` types.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': minor
---
`GovernorNoncesKeyed`: Extension of `Governor` that adds support for keyed nonces when voting by sig.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': minor
---
`ERC7739Utils`: Add a library that implements a defensive rehashing mechanism to prevent replayability of smart contract signatures based on the ERC-7739.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': minor
---
`MultiSignerERC7913Weighted`: Extension of `MultiSignerERC7913` that supports assigning different weights to each signer, enabling more flexible governance schemes.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': minor
---
`SignerERC7913`: Abstract signer that verifies signatures using the ERC-7913 workflow.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': minor
---
`Arrays`: Add `unsafeAccess`, `unsafeMemoryAccess` and `unsafeSetLength` for `bytes[]` and `string[]`.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': minor
---
`InteroperableAddress`: Add a library for formatting and parsing ERC-7930 interoperable addresses.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': minor
---
`ERC20Bridgeable`: Implementation of ERC-7802 that makes an ERC-20 compatible with crosschain bridges.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': minor
---
`IERC7821`, `ERC7821`: Interface and logic for minimal batch execution. No support for additional `opData` is included.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': minor
---
`MultiSignerERC7913`: Implementation of `AbstractSigner` that supports multiple ERC-7913 signers with a threshold-based signature verification system.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': minor
---
`SignatureChecker`: Add support for ERC-7913 signatures alongside existing ECDSA and ERC-1271 signature verification.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': minor
---
`AccountERC7579Hooked`: Extension of `AccountERC7579` that implements support for ERC-7579 hook modules.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': minor
---
`AbstractSigner`, `SignerECDSA`, `SignerP256`, and `SignerRSA`: Add an abstract contract and various implementations for contracts that deal with signature verification.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': minor
---
`ECDSA`: Add `recoverCalldata` and `tryRecoverCalldata`, variants of `recover` and `tryRecover` that are more efficient when signatures are in calldata.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': minor
---
`Blockhash`: Add a library that provides access to historical block hashes using EIP-2935's history storage, extending the standard 256-block limit to 8191 blocks.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': minor
---
`SignatureChecker`: Add `isValidSignatureNowCalldata(address,bytes32,bytes calldata)` for efficient processing of calldata signatures.

View File

@ -0,0 +1,5 @@
---
'openzeppelin-solidity': minor
---
`IERC7786`: Add the (draft) interface for ERC-7786 "Cross-Chain Messaging Gateway"

View File

@ -1,82 +0,0 @@
version: 2
# 2.1 does not yet support local run
# unless with workaround. For simplicity just use it.
# https://github.com/CircleCI-Public/circleci-cli/issues/79
aliases:
- &defaults
docker:
- image: circleci/node:8
- &npm_install_if_necessary
run:
name: Install npm dependencies
command: |
if [ ! -d node_modules ]; then
npm ci
fi
- &cache_key_node_modules
key: v1-node_modules-{{ checksum "package-lock.json" }}
jobs:
dependencies:
<<: *defaults
steps:
- checkout
- restore_cache:
<<: *cache_key_node_modules
- *npm_install_if_necessary
- save_cache:
paths:
- node_modules
<<: *cache_key_node_modules
lint:
<<: *defaults
steps:
- checkout
- restore_cache:
<<: *cache_key_node_modules
- *npm_install_if_necessary
- run:
name: Linter
command: npm run lint
test:
<<: *defaults
steps:
- checkout
- restore_cache:
<<: *cache_key_node_modules
- *npm_install_if_necessary
- run:
name: Unit tests
command: npm run test
coverage:
docker:
- image: circleci/node:8
steps:
- checkout
- restore_cache:
<<: *cache_key_node_modules
- *npm_install_if_necessary
- run:
name: Unit tests with coverage report
command: npm run coverage
# TODO(xinbenlv, #1839): run SOLC_NIGHTLY to be run but allow it to fail.
workflows:
version: 2
everything:
jobs:
- dependencies
- lint:
requires:
- dependencies
- test:
requires:
- dependencies
- coverage:
requires:
- dependencies

View File

@ -1,3 +1,16 @@
comment: off
github_checks:
annotations: false
coverage:
range: "100...100"
status:
patch:
default:
target: 95%
only_pulls: true
project:
default:
threshold: 1%
ignore:
- "test"
- "contracts/mocks"
- "contracts/vendor"

View File

@ -6,13 +6,16 @@ root = true
[*]
charset = utf-8
end_of_line = lf
indent_size = 4
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true
trim_trailing_whitespace = false
max_line_length = 120
[*.sol]
indent_size = 4
[*.js]
indent_size = 2
[*.{adoc,md}]
max_line_length = 0

View File

@ -1,58 +0,0 @@
{
"extends" : [
"standard",
"plugin:promise/recommended",
],
"plugins": [
"mocha-no-only",
"promise",
],
"env": {
"browser" : true,
"node" : true,
"mocha" : true,
"jest" : true,
},
"globals" : {
"artifacts": false,
"contract": false,
"assert": false,
"web3": false,
},
"rules": {
// Strict mode
"strict": ["error", "global"],
// Code style
"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",
}
}

1
.gitattributes vendored
View File

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

10
.github/CODEOWNERS vendored Normal file
View File

@ -0,0 +1,10 @@
# List of approvers/reviewers for OpenZeppelin Contracts
#
# Get in touch with us via the OpenZeppelin Forum
# https://forum.openzeppelin.com/
#
# Learn about CODEOWNERS file format:
# https://help.github.com/en/articles/about-code-owners
# These owners will be the default owners for everything in the repo.
* @OpenZeppelin/contracts

View File

@ -10,7 +10,7 @@ about: Report a bug in OpenZeppelin Contracts
**💻 Environment**
<!-- Tell us what version of OpenZeppelin Contracts you're using, and how you're using it: Truffle, Remix, etc. -->
<!-- Tell us what version of OpenZeppelin Contracts you're using, and how you're using it: Hardhat, Remix, etc. -->
**📝 Details**

4
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@ -0,0 +1,4 @@
contact_links:
- name: Questions & Support Requests
url: https://forum.openzeppelin.com/c/support/contracts/18
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

@ -1,22 +1,20 @@
<!-- 0. 🎉 Thank you for submitting a PR! -->
<!-- Thank you for your interest in contributing to OpenZeppelin! -->
<!-- 1. Does this close any open issues? Please list them below. -->
<!-- Consider opening an issue for discussion prior to submitting a PR. -->
<!-- New features will be merged faster if they were first discussed and designed with the team. -->
<!-- Keep in mind that new features have a better chance of being merged fast if
they were first discussed and designed with the maintainers. If there is no
corresponding issue, please consider opening one for discussion first! -->
Fixes #???? <!-- Fill in with issue number -->
Fixes #
<!-- Describe the changes introduced in this pull request. -->
<!-- Include any context necessary for understanding the PR's purpose. -->
<!-- 2. Describe the changes introduced in this pull request. -->
<!-- Include any context necessary for understanding the PR's purpose. -->
<!-- 3. Before submitting, please make sure that you have:
- reviewed the OpenZeppelin Contributor Guidelines
(https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/CONTRIBUTING.md),
- added tests where applicable to test new functionality,
- made sure that your contracts are well-documented,
- run the Solidity linter (`npm run lint:sol`) and fixed any issues,
- run the JS linter and fixed any issues (`npm run lint:fix`), and
- updated the changelog, if applicable.
-->
#### PR Checklist
<!-- Before merging the pull request all of the following must be complete. -->
<!-- Feel free to submit a PR or Draft PR even if some items are pending. -->
<!-- Some of the items may not apply. -->
- [ ] Tests
- [ ] Documentation
- [ ] Changeset entry (run `npx changeset add`)

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

@ -0,0 +1,51 @@
name: Compare gas costs
description: Compare gas costs between branches
inputs:
token:
description: GitHub token, required to access GitHub API
required: true
report:
description: Path to the report to compare
required: false
default: gasReporterOutput.json
out_report:
description: Path to save the output report
required: false
default: ${{ github.ref_name }}.gasreport.json
ref_report:
description: Path to the reference report for comparison
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@v4
with:
name: gasreport
overwrite: true
path: ${{ inputs.out_report }}

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

@ -0,0 +1,22 @@
name: Setup
description: Common environment setup
runs:
using: composite
steps:
- uses: actions/setup-node@v4
with:
node-version: 22.x
- uses: actions/cache@v4
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: stable

View File

@ -0,0 +1,57 @@
name: Compare storage layouts
description: Compare storage layouts between branches
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@v4
with:
name: layout
overwrite: true
path: ${{ inputs.out_layout }}

66
.github/stale.yml vendored
View File

@ -1,66 +0,0 @@
# Configuration for probot-stale - https://github.com/probot/stale
# Number of days of inactivity before an Issue or Pull Request becomes stale
daysUntilStale: 15
# Number of days of inactivity before an Issue or Pull Request with the stale label is closed.
# Set to false to disable. If disabled, issues still need to be closed manually, but will remain marked as stale.
daysUntilClose: 15
# Issues or Pull Requests with these labels will never be considered stale. Set to `[]` to disable
exemptLabels:
- on hold
# Set to true to ignore issues in a project (defaults to false)
exemptProjects: false
# Set to true to ignore issues in a milestone (defaults to false)
exemptMilestones: false
# Set to true to ignore issues with an assignee (defaults to false)
exemptAssignees: false
# Label to use when marking as stale
staleLabel: stale
# Comment to post when marking as stale. Set to `false` to disable
markComment: >
Hi all!
This Pull Request has not had any recent activity, is it still relevant? If so, what is blocking it?
Is there anything we can do to help move it forward?
Thanks!
# Comment to post when removing the stale label.
# unmarkComment: >
# Your comment here.
# Comment to post when closing a stale Issue or Pull Request.
closeComment: >
Hi folks!
This Pull Request is being closed as there was no response to the previous prompt.
However, please leave a comment whenever you're ready to resume, so it can be reopened.
Thanks again!
# Limit the number of actions per hour, from 1-30. Default is 30
limitPerRun: 30
# Limit to only `issues` or `pulls`
only: pulls
# Optionally, specify configuration settings that are specific to just 'issues' or 'pulls':
# pulls:
# daysUntilStale: 30
# markComment: >
# This pull request has been automatically marked as stale because it has not had
# recent activity. It will be closed if no further activity occurs. Thank you
# for your contributions.
# issues:
# exemptLabels:
# - confirmed

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

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

@ -0,0 +1,132 @@
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=8192
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
# Needed for "eth-gas-reporter" to produce a "gasReporterOutput.json" as documented in
# https://github.com/cgewecke/eth-gas-reporter/blob/v0.2.27/docs/gasReporterOutput.md
CI: true
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 pragma validity
run: npm run test:pragma -- --concurrency 1
- name: Check procedurally generated contracts are up-to-date
run: npm run test:generation
- name: Compare gas costs
uses: ./.github/actions/gas-compare
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 pragma validity
run: npm run test:pragma -- --concurrency 1
- name: Check storage layout
uses: ./.github/actions/storage-layout
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 -vvv
coverage:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up environment
uses: ./.github/actions/setup
- name: Run coverage
run: npm run coverage
- uses: codecov/codecov-action@v5
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
harnesses:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up environment
uses: ./.github/actions/setup
- name: Compile harnesses
run: |
make -C certora apply
npm run compile:harnesses
slither:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up environment
uses: ./.github/actions/setup
- uses: crytic/slither-action@v0.4.1
codespell:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run CodeSpell
uses: codespell-project/actions-codespell@v2.1
with:
check_hidden: true
check_filenames: true
skip: package-lock.json,*.pdf,vendor

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,86 @@
name: formal verification
on:
pull_request:
types:
- opened
- reopened
- synchronize
- labeled
workflow_dispatch: {}
env:
PIP_VERSION: '3.11'
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@v5
with:
python-version: ${{ env.PIP_VERSION }}
cache: 'pip'
cache-dependency-path: 'fv-requirements.txt'
- name: Install python packages
run: pip install -r fv-requirements.txt
- name: Install java
uses: actions/setup-java@v4
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 }}
halmos:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up environment
uses: ./.github/actions/setup
- name: Install python
uses: actions/setup-python@v5
with:
python-version: ${{ env.PIP_VERSION }}
cache: 'pip'
cache-dependency-path: 'fv-requirements.txt'
- name: Install python packages
run: pip install -r fv-requirements.txt
- name: Run Halmos
run: halmos --match-test '^symbolic|^testSymbolic' -vv

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@v7
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@v7
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@v7
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@v7
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
id-token: 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@v4
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 }}
NPM_CONFIG_PROVENANCE: true
- name: Create Github Release
uses: actions/github-script@v7
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
uses: actions/download-artifact@v4
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@v7
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) }}'
});

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

31
.gitignore vendored
View File

@ -29,22 +29,39 @@ npm-debug.log
# local env variables
.env
# truffle build directory
build/
# macOS
.DS_Store
# truffle
.node-xmlhttprequest-*
# IntelliJ IDE
.idea
# docs artifacts
docs/modules/api
openzeppelin-docs
build/site
# only used to package @openzeppelin/contracts
contracts/build/
contracts/README.md
# temporary artifact from solidity-coverage
allFiredEvents
.coverage_artifacts
.coverage_cache
.coverage_contracts
# hardat-exposed
contracts-exposed
# Hardhat
/cache
/artifacts
# Foundry
/out
/cache_forge
# Certora
.certora*
.last_confs
certora_*
.zip-output-url.txt

10
.gitmodules vendored Normal file
View File

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

2
.husky/pre-commit Executable file
View File

@ -0,0 +1,2 @@
npm run test:generation
npx lint-staged

4
.mocharc.js Normal file
View File

@ -0,0 +1,4 @@
module.exports = {
require: 'hardhat/register',
timeout: 4000,
};

15
.prettierrc Normal file
View File

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

View File

@ -1,9 +1,21 @@
module.exports = {
norpc: true,
testCommand: 'node --max-old-space-size=4096 ../node_modules/.bin/truffle test --network coverage',
compileCommand: 'node --max-old-space-size=4096 ../node_modules/.bin/truffle compile --network coverage',
skipFiles: [
'lifecycle/Migrations.sol',
'mocks'
]
}
norpc: true,
testCommand: 'npm test',
compileCommand: 'npm run compile',
skipFiles: ['mocks'],
providerOptions: {
default_balance_ether: '10000000000000000000000000',
},
mocha: {
fgrep: '[skip-on-coverage]',
invert: true,
},
// Work around stack too deep for coverage
configureYulOptimizer: true,
solcOptimizerDetails: {
yul: true,
yulDetails: {
optimizerSteps: '',
},
},
};

View File

@ -1,14 +0,0 @@
{
"extends": "solhint:recommended",
"rules": {
"indent": ["error", 4],
"func-order": "off",
"bracket-align": "off",
"compiler-fixed": "off",
"no-simple-event-func-name": "off",
"separate-by-one-line-in-contract": "off",
"two-lines-top-level-separator": "off",
"mark-callable-contracts": "off",
"compiler-version": ["error", "^0.5.0"]
}
}

File diff suppressed because it is too large Load Diff

View File

@ -6,7 +6,7 @@ In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, sex characteristics, gender identity and expression,
level of experience, education, socio-economic status, nationality, personal
level of experience, education, socioeconomic status, nationality, personal
appearance, race, religion, or sexual identity and orientation.
## Our Standards
@ -55,7 +55,7 @@ further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at maintainers@openzeppelin.org. All
reported by contacting the project team at contact@openzeppelin.com. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.

View File

@ -1,69 +0,0 @@
# Code Style
We value clean code and consistency, and those are prerequisites for us to
include new code in the repository. Before proposing a change, please read this
document and take some time to familiarize yourself with the style of the
existing codebase.
## Solidity code
In order to be consistent with all the other Solidity projects, we follow the
[official recommendations documented in the Solidity style guide](http://solidity.readthedocs.io/en/latest/style-guide.html).
Any exception or additions specific to our project are documented below.
### Naming
* Try to avoid acronyms and abbreviations.
* All state variables should be private.
* Private state variables should have an underscore prefix.
```
contract TestContract {
uint256 private _privateVar;
uint256 internal _internalVar;
}
```
* Parameters must not be prefixed with an underscore.
```
function test(uint256 testParameter1, uint256 testParameter2) {
...
}
```
* Internal and private functions should have an underscore prefix.
```
function _testInternal() internal {
...
}
```
```
function _testPrivate() private {
...
}
```
* Events should be emitted immediately after the state change that they
represent, and consequently they should be named in past tense.
```
function _burn(address _who, uint256 _value) internal {
super._burn(_who, _value);
emit TokensBurned(_who, _value);
}
```
Some standards (e.g. ERC20) use present tense, and in those cases the
standard specification prevails.
* Interface names should have a capital I prefix.
```
interface IERC777 {
```

View File

@ -1,71 +1,36 @@
Contributing to OpenZeppelin Contracts
=======
# Contributing Guidelines
We really appreciate and value contributions to OpenZeppelin Contracts. Please take 5' to review the items listed below to make sure that your contributions are merged as soon as possible.
There are many ways to contribute to OpenZeppelin Contracts.
## Contribution guidelines
## Troubleshooting
Smart contracts manage value and are highly vulnerable to errors and attacks. We have very strict [guidelines], please make sure to review them!
You can help other users in the community to solve their smart contract issues in the [OpenZeppelin Forum].
## Creating Pull Requests (PRs)
[OpenZeppelin Forum]: https://forum.openzeppelin.com/
As a contributor, you are expected to fork this repository, work on your own fork and then submit pull requests. The pull requests will be reviewed and eventually merged into the main repo. See ["Fork-a-Repo"](https://help.github.com/articles/fork-a-repo/) for how this works.
## Opening an issue
## A typical workflow
You can [open an issue] to suggest a feature or report a minor bug. For serious bugs please do not open an issue, instead refer to our [security policy] for appropriate steps.
1) Make sure your fork is up to date with the main repository:
If you believe your issue may be due to user error and not a problem in the library, consider instead posting a question on the [OpenZeppelin Forum].
```
cd openzeppelin-contracts
git remote add upstream https://github.com/OpenZeppelin/openzeppelin-contracts.git
git fetch upstream
git pull --rebase upstream master
```
NOTE: The directory `openzeppelin-contracts` represents your fork's local copy.
Before opening an issue, be sure to search through the existing open and closed issues, and consider posting a comment in one of those instead.
2) Branch out from `master` into `fix/some-bug-#123`:
(Postfixing #123 will associate your PR with the issue #123 and make everyone's life easier =D)
```
git checkout -b fix/some-bug-#123
```
When requesting a new feature, include as many details as you can, especially around the use cases that motivate it. Features are prioritized according to the impact they may have on the ecosystem, so we appreciate information showing that the impact could be high.
3) Make your changes, add your files, commit, and push to your fork.
[security policy]: https://github.com/OpenZeppelin/openzeppelin-contracts/security
[open an issue]: https://github.com/OpenZeppelin/openzeppelin-contracts/issues/new/choose
```
git add SomeFile.js
git commit "Fix some bug #123"
git push origin fix/some-bug-#123
```
## Submitting a pull request
4) Run tests, linter, etc. This can be done by running local continuous integration and make sure it passes.
If you would like to contribute code or documentation you may do so by forking the repository and submitting a pull request.
```bash
npm test
npm run lint
```
Any non-trivial code contribution must be first discussed with the maintainers in an issue (see [Opening an issue](#opening-an-issue)). Only very minor changes are accepted without prior discussion.
or you can simply run CircleCI locally
```bash
circleci local execute --job build
circleci local execute --job test
```
*Note*: requires installing CircleCI and docker locally on your machine.
Make sure to read and follow the [engineering guidelines](./GUIDELINES.md). Run linter and tests to make sure your pull request is good before submitting it.
5) Go to [github.com/OpenZeppelin/openzeppelin-contracts](https://github.com/OpenZeppelin/openzeppelin-contracts) in your web browser and issue a new pull request.
Changelog entries should be added to each pull request by using [Changesets](https://github.com/changesets/changesets/).
*IMPORTANT* Read the PR template very carefully and make sure to follow all the instructions. These instructions
refer to some very important conditions that your PR must meet in order to be accepted, such as making sure that all tests pass, JS linting tests pass, Solidity linting tests pass, etc.
When opening the pull request you will be presented with a template and a series of instructions. Read through it carefully and follow all the steps. Expect a review and feedback from the maintainers afterwards.
6) Maintainers will review your code and possibly ask for changes before your code is pulled in to the main repository. We'll check that all tests pass, review the coding style, and check for general code correctness. If everything is OK, we'll merge your pull request and your code will be part of OpenZeppelin.
*IMPORTANT* Please pay attention to the maintainer's feedback, since its a necessary step to keep up with the standards OpenZeppelin attains to.
## All set!
If you have any questions, feel free to post them to github.com/OpenZeppelin/openzeppelin-contracts/issues.
Finally, if you're looking to collaborate and want to find easy tasks to start, look at the issues we marked as ["Good first issue"](https://github.com/OpenZeppelin/openzeppelin-contracts/labels/good%20first%20issue).
Thanks for your time and code!
[guidelines]: GUIDELINES.md
If you're looking for a good place to start, look for issues labelled ["good first issue"](https://github.com/OpenZeppelin/openzeppelin-contracts/labels/good%20first%20issue)!

View File

@ -1,19 +0,0 @@
We're building an improved documentation website. It's still in development and
contributions will be really appreciated.
All of the content for the site is in this repository. The guides are in the
[docs](/docs) directory, and the API Reference is extracted from comments in
the source code. If you want to help improve the content, this is the
repository you should be contributing to.
[`solidity-docgen`](https://github.com/OpenZeppelin/solidity-docgen) is the
program that extracts the API Reference from source code.
The [`openzeppelin-docsite`](https://github.com/OpenZeppelin/openzeppelin-docsite)
repository hosts the configuration for Docusaurus, the static site generator
that we use.
To run the docsite locally you should run `npm run docsite start` on this
repository. This will live reload as the guides are edited, but not with
changes to the source code comments, for that you need to restart the server.
This should be improved eventually (contributions welcome!).

10
FUNDING.json Normal file
View File

@ -0,0 +1,10 @@
{
"drips": {
"ethereum": {
"ownedBy": "0xAeb37910f93486C85A1F8F994b67E8187554d664"
}
},
"opRetro": {
"projectId": "0x939241afa4c4b9e1dda6b8250baa8f04fa8b0debce738cfd324c0b18f9926d25"
}
}

View File

@ -1,64 +1,155 @@
Design Guidelines
=======
# Engineering Guidelines
These are some global design goals in OpenZeppelin.
## Testing
#### D0 - Security in Depth
We strive to provide secure, tested, audited code. To achieve this, we need to match intention with function. Thus, documentation, code clarity, community review and security discussions are fundamental.
Code must be thoroughly tested with quality unit tests.
#### D1 - Simple and Modular
Simpler code means easier audits, and better understanding of what each component does. We look for small files, small contracts, and small functions. If you can separate a contract into two independent functionalities you should probably do it.
We defer to the [Moloch Testing Guide](https://github.com/MolochVentures/moloch/tree/master/test#readme) for specific recommendations, though not all of it is relevant here. Note the introduction:
#### D2 - Naming Matters
> Tests should be written, not only to verify correctness of the target code, but to be comprehensively reviewed by other programmers. Therefore, for mission critical Solidity code, the quality of the tests is just as important (if not more so) than the code itself, and should be written to the highest standards of clarity and elegance.
We take our time with picking names. Code is going to be written once, and read hundreds of times. Renaming for clarity is encouraged.
Every addition or change to the code must come with relevant and comprehensive tests.
#### D3 - Tests
Refactors should avoid simultaneous changes to tests.
Write tests for all your code. We encourage Test Driven Development so we know when our code is right. Even though not all code in the repository is tested at the moment, we aim to test every line of code in the future.
Flaky tests are not acceptable.
#### D4 - Check preconditions and post-conditions
The test suite should run automatically for every change in the repository, and in pull requests tests must pass before merging.
A very important way to prevent vulnerabilities is to catch a contracts inconsistent state as early as possible. This is why we want functions to check pre- and post-conditions for executing its logic. When writing code, ask yourself what you are expecting to be true before and after the function runs, and express it in code.
The test suite coverage must be kept as close to 100% as possible, enforced in pull requests.
#### D5 - Code Consistency
In some cases unit tests may be insufficient and complementary techniques should be used:
Consistency on the way classes are used is paramount to an easier understanding of the library. The codebase should be as unified as possible. Read existing code and get inspired before you write your own. Follow the style guidelines. Dont hesitate to ask for help on how to best write a specific piece of code.
1. Property-based tests (aka. fuzzing) for math-heavy code.
2. Formal verification for state machines.
#### D6 - Regular Audits
Following good programming practices is a way to reduce the risk of vulnerabilities, but professional code audits are still needed. We will perform regular code audits on major releases, and hire security professionals to provide independent review.
## Code style
## Style Guidelines
Solidity code should be written in a consistent format enforced by a linter, following the official [Solidity Style Guide](https://docs.soliditylang.org/en/latest/style-guide.html). See below for further [Solidity Conventions](#solidity-conventions).
The design guidelines have quite a high abstraction level. These style guidelines are more concrete and easier to apply, and also more opinionated.
The code should be simple and straightforward, prioritizing readability and understandability. Consistency and predictability should be maintained across the codebase. In particular, this applies to naming, which should be systematic, clear, and concise.
### General
Sometimes these guidelines may be broken if doing so brings significant efficiency gains, but explanatory comments should be added.
#### G0 - Default to Solidity's official style guide.
Modularity should be pursued, but not at the cost of the above priorities.
Follow the official Solidity style guide: https://solidity.readthedocs.io/en/latest/style-guide.html
## Documentation
#### G1 - No Magic Constants
For contributors, project guidelines and processes must be documented publicly.
Avoid constants in the code as much as possible. Magic strings are also magic constants.
For users, features must be abundantly documented. Documentation should include answers to common questions, solutions to common problems, and recommendations for critical decisions that the user may face.
#### G2 - Code that Fails Early
All changes to the core codebase (excluding tests, auxiliary scripts, etc.) must be documented in a changelog, except for purely cosmetic or documentation changes.
We ask our code to fail as soon as possible when an unexpected input was provided or unexpected state was found.
## Peer review
#### G3 - Internal Amounts Must be Signed Integers and Represent the Smallest Units.
All changes must be submitted through pull requests and go through peer code review.
Avoid representation errors by always dealing with weis when handling ether. GUIs can convert to more human-friendly representations. Use Signed Integers (int) to prevent underflow problems.
The review must be approached by the reviewer in a similar way as if it was an audit of the code in question (but importantly it is not a substitute for and should not be considered an audit).
Reviewers should enforce code and project guidelines.
### Testing
External contributions must be reviewed separately by multiple maintainers.
#### T1 - Tests Must be Written Elegantly
## Automation
Style guidelines are not relaxed for tests. Tests are a good way to show how to use the library, and maintaining them is extremely necessary.
Automation should be used as much as possible to reduce the possibility of human error and forgetfulness.
Don't write long tests, write helper functions to make them be as short and concise as possible (they should take just a few lines each), and use good variable names.
Automations that make use of sensitive credentials must use secure secret management, and must be strengthened against attacks such as [those on GitHub Actions workflows](https://github.com/nikitastupin/pwnhub).
#### T2 - Tests Must not be Random
Some other examples of automation are:
Inputs for tests should not be generated randomly. Accounts used to create test contracts are an exception, those can be random. Also, the type and structure of outputs should be checked.
- Looking for common security vulnerabilities or errors in our code (eg. reentrancy analysis).
- Keeping dependencies up to date and monitoring for vulnerable dependencies.
## Pull requests
Pull requests are squash-merged to keep the `master` branch history clean. The title of the pull request becomes the commit message, so it should be written in a consistent format:
1) Begin with a capital letter.
2) Do not end with a period.
3) Write in the imperative: "Add feature X" and not "Adds feature X" or "Added feature X".
This repository does not follow conventional commits, so do not prefix the title with "fix:" or "feat:".
Work in progress pull requests should be submitted as Drafts and should not be prefixed with "WIP:".
Branch names don't matter, and commit messages within a pull request mostly don't matter either, although they can help the review process.
# Solidity Conventions
In addition to the official Solidity Style Guide we have a number of other conventions that must be followed.
* All state variables should be private.
Changes to state should be accompanied by events, and in some cases it is not correct to arbitrarily set state. Encapsulating variables as private and only allowing modification via setters enables us to ensure that events and other rules are followed reliably and prevents this kind of user error.
* Internal or private state variables or functions should have an underscore prefix.
```solidity
contract TestContract {
uint256 private _privateVar;
uint256 internal _internalVar;
function _testInternal() internal { ... }
function _testPrivate() private { ... }
}
```
* Functions should be declared virtual, with few exceptions listed below. The
contract logic should be written considering that these functions may be
overridden by developers, e.g. getting a value using an internal getter rather
than reading directly from a state variable.
If function A is an "alias" of function B, i.e. it invokes function B without
significant additional logic, then function A should not be virtual so that
any user overrides are implemented on B, preventing inconsistencies.
* Events should generally be emitted immediately after the state change that they
represent, and should be named in the past tense. Some exceptions may be made for gas
efficiency if the result doesn't affect observable ordering of events.
```solidity
function _burn(address who, uint256 value) internal {
super._burn(who, value);
emit TokensBurned(who, value);
}
```
Some standards (e.g. ERC-20) use present tense, and in those cases the
standard specification is used.
* Interface names should have a capital I prefix.
```solidity
interface IERC777 {
```
* Contracts not intended to be used standalone should be marked abstract
so they are required to be inherited to other contracts.
```solidity
abstract contract AccessControl is ..., {
```
* Return values are generally not named, unless they are not immediately clear or there are multiple return values.
```solidity
function expiration() public view returns (uint256) { // Good
function hasRole() public view returns (bool isMember, uint32 currentDelay) { // Good
```
* Unchecked arithmetic blocks should contain comments explaining why overflow is guaranteed not to happen. If the reason is immediately apparent from the line above the unchecked block, the comment may be omitted.
* Custom errors should be declared following the [EIP-6093](https://eips.ethereum.org/EIPS/eip-6093) rationale whenever reasonable. Also, consider the following:
* The domain prefix should be picked in the following order:
1. Use `ERC<number>` if the error is a violation of an ERC specification.
2. Use the name of the underlying component where it belongs (eg. `Governor`, `ECDSA`, or `Timelock`).
* The location of custom errors should be decided in the following order:
1. Take the errors from their underlying ERCs if they're already defined.
2. Declare the errors in the underlying interface/library if the error makes sense in its context.
3. Declare the error in the implementation if the underlying interface/library is not suitable to do so (eg. interface/library already specified in an ERC).
4. Declare the error in an extension if the error only happens in such extension or child contracts.
* Custom error names should not be declared twice along the library to avoid duplicated identifier declarations when inheriting from multiple contracts.

View File

@ -1,6 +1,6 @@
The MIT License (MIT)
Copyright (c) 2016-2019 zOS Global Limited
Copyright (c) 2016-2025 Zeppelin Group Ltd
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the

106
README.md
View File

@ -1,64 +1,108 @@
# <img src="logo.png" alt="OpenZeppelin" height="40px">
# <img src="logo.svg" alt="OpenZeppelin" height="40px">
[![Github Release](https://img.shields.io/github/v/tag/OpenZeppelin/openzeppelin-contracts.svg?filter=v*&sort=semver&label=github)](https://github.com/OpenZeppelin/openzeppelin-contracts/releases/latest)
[![NPM Package](https://img.shields.io/npm/v/@openzeppelin/contracts.svg)](https://www.npmjs.org/package/@openzeppelin/contracts)
[![Build Status](https://circleci.com/gh/OpenZeppelin/openzeppelin-contracts.svg?style=shield)](https://circleci.com/gh/OpenZeppelin/openzeppelin-contracts)
[![Coverage Status](https://codecov.io/gh/OpenZeppelin/openzeppelin-contracts/graph/badge.svg)](https://codecov.io/gh/OpenZeppelin/openzeppelin-contracts)
[![GitPOAPs](https://public-api.gitpoap.io/v1/repo/OpenZeppelin/openzeppelin-contracts/badge)](https://www.gitpoap.io/gh/OpenZeppelin/openzeppelin-contracts)
[![Docs](https://img.shields.io/badge/docs-%F0%9F%93%84-yellow)](https://docs.openzeppelin.com/contracts)
[![Forum](https://img.shields.io/badge/forum-%F0%9F%92%AC-yellow)](https://forum.openzeppelin.com/)
**OpenZeppelin Contracts is a library for secure smart contract development.** It provides implementations of standards like ERC20 and ERC721 which you can deploy as-is or extend to suit your needs, as well as Solidity components to build custom contracts and more complex decentralized systems.
**A library for secure smart contract development.** Build on a solid foundation of community-vetted code.
## Install
* Implementations of standards like [ERC20](https://docs.openzeppelin.com/contracts/erc20) and [ERC721](https://docs.openzeppelin.com/contracts/erc721).
* Flexible [role-based permissioning](https://docs.openzeppelin.com/contracts/access-control) scheme.
* Reusable [Solidity components](https://docs.openzeppelin.com/contracts/utilities) to build custom contracts and complex decentralized systems.
:mage: **Not sure how to get started?** Check out [Contracts Wizard](https://wizard.openzeppelin.com/) — an interactive smart contract generator.
:building_construction: **Want to scale your decentralized application?** Check out [OpenZeppelin Defender](https://openzeppelin.com/defender) — a mission-critical developer security platform to code, audit, deploy, monitor, and operate with confidence.
> [!IMPORTANT]
> OpenZeppelin Contracts uses semantic versioning to communicate backwards compatibility of its API and storage layout. For upgradeable contracts, the storage layout of different major versions should be assumed incompatible, for example, it is unsafe to upgrade from 4.9.3 to 5.0.0. Learn more at [Backwards Compatibility](https://docs.openzeppelin.com/contracts/backwards-compatibility).
## Overview
### Installation
#### Hardhat (npm)
```
npm install @openzeppelin/contracts
$ npm install @openzeppelin/contracts
```
OpenZeppelin Contracts features a stable API, which means your contracts won't break unexpectedly when upgrading to a newer minor version. You can read ṫhe details in our [API Stability] document.
#### Foundry (git)
## Usage
> [!WARNING]
> When installing via git, it is a common error to use the `master` branch. This is a development branch that should be avoided in favor of tagged releases. The release process involves security measures that the `master` branch does not guarantee.
To write your custom contracts, import ours and extend them through inheritance.
> [!WARNING]
> Foundry installs the latest version initially, but subsequent `forge update` commands will use the `master` branch.
```
$ forge install OpenZeppelin/openzeppelin-contracts
```
Add `@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/` in `remappings.txt.`
### Usage
Once installed, you can use the contracts in the library by importing them:
```solidity
pragma solidity ^0.5.0;
pragma solidity ^0.8.20;
import "@openzeppelin/contracts/token/ERC721/ERC721Full.sol";
import "@openzeppelin/contracts/token/ERC721/ERC721Mintable.sol";
import {ERC721} from "@openzeppelin/contracts/token/ERC721/ERC721.sol";
contract MyNFT is ERC721Full, ERC721Mintable {
constructor() ERC721Full("MyNFT", "MNFT") public {
}
contract MyCollectible is ERC721 {
constructor() ERC721("MyCollectible", "MCO") {
}
}
```
> You need an ethereum development framework for the above import statements to work! Check out these guides for [Truffle], [Embark] or [Buidler].
_If you're new to smart contract development, head to [Developing Smart Contracts](https://docs.openzeppelin.com/learn/developing-smart-contracts) to learn about creating a new project and compiling your contracts._
On our site you will find a few [guides] to learn about the different parts of OpenZeppelin, as well as [documentation for the API][API docs]. Keep in mind that the API docs are work in progress, and dont hesitate to ask questions in [our forum][forum].
To keep your system secure, you should **always** use the installed code as-is, and neither copy-paste it from online sources nor modify it yourself. The library is designed so that only the contracts and functions you use are deployed, so you don't need to worry about it needlessly increasing gas costs.
## Learn More
The guides in the [documentation site](https://docs.openzeppelin.com/contracts) will teach about different concepts, and how to use the related contracts that OpenZeppelin Contracts provides:
* [Access Control](https://docs.openzeppelin.com/contracts/access-control): decide who can perform each of the actions on your system.
* [Tokens](https://docs.openzeppelin.com/contracts/tokens): create tradeable assets or collectives, and distribute them via [Crowdsales](https://docs.openzeppelin.com/contracts/crowdsales).
* [Utilities](https://docs.openzeppelin.com/contracts/utilities): generic useful tools including non-overflowing math, signature verification, and trustless paying systems.
The [full API](https://docs.openzeppelin.com/contracts/api/token/ERC20) is also thoroughly documented, and serves as a great reference when developing your smart contract application. You can also ask for help or follow Contracts' development in the [community forum](https://forum.openzeppelin.com).
Finally, you may want to take a look at the [guides on our blog](https://blog.openzeppelin.com/), which cover several common use cases and good practices. The following articles provide great background reading, though please note that some of the referenced tools have changed, as the tooling in the ecosystem continues to rapidly evolve.
* [The Hitchhikers Guide to Smart Contracts in Ethereum](https://blog.openzeppelin.com/the-hitchhikers-guide-to-smart-contracts-in-ethereum-848f08001f05) will help you get an overview of the various tools available for smart contract development, and help you set up your environment.
* [A Gentle Introduction to Ethereum Programming, Part 1](https://blog.openzeppelin.com/a-gentle-introduction-to-ethereum-programming-part-1-783cc7796094) provides very useful information on an introductory level, including many basic concepts from the Ethereum platform.
* For a more in-depth dive, you may read the guide [Designing the Architecture for Your Ethereum Application](https://blog.openzeppelin.com/designing-the-architecture-for-your-ethereum-application-9cec086f8317), which discusses how to better structure your application and its relationship to the real world.
## Security
This project is maintained by [OpenZeppelin], and developed following our high standards for code quality and security. OpenZeppelin is meant to provide tested and community-audited code, but please use common sense when doing anything that deals with real money! We take no responsibility for your implementation decisions and any security problems you might experience.
This project is maintained by [OpenZeppelin](https://openzeppelin.com) with the goal of providing a secure and reliable library of smart contract components for the ecosystem. We address security through risk management in various areas such as engineering and open source best practices, scoping and API design, multi-layered review processes, and incident response preparedness.
The core development principles and strategies that OpenZeppelin is based on include: security in depth, simple and modular code, clarity-driven naming conventions, comprehensive unit testing, pre-and-post-condition sanity checks, code consistency, and regular audits.
The [OpenZeppelin Contracts Security Center](https://contracts.openzeppelin.com/security) contains more details about the secure development process.
The latest audit was done on October 2018 on version 2.0.0.
The security policy is detailed in [`SECURITY.md`](./SECURITY.md) as well, and specifies how you can report security vulnerabilities, which versions will receive security patches, and how to stay informed about them. We run a [bug bounty program on Immunefi](https://immunefi.com/bounty/openzeppelin) to reward the responsible disclosure of vulnerabilities.
Please report any security issues you find to security@openzeppelin.org.
The engineering guidelines we follow to promote project quality can be found in [`GUIDELINES.md`](./GUIDELINES.md).
Past audits can be found in [`audits/`](./audits).
Smart contracts are a nascent technology and carry a high level of technical risk and uncertainty. Although OpenZeppelin is well known for its security audits, using OpenZeppelin Contracts is not a substitute for a security audit.
OpenZeppelin Contracts is made available under the MIT License, which disclaims all warranties in relation to the project and which limits the liability of those that contribute and maintain the project, including OpenZeppelin. As set out further in the Terms, you acknowledge that you are solely responsible for any use of OpenZeppelin Contracts and you assume all risks associated with any such use.
## Contribute
OpenZeppelin exists thanks to its contributors. There are many ways you can participate and help build high quality software. Check out the [contribution guide]!
OpenZeppelin Contracts exists thanks to its contributors. There are many ways you can participate and help build high quality software. Check out the [contribution guide](CONTRIBUTING.md)!
## License
OpenZeppelin is released under the [MIT License](LICENSE).
OpenZeppelin Contracts is released under the [MIT License](LICENSE).
## Legal
[API docs]: https://docs.openzeppelin.com/contracts/api/token/erc20
[guides]: https://docs.openzeppelin.com/contracts
[API Stability]: https://docs.openzeppelin.com/contracts/api-stability
[forum]: https://forum.openzeppelin.com
[OpenZeppelin]: https://openzeppelin.com
[contribution guide]: CONTRIBUTING.md
[Truffle]: https://truffleframework.com/docs/truffle/quickstart
[Embark]: https://embark.status.im/docs/quick_start.html
[Buidler]: https://buidler.dev/guides/#getting-started
Your use of this Project is governed by the terms found at www.openzeppelin.com/tos (the "Terms").

View File

@ -1,99 +1,45 @@
# Releasing
This document describes our release process, and contains the steps to be followed by an OpenZeppelin maintainer at the several stages of a release.
OpenZeppelin Contracts uses a fully automated release process that takes care of compiling, packaging, and publishing the library, all of which is carried out in a clean CI environment (GitHub Actions), implemented in the [`release-cycle`](.github/workflows/release-cycle.yml) workflow. This helps to reduce the potential for human error and inconsistencies, and ensures that the release process is consistent and reliable.
We release a new version of OpenZeppelin monthly. Release cycles are tracked in the [issue milestones](https://github.com/OpenZeppelin/openzeppelin-contracts/milestones).
## Changesets
Each release has at least one release candidate published first, intended for community review and any critical fixes that may come out of it. At the moment we leave 1 week between the first release candidate and the final release.
[Changesets](https://github.com/changesets/changesets/) are used as part of our release process for `CHANGELOG.md` management. Each change that is relevant for the codebase is expected to include a changeset.
Before starting make sure to verify the following items.
* Your local `master` branch is in sync with your `upstream` remote (it may have another name depending on your setup).
* Your repo is clean, particularly with no untracked files in the contracts and tests directories. Verify with `git clean -n`.
## Branching model
The release cycle happens on release branches called `release-vX.Y`. Each of these branches starts as a release candidate (rc) and is eventually promoted to final.
## Creating the release branch
A release branch can be updated with cherry-picked patches from `master`, or may sometimes be committed to directly in the case of old releases. These commits will lead to a new release candidate or a patch increment depending on the state of the release branch.
We'll refer to a release `vX.Y.Z`.
```mermaid
%%{init: {'gitGraph': {'mainBranchName': 'master'}} }%%
gitGraph
commit id: "Feature A"
commit id: "Feature B"
branch release-vX.Y
commit id: "Start release"
commit id: "Release vX.Y.0-rc.0"
checkout master
commit id: "Feature C"
commit id: "Fix A"
checkout release-vX.Y
cherry-pick id: "Fix A" tag: ""
commit id: "Release vX.Y.0-rc.1"
commit id: "Release vX.Y.0"
checkout master
merge release-vX.Y
commit id: "Feature D"
commit id: "Patch B"
checkout release-vX.Y
cherry-pick id: "Patch B" tag: ""
commit id: "Release vX.Y.1"
checkout master
merge release-vX.Y
commit id: "Feature E"
```
git checkout master
git checkout -b release-vX.Y.Z
```
## Creating a release candidate
Once in the release branch, change the version string in `package.json`, `package-lock.json` and `ethpm.json` to `X.Y.Z-rc.R`. (This will be `X.Y.Z-rc.1` for the first release candidate.) Commit these changes and tag the commit as `vX.Y.Z-rc.R`.
```
git add package.json package-lock.json ethpm.json
git commit -m "Release candidate vX.Y.Z-rc.R"
git tag -a vX.Y.Z-rc.R
git push upstream release-vX.Y.Z
git push upstream vX.Y.Z-rc.R
```
Draft the release notes in our [GitHub releases](https://github.com/OpenZeppelin/openzeppelin-contracts/releases). Make sure to mark it as a pre-release! Try to be consistent with our previous release notes in the title and format of the text. Release candidates don't need a detailed changelog, but make sure to include a link to GitHub's compare page.
Once the CI run for the new tag is green, publish on npm under the `next` tag. You should see the contracts compile automatically.
```
npm publish --tag next
```
Publish the release notes on GitHub and the forum, and ask our community manager to announce the release candidate on at least Twitter.
## Creating the final release
Make sure to have the latest changes from `upstream` in your local release branch.
```
git checkout release-vX.Y.Z
git pull upstream
```
Before starting the release process, make one final commit to CHANGELOG.md, including the date of the release.
Change the version string in `package.json`, `package-lock.json` and `ethpm.json` removing the "-rc.R" suffix. Commit these changes and tag the commit as `vX.Y.Z`.
```
git add package.json package-lock.json ethpm.json
git commit -m "Release vX.Y.Z"
git tag -a vX.Y.Z
git push upstream release-vX.Y.Z
git push upstream vX.Y.Z
```
Draft the release notes in GitHub releases. Try to be consistent with our previous release notes in the title and format of the text. Make sure to include a detailed changelog.
Once the CI run for the new tag is green, publish on npm. You should see the contracts compile automatically.
```
npm publish
```
Publish the release notes on GitHub and ask our community manager to announce the release!
Delete the `next` tag in the npm package as there is no longer a release candidate.
```
npm dist-tag rm --otp $2FA_CODE @openzeppelin/contracts next
```
## Merging the release branch
After the final release, the release branch should be merged back into `master`. This merge must not be squashed because it would lose the tagged release commit. Since the GitHub repo is set up to only allow squashed merges, the merge should be done locally and pushed.
Make sure to have the latest changes from `upstream` in your local release branch.
```
git checkout release-vX.Y.Z
git pull upstream
```
```
git checkout master
git merge --no-ff release-vX.Y.Z
git push upstream master
```
The release branch can then be deleted on GitHub.

43
SECURITY.md Normal file
View File

@ -0,0 +1,43 @@
# Security Policy
Security vulnerabilities should be disclosed to the project maintainers through [Immunefi], or alternatively by email to security@openzeppelin.com.
[Immunefi]: https://immunefi.com/bounty/openzeppelin
## Bug Bounty
Responsible disclosure of security vulnerabilities is rewarded through a bug bounty program on [Immunefi].
There is a bonus reward for issues introduced in release candidates that are reported before making it into a stable release. Learn more about release candidates at [`RELEASING.md`](./RELEASING.md).
## Security Patches
Security vulnerabilities will be patched as soon as responsibly possible, and published as an advisory on this repository (see [advisories]) and on the affected npm packages.
[advisories]: https://github.com/OpenZeppelin/openzeppelin-contracts/security/advisories
Projects that build on OpenZeppelin Contracts are encouraged to clearly state, in their source code and websites, how to be contacted about security issues in the event that a direct notification is considered necessary. We recommend including it in the NatSpec for the contract as `/// @custom:security-contact security@example.com`.
Additionally, we recommend installing the library through npm and setting up vulnerability alerts such as [Dependabot].
[Dependabot]: https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/about-supply-chain-security#what-is-dependabot
### Supported Versions
Security patches will be released for the latest minor of a given major release. For example, if an issue is found in versions >=4.6.0 and the latest is 4.8.0, the patch will be released only in version 4.8.1.
Only critical severity bug fixes will be backported to past major releases.
| Version | Critical security fixes | Other security fixes |
| ------- | ----------------------- | -------------------- |
| 5.x | :white_check_mark: | :white_check_mark: |
| 4.9 | :white_check_mark: | :x: |
| 3.4 | :white_check_mark: | :x: |
| 2.5 | :x: | :x: |
| < 2.0 | :x: | :x: |
Note as well that the Solidity language itself only guarantees security updates for the latest release.
## Legal
Blockchain is a nascent technology and carries a high level of risk and uncertainty. OpenZeppelin makes certain software available under open source licenses, which disclaim all warranties in relation to the project and which limits the liability of OpenZeppelin. Subject to any particular licensing terms, your use of the project is governed by the terms found at [www.openzeppelin.com/tos](https://www.openzeppelin.com/tos) (the "Terms"). As set out in the Terms, you are solely responsible for any use of the project and you assume all risks associated with any such use. This Security Policy in no way evidences or represents an ongoing duty by any contributor, including OpenZeppelin, to correct any issues or vulnerabilities or alert you to all or any of the risks of utilizing the project.

View File

@ -1,5 +1,7 @@
# OpenZeppelin Audit
NOTE ON 2021-07-19: This report makes reference to Zeppelin, OpenZeppelin, OpenZeppelin Contracts, the OpenZeppelin team, and OpenZeppelin library. Many of these things have since been renamed and know that this audit applies to what is currently called the OpenZeppelin Contracts which are maintained by the OpenZeppelin Contracts Community.
March, 2017
Authored by Dennis Peterson and Peter Vessenes
@ -18,7 +20,7 @@ The git commit hash we evaluated is:
# Disclaimer
The audit makes no statements or warrantees about utility of the code, safety of the code, suitability of the business model, regulatory regime for the business model, or any other statements about fitness of the contracts to purpose, or their bugfree status. The audit documentation is for discussion purposes only.
The audit makes no statements or warranties about utility of the code, safety of the code, suitability of the business model, regulatory regime for the business model, or any other statements about fitness of the contracts to purpose, or their bug free status. The audit documentation is for discussion purposes only.
# Executive Summary
@ -88,7 +90,7 @@ We are still working through the confirmation protocol in `Shareable.sol`, but w
This bug has a number of causes that need to be addressed:
1. `resetSpentToday` and `confirm` together do not limit the days on which the function can be called or (it appears) the number of times it can be called.
1. Once a call has been confirmed and `execute`d it appears that it can be re-executed. This is not good.
1. Once a call has been confirmed and executed it appears that it can be re-executed. This is not good.
3. `confirmandCheck` doesn't seem to have logic about whether or not the function in question has been called.
4. Even if it did, `revoke` would need updates and logic to deal with revocation requests after a function call had been completed.
@ -107,7 +109,7 @@ It would be nice to see how many payments are pending. This would imply a bit of
## Shareable Contract
We do not believe the `Shareable.sol` contract is ready for primetime. It is missing functions, and as written may be vulnerable to a reordering attack -- an attack in which a miner or other party "racing" with a smart contract participant inserts their own information into a list or mapping.
We do not believe the `Shareable.sol` contract is ready for prime time. It is missing functions, and as written may be vulnerable to a reordering attack -- an attack in which a miner or other party "racing" with a smart contract participant inserts their own information into a list or mapping.
The confirmation and revocation code needs to be looked over with a very careful eye imagining extraordinarily bad behavior by shared owners before this contract can be called safe.
@ -131,7 +133,7 @@ I presume that the goal of this contract is to allow and annotate a migration to
We like these pauses! Note that these allow significant griefing potential by owners, and that this might not be obvious to participants in smart contracts using the OpenZeppelin framework. We would recommend that additional sample logic be added to for instance the TokenContract showing safer use of the pause and resume functions. In particular, we would recommend a timelock after which anyone could unpause the contract.
The modifers use the pattern `if(bool){_;}`. This is fine for functions that return false upon failure, but could be problematic for functions expected to throw upon failure. See our comments above on standardizing on `throw` or `return(false)`.
The modifiers use the pattern `if(bool){_;}`. This is fine for functions that return false upon failure, but could be problematic for functions expected to throw upon failure. See our comments above on standardizing on `throw` or `return(false)`.
## Ownership
@ -157,7 +159,7 @@ Allows owner to set a public string of contract information. No issues.
This needs some work. Doesn't check if `_required <= len(_owners)` for instance, that would be a bummer. What if _required were like `MAX - 1`?
I have a general concern about the difference between `owners`, `_owners`, and `owner` in `Ownable.sol`. I recommend "Owners" be renamed. In general we do not recomment single character differences in variable names, although a preceding underscore is not uncommon in Solidity code.
I have a general concern about the difference between `owners`, `_owners`, and `owner` in `Ownable.sol`. I recommend "Owners" be renamed. In general we do not recommend single character differences in variable names, although a preceding underscore is not uncommon in Solidity code.
Line 34: "this contract only has six types of events"...actually only two.
@ -222,7 +224,7 @@ Transfer() and transferFrom() use SafeMath functions, which will cause them to t
### SimpleToken
Sample instantiation of StandardToken. Note that in this sample, decimals is 18 and supply only 10,000, so the supply is a small fraction of a single nominal token.
Sample instantiation of StandardToken. Note that in this sample, decimals is 18 and supply is only 10,000, so the supply is a small fraction of a single nominal token.
### CrowdsaleToken

Binary file not shown.

BIN
audits/2022-10-ERC4626.pdf Normal file

Binary file not shown.

BIN
audits/2023-05-v4.9.pdf Normal file

Binary file not shown.

BIN
audits/2023-10-v5.0.pdf Normal file

Binary file not shown.

BIN
audits/2024-10-v5.1.pdf Normal file

Binary file not shown.

BIN
audits/2024-12-v5.2.pdf Normal file

Binary file not shown.

BIN
audits/2025-04-v5.3.pdf Normal file

Binary file not shown.

20
audits/README.md Normal file
View File

@ -0,0 +1,20 @@
# Audits
| Date | Version | Commit | Auditor | Scope | Links |
| ------------- | ------- | -------------------------------------------------------------------------------- | ------------ | -------------------- | ----------------------------------------------------------- |
| April 2025 | v5.3.0 | [`d4b2e98`](https://github.com/openzeppelin/openzeppelin-contracts/tree/d4b2e98) | OpenZeppelin | v5.3 Changes | [🔗](./2025-04-v5.3.pdf) |
| December 2024 | v5.2.0 | [`98d28f9`](https://github.com/openzeppelin/openzeppelin-contracts/tree/98d28f9) | OpenZeppelin | v5.2 Changes | [🔗](./2024-12-v5.2.pdf) |
| October 2024 | v5.1.0 | [`aba9ff6`](https://github.com/openzeppelin/openzeppelin-contracts/tree/aba9ff6) | OpenZeppelin | v5.1 Changes | [🔗](./2024-10-v5.1.pdf) |
| October 2023 | v5.0.0 | [`b5a3e69`](https://github.com/openzeppelin/openzeppelin-contracts/tree/b5a3e69) | OpenZeppelin | v5.0 Changes | [🔗](./2023-10-v5.0.pdf) |
| May 2023 | v4.9.0 | [`91df66c`](https://github.com/openzeppelin/openzeppelin-contracts/tree/91df66c) | OpenZeppelin | v4.9 Changes | [🔗](./2023-05-v4.9.pdf) |
| October 2022 | v4.8.0 | [`14f98db`](https://github.com/openzeppelin/openzeppelin-contracts/tree/14f98db) | OpenZeppelin | ERC4626, Checkpoints | [🔗](./2022-10-ERC4626.pdf) [🔗](./2022-10-Checkpoints.pdf) |
| October 2018 | v2.0.0 | [`dac5bcc`](https://github.com/openzeppelin/openzeppelin-contracts/tree/dac5bcc) | LevelK | Everything | [🔗](./2018-10.pdf) |
| March 2017 | v1.0.4 | [`9c5975a`](https://github.com/openzeppelin/openzeppelin-contracts/tree/9c5975a) | New Alchemy | Everything | [🔗](./2017-03.md) |
# Formal Verification
| Date | Version | Commit | Tool | Scope | Links |
| ------------ | ------- | --------- | ------- | -------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------ |
| May 2022 | v4.7.0 | `109778c` | Certora | Initializable, GovernorPreventLateQuorum, ERC1155Burnable, ERC1155Pausable, ERC1155Supply, ERC1155Holder, ERC1155Receiver | [🔗](../certora/reports/2022-05.pdf) |
| March 2022 | v4.4.0 | `4088540` | Certora | ERC20Votes, ERC20FlashMint, ERC20Wrapper, TimelockController, ERC721Votes, Votes, AccessControl, ERC1155 | [🔗](../certora/reports/2022-03.pdf) |
| October 2021 | v4.4.0 | `4088540` | Certora | Governor, GovernorCountingSimple, GovernorProposalThreshold, GovernorTimelockControl, GovernorVotes, GovernorVotesQuorumFraction | [🔗](../certora/reports/2021-10.pdf) |

1
certora/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
patched

54
certora/Makefile Normal file
View File

@ -0,0 +1,54 @@
default: help
SRC := ../contracts
DST := patched
DIFF := diff
SRCS := $(shell find $(SRC) -type f)
DSTS := $(shell find $(DST) -type f)
DIFFS := $(shell find $(DIFF) -type f)
###############################################################################
# Apply all patches in the $DIFF folder to the $DST folder
apply: $(DST) $(patsubst $(DIFF)/%.patch,$(DST)/%,$(subst _,/,$(DIFFS)))
# Reset the $DST folder
$(DST): FORCE
@rm -rf $@
@cp -r $(SRC) $@
# Update a solidity file in the $DST directory using the corresponding patch
$(DST)/%.sol: FORCE | $(DST)
@echo Applying patch to $@
@patch -p0 -d $(DST) < $(patsubst $(DST)_%,$(DIFF)/%.patch,$(subst /,_,$@))
###############################################################################
# Record all difference between $SRC and $DST in patches
record: $(DIFF) $(patsubst %,$(DIFF)/%.patch,$(subst /,_,$(subst $(SRC)/,,$(SRCS)) $(subst $(DST)/,,$(DSTS))))
# Create the $DIFF folder
$(DIFF): FORCE
@rm -rf $@
@mkdir $@
# Create the patch file by comparing the source and the destination
$(DIFF)/%.patch: FORCE | $(DIFF)
@echo Generating patch $@
@diff -ruN \
$(patsubst $(DIFF)/%.patch,$(SRC)/%,$(subst _,/,$@)) \
$(patsubst $(DIFF)/%.patch,$(DST)/%,$(subst _,/,$@)) \
| sed 's+$(SRC)/++g' \
| sed 's+$(DST)/++g' \
> $@
@[ -s $@ ] || rm $@
###############################################################################
help:
@echo "usage:"
@echo " make apply: create $(DST) directory by applying the patches to $(SRC)"
@echo " make record: record the patches capturing the differences between $(SRC) and $(DST)"
@echo " make clean: remove all generated files (those ignored by git)"
clean:
git clean -fdX
FORCE: ;

60
certora/README.md Normal file
View File

@ -0,0 +1,60 @@
# Running the certora verification tool
These instructions detail the process for running Certora Verification Tool on OpenZeppelin Contracts.
Documentation for CVT and the specification language is available [here](https://certora.atlassian.net/wiki/spaces/CPD/overview).
## Prerequisites
Follow the [Certora installation guide](https://docs.certora.com/en/latest/docs/user-guide/getting-started/install.html) in order to get the Certora Prover Package and the `solc` executable folder in your path.
> **Note**
> An API Key is required for local testing. Although the prover will run on a GitHub Actions' CI environment on selected Pull Requests.
## Running the verification
The Certora Verification Tool proves specs for contracts, which are defined by the `./specs.json` file along with their pre-configured options.
The verification script `./run.js` is used to submit verification jobs to the Certora Verification service.
You can run it from the root of the repository with the following command:
```bash
node certora/run.js [[CONTRACT_NAME:]SPEC_NAME] [OPTIONS...]
```
Where:
- `CONTRACT_NAME` matches the `contract` key in the `./spec.json` file and may be empty. It will run all matching contracts if not provided.
- `SPEC_NAME` refers to a `spec` key from the `./specs.json` file. It will run every spec if not provided.
- `OPTIONS` extend the [Certora Prover CLI options](https://docs.certora.com/en/latest/docs/prover/cli/options.html#certora-prover-cli-options) and will respect the preconfigured options in the `specs.json` file.
> **Note**
> A single spec may be configured to run for multiple contracts, whereas a single contract may run multiple specs.
Example usage:
```bash
node certora/run.js AccessControl # Run the AccessControl spec against every contract implementing it
```
## Adapting to changes in the contracts
Some of our rules require the code to be simplified in various ways. Our primary tool for performing these simplifications is to run verification on a contract that extends the original contracts and overrides some of the methods. These "harness" contracts can be found in the `certora/harness` directory.
This pattern does require some modifications to the original code: some methods need to be made virtual or public, for example. These changes are handled by applying a patch
to the code before verification by running:
```bash
make -C certora apply
```
Before running the `certora/run.js` script, it's required to apply the corresponding patches to the `contracts` directory, placing the output in the `certora/patched` directory. Then, the contracts are verified by running the verification for the `certora/patched` directory.
If the original contracts change, it is possible to create a conflict with the patch. In this case, the verify scripts will report an error message and output rejected changes in the `patched` directory. After merging the changes, run `make record` in the `certora` directory; this will regenerate the patch file, which can then be checked into git.
For more information about the `make` scripts available, run:
```bash
make -C certora help
```

View File

@ -0,0 +1,97 @@
--- access/manager/AccessManager.sol 2023-10-05 12:17:09.694051809 -0300
+++ access/manager/AccessManager.sol 2023-10-05 12:26:18.498688718 -0300
@@ -6,7 +6,6 @@
import {IAccessManaged} from "./IAccessManaged.sol";
import {Address} from "../../utils/Address.sol";
import {Context} from "../../utils/Context.sol";
-import {Multicall} from "../../utils/Multicall.sol";
import {Math} from "../../utils/math/Math.sol";
import {Time} from "../../utils/types/Time.sol";
@@ -57,7 +56,8 @@
* mindful of the danger associated with functions such as {{Ownable-renounceOwnership}} or
* {{AccessControl-renounceRole}}.
*/
-contract AccessManager is Context, Multicall, IAccessManager {
+// NOTE: The FV version of this contract doesn't include Multicall because CVL HAVOCs on any `delegatecall`.
+contract AccessManager is Context, IAccessManager {
using Time for *;
// Structure that stores the details for a target contract.
@@ -105,7 +105,7 @@
// Used to identify operations that are currently being executed via {execute}.
// This should be transient storage when supported by the EVM.
- bytes32 private _executionId;
+ bytes32 internal _executionId; // private → internal for FV
/**
* @dev Check that the caller is authorized to perform the operation, following the restrictions encoded in
@@ -253,6 +253,11 @@
_setGrantDelay(roleId, newDelay);
}
+ // Exposed for FV
+ function _getTargetAdminDelayFull(address target) internal view virtual returns (uint32, uint32, uint48) {
+ return _targets[target].adminDelay.getFull();
+ }
+
/**
* @dev Internal version of {grantRole} without access control. Returns true if the role was newly granted.
*
@@ -287,6 +292,11 @@
return newMember;
}
+ // Exposed for FV
+ function _getRoleGrantDelayFull(uint64 roleId) internal view virtual returns (uint32, uint32, uint48) {
+ return _roles[roleId].grantDelay.getFull();
+ }
+
/**
* @dev Internal version of {revokeRole} without access control. This logic is also used by {renounceRole}.
* Returns true if the role was previously granted.
@@ -586,7 +596,7 @@
/**
* @dev Check if the current call is authorized according to admin logic.
*/
- function _checkAuthorized() private {
+ function _checkAuthorized() internal virtual { // private → internal virtual for FV
address caller = _msgSender();
(bool immediate, uint32 delay) = _canCallSelf(caller, _msgData());
if (!immediate) {
@@ -609,7 +619,7 @@
*/
function _getAdminRestrictions(
bytes calldata data
- ) private view returns (bool adminRestricted, uint64 roleAdminId, uint32 executionDelay) {
+ ) internal view returns (bool adminRestricted, uint64 roleAdminId, uint32 executionDelay) { // private → internal for FV
if (data.length < 4) {
return (false, 0, 0);
}
@@ -662,7 +672,7 @@
address caller,
address target,
bytes calldata data
- ) private view returns (bool immediate, uint32 delay) {
+ ) internal view returns (bool immediate, uint32 delay) { // private → internal for FV
if (target == address(this)) {
return _canCallSelf(caller, data);
} else {
@@ -716,14 +726,14 @@
/**
* @dev Extracts the selector from calldata. Panics if data is not at least 4 bytes
*/
- function _checkSelector(bytes calldata data) private pure returns (bytes4) {
+ function _checkSelector(bytes calldata data) internal pure returns (bytes4) { // private → internal for FV
return bytes4(data[0:4]);
}
/**
* @dev Hashing function for execute protection
*/
- function _hashExecutionId(address target, bytes4 selector) private pure returns (bytes32) {
+ function _hashExecutionId(address target, bytes4 selector) internal pure returns (bytes32) { // private → internal for FV
return keccak256(abi.encode(target, selector));
}
}

View File

@ -0,0 +1,46 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import {AccessControlDefaultAdminRules} from "../patched/access/extensions/AccessControlDefaultAdminRules.sol";
contract AccessControlDefaultAdminRulesHarness is AccessControlDefaultAdminRules {
uint48 private _delayIncreaseWait;
constructor(
uint48 initialDelay,
address initialDefaultAdmin,
uint48 delayIncreaseWait
) AccessControlDefaultAdminRules(initialDelay, initialDefaultAdmin) {
_delayIncreaseWait = delayIncreaseWait;
}
// FV
function pendingDefaultAdmin_() external view returns (address) {
(address newAdmin, ) = pendingDefaultAdmin();
return newAdmin;
}
function pendingDefaultAdminSchedule_() external view returns (uint48) {
(, uint48 schedule) = pendingDefaultAdmin();
return schedule;
}
function pendingDelay_() external view returns (uint48) {
(uint48 newDelay, ) = pendingDefaultAdminDelay();
return newDelay;
}
function pendingDelaySchedule_() external view returns (uint48) {
(, uint48 schedule) = pendingDefaultAdminDelay();
return schedule;
}
function delayChangeWait_(uint48 newDelay) external view returns (uint48) {
return _delayChangeWait(newDelay);
}
// Overrides
function defaultAdminDelayIncreaseWait() public view override returns (uint48) {
return _delayIncreaseWait;
}
}

View File

@ -0,0 +1,6 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import {AccessControl} from "../patched/access/AccessControl.sol";
contract AccessControlHarness is AccessControl {}

View File

@ -0,0 +1,36 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import "../patched/access/manager/IAccessManager.sol";
import "../patched/access/manager/AccessManaged.sol";
contract AccessManagedHarness is AccessManaged {
bytes internal SOME_FUNCTION_CALLDATA = abi.encodeCall(this.someFunction, ());
constructor(address initialAuthority) AccessManaged(initialAuthority) {}
function someFunction() public restricted() {
// Sanity for FV: the msg.data when calling this function should be the same as the data used when checking
// the schedule. This is a reformulation of `msg.data == SOME_FUNCTION_CALLDATA` that focuses on the operation
// hash for this call.
require(
IAccessManager(authority()).hashOperation(_msgSender(), address(this), msg.data)
==
IAccessManager(authority()).hashOperation(_msgSender(), address(this), SOME_FUNCTION_CALLDATA)
);
}
function authority_canCall_immediate(address caller) public view returns (bool result) {
(result,) = AuthorityUtils.canCallWithDelay(authority(), caller, address(this), this.someFunction.selector);
}
function authority_canCall_delay(address caller) public view returns (uint32 result) {
(,result) = AuthorityUtils.canCallWithDelay(authority(), caller, address(this), this.someFunction.selector);
}
function authority_getSchedule(address caller) public view returns (uint48) {
IAccessManager manager = IAccessManager(authority());
return manager.getSchedule(manager.hashOperation(caller, address(this), SOME_FUNCTION_CALLDATA));
}
}

View File

@ -0,0 +1,116 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import "../patched/access/manager/AccessManager.sol";
contract AccessManagerHarness is AccessManager {
// override with a storage slot that can basically take any value.
uint32 private _minSetback;
constructor(address initialAdmin) AccessManager(initialAdmin) {}
// FV
function minSetback() public view override returns (uint32) {
return _minSetback;
}
function canCall_immediate(address caller, address target, bytes4 selector) external view returns (bool result) {
(result,) = canCall(caller, target, selector);
}
function canCall_delay(address caller, address target, bytes4 selector) external view returns (uint32 result) {
(,result) = canCall(caller, target, selector);
}
function canCallExtended(address caller, address target, bytes calldata data) external view returns (bool, uint32) {
return _canCallExtended(caller, target, data);
}
function canCallExtended_immediate(address caller, address target, bytes calldata data) external view returns (bool result) {
(result,) = _canCallExtended(caller, target, data);
}
function canCallExtended_delay(address caller, address target, bytes calldata data) external view returns (uint32 result) {
(,result) = _canCallExtended(caller, target, data);
}
function getAdminRestrictions_restricted(bytes calldata data) external view returns (bool result) {
(result,,) = _getAdminRestrictions(data);
}
function getAdminRestrictions_roleAdminId(bytes calldata data) external view returns (uint64 result) {
(,result,) = _getAdminRestrictions(data);
}
function getAdminRestrictions_executionDelay(bytes calldata data) external view returns (uint32 result) {
(,,result) = _getAdminRestrictions(data);
}
function hasRole_isMember(uint64 roleId, address account) external view returns (bool result) {
(result,) = hasRole(roleId, account);
}
function hasRole_executionDelay(uint64 roleId, address account) external view returns (uint32 result) {
(,result) = hasRole(roleId, account);
}
function getAccess_since(uint64 roleId, address account) external view returns (uint48 result) {
(result,,,) = getAccess(roleId, account);
}
function getAccess_currentDelay(uint64 roleId, address account) external view returns (uint32 result) {
(,result,,) = getAccess(roleId, account);
}
function getAccess_pendingDelay(uint64 roleId, address account) external view returns (uint32 result) {
(,,result,) = getAccess(roleId, account);
}
function getAccess_effect(uint64 roleId, address account) external view returns (uint48 result) {
(,,,result) = getAccess(roleId, account);
}
function getTargetAdminDelay_after(address target) public view virtual returns (uint32 result) {
(,result,) = _getTargetAdminDelayFull(target);
}
function getTargetAdminDelay_effect(address target) public view virtual returns (uint48 result) {
(,,result) = _getTargetAdminDelayFull(target);
}
function getRoleGrantDelay_after(uint64 roleId) public view virtual returns (uint32 result) {
(,result,) = _getRoleGrantDelayFull(roleId);
}
function getRoleGrantDelay_effect(uint64 roleId) public view virtual returns (uint48 result) {
(,,result) = _getRoleGrantDelayFull(roleId);
}
function hashExecutionId(address target, bytes4 selector) external pure returns (bytes32) {
return _hashExecutionId(target, selector);
}
function executionId() external view returns (bytes32) {
return _executionId;
}
// Pad with zeros (and don't revert) if data is too short.
function getSelector(bytes calldata data) external pure returns (bytes4) {
return bytes4(data);
}
function getFirstArgumentAsAddress(bytes calldata data) external pure returns (address) {
return abi.decode(data[0x04:0x24], (address));
}
function getFirstArgumentAsUint64(bytes calldata data) external pure returns (uint64) {
return abi.decode(data[0x04:0x24], (uint64));
}
function _checkAuthorized() internal override {
// We need this hack otherwise certora will assume _checkSelector(_msgData()) can return anything :/
require(msg.sig == _checkSelector(_msgData()));
super._checkAuthorized();
}
}

View File

@ -0,0 +1,58 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import {DoubleEndedQueue} from "../patched/utils/structs/DoubleEndedQueue.sol";
contract DoubleEndedQueueHarness {
using DoubleEndedQueue for DoubleEndedQueue.Bytes32Deque;
DoubleEndedQueue.Bytes32Deque private _deque;
function pushFront(bytes32 value) external {
_deque.pushFront(value);
}
function pushBack(bytes32 value) external {
_deque.pushBack(value);
}
function popFront() external returns (bytes32 value) {
return _deque.popFront();
}
function popBack() external returns (bytes32 value) {
return _deque.popBack();
}
function clear() external {
_deque.clear();
}
function begin() external view returns (uint128) {
return _deque._begin;
}
function end() external view returns (uint128) {
return _deque._end;
}
function length() external view returns (uint256) {
return _deque.length();
}
function empty() external view returns (bool) {
return _deque.empty();
}
function front() external view returns (bytes32 value) {
return _deque.front();
}
function back() external view returns (bytes32 value) {
return _deque.back();
}
function at_(uint256 index) external view returns (bytes32 value) {
return _deque.at(index);
}
}

View File

@ -0,0 +1,36 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import "../patched/token/ERC20/ERC20.sol";
import "../patched/token/ERC20/extensions/ERC20Permit.sol";
import "../patched/token/ERC20/extensions/ERC20FlashMint.sol";
contract ERC20FlashMintHarness is ERC20, ERC20Permit, ERC20FlashMint {
uint256 someFee;
address someFeeReceiver;
constructor(string memory name, string memory symbol) ERC20(name, symbol) ERC20Permit(name) {}
function mint(address account, uint256 amount) external {
_mint(account, amount);
}
function burn(address account, uint256 amount) external {
_burn(account, amount);
}
// public accessor
function flashFeeReceiver() public view returns (address) {
return someFeeReceiver;
}
// internal hook
function _flashFee(address, uint256) internal view override returns (uint256) {
return someFee;
}
function _flashFeeReceiver() internal view override returns (address) {
return someFeeReceiver;
}
}

View File

@ -0,0 +1,16 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import {ERC20Permit, ERC20} from "../patched/token/ERC20/extensions/ERC20Permit.sol";
contract ERC20PermitHarness is ERC20Permit {
constructor(string memory name, string memory symbol) ERC20(name, symbol) ERC20Permit(name) {}
function mint(address account, uint256 amount) external {
_mint(account, amount);
}
function burn(address account, uint256 amount) external {
_burn(account, amount);
}
}

View File

@ -0,0 +1,34 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import {ERC20Permit} from "../patched/token/ERC20/extensions/ERC20Permit.sol";
import {ERC20Wrapper, IERC20, ERC20} from "../patched/token/ERC20/extensions/ERC20Wrapper.sol";
contract ERC20WrapperHarness is ERC20Permit, ERC20Wrapper {
constructor(
IERC20 _underlying,
string memory _name,
string memory _symbol
) ERC20(_name, _symbol) ERC20Permit(_name) ERC20Wrapper(_underlying) {}
function underlyingTotalSupply() public view returns (uint256) {
return underlying().totalSupply();
}
function underlyingBalanceOf(address account) public view returns (uint256) {
return underlying().balanceOf(account);
}
function underlyingAllowanceToThis(address account) public view returns (uint256) {
return underlying().allowance(account, address(this));
}
function recover(address account) public returns (uint256) {
return _recover(account);
}
function decimals() public view override(ERC20Wrapper, ERC20) returns (uint8) {
return super.decimals();
}
}

View File

@ -0,0 +1,13 @@
// SPDX-License-Identifier: MIT
import {IERC3156FlashBorrower} from "../patched/interfaces/IERC3156FlashBorrower.sol";
pragma solidity ^0.8.20;
contract ERC3156FlashBorrowerHarness is IERC3156FlashBorrower {
bytes32 somethingToReturn;
function onFlashLoan(address, address, uint256, uint256, bytes calldata) external view override returns (bytes32) {
return somethingToReturn;
}
}

View File

@ -0,0 +1,33 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import {ERC721} from "../patched/token/ERC721/ERC721.sol";
contract ERC721Harness is ERC721 {
constructor(string memory name, string memory symbol) ERC721(name, symbol) {}
function mint(address account, uint256 tokenId) external {
_mint(account, tokenId);
}
function safeMint(address to, uint256 tokenId) external {
_safeMint(to, tokenId);
}
function safeMint(address to, uint256 tokenId, bytes memory data) external {
_safeMint(to, tokenId, data);
}
function burn(uint256 tokenId) external {
_burn(tokenId);
}
function unsafeOwnerOf(uint256 tokenId) external view returns (address) {
return _ownerOf(tokenId);
}
function unsafeGetApproved(uint256 tokenId) external view returns (address) {
return _getApproved(tokenId);
}
}

View File

@ -0,0 +1,11 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import "../patched/interfaces/IERC721Receiver.sol";
contract ERC721ReceiverHarness is IERC721Receiver {
function onERC721Received(address, address, uint256, bytes calldata) external pure returns (bytes4) {
return this.onERC721Received.selector;
}
}

View File

@ -0,0 +1,55 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import {EnumerableMap} from "../patched/utils/structs/EnumerableMap.sol";
contract EnumerableMapHarness {
using EnumerableMap for EnumerableMap.Bytes32ToBytes32Map;
EnumerableMap.Bytes32ToBytes32Map private _map;
function set(bytes32 key, bytes32 value) public returns (bool) {
return _map.set(key, value);
}
function remove(bytes32 key) public returns (bool) {
return _map.remove(key);
}
function contains(bytes32 key) public view returns (bool) {
return _map.contains(key);
}
function length() public view returns (uint256) {
return _map.length();
}
function key_at(uint256 index) public view returns (bytes32) {
(bytes32 key,) = _map.at(index);
return key;
}
function value_at(uint256 index) public view returns (bytes32) {
(,bytes32 value) = _map.at(index);
return value;
}
function tryGet_contains(bytes32 key) public view returns (bool) {
(bool contained,) = _map.tryGet(key);
return contained;
}
function tryGet_value(bytes32 key) public view returns (bytes32) {
(,bytes32 value) = _map.tryGet(key);
return value;
}
function get(bytes32 key) public view returns (bytes32) {
return _map.get(key);
}
function _positionOf(bytes32 key) public view returns (uint256) {
return _map._keys._inner._positions[key];
}
}

View File

@ -0,0 +1,35 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import {EnumerableSet} from "../patched/utils/structs/EnumerableSet.sol";
contract EnumerableSetHarness {
using EnumerableSet for EnumerableSet.Bytes32Set;
EnumerableSet.Bytes32Set private _set;
function add(bytes32 value) public returns (bool) {
return _set.add(value);
}
function remove(bytes32 value) public returns (bool) {
return _set.remove(value);
}
function contains(bytes32 value) public view returns (bool) {
return _set.contains(value);
}
function length() public view returns (uint256) {
return _set.length();
}
function at_(uint256 index) public view returns (bytes32) {
return _set.at(index);
}
function _positionOf(bytes32 value) public view returns (uint256) {
return _set._inner._positions[value];
}
}

View File

@ -0,0 +1,23 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import {Initializable} from "../patched/proxy/utils/Initializable.sol";
contract InitializableHarness is Initializable {
function initialize() public initializer {}
function reinitialize(uint64 n) public reinitializer(n) {}
function disable() public { _disableInitializers(); }
function nested_init_init() public initializer { initialize(); }
function nested_init_reinit(uint64 m) public initializer { reinitialize(m); }
function nested_reinit_init(uint64 n) public reinitializer(n) { initialize(); }
function nested_reinit_reinit(uint64 n, uint64 m) public reinitializer(n) { reinitialize(m); }
function version() public view returns (uint64) {
return _getInitializedVersion();
}
function initializing() public view returns (bool) {
return _isInitializing();
}
}

View File

@ -0,0 +1,14 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import {Nonces} from "../patched/utils/Nonces.sol";
contract NoncesHarness is Nonces {
function useNonce(address account) external returns (uint256) {
return _useNonce(account);
}
function useCheckedNonce(address account, uint256 nonce) external {
_useCheckedNonce(account, nonce);
}
}

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