public static EnvelopeDeserializer Create(ByteString byteString, byte b) { EnvelopeDeserializer ret; int type = ChannelHeader.Parser.ParseFrom(Protos.Common.Payload.Parser.ParseFrom(Envelope.Parser.ParseFrom(byteString).Payload).Header.ChannelHeader).Type; /* * * MESSAGE = 0; // Used for messages which are signed but opaque * CONFIG = 1; // Used for messages which express the channel config * CONFIG_UPDATE = 2; // Used for transactions which update the channel config * ENDORSER_TRANSACTION = 3; // Used by the SDK to submit endorser based transactions * ORDERER_TRANSACTION = 4; // Used internally by the orderer for management * DELIVER_SEEK_INFO = 5; // Used as the type for Envelope messages submitted to instruct the Deliver API to seek * CHAINCODE_PACKAGE = 6; // Used for packaging chaincode artifacts for install * */ switch (type) { case 3: ret = new EndorserTransactionEnvDeserializer(byteString, b); break; default: //just assume base properties. ret = new EnvelopeDeserializer(byteString, b); break; } return(ret); }
public BlockDeserializer(Block block) { Block = block; envelopes = new WeakDictionary <int, EnvelopeDeserializer>((index) => EnvelopeDeserializer.Create(Data?.Data[index], TransActionsMetaData[index])); }