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