-
Notifications
You must be signed in to change notification settings - Fork 5k
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
no handling or timeout for a non-response from 4byte #6514
Comments
This issue is certainly affecting many users. Recommend removing reliance on as many 3rd party services as possible to prevent similar breakages in the future. 4byte, in particular, encourages you to scrap and host your own copy of their data "You are encouraged to scrape your own copy of this data if your use case is likely to produce heavy load on the API." |
Could someone please explain what exactly MetaMask would rely on 4byte for to deploy a contract? It's contract code -> compiled bytecode -> transaction data -> serialized and signed, all done client-side. No need for absolutely anything extra at all, especially not some function signature DB - or am I totally missing something here? Someone please brighten me up. |
@nikita-fuchs By the time the transaction reaches MetaMask, the contract function signature has been lost and all that is available is the 4-byte signature hash prefix. In order for MetaMask to present the name/parameter parameters of the called function, it needs to map the 4-byte back to the function name. A better solution would be something like ethereum/EIPs#719, which still needs a champion. |
We're investigating the issue, will report back with a fix ETA |
Publishing a hotfix momentarily, hang tight |
rolled back in 6.4.1, live on Firefox already, will be live on Chrome momentarily. if the problem is urgent for you, you can download 6.4.1 from our Releases page Update: four hours later, still |
Although this feature (I havn't noticed before) is really benevolent, it might turn out as the opposite: People might tend to think that they would be doing e.g. a token transfer, only because MetaMask says so, even though actually something totally different is going on in the contract. |
@nikita-fuchs The user needs to trust the signing tool they are using (e.g., MetaMask) and they need to trust that the contract they are transacting with is who they intend to transact with. Given those two things, the user is safe from malicious contracts and malicious dapps. If the user is communicating with a malicious dapp, the dapp may make a signing request for calling However, even in the attack scenario, the situation is strictly better to show the user |
Keep in mind, the signing tool can very easily validate that the provided signature matches the transaction being signed. (though, there is risk of collision) |
Describe the bug
4byte is currently down, so any contract interaction that isn't resolved by the parity registry lookup fails ungracefully. This causes users to wait like 60+ seconds for metamask to finally resolve with the confirm/reject buttons.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
should resolve to "contract deployment" in a second or two
Browser details (please complete the following information):
The text was updated successfully, but these errors were encountered: