@@ -157,8 +157,8 @@ def __init__(
157
157
self ._initialize_timeout_height_sync_task ()
158
158
159
159
self ._tokens_and_markets_initialization_lock = asyncio .Lock ()
160
- self ._tokens_by_denom : Optional [ Dict [ str , Token ]] = None
161
- self ._tokens_by_symbol : Optional [ Dict [ str , Token ]] = None
160
+ self ._tokens_by_denom = dict ()
161
+ self ._tokens_by_symbol = dict ()
162
162
self ._spot_markets : Optional [Dict [str , SpotMarket ]] = None
163
163
self ._derivative_markets : Optional [Dict [str , DerivativeMarket ]] = None
164
164
self ._binary_option_markets : Optional [Dict [str , BinaryOptionMarket ]] = None
@@ -3291,87 +3291,81 @@ async def _initialize_tokens_and_markets(self):
3291
3291
derivative_markets = dict ()
3292
3292
binary_option_markets = dict ()
3293
3293
tokens_by_symbol , tokens_by_denom = await self ._tokens_from_official_lists (network = self .network )
3294
- markets_info = (await self .fetch_spot_markets (market_statuses = ["active" ]))["markets" ]
3295
- valid_markets = (
3296
- market_info
3297
- for market_info in markets_info
3298
- if len (market_info .get ("baseTokenMeta" , {}).get ("symbol" , "" )) > 0
3299
- and len (market_info .get ("quoteTokenMeta" , {}).get ("symbol" , "" )) > 0
3300
- )
3301
-
3302
- for market_info in valid_markets :
3303
- base_token = self ._token_representation (
3304
- token_meta = market_info ["baseTokenMeta" ],
3305
- denom = market_info ["baseDenom" ],
3306
- tokens_by_denom = tokens_by_denom ,
3307
- tokens_by_symbol = tokens_by_symbol ,
3308
- )
3309
- quote_token = self ._token_representation (
3310
- token_meta = market_info ["quoteTokenMeta" ],
3311
- denom = market_info ["quoteDenom" ],
3312
- tokens_by_denom = tokens_by_denom ,
3313
- tokens_by_symbol = tokens_by_symbol ,
3314
- )
3294
+ self ._tokens_by_denom .update (tokens_by_denom )
3295
+ self ._tokens_by_symbol .update (tokens_by_symbol )
3296
+
3297
+ markets_info = (await self .fetch_chain_spot_markets (status = "Active" ))["markets" ]
3298
+ for market_info in markets_info :
3299
+ base_token = self ._tokens_by_denom .get (market_info ["baseDenom" ])
3300
+ quote_token = self ._tokens_by_denom .get (market_info ["quoteDenom" ])
3315
3301
3316
3302
market = SpotMarket (
3317
3303
id = market_info ["marketId" ],
3318
- status = market_info ["marketStatus " ],
3304
+ status = market_info ["status " ],
3319
3305
ticker = market_info ["ticker" ],
3320
3306
base_token = base_token ,
3321
3307
quote_token = quote_token ,
3322
- maker_fee_rate = Decimal (market_info ["makerFeeRate" ]),
3323
- taker_fee_rate = Decimal (market_info ["takerFeeRate" ]),
3324
- service_provider_fee = Decimal (market_info ["serviceProviderFee" ]),
3325
- min_price_tick_size = Decimal (market_info ["minPriceTickSize" ]),
3326
- min_quantity_tick_size = Decimal (market_info ["minQuantityTickSize" ]),
3327
- min_notional = Decimal (market_info ["minNotional" ]),
3308
+ maker_fee_rate = Token .convert_value_from_extended_decimal_format (Decimal (market_info ["makerFeeRate" ])),
3309
+ taker_fee_rate = Token .convert_value_from_extended_decimal_format (Decimal (market_info ["takerFeeRate" ])),
3310
+ service_provider_fee = Token .convert_value_from_extended_decimal_format (
3311
+ Decimal (market_info ["relayerFeeShareRate" ])
3312
+ ),
3313
+ min_price_tick_size = Token .convert_value_from_extended_decimal_format (
3314
+ Decimal (market_info ["minPriceTickSize" ])
3315
+ ),
3316
+ min_quantity_tick_size = Token .convert_value_from_extended_decimal_format (
3317
+ Decimal (market_info ["minQuantityTickSize" ])
3318
+ ),
3319
+ min_notional = Token .convert_value_from_extended_decimal_format (Decimal (market_info ["minNotional" ])),
3328
3320
)
3329
3321
3330
3322
spot_markets [market .id ] = market
3331
3323
3332
- markets_info = (await self .fetch_derivative_markets (market_statuses = ["active" ]))["markets" ]
3333
- valid_markets = (
3334
- market_info
3335
- for market_info in markets_info
3336
- if len (market_info .get ("quoteTokenMeta" , {}).get ("symbol" , "" )) > 0
3337
- )
3338
-
3339
- for market_info in valid_markets :
3340
- quote_token = self ._token_representation (
3341
- token_meta = market_info ["quoteTokenMeta" ],
3342
- denom = market_info ["quoteDenom" ],
3343
- tokens_by_denom = tokens_by_denom ,
3344
- tokens_by_symbol = tokens_by_symbol ,
3345
- )
3346
-
3347
- market = DerivativeMarket (
3348
- id = market_info ["marketId" ],
3349
- status = market_info ["marketStatus" ],
3350
- ticker = market_info ["ticker" ],
3351
- oracle_base = market_info ["oracleBase" ],
3352
- oracle_quote = market_info ["oracleQuote" ],
3353
- oracle_type = market_info ["oracleType" ],
3354
- oracle_scale_factor = market_info ["oracleScaleFactor" ],
3355
- initial_margin_ratio = Decimal (market_info ["initialMarginRatio" ]),
3356
- maintenance_margin_ratio = Decimal (market_info ["maintenanceMarginRatio" ]),
3324
+ markets_info = (await self .fetch_chain_derivative_markets (status = "Active" , with_mid_price_and_tob = False ))[
3325
+ "markets"
3326
+ ]
3327
+ for market_info in markets_info :
3328
+ market = market_info ["market" ]
3329
+ quote_token = self ._tokens_by_denom .get (market ["quoteDenom" ])
3330
+
3331
+ derivative_market = DerivativeMarket (
3332
+ id = market ["marketId" ],
3333
+ status = market ["status" ],
3334
+ ticker = market ["ticker" ],
3335
+ oracle_base = market ["oracleBase" ],
3336
+ oracle_quote = market ["oracleQuote" ],
3337
+ oracle_type = market ["oracleType" ],
3338
+ oracle_scale_factor = market ["oracleScaleFactor" ],
3339
+ initial_margin_ratio = Token .convert_value_from_extended_decimal_format (
3340
+ Decimal (market ["initialMarginRatio" ])
3341
+ ),
3342
+ maintenance_margin_ratio = Token .convert_value_from_extended_decimal_format (
3343
+ Decimal (market ["maintenanceMarginRatio" ])
3344
+ ),
3357
3345
quote_token = quote_token ,
3358
- maker_fee_rate = Decimal (market_info ["makerFeeRate" ]),
3359
- taker_fee_rate = Decimal (market_info ["takerFeeRate" ]),
3360
- service_provider_fee = Decimal (market_info ["serviceProviderFee" ]),
3361
- min_price_tick_size = Decimal (market_info ["minPriceTickSize" ]),
3362
- min_quantity_tick_size = Decimal (market_info ["minQuantityTickSize" ]),
3363
- min_notional = Decimal (market_info ["minNotional" ]),
3346
+ maker_fee_rate = Token .convert_value_from_extended_decimal_format (Decimal (market ["makerFeeRate" ])),
3347
+ taker_fee_rate = Token .convert_value_from_extended_decimal_format (Decimal (market ["takerFeeRate" ])),
3348
+ service_provider_fee = Token .convert_value_from_extended_decimal_format (
3349
+ Decimal (market ["relayerFeeShareRate" ])
3350
+ ),
3351
+ min_price_tick_size = Token .convert_value_from_extended_decimal_format (
3352
+ Decimal (market ["minPriceTickSize" ])
3353
+ ),
3354
+ min_quantity_tick_size = Token .convert_value_from_extended_decimal_format (
3355
+ Decimal (market ["minQuantityTickSize" ])
3356
+ ),
3357
+ min_notional = Token .convert_value_from_extended_decimal_format (Decimal (market ["minNotional" ])),
3364
3358
)
3365
3359
3366
- derivative_markets [market .id ] = market
3360
+ derivative_markets [derivative_market .id ] = derivative_market
3367
3361
3368
- markets_info = (await self .fetch_binary_options_markets ( market_status = "active " ))["markets" ]
3362
+ markets_info = (await self .fetch_chain_binary_options_markets ( status = "Active " ))["markets" ]
3369
3363
for market_info in markets_info :
3370
- quote_token = tokens_by_denom . get (market_info ["quoteDenom" ], None )
3364
+ quote_token = self . _tokens_by_denom . get (market_info ["quoteDenom" ])
3371
3365
3372
3366
market = BinaryOptionMarket (
3373
3367
id = market_info ["marketId" ],
3374
- status = market_info ["marketStatus " ],
3368
+ status = market_info ["status " ],
3375
3369
ticker = market_info ["ticker" ],
3376
3370
oracle_symbol = market_info ["oracleSymbol" ],
3377
3371
oracle_provider = market_info ["oracleProvider" ],
@@ -3380,21 +3374,25 @@ async def _initialize_tokens_and_markets(self):
3380
3374
expiration_timestamp = market_info ["expirationTimestamp" ],
3381
3375
settlement_timestamp = market_info ["settlementTimestamp" ],
3382
3376
quote_token = quote_token ,
3383
- maker_fee_rate = Decimal (market_info ["makerFeeRate" ]),
3384
- taker_fee_rate = Decimal (market_info ["takerFeeRate" ]),
3385
- service_provider_fee = Decimal (market_info ["serviceProviderFee" ]),
3386
- min_price_tick_size = Decimal (market_info ["minPriceTickSize" ]),
3387
- min_quantity_tick_size = Decimal (market_info ["minQuantityTickSize" ]),
3388
- min_notional = Decimal (market_info ["minNotional" ]),
3377
+ maker_fee_rate = Token .convert_value_from_extended_decimal_format (Decimal (market_info ["makerFeeRate" ])),
3378
+ taker_fee_rate = Token .convert_value_from_extended_decimal_format (Decimal (market_info ["takerFeeRate" ])),
3379
+ service_provider_fee = Token .convert_value_from_extended_decimal_format (
3380
+ Decimal (market_info ["relayerFeeShareRate" ])
3381
+ ),
3382
+ min_price_tick_size = Token .convert_value_from_extended_decimal_format (
3383
+ Decimal (market_info ["minPriceTickSize" ])
3384
+ ),
3385
+ min_quantity_tick_size = Token .convert_value_from_extended_decimal_format (
3386
+ Decimal (market_info ["minQuantityTickSize" ])
3387
+ ),
3388
+ min_notional = Token .convert_value_from_extended_decimal_format (Decimal (market_info ["minNotional" ])),
3389
3389
settlement_price = None
3390
3390
if market_info ["settlementPrice" ] == ""
3391
- else Decimal (market_info ["settlementPrice" ]),
3391
+ else Token . convert_value_from_extended_decimal_format ( Decimal (market_info ["settlementPrice" ]) ),
3392
3392
)
3393
3393
3394
3394
binary_option_markets [market .id ] = market
3395
3395
3396
- self ._tokens_by_denom = tokens_by_denom
3397
- self ._tokens_by_symbol = tokens_by_symbol
3398
3396
self ._spot_markets = spot_markets
3399
3397
self ._derivative_markets = derivative_markets
3400
3398
self ._binary_option_markets = binary_option_markets
0 commit comments