It's ok even if the bytes are out-of-bounds in the signature. Either subsequent mloads will go out-of-gas, or the signature verification will just fail. If there is ever a case where the byte offsets can be manipulated to make the verification pass, it means that the relevant information to make the verification pass is already publicly available on-chain -- anyone can submit a signature that will make the verification pass, even if we have all the bounds checks in place.
So what about gas-griefing? Well, the factory address is dynamic anyways...
Letting this marinate for a while.
Checklist
Ensure you completed all of the steps below before submitting your pull request:
[x] Ran forge fmt?
[x] Ran forge snapshot?
[x] Ran forge test?
Pull requests with an incomplete checklist will be thrown out.
Description
@Agusx1211
Closes #940.
On optimization:
It's ok even if the bytes are out-of-bounds in the
signature
. Either subsequentmload
s will go out-of-gas, or the signature verification will just fail. If there is ever a case where the byte offsets can be manipulated to make the verification pass, it means that the relevant information to make the verification pass is already publicly available on-chain -- anyone can submit a signature that will make the verification pass, even if we have all the bounds checks in place.So what about gas-griefing? Well, the factory address is dynamic anyways...
Letting this marinate for a while.
Checklist
Ensure you completed all of the steps below before submitting your pull request:
forge fmt
?forge snapshot
?forge test
?Pull requests with an incomplete checklist will be thrown out.