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