Commit Graph

1533 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
fd07cc6290 Extend Governor with parameterized votes (#3043)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2022-03-01 17:55:20 -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
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
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
afb20119b3 Release v4.5 2022-02-09 18:16:53 -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
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
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
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
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
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
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
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