GNSPS / solidity-bytes-utils

Utility Solidity library composed of basic operations for tightly packed bytes arrays
The Unlicense
514 stars 109 forks source link

Update to Solidity 0.8.0 #45

Closed sebastianst closed 3 years ago

sebastianst commented 3 years ago

Is there an update to Solidity 0.8.0 in progress?

GNSPS commented 3 years ago

Hey @sebastianst!

Unless there were some hardcore syntax changes in Solidity this library should work all the same! 🙌 😄

Let me know if you think there are.

sebastianst commented 3 years ago

It could be that they still just work (didn't check yet) but for new users, like me, this is not immediately clear because all Solidity files use pragma solidity >=0.5.0 <0.7.0; and the last commit was on 1/7. So it looks like this is an open issue to be checked, since the CI also doesn't check against Solidity 0.8.0. At least it means that I can't just install this repo as a dependency, but have to manually change the pragma statement in the files I import.

Maybe some things could, or should, also be changed, due to Solidity 0.8.0 now checking for integer overflows implicitly. Maybe some checks are now redundant, or, on the other hand, maybe some calculations should be improved by enclosing them in unchecked { } to avoid duplicate checks.

GNSPS commented 3 years ago

@sebastianst sorry for the delay!

You're entirely right. I've been buried in work but I will update to v0.8.x ASAP.

If you have a PR to send feel free to do so!

I'd also like to benchmark the v0.8 integer overflow gas costs vs the explicit ones in the code right now.

sebastianst commented 3 years ago

Thanks! I am also curious about the change in gas usage by those implicit checks :)

GNSPS commented 3 years ago

@sebastianst, support was added in #46 🎉 , just unsure about the gas usage. 😬

I really don't have any more time to devote these days, but would support any profiling efforts to put in the README if someone deems that important! 😊 🙏