1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-10-22 19:26:13 +02:00

Call getMethodDataAsync when knownMethodData[fourBytePrefix] object is empty (#8836)

Fixes #8835

In cases where the registry failed to load, and the sig is set to `{}` on this line: e85b162651/ui/app/helpers/utils/transactions.util.js (L78) this proceeds to set the method prefix to `{}` in knownMethodData.

Additionally check if the method prefix object is empty to proceed call getMethodDataAsync again.

I could only reproduce by intentionally failing the method registry lookup and found this solution. I could not find an instance where the registry consistently failed to lookup even on slow/throttled/high latency networks.
This commit is contained in:
Thomas Huang 2020-06-22 21:30:45 -07:00 committed by GitHub
parent b090625dc1
commit 4354e9eb93
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -2160,7 +2160,7 @@ export function getContractMethodData (data = '') {
const prefixedData = ethUtil.addHexPrefix(data) const prefixedData = ethUtil.addHexPrefix(data)
const fourBytePrefix = prefixedData.slice(0, 10) const fourBytePrefix = prefixedData.slice(0, 10)
const { knownMethodData } = getState().metamask const { knownMethodData } = getState().metamask
if (knownMethodData && knownMethodData[fourBytePrefix]) { if (knownMethodData && knownMethodData[fourBytePrefix] && Object.keys(knownMethodData[fourBytePrefix]).length !== 0) {
return Promise.resolve(knownMethodData[fourBytePrefix]) return Promise.resolve(knownMethodData[fourBytePrefix])
} }