Fix log parsing when no matching topic hash is found (#733).
This commit is contained in:
commit
a5d2ec534f
@ -2,7 +2,7 @@
|
||||
|
||||
import { ConstructorFragment, EventFragment, FormatTypes, Fragment, FunctionFragment, JsonFragment, JsonFragmentType, ParamType } from "./fragments";
|
||||
import { AbiCoder, CoerceFunc, defaultAbiCoder } from "./abi-coder";
|
||||
import { Indexed, Interface, Result } from "./interface";
|
||||
import { Indexed, Interface, LogDescription, Result, TransactionDescription } from "./interface";
|
||||
|
||||
export {
|
||||
ConstructorFragment,
|
||||
@ -25,5 +25,8 @@ export {
|
||||
JsonFragment,
|
||||
JsonFragmentType,
|
||||
|
||||
Result
|
||||
Result,
|
||||
|
||||
LogDescription,
|
||||
TransactionDescription
|
||||
};
|
||||
|
@ -1,6 +1,6 @@
|
||||
"use strict";
|
||||
|
||||
import { EventFragment, Fragment, Indexed, Interface, JsonFragment, ParamType, Result } from "@ethersproject/abi";
|
||||
import { EventFragment, Fragment, Indexed, Interface, JsonFragment, LogDescription, ParamType, Result } from "@ethersproject/abi";
|
||||
import { Block, BlockTag, Filter, FilterByBlockHash, Listener, Log, Provider, TransactionReceipt, TransactionRequest, TransactionResponse } from "@ethersproject/abstract-provider";
|
||||
import { Signer, VoidSigner } from "@ethersproject/abstract-signer";
|
||||
import { getContractAddress } from "@ethersproject/address";
|
||||
@ -12,6 +12,7 @@ import { UnsignedTransaction } from "@ethersproject/transactions";
|
||||
|
||||
import { Logger } from "@ethersproject/logger";
|
||||
import { version } from "./_version";
|
||||
|
||||
const logger = new Logger(version);
|
||||
|
||||
export interface Overrides {
|
||||
@ -240,7 +241,10 @@ function runMethod(contract: Contract, functionName: string, options: RunOptions
|
||||
receipt.events = receipt.logs.map((log) => {
|
||||
let event: Event = (<Event>deepCopy(log));
|
||||
|
||||
let parsed = contract.interface.parseLog(log);
|
||||
let parsed: LogDescription = null;
|
||||
try {
|
||||
parsed = contract.interface.parseLog(log);
|
||||
} catch (e){}
|
||||
if (parsed) {
|
||||
event.args = parsed.args;
|
||||
event.decode = (data: BytesLike, topics?: Array<any>) => {
|
||||
|
Loading…
Reference in New Issue
Block a user