Exemple #1
0
        public static Order CreateFromJson(DictionaryObject json, Asset amountAsset, Asset priceAsset)
        {
            var side = OrderSide.Buy;

            if (json.ContainsKey("orderType"))
            {
                side = json.GetString("orderType") == "buy" ? OrderSide.Buy : OrderSide.Sell;
            }
            else
            {
                side = (OrderSide)Enum.Parse(typeof(OrderSide), json.GetString("type"), true);
            }

            var    senderPublicKey  = json.ContainsKey("senderPublicKey") ? json.GetString("senderPublicKey") : "";
            var    matcherPublicKey = json.ContainsKey("matcherPublicKey") ? json.GetString("matcherPublicKey") : "";
            var    expiration       = json.ContainsKey("expiration") ? json.GetDate("expiration") : json.GetDate("timestamp");
            var    matcherFee       = json.ContainsKey("matcherFee") ? Assets.WAVES.LongToAmount(json.GetLong("matcherFee")) : 1;
            string sender           = json.ContainsKey("sender") ? json.GetString("sender") : null;

            var proofs = new byte[8][];

            if (json.ContainsKey("proofs"))
            {
                proofs = json.Get <string[]>("proofs")
                         .Select(item => item.FromBase58())
                         .ToArray();
            }
            else
            {
                if (json.ContainsKey("signature"))
                {
                    proofs[0] = json.GetString("signature").FromBase58();
                }
            }

            var status  = json.ContainsKey("status") ? (OrderStatus)Enum.Parse(typeof(OrderStatus), json.GetString("status")) : OrderStatus.Accepted;
            var id      = json.ContainsKey("id") ? json.GetString("id") : null;
            var filled  = json.ContainsKey("filled") ? amountAsset.LongToAmount(json.GetLong("filled")) : 1m;
            var version = json.ContainsKey("version") ? json.GetByte("version") : (byte)2;

            return(new Order(
                       side,
                       amountAsset.LongToAmount(json.GetLong("amount")),
                       Asset.LongToPrice(amountAsset, priceAsset, json.GetLong("price")),
                       json.GetDate("timestamp"),
                       amountAsset,
                       priceAsset,
                       senderPublicKey.FromBase58(),
                       matcherPublicKey.FromBase58(),
                       expiration,
                       matcherFee,
                       sender, version)
            {
                Proofs = proofs,
                Status = status,
                Id = id,
                Filled = filled
            });
        }
Exemple #2
0
 public static Order CreateFromJson(Dictionary <string, object> json, Asset amountAsset, Asset priceAsset)
 {
     return(new Order(
                json.GetString("id"),
                (OrderSide)Enum.Parse(typeof(OrderSide), json.GetString("type"), true),
                amountAsset.LongToAmount(json.GetLong("amount")),
                Asset.LongToPrice(amountAsset, priceAsset, json.GetLong("price")),
                json.GetDate("timestamp"),
                amountAsset.LongToAmount(json.GetLong("filled")),
                (OrderStatus)Enum.Parse(typeof(OrderStatus), json.GetString("status")),
                amountAsset,
                priceAsset));
 }
        public ExchangeTransaction(DictionaryObject tx) : base(tx)
        {
            Fee = Assets.WAVES.LongToAmount(tx.GetLong("fee"));

            BuyMatcherFee  = Assets.WAVES.LongToAmount(tx.GetLong("buyMatcherFee"));
            SellMatcherFee = Assets.WAVES.LongToAmount(tx.GetLong("sellMatcherFee"));

            AmountAsset = Assets.GetById((tx.GetValue("order1.assetPair.amountAsset") ?? Assets.WAVES.Id).ToString());
            PriceAsset  = Assets.GetById((tx.GetValue("order1.assetPair.priceAsset") ?? Assets.WAVES.Id).ToString());

            BuyOrder  = Order.CreateFromJson(tx.GetObject("order1"), AmountAsset, PriceAsset);
            SellOrder = Order.CreateFromJson(tx.GetObject("order2"), AmountAsset, PriceAsset);

            Amount = AmountAsset.LongToAmount(tx.GetLong("amount"));
            Price  = Asset.LongToPrice(AmountAsset, PriceAsset, tx.GetLong("price"));
        }
Exemple #4
0
        public ExchangeTransaction(DictionaryObject tx) : base(tx)
        {
            var node = new Node(tx.GetChar("chainId"));
            Fee = Assets.WAVES.LongToAmount(tx.GetLong("fee"));

            BuyMatcherFee = Assets.WAVES.LongToAmount(tx.GetLong("buyMatcherFee"));
            SellMatcherFee = Assets.WAVES.LongToAmount(tx.GetLong("sellMatcherFee"));

            AmountAsset = node.GetAsset((tx.GetValue("order1.assetPair.amountAsset") ?? Assets.WAVES.Id).ToString());
            PriceAsset = node.GetAsset((tx.GetValue("order1.assetPair.priceAsset") ?? Assets.WAVES.Id).ToString());

            BuyOrder = Order.CreateFromJson(tx.GetObject("order1"), AmountAsset, PriceAsset);
            SellOrder = Order.CreateFromJson(tx.GetObject("order2"), AmountAsset, PriceAsset);

            Amount = AmountAsset.LongToAmount(tx.GetLong("amount"));
            Price = Asset.LongToPrice(AmountAsset, PriceAsset, tx.GetLong("price"));
            Version = tx.GetByte("version");
        }
Exemple #5
0
 private static Item ParseItem(Asset amountAsset, Asset priceAsset, DictionaryObject o)
 {
     return(new Item(
                Asset.LongToPrice(amountAsset, priceAsset, o.GetLong("price")),
                amountAsset.LongToAmount(o.GetLong("amount"))));
 }