public BlockchainIndexingService( IEthereumNodeJobClient ethereumNodeJobClient, IIndexingStateRepository indexingStateRepository, IRabbitPublisher <EthereumWalletLinkingStatusChangeCompletedEvent> walletLinkingStatusChangeCompletedPublisher, IRabbitPublisher <TransferToExternalCompletedEvent> transferToExternalCompletedPublisher, IRabbitPublisher <TransferToInternalDetectedEvent> transferToInternalDetectedPublisher, IRabbitPublisher <SeizeToInternalDetectedEvent> seizeToInternalDetectedPublisher, int blockConfirmationLevel, ILogFactory logFactory, int?blockBatchSize = null) { _ethereumNodeJobClient = ethereumNodeJobClient; _indexingStateRepository = indexingStateRepository; _walletLinkingStatusChangeCompletedPublisher = walletLinkingStatusChangeCompletedPublisher; _transferToExternalCompletedPublisher = transferToExternalCompletedPublisher; _transferToInternalDetectedPublisher = transferToInternalDetectedPublisher; _seizeToInternalDetectedPublisher = seizeToInternalDetectedPublisher; _blockConfirmationLevel = blockConfirmationLevel; _blockBatchSize = blockBatchSize; _publicAccountLinkedEventSignature = $"0x{ABITypedRegistry.GetEvent<PublicAccountLinkedEventDTO>().Sha3Signature}"; _publicAccountUnlinkedEventSignature = $"0x{ABITypedRegistry.GetEvent<PublicAccountUnlinkedEventDTO>().Sha3Signature}"; _transferredFromInternalNetworkEventSignature = $"0x{ABITypedRegistry.GetEvent<TransferredFromInternalNetworkEventDTO>().Sha3Signature}"; _transferredToInternalNetworkEventSignature = $"0x{ABITypedRegistry.GetEvent<TransferredToInternalNetworkEventDTO>().Sha3Signature}"; _publicAccountUnlinkedEventSignature = $"0x{ABITypedRegistry.GetEvent<PublicAccountUnlinkedEventDTO>().Sha3Signature}"; _seizeFromEventSignature = $"0x{ABITypedRegistry.GetEvent<SeizeFromEventDTO>().Sha3Signature}"; _eventTopicDecoder = new EventTopicDecoder(); _log = logFactory.CreateLog(this); }
public BlockchainEventDecoder(IMapper mapper) { _mapper = mapper; _eventTopicDecoder = new EventTopicDecoder(); _publicAccountLinkedEventSignature = $"0x{ABITypedRegistry.GetEvent<PublicAccountLinkedEventDTO>().Sha3Signature}"; _publicAccountUnlinkedEventSignature = $"0x{ABITypedRegistry.GetEvent<PublicAccountUnlinkedEventDTO>().Sha3Signature}"; }
public BlockchainEventDecoder(IMapper mapper) { _mapper = mapper; _eventTopicDecoder = new EventTopicDecoder(); _transferedFromPublicNetworkEventSignature = $"0x{ABITypedRegistry.GetEvent<TransferredFromPublicNetworkEventDTO>().Sha3Signature}"; _transferedToPublicNetworkEventSignature = $"0x{ABITypedRegistry.GetEvent<TransferredToPublicNetworkEventDTO>().Sha3Signature}"; }
public BlockchainEventDecoder(IMapper mapper) { _eventTopicDecoder = new EventTopicDecoder(); _transferReceivedEventSignature = $"0x{ABITypedRegistry.GetEvent<TransferReceivedEventDTO>().Sha3Signature}"; _transferAcceptedEventSignature = $"0x{ABITypedRegistry.GetEvent<TransferAcceptedEventDTO>().Sha3Signature}"; _transferRejectedEventSignature = $"0x{ABITypedRegistry.GetEvent<TransferRejectedEventDTO>().Sha3Signature}"; _mapper = mapper; }
public static TEventDTO DecodeEvent <TEventDTO>(this TEventDTO eventDTO, EventABI eventABI, FilterLog log) where TEventDTO : IEventDTO { if (!IsLogForEvent(eventABI, log)) { return(default(TEventDTO)); } var eventDecoder = new EventTopicDecoder(); return(eventDecoder.DecodeTopics(eventDTO, log.Topics, log.Data)); }
public static EventLog <TEventDTO> DecodeEvent <TEventDTO>(this EventABI eventABI, FilterLog log) where TEventDTO : new() { if (!IsLogForEvent(eventABI, log)) { return(null); } var eventDecoder = new EventTopicDecoder(); var eventObject = eventDecoder.DecodeTopics <TEventDTO>(log.Topics, log.Data); return(new EventLog <TEventDTO>(eventObject, log)); }
public static EventLog <List <ParameterOutput> > DecodeEventDefaultTopics(this EventABI eventABI, FilterLog log) { if (!IsLogForEvent(eventABI, log)) { return(null); } var eventDecoder = new EventTopicDecoder(); var eventObject = eventDecoder.DecodeDefaultTopics(eventABI, log.Topics, log.Data); return(new EventLog <List <ParameterOutput> >(eventObject, log)); }
public T DecodeEvent <T>(Event eventHandler) where T : new() { if (!eventHandler.IsLogForEvent(this)) { return(default(T)); } var decoder = new EventTopicDecoder(); return(decoder.DecodeTopics <T>(Topics, Data)); }
public List <EventLog <T> > DecodeAllEvents <T>(FilterLog[] logs) where T : new() { var result = new List <EventLog <T> >(); var eventDecoder = new EventTopicDecoder(); foreach (var log in logs) { var eventObject = eventDecoder.DecodeTopics <T>(log.Topics, log.Data); result.Add(new EventLog <T>(eventObject, log)); } return(result); }
/// <summary> /// Decodes event data into event DTO. /// </summary> /// <typeparam name="T"></typeparam> /// <returns>Decoded event DTO.</returns> /// <see href="https://nethereum.readthedocs.io/en/latest/contracts/calling-transactions-events/"/> public T DecodeEventDTO <T>() where T : new() { EventTopicDecoder eventTopicDecoder = new EventTopicDecoder(); object[] topicStrings = new object[this.Topics.Length]; for (int i = 0; i < this.Topics.Length; i++) { topicStrings[i] = CryptoUtils.BytesToHexString(this.Topics[i]); } return(eventTopicDecoder.DecodeTopics <T>(topicStrings, CryptoUtils.BytesToHexString(this.Data))); }
public UndecodedEventSubscriber( IPurchaseService purchaseService, IOperationsService operationsService, ISettingsService settingsService, string connectionString, string exchangeName, string queueName, ILogFactory logFactory) : base(connectionString, exchangeName, queueName, true, logFactory) { _purchaseService = purchaseService; _operationsService = operationsService; _log = logFactory.CreateLog(this); _eventTopicDecoder = new EventTopicDecoder(); _transferReceivedEventSignature = $"0x{ABITypedRegistry.GetEvent<TransferReceivedEventDTO>().Sha3Signature}"; _transferAcceptedEventSignature = $"0x{ABITypedRegistry.GetEvent<TransferAcceptedEventDTO>().Sha3Signature}"; _transferRejectedEventSignature = $"0x{ABITypedRegistry.GetEvent<TransferRejectedEventDTO>().Sha3Signature}"; _contractAddress = settingsService.GetContractAddress(); }
/// <summary> /// Decodes event data into event DTO. /// </summary> /// <typeparam name="T"></typeparam> /// <returns>Decoded event DTO.</returns> /// <see href="https://nethereum.readthedocs.io/en/latest/contracts/calling-transactions-events/"/> public T DecodeEventDTO <T>() where T : new() { EventTopicDecoder eventTopicDecoder = new EventTopicDecoder(); return(eventTopicDecoder.DecodeTopics <T>(this.Topics, CryptoUtils.BytesToHexString(this.Data))); }
public DecodingService() { _abiDeserializer = new ABIDeserialiser(); _eventTopicDecoder = new EventTopicDecoder(); _functionCallDecoder = new FunctionCallDecoder(); }