@@ -76,8 +76,16 @@ int Orderbook_init(Orderbook *self, PyObject *args, PyObject *kwds)
7676 PyErr_SetNone (PyExc_MemoryError );
7777 return -1 ;
7878 }
79- } else if ((checksum_str .len > 3 ) && ((strncmp (checksum_str .buf , "OKEX" , 4 ) == 0 ) || (strncmp (checksum_str .buf , "OKCO" , 4 ) == 0 ))) {
80- self -> checksum = OKEX ;
79+ } else if ((checksum_str .len > 2 ) && ((strncmp (checksum_str .buf , "OKX" , 3 ) == 0 ) || (strncmp (checksum_str .buf , "OKCO" , 4 ) == 0 ))) {
80+ self -> checksum = OKX ;
81+ self -> checksum_buffer = calloc (4096 , sizeof (uint8_t ));
82+ self -> checksum_len = 4096 ;
83+ if (!self -> checksum_buffer ) {
84+ PyErr_SetNone (PyExc_MemoryError );
85+ return -1 ;
86+ }
87+ } else if (strncmp (checksum_str .buf , "BITGET" , checksum_str .len ) == 0 ) {
88+ self -> checksum = BITGET ;
8189 self -> checksum_buffer = calloc (4096 , sizeof (uint8_t ));
8290 self -> checksum_len = 4096 ;
8391 if (!self -> checksum_buffer ) {
@@ -416,7 +424,7 @@ static PyObject* ftx_checksum(const Orderbook *ob, const uint32_t depth)
416424 PyObject * price = NULL ;
417425 PyObject * size = NULL ;
418426
419- for (uint32_t i = 0 ; i < depth ; ++ i ) { // 100 is the FTX defined number of price/size pairs to use from each side, 25 is OKEX /OKCOIN
427+ for (uint32_t i = 0 ; i < depth ; ++ i ) { // 100 is the FTX defined number of price/size pairs to use from each side, 25 is OKX /OKCOIN
420428 if (i < bids_size ) {
421429 price = PyTuple_GET_ITEM (ob -> bids -> keys , i );
422430 size = PyDict_GetItem (ob -> bids -> data , price );
@@ -457,7 +465,9 @@ static PyObject* calculate_checksum(const Orderbook *ob)
457465 return kraken_checksum (ob );
458466 case FTX :
459467 return ftx_checksum (ob , 100 );
460- case OKEX :
468+ case OKX :
469+ return ftx_checksum (ob , 25 );
470+ case BITGET :
461471 return ftx_checksum (ob , 25 );
462472 default :
463473 return NULL ;
0 commit comments