diff --git a/Sources/Web3Core/Contract/ContractProtocol.swift b/Sources/Web3Core/Contract/ContractProtocol.swift index 43a4c1543..9b7257eb5 100755 --- a/Sources/Web3Core/Contract/ContractProtocol.swift +++ b/Sources/Web3Core/Contract/ContractProtocol.swift @@ -332,7 +332,7 @@ extension DefaultContractProtocol { } public func decodeInputData(_ data: Data) -> [String: Any]? { - guard data.count % 32 == 4 else { return nil } + guard data.count % 32 == 4 || data.count % 32 == 8 else { return nil } let methodSignature = data[data.startIndex ..< data.startIndex + 4].toHexString().addHexPrefix().lowercased() guard let function = methods[methodSignature]?.first else { return nil } diff --git a/Sources/Web3Core/EthereumABI/ABIElements.swift b/Sources/Web3Core/EthereumABI/ABIElements.swift index 5dca0b331..d034d3f8b 100755 --- a/Sources/Web3Core/EthereumABI/ABIElements.swift +++ b/Sources/Web3Core/EthereumABI/ABIElements.swift @@ -455,7 +455,7 @@ extension ABIDecoder { sig = nil data = Data() break - case 4: + case 4, 8: sig = rawData[0 ..< 4] data = Data(rawData[4 ..< rawData.count]) default: