public override IGossipMessageSet RehydrateGossipMessage(IByteArray data, GossipHeader header, IBlockchainEventsRehydrationFactory rehydrationFactory) { if (header.chainId != NeuraliumBlockchainTypes.NeuraliumInstance.Neuralium) { throw new ApplicationException("Chain must be a neuralium chain"); } return(base.RehydrateGossipMessage(data, header, rehydrationFactory)); }
public override ITargettedMessageSet <IBlockchainEventsRehydrationFactory> RehydrateMessage(IByteArray data, TargettedHeader header, IBlockchainEventsRehydrationFactory rehydrationFactory) { IDataRehydrator dr = DataSerializationFactory.CreateRehydrator(data); IByteArray messageBytes = NetworkMessageSet.ExtractMessageBytes(dr); NetworkMessageSet.ResetAfterHeader(dr); IDataRehydrator messageRehydrator = DataSerializationFactory.CreateRehydrator(messageBytes); short workflowType = messageRehydrator.ReadShort(); if (workflowType == 0) { throw new ApplicationException("Invalid workflow type"); } switch (workflowType) { case NeuraliumWorkflowIDs.TEST: return(new TestFactory((BlockchainServiceSet)this.serviceSet).RehydrateMessage(data, header, rehydrationFactory)); // default: // throw new ApplicationException("Workflow message factory not found"); } return(base.RehydrateMessage(data, header, rehydrationFactory)); }