nash-io / openlimits

A Rust high performance cryptocurrency trading API with support for multiple exchanges and language wrappers.
http://openlimits.io
BSD 2-Clause "Simplified" License
275 stars 44 forks source link

Issues with price-ticker retrieval #105

Closed notonamap closed 3 years ago

notonamap commented 3 years ago
#[tokio::test]
async fn get_price_ticker_error() {
    let exchange = init().await;
    let req1 = OrderBookRequest {
        market_pair: "btc_usdc".to_string(),
    };
    let req2 = GetPriceTickerRequest {
        market_pair: "btc_usdc".to_string(),
    };

    let r1 = exchange.get_price_ticker(&req2).await;
    let r2 = exchange.order_book(&req1).await;
    let r3 = exchange.get_price_ticker(&req2).await;

    println!("{:?}", r1);
    println!("{:?}", r2);
    println!("{:?}", r3);
}

It seems like the price ticker retrieval becomes corrupted after we do another protocol action like getting the orderbook etc. Have you seen this before @Ejhfast?

Ok(Ticker { price: 13088.15000000 })
Ok(OrderBookResponse { last_update_id: None, bids: [AskBid { price: 0.20000000, qty: 26.00000000 }, AskBid { price: 1.10000000, qty: 5.00000000 }, AskBid { price: 1.70000000, qty: 3.52941176 }, AskBid { price: 3.40000000, qty: 2.94117647 }, AskBid { price: 5.10000000, qty: 1.00000000 }, AskBid { price: 6.30000000, qty: 3.00000000 }, AskBid { price: 7.00000000, qty: 0.85714285 }, AskBid { price: 10.00000000, qty: 1.00000000 }, AskBid { price: 11.80000000, qty: 0.84745762 }, AskBid { price: 12.60000000, qty: 3.00000000 }, AskBid { price: 20.00000000, qty: 0.33000000 }, AskBid { price: 20.10000000, qty: 1.00000000 }, AskBid { price: 25.00000000, qty: 0.26600000 }, AskBid { price: 25.20000000, qty: 3.00000000 }, AskBid { price: 28.90000000, qty: 0.20761245 }, AskBid { price: 29.00000000, qty: 1.00000000 }, AskBid { price: 30.00000000, qty: 1.00000000 }, AskBid { price: 31.00000000, qty: 2.31935483 }, AskBid { price: 37.90000000, qty: 0.26385224 }, AskBid { price: 50.00000000, qty: 1.00000000 }, AskBid { price: 89.90000000, qty: 2.04449388 }, AskBid { price: 100.00000000, qty: 3.30000000 }, AskBid { price: 111.00000000, qty: 0.09009009 }, AskBid { price: 125.00000000, qty: 0.04080000 }, AskBid { price: 127.00000000, qty: 0.13385826 }, AskBid { price: 204.00000000, qty: 0.17156862 }, AskBid { price: 335.00000000, qty: 0.61432835 }, AskBid { price: 389.00000000, qty: 0.02570694 }, AskBid { price: 540.00000000, qty: 0.39814814 }, AskBid { price: 900.00000000, qty: 1.10000000 }, AskBid { price: 1311.00000000, qty: 1.10000000 }, AskBid { price: 1399.00000000, qty: 0.01429592 }, AskBid { price: 1401.00000000, qty: 0.00613847 }, AskBid { price: 2495.00000000, qty: 0.10020040 }, AskBid { price: 3215.00000000, qty: 0.09953343 }, AskBid { price: 3275.00000000, qty: 0.12213740 }, AskBid { price: 4000.00000000, qty: 0.25000000 }, AskBid { price: 4500.00000000, qty: 0.22222222 }, AskBid { price: 5000.00000000, qty: 0.30000000 }, AskBid { price: 5500.00000000, qty: 0.27272727 }, AskBid { price: 6000.00000000, qty: 0.25000000 }, AskBid { price: 6352.00000000, qty: 0.01500000 }, AskBid { price: 6500.00000000, qty: 0.15384615 }, AskBid { price: 7000.00000000, qty: 0.14285714 }, AskBid { price: 7500.00000000, qty: 0.13333333 }, AskBid { price: 8000.00000000, qty: 0.12500000 }, AskBid { price: 8500.00000000, qty: 0.11764705 }, AskBid { price: 9000.00000000, qty: 0.13283333 }, AskBid { price: 9250.00000000, qty: 0.02162162 }, AskBid { price: 9500.00000000, qty: 0.02105263 }, AskBid { price: 9803.92156863, qty: 0.00102000 }, AskBid { price: 9909.00000000, qty: 0.00999091 }, AskBid { price: 9940.00000000, qty: 0.00054325 }, AskBid { price: 10218.00000000, qty: 0.03266784 }, AskBid { price: 10225.20000000, qty: 0.03237100 }, AskBid { price: 10510.60000000, qty: 0.00189700 }, AskBid { price: 10542.50000000, qty: 0.00189100 }, AskBid { price: 10577.20000000, qty: 0.00188500 }, AskBid { price: 10636.60000000, qty: 0.00187500 }, AskBid { price: 10684.00000000, qty: 0.00186600 }, AskBid { price: 10722.20000000, qty: 0.00186000 }, AskBid { price: 10762.20000000, qty: 0.00185300 }, AskBid { price: 10800.00000000, qty: 0.04649082 }, AskBid { price: 10808.60000000, qty: 0.00070525 }, AskBid { price: 10833.00000000, qty: 0.23367488 }, AskBid { price: 10833.60000000, qty: 0.00184100 }, AskBid { price: 10866.90000000, qty: 0.00183500 }, AskBid { price: 10992.90000000, qty: 0.00181400 }, AskBid { price: 11036.80000000, qty: 0.00180700 }, AskBid { price: 11081.90000000, qty: 0.00179900 }, AskBid { price: 11119.00000000, qty: 0.00179300 }, AskBid { price: 11165.00000000, qty: 0.22673085 }, AskBid { price: 11170.00000000, qty: 0.01000000 }, AskBid { price: 11200.00000000, qty: 0.15000000 }, AskBid { price: 11240.00000000, qty: 0.01000000 }, AskBid { price: 11331.00000000, qty: 0.00510014 }, AskBid { price: 11400.00000000, qty: 0.20000000 }, AskBid { price: 11475.90000000, qty: 0.05300000 }, AskBid { price: 11492.40000000, qty: 0.05300000 }, AskBid { price: 11500.00000000, qty: 0.08695652 }, AskBid { price: 11578.40000000, qty: 0.05300000 }, AskBid { price: 11600.00000000, qty: 0.20000000 }, AskBid { price: 11625.00000000, qty: 22.02484301 }, AskBid { price: 11700.00000000, qty: 0.00670940 }, AskBid { price: 11800.00000000, qty: 0.20000000 }, AskBid { price: 11802.00000000, qty: 0.00500000 }, AskBid { price: 11851.00000000, qty: 0.04541599 }, AskBid { price: 12100.00000000, qty: 0.30000000 }, AskBid { price: 12165.10000000, qty: 0.01644000 }, AskBid { price: 12214.70000000, qty: 0.01000000 }, AskBid { price: 12300.00000000, qty: 0.30000000 }, AskBid { price: 12430.00000000, qty: 0.00288918 }, AskBid { price: 12498.40000000, qty: 0.00044805 }, AskBid { price: 12510.00000000, qty: 0.00399680 }, AskBid { price: 12692.20000000, qty: 0.00400003 }, AskBid { price: 12751.80000000, qty: 0.00800000 }, AskBid { price: 12798.10000000, qty: 0.01600000 }, AskBid { price: 12808.50000000, qty: 0.00800000 }, AskBid { price: 12828.00000000, qty: 0.01000000 }, AskBid { price: 12831.40000000, qty: 0.00092600 }, AskBid { price: 12837.60000000, qty: 0.00800000 }, AskBid { price: 12840.00000000, qty: 0.04027891 }, AskBid { price: 12851.00000000, qty: 0.00194537 }, AskBid { price: 12861.60000000, qty: 0.00800000 }, AskBid { price: 12875.30000000, qty: 0.00800000 }, AskBid { price: 12890.00000000, qty: 0.02674844 }, AskBid { price: 12891.80000000, qty: 0.00736399 }, AskBid { price: 12893.00000000, qty: 0.00739472 }, AskBid { price: 12899.80000000, qty: 0.00775200 }, AskBid { price: 12911.30000000, qty: 0.01400000 }, AskBid { price: 12919.80000000, qty: 0.01158000 }, AskBid { price: 12922.10000000, qty: 0.00092600 }, AskBid { price: 12925.70000000, qty: 0.04933386 }, AskBid { price: 12931.40000000, qty: 0.00600000 }, AskBid { price: 12931.60000000, qty: 0.00800000 }, AskBid { price: 12935.10000000, qty: 0.01543100 }, AskBid { price: 12936.00000000, qty: 0.00600000 }, AskBid { price: 12942.30000000, qty: 0.00772700 }, AskBid { price: 12942.40000000, qty: 0.04572600 }, AskBid { price: 12952.20000000, qty: 0.00800000 }, AskBid { price: 12953.40000000, qty: 0.00500000 }, AskBid { price: 12955.70000000, qty: 0.08221477 }, AskBid { price: 12959.70000000, qty: 0.00385800 }, AskBid { price: 12960.00000000, qty: 0.07716049 }, AskBid { price: 12960.20000000, qty: 0.00414200 }, AskBid { price: 12960.70000000, qty: 0.00800031 }, AskBid { price: 12960.90000000, qty: 0.03200494 }, AskBid { price: 12961.00000000, qty: 0.02314600 }, AskBid { price: 12961.10000000, qty: 0.00600000 }, AskBid { price: 12965.30000000, qty: 0.00667000 }, AskBid { price: 12972.70000000, qty: 0.00767800 }, AskBid { price: 12975.70000000, qty: 0.05471766 }, AskBid { price: 12978.00000000, qty: 0.00385223 }, AskBid { price: 12985.30000000, qty: 0.00600000 }, AskBid { price: 12985.70000000, qty: 0.03644971 }, AskBid { price: 12992.30000000, qty: 0.00769729 }, AskBid { price: 12992.80000000, qty: 0.03095500 }, AskBid { price: 12994.30000000, qty: 0.00384770 }, AskBid { price: 12994.80000000, qty: 0.00769570 }, AskBid { price: 12994.90000000, qty: 0.00500000 }, AskBid { price: 12995.10000000, qty: 0.05775500 }, AskBid { price: 12995.70000000, qty: 0.04856221 }, AskBid { price: 12998.80000000, qty: 0.00614200 }, AskBid { price: 12999.70000000, qty: 0.02731601 }, AskBid { price: 13000.50000000, qty: 0.00500000 }, AskBid { price: 13001.60000000, qty: 0.00384594 }, AskBid { price: 13001.90000000, qty: 0.00600000 }, AskBid { price: 13002.10000000, qty: 0.00871700 }, AskBid { price: 13005.50000000, qty: 0.03667000 }, AskBid { price: 13017.50000000, qty: 0.00500000 }, AskBid { price: 13021.00000000, qty: 0.04114384 }, AskBid { price: 13021.10000000, qty: 0.02312688 }, AskBid { price: 13021.70000000, qty: 0.48874498 }, AskBid { price: 13024.70000000, qty: 0.02567000 }, AskBid { price: 13025.50000000, qty: 2.50000000 }, AskBid { price: 13031.10000000, qty: 1.90000000 }, AskBid { price: 13035.70000000, qty: 0.03065400 }, AskBid { price: 13036.40000000, qty: 1.50000000 }, AskBid { price: 13040.40000000, qty: 1.00000000 }, AskBid { price: 13041.30000000, qty: 0.48874498 }, AskBid { price: 13045.60000000, qty: 0.85000000 }, AskBid { price: 13046.90000000, qty: 0.00153300 }, AskBid { price: 13047.20000000, qty: 0.00800000 }, AskBid { price: 13047.50000000, qty: 0.02299200 }, AskBid { price: 13048.10000000, qty: 0.03916600 }, AskBid { price: 13048.20000000, qty: 0.38938368 }, AskBid { price: 13048.90000000, qty: 0.00382000 }, AskBid { price: 13049.00000000, qty: 0.00153300 }, AskBid { price: 13049.20000000, qty: 0.02767000 }, AskBid { price: 13049.30000000, qty: 0.00092000 }, AskBid { price: 13050.90000000, qty: 0.70000000 }, AskBid { price: 13056.10000000, qty: 0.60000000 }, AskBid { price: 13061.00000000, qty: 2.44372491 }, AskBid { price: 13064.40000000, qty: 0.24380448 }, AskBid { price: 13071.10000000, qty: 0.00500000 }, AskBid { price: 13071.20000000, qty: 0.00800000 }, AskBid { price: 13075.10000000, qty: 0.00764000 }, AskBid { price: 13075.50000000, qty: 0.01400000 }, AskBid { price: 13081.70000000, qty: 0.00473700 }, AskBid { price: 13086.20000000, qty: 0.00091700 }, AskBid { price: 13086.80000000, qty: 0.00458475 }, AskBid { price: 13087.00000000, qty: 0.00343851 }, AskBid { price: 13087.30000000, qty: 0.00343842 }, AskBid { price: 13087.40000000, qty: 0.00191023 }, AskBid { price: 13087.60000000, qty: 0.00343836 }, AskBid { price: 13087.70000000, qty: 0.01143833 }, AskBid { price: 13087.80000000, qty: 0.00076407 }, AskBid { price: 13087.90000000, qty: 0.01107828 }, AskBid { price: 13088.00000000, qty: 0.00458432 }, AskBid { price: 13088.10000000, qty: 0.90205286 }], asks: [AskBid { price: 13088.20000000, qty: 0.32627102 }, AskBid { price: 13088.40000000, qty: 0.01981554 }, AskBid { price: 13088.70000000, qty: 0.01070815 }, AskBid { price: 13088.90000000, qty: 0.00955005 }, AskBid { price: 13089.00000000, qty: 0.00687600 }, AskBid { price: 13089.20000000, qty: 0.00687588 }, AskBid { price: 13089.40000000, qty: 0.01069578 }, AskBid { price: 13089.70000000, qty: 0.00687562 }, AskBid { price: 13090.10000000, qty: 0.00870941 }, AskBid { price: 13091.00000000, qty: 0.04074694 }, AskBid { price: 13094.60000000, qty: 0.01329500 }, AskBid { price: 13098.00000000, qty: 0.03817500 }, AskBid { price: 13098.70000000, qty: 0.10000000 }, AskBid { price: 13100.20000000, qty: 2.74400250 }, AskBid { price: 13101.00000000, qty: 0.13948490 }, AskBid { price: 13101.50000000, qty: 0.00766300 }, AskBid { price: 13102.40000000, qty: 0.00189425 }, AskBid { price: 13106.50000000, qty: 0.10000000 }, AskBid { price: 13109.10000000, qty: 0.32000000 }, AskBid { price: 13111.70000000, qty: 0.19000000 }, AskBid { price: 13113.30000000, qty: 0.01529700 }, AskBid { price: 13119.00000000, qty: 0.70000000 }, AskBid { price: 13119.30000000, qty: 0.02789698 }, AskBid { price: 13119.80000000, qty: 0.54880050 }, AskBid { price: 13120.80000000, qty: 0.01528100 }, AskBid { price: 13121.90000000, qty: 0.01257500 }, AskBid { price: 13122.20000000, qty: 0.00667000 }, AskBid { price: 13123.20000000, qty: 0.85000000 }, AskBid { price: 13126.80000000, qty: 0.02190600 }, AskBid { price: 13127.90000000, qty: 0.00190611 }, AskBid { price: 13129.40000000, qty: 1.00000000 }, AskBid { price: 13134.10000000, qty: 0.08928334 }, AskBid { price: 13134.60000000, qty: 1.50000000 }, AskBid { price: 13136.10000000, qty: 0.10376322 }, AskBid { price: 13136.30000000, qty: 0.00160000 }, AskBid { price: 13137.20000000, qty: 1.90000000 }, AskBid { price: 13137.30000000, qty: 0.00380600 }, AskBid { price: 13137.60000000, qty: 0.02789698 }, AskBid { price: 13139.40000000, qty: 0.54880050 }, AskBid { price: 13143.80000000, qty: 2.50000000 }, AskBid { price: 13155.60000000, qty: 0.01524800 }, AskBid { price: 13156.00000000, qty: 0.06974245 }, AskBid { price: 13156.70000000, qty: 0.00092100 }, AskBid { price: 13158.10000000, qty: 0.01142836 }, AskBid { price: 13159.10000000, qty: 0.00929500 }, AskBid { price: 13162.30000000, qty: 0.02283800 }, AskBid { price: 13165.60000000, qty: 0.03428200 }, AskBid { price: 13181.90000000, qty: 0.01140741 }, AskBid { price: 13191.50000000, qty: 0.00758000 }, AskBid { price: 13192.20000000, qty: 0.00454800 }, AskBid { price: 13197.50000000, qty: 0.00273600 }, AskBid { price: 13217.00000000, qty: 0.00227600 }, AskBid { price: 13221.70000000, qty: 0.00303200 }, AskBid { price: 13225.00000000, qty: 0.10000000 }, AskBid { price: 13225.70000000, qty: 0.03790300 }, AskBid { price: 13231.00000000, qty: 0.00075800 }, AskBid { price: 13244.60000000, qty: 0.00152454 }, AskBid { price: 13259.00000000, qty: 0.00378300 }, AskBid { price: 13275.00000000, qty: 0.10000000 }, AskBid { price: 13308.80000000, qty: 0.02302800 }, AskBid { price: 13317.20000000, qty: 0.00800000 }, AskBid { price: 13325.00000000, qty: 0.10000000 }, AskBid { price: 13326.10000000, qty: 0.00075300 }, AskBid { price: 13339.60000000, qty: 0.00367300 }, AskBid { price: 13339.70000000, qty: 0.00750400 }, AskBid { price: 13342.90000000, qty: 0.03840230 }, AskBid { price: 13344.40000000, qty: 0.01124500 }, AskBid { price: 13344.60000000, qty: 0.00100000 }, AskBid { price: 13357.20000000, qty: 0.00075100 }, AskBid { price: 13369.00000000, qty: 0.01127600 }, AskBid { price: 13369.50000000, qty: 0.00375073 }, AskBid { price: 13375.00000000, qty: 0.10000000 }, AskBid { price: 13399.90000000, qty: 0.01119700 }, AskBid { price: 13425.00000000, qty: 0.10000000 }, AskBid { price: 13475.00000000, qty: 0.10000000 }, AskBid { price: 13550.00000000, qty: 0.08363307 }, AskBid { price: 13725.00000000, qty: 0.20000000 }, AskBid { price: 13800.00000000, qty: 0.50019757 }, AskBid { price: 13975.00000000, qty: 0.20000000 }, AskBid { price: 13980.00000000, qty: 0.25287496 }, AskBid { price: 14285.00000000, qty: 0.10028151 }, AskBid { price: 14400.00000000, qty: 0.20000000 }, AskBid { price: 15000.00000000, qty: 0.20000000 }, AskBid { price: 15015.00000000, qty: 0.00732293 }, AskBid { price: 15600.00000000, qty: 0.11491900 }, AskBid { price: 15950.00000000, qty: 0.00128165 }, AskBid { price: 28544.00000000, qty: 0.00607460 }, AskBid { price: 29000.00000000, qty: 0.07427537 }, AskBid { price: 33329.00000000, qty: 0.02526099 }, AskBid { price: 45000.00000000, qty: 0.04424166 }, AskBid { price: 50000.00000000, qty: 0.03738358 }, AskBid { price: 87700.00000000, qty: 0.02000010 }, AskBid { price: 4989898.00000000, qty: 0.00103737 }, AskBid { price: 5464654.00000000, qty: 0.00030004 }, AskBid { price: 51346465.00000000, qty: 0.00090013 }, AskBid { price: 198989898.00000000, qty: 0.00020000 }] })
Err(NashProtocolError(ProtocolError("ErrorResponse { errors: [Error { message: \"Cannot query field \\\"aVolume24h\\\" on type \\\"Ticker\\\". Did you mean \\\"aVolume24h\\\", \\\"bVolume24h\\\", \\\"usdVolume24h\\\", or \\\"volume24h\\\"?\" }, Error { message: \"Cannot query field \\\"bVolume24h\\\" on type \\\"Ticker\\\". Did you mean \\\"aVolume24h\\\", \\\"bVolume24h\\\", \\\"usdVolume24h\\\", or \\\"volume24h\\\"?\" }, Error { message: \"Cannot query field \\\"highPrice24h\\\" on type \\\"Ticker\\\". Did you mean \\\"highPrice24h\\\", \\\"lowPrice24h\\\", \\\"priceChange24h\\\", \\\"priceChange24hPct\\\", or \\\"usdHighPrice24h\\\"?\" }, Error { message: \"Cannot query field \\\"lowPrice24h\\\" on type \\\"Ticker\\\". Did you mean \\\"highPrice24h\\\", \\\"lastPrice\\\", \\\"lowPrice24h\\\", or \\\"usdLowPrice24h\\\"?\" }, Error { message: \"Cannot query field \\\"priceChange24h\\\" on type \\\"Ticker\\\". Did you mean \\\"highPrice24h\\\", \\\"priceChange24h\\\", or \\\"priceChange24hPct\\\"?\" }, Error { message: \"Cannot query field \\\"volume24h\\\" on type \\\"Ticker\\\". Did you mean \\\"aVolume24h\\\", \\\"bVolume24h\\\", \\\"usdVolume24h\\\", or \\\"volume24h\\\"?\" }] }")))
Ejhfast commented 3 years ago

Thanks for reporting this, it is actually an issue on the Nash backend. We already have a fix in and it will hit production on our weekly Wednesday release