@@ -18,6 +18,7 @@ import {
1818 testMocks ,
1919 Transaction ,
2020 helpers ,
21+ OrderSide ,
2122} from '@dydxprotocol-indexer/postgres' ;
2223import { CandleMessage , CandleMessage_Resolution } from '@dydxprotocol-indexer/v4-protos' ;
2324import Big from 'big.js' ;
@@ -31,11 +32,9 @@ import { KafkaPublisher } from '../../src/lib/kafka-publisher';
3132import { ConsolidatedKafkaEvent } from '../../src/lib/types' ;
3233import { defaultTradeContent , defaultTradeKafkaEvent } from '../helpers/constants' ;
3334import { contentToSingleTradeMessage , createConsolidatedKafkaEventFromTrade } from '../helpers/kafka-publisher-helpers' ;
35+ import { updatePriceLevel } from '../helpers/redis-helpers' ;
3436import { redisClient } from '../../src/helpers/redis/redis-controller' ;
35- import {
36- redis ,
37- OrderbookMidPricesCache ,
38- } from '@dydxprotocol-indexer/redis' ;
37+ import { redis } from '@dydxprotocol-indexer/redis' ;
3938
4039describe ( 'candleHelper' , ( ) => {
4140 beforeAll ( async ( ) => {
@@ -114,12 +113,9 @@ describe('candleHelper', () => {
114113 defaultTradeKafkaEvent2 ,
115114 ] ) ;
116115
117- const ticker = 'BTC-USD' ;
118- await Promise . all ( [
119- OrderbookMidPricesCache . setPrice ( redisClient , ticker , '100000' ) ,
120- OrderbookMidPricesCache . setPrice ( redisClient , ticker , '105000' ) ,
121- OrderbookMidPricesCache . setPrice ( redisClient , ticker , '110000' ) ,
122- ] ) ;
116+ // Create Orderbook levels to set orderbookMidPrice open & close
117+ await updatePriceLevel ( 'BTC-USD' , '100000' , OrderSide . BUY ) ;
118+ await updatePriceLevel ( 'BTC-USD' , '110000' , OrderSide . SELL ) ;
123119
124120 await runUpdateCandles ( publisher ) ;
125121
@@ -159,12 +155,8 @@ describe('candleHelper', () => {
159155 defaultTradeKafkaEvent2 ,
160156 ] ) ;
161157
162- const ticker = 'BTC-USD' ;
163- await Promise . all ( [
164- OrderbookMidPricesCache . setPrice ( redisClient , ticker , '80000' ) ,
165- OrderbookMidPricesCache . setPrice ( redisClient , ticker , '81000' ) ,
166- OrderbookMidPricesCache . setPrice ( redisClient , ticker , '80500' ) ,
167- ] ) ;
158+ await updatePriceLevel ( 'BTC-USD' , '80000' , OrderSide . BUY ) ;
159+ await updatePriceLevel ( 'BTC-USD' , '81000' , OrderSide . SELL ) ;
168160
169161 // Create Perpetual Position to set open position
170162 const openInterest : string = '100' ;
@@ -435,7 +427,9 @@ describe('candleHelper', () => {
435427 containsKafkaMessages : boolean = true ,
436428 orderbookMidPrice : number ,
437429 ) => {
438- await OrderbookMidPricesCache . setPrice ( redisClient , 'BTC-USD' , orderbookMidPrice . toFixed ( ) ) ;
430+ const midPriceSpread = 10 ;
431+ await updatePriceLevel ( 'BTC-USD' , String ( orderbookMidPrice + midPriceSpread ) , OrderSide . SELL ) ;
432+ await updatePriceLevel ( 'BTC-USD' , String ( orderbookMidPrice - midPriceSpread ) , OrderSide . BUY ) ;
439433
440434 if ( initialCandle !== undefined ) {
441435 await CandleTable . create ( initialCandle ) ;
@@ -500,7 +494,9 @@ describe('candleHelper', () => {
500494 ) ;
501495 await startCandleCache ( ) ;
502496
503- await OrderbookMidPricesCache . setPrice ( redisClient , 'BTC-USD' , '10005' ) ;
497+ // Update Orderbook levels
498+ await updatePriceLevel ( 'BTC-USD' , '10010' , OrderSide . SELL ) ;
499+ await updatePriceLevel ( 'BTC-USD' , '10000' , OrderSide . BUY ) ;
504500
505501 const publisher : KafkaPublisher = new KafkaPublisher ( ) ;
506502 publisher . addEvents ( [
@@ -598,7 +594,9 @@ describe('candleHelper', () => {
598594 ) ;
599595 await startCandleCache ( ) ;
600596
601- await OrderbookMidPricesCache . setPrice ( redisClient , 'BTC-USD' , '10005' ) ;
597+ // Update Orderbook levels
598+ await updatePriceLevel ( 'BTC-USD' , '10010' , OrderSide . SELL ) ;
599+ await updatePriceLevel ( 'BTC-USD' , '10000' , OrderSide . BUY ) ;
602600
603601 const publisher : KafkaPublisher = new KafkaPublisher ( ) ;
604602 publisher . addEvents ( [ ] ) ;
@@ -662,19 +660,22 @@ describe('candleHelper', () => {
662660 } ) ;
663661
664662 it ( 'successfully creates an orderbook price map for each market' , async ( ) => {
665- await Promise . all ( [
666- OrderbookMidPricesCache . setPrice ( redisClient , 'BTC-USD' , '105000' ) ,
667- OrderbookMidPricesCache . setPrice ( redisClient , 'ISO-USD' , '115000' ) ,
668- OrderbookMidPricesCache . setPrice ( redisClient , 'ETH-USD' , '150000' ) ,
669- ] ) ;
663+ await updatePriceLevel ( 'BTC-USD' , '100000' , OrderSide . BUY ) ;
664+ await updatePriceLevel ( 'BTC-USD' , '110000' , OrderSide . SELL ) ;
665+
666+ await updatePriceLevel ( 'ISO-USD' , '110000' , OrderSide . BUY ) ;
667+ await updatePriceLevel ( 'ISO-USD' , '120000' , OrderSide . SELL ) ;
668+
669+ await updatePriceLevel ( 'ETH-USD' , '100000' , OrderSide . BUY ) ;
670+ await updatePriceLevel ( 'ETH-USD' , '200000' , OrderSide . SELL ) ;
670671
671672 const map = await getOrderbookMidPriceMap ( ) ;
672673 expect ( map ) . toEqual ( {
673674 'BTC-USD' : '105000' ,
674675 'ETH-USD' : '150000' ,
675676 'ISO-USD' : '115000' ,
676- 'ISO2-USD' : null ,
677- 'SHIB-USD' : null ,
677+ 'ISO2-USD' : undefined ,
678+ 'SHIB-USD' : undefined ,
678679 } ) ;
679680 } ) ;
680681} ) ;
0 commit comments