public static DecodedEvent ToDecodedEvent(this FilterLog log, EventABI abi = null)
        {
            var decodedParameterOutputs = abi?.DecodeEventDefaultTopics(log) ??
                                          new EventLog <List <ParameterOutput> >(new List <ParameterOutput>(), log);

            var decodedEvent = new DecodedEvent(decodedParameterOutputs.Event, decodedParameterOutputs.Log);

            decodedEvent.AddStateData(abi, log);
            return(decodedEvent);
        }
        public static DecodedEvent ToDecodedEvent <TEvent>(this FilterLog log, EventABI abi) where TEvent : new()
        {
            var decodedParameterOutputs = abi.DecodeEventDefaultTopics(log);

            var decodedDto = log.DecodeEvent <TEvent>();

            var decodedEvent = new DecodedEvent(decodedParameterOutputs.Event, decodedParameterOutputs.Log, decodedDto.Event);

            decodedEvent.AddStateData(abi, log);
            return(decodedEvent);
        }