-
Notifications
You must be signed in to change notification settings - Fork 33
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Broken for L2 Arbitrum #3
Comments
After extensive testing I can confirm this library broke at this commit 0e3627c for L2 Arbitrum and I assume other L2s as well. You can see this working via this code here from commit e78d9fd It's broken here with this newer |
Reverting |
Just FYI: it's not the issue on Optimism. I assume it's the same for Optimism forks. |
There's also something here with running the mload through |
Hey, thanks for looking into this. Seems like Arbitrum may have some problems with
|
I have an outstanding ticket with the Arbitrum team. We'll see what they say. Also and not necessarily related but what's the difference between your library and OpenZeppelin's? https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/Base64.sol They both have the same mstore8 issue for L2 and the same fix (using mstore and shl(248, mload(...)) works on both. Any idea if there's a significant gas difference between yours and theirs? Thanks for the prompt reply on a Friday 🤯 |
Haven't compared them, but they are pretty much the same so any difference in gas will be extremely small. The OpenZeppelin implementation is based on my code, they just saw that the library was used frequently and wanted to include it directly in their collection of contracts. |
I'm assuming maybe assembly isn't supported but would you have any idea why this library doesn't work when deployed on Arbitrum?
The text was updated successfully, but these errors were encountered: