예제 #1
0
        public static PaymentEntity GetBlob(this Data.PaymentData paymentData, BTCPayNetworkProvider networks)
        {
            var unziped    = ZipUtils.Unzip(paymentData.Blob);
            var cryptoCode = "BTC";

            if (JObject.Parse(unziped).TryGetValue("cryptoCode", out var v) && v.Type == JTokenType.String)
            {
                cryptoCode = v.Value <string>();
            }
            var           network       = networks.GetNetwork <BTCPayNetworkBase>(cryptoCode);
            PaymentEntity paymentEntity = null;

            if (network == null)
            {
                paymentEntity = NBitcoin.JsonConverters.Serializer.ToObject <PaymentEntity>(unziped, null);
            }
            else
            {
                paymentEntity = network.ToObject <PaymentEntity>(unziped);
            }
            paymentEntity.Network   = network;
            paymentEntity.Accounted = paymentData.Accounted;
            return(paymentEntity);
        }