Commit Graph

112 Commits

Author SHA1 Message Date
8f0d4d4a41 Fix fuzzing coverage (#3716) 2022-09-22 23:13:09 +02:00
7a14f6c595 Make ERC721Votes no longer a Draft (#3699) 2022-09-17 18:03:03 +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
171fa40bc8 ERC721 extension for efficient batch minting (#3311)
Co-authored-by: Francisco <frangio.1@gmail.com>
2022-09-05 23:09:30 +02:00
e09ccd1449 Optimize votes lookups for recent checkpoints (#3673) 2022-09-04 22:48:26 +02: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
71aaca2d9d Extend Checkpoints with new sizes and lookup mechanisms (#3589) 2022-08-30 21:32:12 +02: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
d693d89d99 Fix ECDSA signature malleability (#3610) 2022-08-10 15:40:03 -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
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
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
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
2894059775 Support memory arrays in MerkleTree multiproof (#3493) 2022-06-27 13:15:52 +02:00
jjz
3ac4add548 Add sqrt for math (#3242) 2022-06-07 08:26:45 +02: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
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
5e00787199 ERC4626 (#3171) 2022-06-02 10:03:03 +02: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
2b0b0bb186 Fix merkle multiProof for single leaf tree (#3446) 2022-06-01 20:21:56 +00:00
f8157ac854 Add multiProofVerify (#3276) 2022-05-25 09:39:15 +02: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
5772512058 Add address to string conversion (#3403)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2022-05-13 18:46:26 +00:00
d4e6236b2b Fix deprecated expectEvent.inLogs #3332 (#3333) 2022-04-23 10:20:55 -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
faf5820f03 Fix many spelling errors (#3274) 2022-03-22 18:16:20 -03: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
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
fd07cc6290 Extend Governor with parameterized votes (#3043)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2022-03-01 17:55:20 -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
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
783ac759a9 upgrade solidity-coverage to 0.7.18 to support ERC165 coverage (#3117) 2022-01-18 00:05:17 -03: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
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
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
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
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
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
7006e4e3e6 Remove invalid parameters in MerkleProof tests (#2912) 2021-10-14 22:02:49 -03: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
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
7279273ebb Fix inconsistencies in contract/test hierachy (#2814)
* Fix inconsistencies in contract/test hierachy

* changelog entry
2021-08-06 13:43:23 +02:00
4b152bd8ce Improve Governor (#2794)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
2021-08-04 18:29:13 -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