Implement address aliasing helpers in go. Fuzz them to make
sure that roundtrip aliasing is reliable. Add foundry fuzz
tests that are used to generate test vectors.
Note that the JS implementation does not take into account
the modular arithmetic, I do not believe that it is used anywhere
important currently.
See:
https://github.com/ethereum-optimism/optimism/blob/develop/packages/core-utils/src/optimism/alias.ts
Perhaps we should move our differential fuzzing to use go
instead of typescript or along with the typescript because
most utilities that we wrote in JS are now also written in go.
Description
Implement address aliasing helpers in go. Fuzz them to make sure that roundtrip aliasing is reliable. Add foundry fuzz tests that are used to generate test vectors.
Note that the JS implementation does not take into account the modular arithmetic, I do not believe that it is used anywhere important currently.
See:
https://github.com/ethereum-optimism/optimism/blob/develop/packages/core-utils/src/optimism/alias.ts
Perhaps we should move our differential fuzzing to use go instead of typescript or along with the typescript because most utilities that we wrote in JS are now also written in go.