Skip to content

A Gson bug can affect biance. #205

@tohidemyname

Description

@tohidemyname

Gson just fixed a critical bug:

google/gson#2068

"During deserialization of 'repeated' fields it peeks at the type of the internal Java field. The problem is that this field does not have the type List is all cases but for some types has specialized Protobuf subinterfaces. For example for List the internal field has the type com.google.protobuf.Internal.LongList.
So previously Gson erroneously created ArrayList instances even though Protobuf's LongList is not related to ArrayList. This worked because LongList is only an implementation detail, the Protobuf builder API seems to expect just List so it did not cause any problems that Gson used an ArrayList. (Still the behavior that Gson created ArrayList when asked for a LongList is arguably wrong.)"

This bug affects com.google.gson.Gson.fromJson(String,Class) of gson 2.12.1. It is called by the following locations:

<--VolumeParticipationFutureAlgoRequest.fromJson
<--QueryCurrentAlgoOpenOrdersSpotAlgoResponseOrdersInner.fromJson
<--TimeWeightedAveragePriceFutureAlgoResponse.fromJson
<--QuerySubOrdersFutureAlgoResponse.fromJson
<--QuerySubOrdersSpotAlgoResponse.fromJson
<--QueryHistoricalAlgoOrdersFutureAlgoResponse.fromJson
<--TimeWeightedAveragePriceSpotAlgoResponse.fromJson
<--QueryCurrentAlgoOpenOrdersFutureAlgoResponse.fromJson
<--CancelAlgoOrderFutureAlgoResponse.fromJson
<--CancelAlgoOrderSpotAlgoResponse.fromJson
<--QueryCurrentAlgoOpenOrdersFutureAlgoResponseOrdersInner.fromJson
<--QuerySubOrdersFutureAlgoResponseSubOrdersInner.fromJson
<--TimeWeightedAveragePriceSpotAlgoRequest.fromJson
<--QueryHistoricalAlgoOrdersSpotAlgoResponseOrdersInner.fromJson
<--TimeWeightedAveragePriceFutureAlgoRequest.fromJson
<--QueryHistoricalAlgoOrdersFutureAlgoResponseOrdersInner.fromJson
<--QueryHistoricalAlgoOrdersSpotAlgoResponse.fromJson
<--VolumeParticipationFutureAlgoResponse.fromJson
<--QueryCurrentAlgoOpenOrdersSpotAlgoResponse.fromJson
<--GetC2CTradeHistoryResponse.fromJson
<--GetC2CTradeHistoryResponseDataInner.fromJson
<--SessionResponse.fromJson
<--AcceptQuoteRequest.fromJson
<--QueryLimitOpenOrdersResponse.fromJson
<--ListAllConvertPairsResponseInner.fromJson
<--AcceptQuoteResponse.fromJson
<--QueryOrderQuantityPrecisionPerAssetResponseInner.fromJson
<--CancelLimitOrderRequest.fromJson
<--CancelLimitOrderResponse.fromJson
<--PlaceLimitOrderRequest.fromJson
<--QueryLimitOpenOrdersRequest.fromJson
<--SendQuoteRequestRequest.fromJson
<--ListAllConvertPairsResponse.fromJson
<--GetConvertTradeHistoryResponse.fromJson
<--QueryLimitOpenOrdersResponseListInner.fromJson
<--SendQuoteRequestResponse.fromJson
<--OrderStatusResponse.fromJson
<--QueryOrderQuantityPrecisionPerAssetResponse.fromJson
<--PlaceLimitOrderResponse.fromJson
<--GetConvertTradeHistoryResponseListInner.fromJson
<--GetFuturesLeadTraderStatusResponseData.fromJson
<--GetFuturesLeadTradingSymbolWhitelistResponseDataInner.fromJson
<--GetFuturesLeadTraderStatusResponse.fromJson
<--GetFuturesLeadTradingSymbolWhitelistResponse.fromJson
<--CheckCollateralRepayRateStableRateResponse.fromJson
<--GetFlexibleLoanCollateralAssetsDataResponseRowsInner.fromJson
<--GetFlexibleLoanRepaymentHistoryResponseRowsInner.fromJson
<--FlexibleLoanRepayResponse.fromJson
<--GetCryptoLoansIncomeHistoryResponse.fromJson
<--GetFlexibleLoanOngoingOrdersResponseRowsInner.fromJson
<--GetLoanBorrowHistoryResponse.fromJson
<--FlexibleLoanAdjustLtvResponse.fromJson
<--GetFlexibleLoanLiquidationHistoryResponseRowsInner.fromJson
<--GetLoanLtvAdjustmentHistoryResponse.fromJson
<--GetFlexibleLoanAssetsDataResponseRowsInner.fromJson
<--GetFlexibleLoanBorrowHistoryResponseRowsInner.fromJson
<--FlexibleLoanBorrowResponse.fromJson
<--GetFlexibleLoanAssetsDataResponse.fromJson
<--GetFlexibleLoanBorrowHistoryResponse.fromJson
<--GetFlexibleLoanLtvAdjustmentHistoryResponse.fromJson
<--GetFlexibleLoanLiquidationHistoryResponse.fromJson
<--GetCryptoLoansIncomeHistoryResponseInner.fromJson
<--FlexibleLoanAdjustLtvRequest.fromJson
<--GetLoanBorrowHistoryResponseRowsInner.fromJson
<--GetLoanRepaymentHistoryResponseRowsInner.fromJson
<--GetFlexibleLoanRepaymentHistoryResponse.fromJson
<--GetLoanRepaymentHistoryResponse.fromJson
<--FlexibleLoanBorrowRequest.fromJson
<--FlexibleLoanRepayRequest.fromJson
<--GetFlexibleLoanOngoingOrdersResponse.fromJson
<--GetFlexibleLoanLtvAdjustmentHistoryResponseRowsInner.fromJson
<--GetFlexibleLoanCollateralAssetsDataResponse.fromJson
<--GetLoanLtvAdjustmentHistoryResponseRowsInner.fromJson
<--CheckCollateralRepayRateResponse.fromJson
<--CurrentAllOpenOrdersResponseInner.fromJson
<--ContinuousContractKlineCandlestickDataResponseItem.fromJson
<--QueryIndexPriceConstituentsResponse.fromJson
<--OrderIdList.fromJson
<--ExchangeInformationResponseSymbolsInnerFiltersInner.fromJson
<--TakerBuySellVolumeResponse.fromJson
<--GetFundingRateInfoResponse.fromJson
<--SymbolPriceTickerResponseInner.fromJson
<--GetFundingRateHistoryOfPerpetualFuturesResponseInner.fromJson
<--GetOrderModifyHistoryResponseInnerAmendmentPrice.fromJson
<--AccountTradeListResponse.fromJson
<--RecentTradesListResponseInner.fromJson
<--GetFundingRateInfoResponseInner.fromJson
<--ModifyIsolatedPositionMarginRequest.fromJson
<--ModifyMultipleOrdersRequest.fromJson
<--ModifyOrderRequest.fromJson
<--GetPositionMarginChangeHistoryResponse.fromJson
<--CancelAllOpenOrdersResponse.fromJson
<--CompressedAggregateTradesListResponseInner.fromJson
<--Ticker24hrPriceChangeStatisticsResponse.fromJson
<--IndexPriceKlineCandlestickDataResponse.fromJson
<--ModifyIsolatedPositionMarginResponse.fromJson
<--ExchangeInformationResponseRateLimitsInner.fromJson
<--LongShortRatioResponseInner.fromJson
<--GetFuturesOrderHistoryDownloadLinkByIdResponse.fromJson
<--LongShortRatioResponse.fromJson
<--OldTradesLookupResponse.fromJson
<--PremiumIndexKlineDataResponse.fromJson
<--PremiumIndexKlineDataResponseItem.fromJson
<--PositionInformationResponse.fromJson
<--PremiumIndexKlineDataResponseItemInner.fromJson
<--TopTraderLongShortRatioPositionsResponseInner.fromJson
<--GetDownloadIdForFuturesTradeHistoryResponse.fromJson
<--TopTraderLongShortRatioPositionsResponse.fromJson
<--NotionalBracketForPairResponseInner.fromJson
<--CompressedAggregateTradesListResponse.fromJson
<--FuturesAccountBalanceResponseInner.fromJson
<--BasisResponse.fromJson
<--TopTraderLongShortRatioAccountsResponseInner.fromJson
<--OpenInterestResponse.fromJson
<--TakerBuySellVolumeResponseInner.fromJson
<--ChangeMarginTypeResponse.fromJson
<--GetOrderModifyHistoryResponseInner.fromJson
<--SymbolPriceTickerResponse.fromJson
<--RecentTradesListResponse.fromJson
<--ChangePositionModeResponse.fromJson
<--ContinuousContractKlineCandlestickDataResponseItemInner.fromJson
<--PositionAdlQuantileEstimationResponse.fromJson
<--AutoCancelAllOpenOrdersRequest.fromJson
<--ChangeMarginTypeRequest.fromJson
<--GetDownloadIdForFuturesTransactionHistoryResponse.fromJson
<--MarkPriceKlineCandlestickDataResponseItem.fromJson
<--OrigClientOrderIdList.fromJson
<--StartUserDataStreamResponse.fromJson
<--ContinuousContractKlineCandlestickDataResponse.fromJson
<--GetFuturesTradeDownloadLinkByIdResponse.fromJson
<--UsersForceOrdersResponseInner.fromJson
<--NewOrderRequest.fromJson
<--ChangeInitialLeverageRequest.fromJson
<--BasisResponseInner.fromJson
<--BatchOrdersInner.fromJson
<--GetPositionMarginChangeHistoryResponseInner.fromJson
<--OpenInterestStatisticsResponse.fromJson
<--GetIncomeHistoryResponseInner.fromJson
<--OrderBookResponseBidsItem.fromJson
<--ExchangeInformationResponse.fromJson
<--ChangeInitialLeverageResponse.fromJson
<--ModifyOrderResponse.fromJson
<--AllOrdersResponse.fromJson
<--ClassicPortfolioMarginAccountInformationResponse.fromJson
<--AccountTradeListResponseInner.fromJson
<--CurrentAllOpenOrdersResponse.fromJson
<--NotionalBracketForSymbolResponse.fromJson
<--ModifyMultipleOrdersResponseInner.fromJson
<--PositionAdlQuantileEstimationResponseInnerAdlQuantile.fromJson
<--NotionalBracketForPairResponse.fromJson
<--ExchangeInformationResponseSymbolsInner.fromJson
<--OldTradesLookupResponseInner.fromJson
<--GetIncomeHistoryResponse.fromJson
<--KlineCandlestickDataResponseItem.fromJson
<--QueryIndexPriceConstituentsResponseConstituentsInner.fromJson
<--GetCurrentPositionModeResponse.fromJson
<--ModifyMultipleOrdersResponse.fromJson
<--ChangePositionModeRequest.fromJson
<--KlineCandlestickDataResponse.fromJson
<--NotionalBracketForSymbolResponseInner.fromJson
<--AccountInformationResponseAssetsInner.fromJson
<--NotionalBracketForPairResponseInnerBracketsInner.fromJson
<--CheckServerTimeResponse.fromJson
<--MarkPriceKlineCandlestickDataResponse.fromJson
<--MarkPriceKlineCandlestickDataResponseItemInner.fromJson
<--OrderBookResponseAsksItem.fromJson
<--CancelMultipleOrdersResponseInner.fromJson
<--CancelOrderResponse.fromJson
<--GetOrderModifyHistoryResponse.fromJson
<--AccountInformationResponse.fromJson
<--IndexPriceAndMarkPriceResponseInner.fromJson
<--PositionInformationResponseInner.fromJson
<--Ticker24hrPriceChangeStatisticsResponseInner.fromJson
<--IndexPriceKlineCandlestickDataResponseItemInner.fromJson
<--GetDownloadIdForFuturesOrderHistoryResponse.fromJson
<--IndexPriceAndMarkPriceResponse.fromJson
<--GetOrderModifyHistoryResponseInnerAmendment.fromJson
<--OpenInterestStatisticsResponseInner.fromJson
<--GetFundingRateHistoryOfPerpetualFuturesResponse.fromJson
<--GetOrderModifyHistoryResponseInnerAmendmentOrigQty.fromJson
<--AllOrdersResponseInner.fromJson
<--PositionAdlQuantileEstimationResponseInner.fromJson
<--QueryCurrentOpenOrderResponse.fromJson
<--SymbolOrderBookTickerResponse.fromJson
<--TopTraderLongShortRatioAccountsResponse.fromJson
<--BatchOrders.fromJson
<--QueryOrderResponse.fromJson
<--UsersForceOrdersResponse.fromJson
<--CancelMultipleOrdersResponse.fromJson
<--SymbolOrderBookTickerResponseInner.fromJson
<--OrderBookResponse.fromJson
<--GetFuturesTransactionHistoryDownloadLinkByIdResponse.fromJson
<--AccountInformationResponsePositionsInner.fromJson
<--FuturesAccountBalanceResponse.fromJson
<--NewOrderResponse.fromJson
<--IndexPriceKlineCandlestickDataResponseItem.fromJson
<--UserCommissionRateResponse.fromJson
<--CancelOrderResponseRateLimitsInner.fromJson
<--ModifyOrderRequest.fromJson
<--KeepaliveUserDataStreamRequest.fromJson
<--AccountInformationResponseResultPositionsInner.fromJson
<--QueryOrderRequest.fromJson
<--QueryOrderResponse.fromJson
<--NewOrderResponseResult.fromJson
<--FuturesAccountBalanceResponse.fromJson
<--CancelOrderResponseResult.fromJson
<--FuturesAccountBalanceRequest.fromJson
<--ModifyOrderResponseResult.fromJson
<--CloseUserDataStreamResponseRateLimitsInner.fromJson
<--AccountInformationResponseRateLimitsInner.fromJson
<--KeepaliveUserDataStreamResponseResult.fromJson
<--PositionInformationRequest.fromJson
<--QueryOrderResponseResult.fromJson
<--PositionInformationResponse.fromJson
<--PositionInformationResponseResultInner.fromJson
<--AccountInformationRequest.fromJson
<--ModifyOrderResponse.fromJson
<--AccountInformationResponse.fromJson
<--StartUserDataStreamResponseResult.fromJson
<--FuturesAccountBalanceResponseResultInner.fromJson
<--AccountInformationResponseResultAssetsInner.fromJson
<--KeepaliveUserDataStreamResponse.fromJson
<--StartUserDataStreamResponseRateLimitsInner.fromJson
<--CancelOrderRequest.fromJson
<--CancelOrderResponse.fromJson
<--StartUserDataStreamResponse.fromJson
<--CloseUserDataStreamResponse.fromJson
<--StartUserDataStreamRequest.fromJson
<--AccountInformationResponseResult.fromJson
<--CloseUserDataStreamRequest.fromJson
<--NewOrderResponse.fromJson
<--NewOrderRequest.fromJson
<--ContractInfoStreamResponse.fromJson
<--PartialBookDepthStreamsResponseBItem.fromJson
<--LiquidationOrderStreamsResponse.fromJson
<--MarkPriceOfAllSymbolsOfAPairRequest.fromJson
<--IndividualSymbolTickerStreamsRequest.fromJson
<--OrderTradeUpdateO.fromJson
<--DiffBookDepthStreamsResponse.fromJson
<--IndexKlineCandlestickStreamsResponseK.fromJson
<--AllMarketMiniTickersStreamResponse.fromJson
<--AggregateTradeStreamsRequest.fromJson
<--DiffBookDepthStreamsRequest.fromJson
<--AllMarketTickersStreamsRequest.fromJson
<--AllBookTickersStreamResponse.fromJson
<--IndexKlineCandlestickStreamsResponse.fromJson
<--MarkPriceKlineCandlestickStreamsResponseK.fromJson
<--AccountUpdateABInner.fromJson
<--AllMarketMiniTickersStreamRequest.fromJson
<--AllMarketMiniTickersStreamResponseInner.fromJson
<--KlineCandlestickStreamsResponseK.fromJson
<--OrderTradeUpdate.fromJson
<--PartialBookDepthStreamsResponseAItem.fromJson
<--AllMarketTickersStreamsResponseInner.fromJson
<--IndexKlineCandlestickStreamsRequest.fromJson
<--AccountUpdate.fromJson
<--PartialBookDepthStreamsRequest.fromJson
<--AllMarketTickersStreamsResponse.fromJson
<--AllMarketLiquidationOrderStreamsResponse.fromJson
<--StrategyUpdate.fromJson
<--MarkPriceOfAllSymbolsOfAPairResponseInner.fromJson
<--MarkPriceStreamRequest.fromJson
<--ContractInfoStreamResponseBksInner.fromJson
<--GridUpdateGu.fromJson
<--AllMarketLiquidationOrderStreamsRequest.fromJson
<--MarkPriceKlineCandlestickStreamsRequest.fromJson
<--IndexPriceStreamResponse.fromJson
<--IndividualSymbolTickerStreamsResponse.fromJson
<--AggregateTradeStreamsResponse.fromJson
<--LiquidationOrderStreamsRequest.fromJson
<--KlineCandlestickStreamsRequest.fromJson
<--AccountUpdateA.fromJson
<--IndividualSymbolBookTickerStreamsResponse.fromJson
<--KlineCandlestickStreamsResponse.fromJson
<--UserDataStreamEventsResponse.fromJson
<--MarkPriceKlineCandlestickStreamsResponse.fromJson
<--Listenkeyexpired.fromJson
<--MarginCall.fromJson
<--MarginCallPInner.fromJson
<--AllMarketLiquidationOrderStreamsResponseO.fromJson
<--StrategyUpdateSu.fromJson
<--MarkPriceStreamResponse.fromJson
<--IndexPriceStreamRequest.fromJson
<--IndividualSymbolBookTickerStreamsRequest.fromJson
<--DiffBookDepthStreamsResponseAItem.fromJson
<--AccountConfigUpdateAc.fromJson
<--AccountConfigUpdate.fromJson
<--MarkPriceOfAllSymbolsOfAPairResponse.fromJson
<--IndividualSymbolMiniTickerStreamRequest.fromJson
<--DiffBookDepthStreamsResponseBItem.fromJson
<--GridUpdate.fromJson
<--PartialBookDepthStreamsResponse.fromJson
<--AllBookTickersStreamRequest.fromJson
<--IndividualSymbolMiniTickerStreamResponse.fromJson
<--ContractInfoStreamRequest.fromJson
<--AccountUpdateAPInner.fromJson
<--OptionPositionInformationResponse.fromJson
<--AccountBlockTradeListResponseInnerLegsInner.fromJson
<--ExchangeInformationResponseOptionContractsInner.fromJson
<--PlaceMultipleOrdersResponse.fromJson
<--CancelOptionOrderResponse.fromJson
<--AutoCancelAllOpenOrdersRequest.fromJson
<--IndexPriceTickerResponse.fromJson
<--QueryCurrentOpenOptionOrdersResponse.fromJson
<--OpenInterestResponseInner.fromJson
<--SetMarketMakerProtectionConfigRequest.fromJson
<--OrderBookResponseAsksItem.fromJson
<--GetDownloadIdForOptionTransactionHistoryResponse.fromJson
<--HistoricalExerciseRecordsResponse.fromJson
<--QueryBlockTradeOrderResponseInner.fromJson
<--AutoCancelAllOpenOrdersResponse.fromJson
<--AccountFundingFlowResponse.fromJson
<--QueryBlockTradeDetailsResponseLegsInner.fromJson
<--AcceptBlockTradeOrderResponseLegsInner.fromJson
<--KlineCandlestickDataResponse.fromJson
<--OptionMarginAccountInformationResponseAssetInner.fromJson
<--CancelAllOptionOrdersByUnderlyingResponse.fromJson
<--CheckServerTimeResponse.fromJson
<--NewBlockTradeOrderResponse.fromJson
<--ExtendBlockTradeOrderResponse.fromJson
<--CancelMultipleOptionOrdersResponse.fromJson
<--ExchangeInformationResponseOptionSymbolsInnerFiltersInner.fromJson
<--AccountFundingFlowResponseInner.fromJson
<--OptionAccountInformationResponseGreekInner.fromJson
<--OrdersInner.fromJson
<--CancelAllOptionOrdersOnSpecificSymbolResponse.fromJson
<--Legs.fromJson
<--PlaceMultipleOrdersResponseInner.fromJson
<--CancelMultipleOptionOrdersResponseInner.fromJson
<--RecentBlockTradesListResponse.fromJson
<--OldTradesLookupResponseInner.fromJson
<--QuerySingleOrderResponse.fromJson
<--QueryBlockTradeDetailsResponse.fromJson
<--Ticker24hrPriceChangeStatisticsResponse.fromJson
<--OptionMarkPriceResponse.fromJson
<--QueryBlockTradeOrderResponse.fromJson
<--QueryOptionOrderHistoryResponse.fromJson
<--AcceptBlockTradeOrderResponse.fromJson
<--SetAutoCancelAllOpenOrdersRequest.fromJson
<--OptionAccountInformationResponseAssetInner.fromJson
<--AcceptBlockTradeOrderRequest.fromJson
<--OptionPositionInformationResponseInner.fromJson
<--AccountTradeListResponse.fromJson
<--NewOrderResponse.fromJson
<--QueryCurrentOpenOptionOrdersResponseInner.fromJson
<--OpenInterestResponse.fromJson
<--ClientOrderIds.fromJson
<--GetMarketMakerProtectionConfigResponse.fromJson
<--OldTradesLookupResponse.fromJson
<--ExtendBlockTradeOrderResponseLegsInner.fromJson
<--ExchangeInformationResponseRateLimitsInner.fromJson
<--RecentTradesListResponse.fromJson
<--ExtendBlockTradeOrderRequest.fromJson
<--HistoricalExerciseRecordsResponseInner.fromJson
<--UserExerciseRecordResponse.fromJson
<--ResetMarketMakerProtectionConfigRequest.fromJson
<--OptionAccountInformationResponse.fromJson
<--NewBlockTradeOrderRequest.fromJson
<--SetAutoCancelAllOpenOrdersResponse.fromJson
<--StartUserDataStreamResponse.fromJson
<--ExchangeInformationResponseOptionAssetsInner.fromJson
<--AccountTradeListResponseInner.fromJson
<--RecentTradesListResponseInner.fromJson
<--GetOptionTransactionHistoryDownloadLinkByIdResponse.fromJson
<--NewOrderRequest.fromJson
<--UserExerciseRecordResponseInner.fromJson
<--OrderBookResponseBidsItem.fromJson
<--OrderIds.fromJson
<--SetMarketMakerProtectionConfigResponse.fromJson
<--ExchangeInformationResponseOptionSymbolsInner.fromJson
<--RecentBlockTradesListResponseInner.fromJson
<--Orders.fromJson
<--OrderBookResponse.fromJson
<--OptionMarginAccountInformationResponse.fromJson
<--KlineCandlestickDataResponseInner.fromJson
<--SymbolPriceTickerResponse.fromJson
<--AccountBlockTradeListResponseInner.fromJson
<--ExchangeInformationResponse.fromJson
<--OptionMarkPriceResponseInner.fromJson
<--PlaceMultipleOrdersRequest.fromJson
<--GetAutoCancelAllOpenOrdersResponse.fromJson
<--Ticker24hrPriceChangeStatisticsResponseInner.fromJson
<--AccountBlockTradeListResponse.fromJson
<--QueryOptionOrderHistoryResponseInner.fromJson
<--ResetMarketMakerProtectionConfigResponse.fromJson
<--Ticker24HourByUnderlyingAssetAndExpirationDataResponse.fromJson
<--Ticker24HourResponse.fromJson
<--RiskLevelChange.fromJson
<--MarkPriceResponse.fromJson
<--Ticker24HourByUnderlyingAssetAndExpirationDataRequest.fromJson
<--TradeStreamsRequest.fromJson
<--MarkPriceRequest.fromJson
<--NewSymbolInfoRequest.fromJson
<--OpenInterestRequest.fromJson
<--IndexPriceStreamsResponse.fromJson
<--Ticker24HourRequest.fromJson
<--KlineCandlestickStreamsRequest.fromJson
<--OpenInterestResponseInner.fromJson
<--NewSymbolInfoResponse.fromJson
<--PartialBookDepthStreamsResponseBItem.fromJson
<--UserDataStreamEventsResponse.fromJson
<--KlineCandlestickStreamsResponse.fromJson
<--AccountUpdateBInner.fromJson
<--AccountUpdateGInner.fromJson
<--MarkPriceResponseInner.fromJson
<--OpenInterestResponse.fromJson
<--OrderTradeUpdateOInner.fromJson
<--OrderTradeUpdateOInnerFiInner.fromJson
<--KlineCandlestickStreamsResponseK.fromJson
<--AccountUpdatePInner.fromJson
<--IndexPriceStreamsRequest.fromJson
<--PartialBookDepthStreamsResponse.fromJson
<--PartialBookDepthStreamsResponseAItem.fromJson
<--TradeStreamsResponse.fromJson
<--OrderTradeUpdate.fromJson
<--AccountUpdate.fromJson
<--PartialBookDepthStreamsRequest.fromJson
<--MarginAccountTradeListResponseInner.fromJson
<--QueryCurrentUmOpenOrderResponse.fromJson
<--CmPositionAdlQuantileEstimationResponseInner.fromJson
<--GetUmIncomeHistoryResponse.fromJson
<--GetDownloadIdForUmFuturesTradeHistoryResponse.fromJson
<--AccountBalanceResponse.fromJson
<--GetUmAccountDetailV2ResponsePositionsInner.fromJson
<--ToggleBnbBurnOnUmFuturesTradeResponse.fromJson
<--QueryAllUmConditionalOrdersResponse.fromJson
<--GetDownloadIdForUmFuturesOrderHistoryResponse.fromJson
<--ChangeAutoRepayFuturesStatusResponse.fromJson
<--GetUmCurrentPositionModeResponse.fromJson
<--QueryAllCurrentUmOpenOrdersResponseInner.fromJson
<--CancelAllCmOpenOrdersResponse.fromJson
<--QueryUsersMarginForceOrdersResponse.fromJson
<--GetCmIncomeHistoryResponse.fromJson
<--GetUserCommissionRateForUmResponse.fromJson
<--UmFuturesSymbolConfigurationResponse.fromJson
<--QueryCurrentMarginOpenOrderResponseInner.fromJson
<--StartUserDataStreamResponse.fromJson
<--QueryAllMarginAccountOrdersResponse.fromJson
<--QueryUmModifyOrderHistoryResponse.fromJson
<--QueryAllCurrentCmOpenOrdersResponse.fromJson
<--CancelUmOrderResponse.fromJson
<--QueryMarginAccountsOcoResponseOrdersInner.fromJson
<--FundAutoCollectionResponse.fromJson
<--QueryAllCmOrdersResponse.fromJson
<--QueryCurrentCmOpenConditionalOrderResponse.fromJson
<--QueryUsersCmForceOrdersResponseInner.fromJson
<--QueryAllCmConditionalOrdersResponse.fromJson
<--QueryMarginLoanRecordResponse.fromJson
<--GetUmAccountDetailResponse.fromJson
<--QueryCmPositionInformationResponse.fromJson
<--CancelUmConditionalOrderResponse.fromJson
<--ChangeUmPositionModeResponse.fromJson
<--QueryAllUmOrdersResponse.fromJson
<--QueryUsersUmForceOrdersResponseInner.fromJson
<--QueryAllCurrentCmOpenConditionalOrdersResponse.fromJson
<--GetUserCommissionRateForCmResponse.fromJson
<--MarginAccountRepayResponse.fromJson
<--QueryAllUmConditionalOrdersResponseInner.fromJson
<--QueryMarginAccountsOpenOcoResponse.fromJson
<--NewMarginOrderRequest.fromJson
<--UmPositionAdlQuantileEstimationResponseInner.fromJson
<--CmNotionalAndLeverageBracketsResponse.fromJson
<--GetUmIncomeHistoryResponseInner.fromJson
<--GetCmAccountDetailResponseAssetsInner.fromJson
<--MarginAccountNewOcoRequest.fromJson
<--NewMarginOrderResponseFillsInner.fromJson
<--MarginAccountBorrowResponse.fromJson
<--UmAccountTradeListResponseInner.fromJson
<--UmPositionAdlQuantileEstimationResponse.fromJson
<--GetUmAccountDetailV2ResponseAssetsInner.fromJson
<--BnbTransferRequest.fromJson
<--GetCmAccountDetailResponsePositionsInner.fromJson
<--QueryUmOrderResponse.fromJson
<--CmAccountTradeListResponse.fromJson
<--MarginAccountNewOcoResponse.fromJson
<--GetUmAccountDetailV2Response.fromJson
<--QueryUserRateLimitResponseInner.fromJson
<--FundCollectionByAssetRequest.fromJson
<--QueryAllCurrentUmOpenOrdersResponse.fromJson
<--QueryUmPositionInformationResponseInner.fromJson
<--NewUmOrderRequest.fromJson
<--AccountInformationResponse.fromJson
<--ChangeUmPositionModeRequest.fromJson
<--QueryAllCmOrdersResponseInner.fromJson
<--QueryMarginMaxWithdrawResponse.fromJson
<--AccountBalanceResponse1Inner.fromJson
<--ChangeCmPositionModeRequest.fromJson
<--QueryCurrentCmOpenOrderResponse.fromJson
<--GetCmIncomeHistoryResponseInner.fromJson
<--NewCmOrderRequest.fromJson
<--QueryUmConditionalOrderHistoryResponse.fromJson
<--MarginMaxBorrowResponse.fromJson
<--FundCollectionByAssetResponse.fromJson
<--GetUmFuturesBnbBurnStatusResponse.fromJson
<--QueryCmOrderResponse.fromJson
<--QueryMarginAccountsAllOcoResponse.fromJson
<--CancelAllUmOpenConditionalOrdersResponse.fromJson
<--QueryCmPositionInformationResponseInner.fromJson
<--QueryCurrentMarginOpenOrderResponse.fromJson
<--QueryUsersMarginForceOrdersResponseRowsInner.fromJson
<--CmAccountTradeListResponseInner.fromJson
<--GetUmFuturesOrderDownloadLinkByIdResponse.fromJson
<--QueryMarginAccountsOcoResponse.fromJson
<--ChangeCmInitialLeverageResponse.fromJson
<--GetCmCurrentPositionModeResponse.fromJson
<--CancelCmConditionalOrderResponse.fromJson
<--CmNotionalAndLeverageBracketsResponseInner.fromJson
<--RepayFuturesNegativeBalanceRequest.fromJson
<--ChangeCmPositionModeResponse.fromJson
<--UmAccountTradeListResponse.fromJson
<--QueryAllCurrentUmOpenConditionalOrdersResponse.fromJson
<--AccountBalanceResponse1.fromJson
<--ModifyUmOrderResponse.fromJson
<--NewUmConditionalOrderRequest.fromJson
<--QueryAllMarginAccountOrdersResponseInner.fromJson
<--NewCmConditionalOrderResponse.fromJson
<--QueryUsersUmForceOrdersResponse.fromJson
<--ModifyCmOrderRequest.fromJson
<--CancelMarginAccountOcoOrdersResponse.fromJson
<--CancelMarginAccountOrderResponse.fromJson
<--NewUmOrderResponse.fromJson
<--QueryCmModifyOrderHistoryResponseInnerAmendment.fromJson
<--MarginAccountRepayRequest.fromJson
<--QueryUsersCmForceOrdersResponse.fromJson
<--MarginAccountNewOcoResponseOrderReportsInner.fromJson
<--GetUmFuturesTradeDownloadLinkByIdResponse.fromJson
<--GetUmFuturesTransactionDownloadLinkByIdResponse.fromJson
<--QueryUmPositionInformationResponse.fromJson
<--UmNotionalAndLeverageBracketsResponse.fromJson
<--ModifyCmOrderResponse.fromJson
<--GetAutoRepayFuturesStatusResponse.fromJson
<--QueryCmModifyOrderHistoryResponseInner.fromJson
<--MarginAccountNewOcoResponseOrdersInner.fromJson
<--QueryUmModifyOrderHistoryResponseInner.fromJson
<--NewCmConditionalOrderRequest.fromJson
<--GetCmAccountDetailResponse.fromJson
<--MarginAccountRepayDebtRequest.fromJson
<--QueryMarginAccountsOpenOcoResponseInner.fromJson
<--RepayFuturesNegativeBalanceResponse.fromJson
<--CancelAllUmOpenOrdersResponse.fromJson
<--CancelCmOrderResponse.fromJson
<--ChangeUmInitialLeverageRequest.fromJson
<--NewMarginOrderResponse.fromJson
<--UmNotionalAndLeverageBracketsResponseInner.fromJson
<--MarginAccountBorrowRequest.fromJson
<--CancelAllCmOpenConditionalOrdersResponse.fromJson
<--ModifyUmOrderRequest.fromJson
<--QueryMarginRepayRecordResponse.fromJson
<--UmFuturesAccountConfigurationResponse.fromJson
<--ToggleBnbBurnOnUmFuturesTradeRequest.fromJson
<--GetUmAccountDetailResponsePositionsInner.fromJson
<--QueryCmConditionalOrderHistoryResponse.fromJson
<--MarginAccountRepayDebtResponse.fromJson
<--QueryMarginRepayRecordResponseRowsInner.fromJson
<--NewUmConditionalOrderResponse.fromJson
<--ChangeCmInitialLeverageRequest.fromJson
<--NewCmOrderResponse.fromJson
<--QueryCurrentUmOpenConditionalOrderResponse.fromJson
<--QueryMarginAccountsAllOcoResponseInner.fromJson
<--ChangeAutoRepayFuturesStatusRequest.fromJson
<--QueryCmModifyOrderHistoryResponse.fromJson
<--QueryUserRateLimitResponse.fromJson
<--QueryMarginLoanRecordResponseRowsInner.fromJson
<--BnbTransferResponse.fromJson
<--CmPositionAdlQuantileEstimationResponse.fromJson
<--QueryAllCmConditionalOrdersResponseInner.fromJson
<--QueryMarginAccountOrderResponse.fromJson
<--ChangeUmInitialLeverageResponse.fromJson
<--AccountBalanceResponse2.fromJson
<--FundAutoCollectionRequest.fromJson
<--GetMarginBorrowLoanInterestHistoryResponse.fromJson
<--MarginAccountTradeListResponse.fromJson
<--UmFuturesSymbolConfigurationResponseInner.fromJson
<--CancelMarginAccountOcoOrdersResponseOrdersInner.fromJson
<--Listenkeyexpired.fromJson
<--ConditionalOrderTradeUpdate.fromJson
<--AccountUpdateAPInner.fromJson
<--AccountUpdateA.fromJson
<--Liabilitychange.fromJson
<--AccountConfigUpdateAc.fromJson
<--AccountConfigUpdate.fromJson
<--OpenorderlossOInner.fromJson
<--AccountUpdateABInner.fromJson
<--ConditionalOrderTradeUpdateSo.fromJson
<--Risklevelchange.fromJson
<--AccountUpdate.fromJson
<--Openorderloss.fromJson
<--OutboundaccountpositionBInner.fromJson
<--Balanceupdate.fromJson
<--OrderTradeUpdateO.fromJson
<--Outboundaccountposition.fromJson
<--UserDataStreamEventsResponse.fromJson
<--Executionreport.fromJson
<--OrderTradeUpdate.fromJson
<--ChangeAutoRepayFuturesStatusRequest.fromJson
<--RedeemBfusdForPortfolioMarginResponse.fromJson
<--BnbTransferResponse.fromJson
<--GetPortfolioMarginProAccountInfoResponse.fromJson
<--TransferLdusdtForPortfolioMarginResponse.fromJson
<--GetPortfolioMarginAssetLeverageResponse.fromJson
<--TransferLdusdtForPortfolioMarginRequest.fromJson
<--RedeemBfusdForPortfolioMarginRequest.fromJson
<--RepayFuturesNegativeBalanceResponse.fromJson
<--ChangeAutoRepayFuturesStatusResponse.fromJson
<--FundCollectionByAssetResponse.fromJson
<--MintBfusdForPortfolioMarginResponse.fromJson
<--FundAutoCollectionRequest.fromJson
<--PortfolioMarginCollateralRateResponse.fromJson
<--FundCollectionByAssetRequest.fromJson
<--BnbTransferRequest.fromJson
<--MintBfusdForPortfolioMarginRequest.fromJson
<--FundAutoCollectionResponse.fromJson
<--RepayFuturesNegativeBalanceRequest.fromJson
<--GetAutoRepayFuturesStatusResponse.fromJson
<--UserDataStreamEventsResponse.fromJson
<--Risklevelchange.fromJson
<--UsersForceOrdersResponse.fromJson
<--SymbolPriceTickerV2Response2Inner.fromJson
<--NotionalAndLeverageBracketsResponse1Inner.fromJson
<--Ticker24hrPriceChangeStatisticsResponse2Inner.fromJson
<--NewAlgoOrderRequest.fromJson
<--BatchOrders.fromJson
<--QueryInsuranceFundBalanceSnapshotResponse1.fromJson
<--ChangeMultiAssetsModeResponse.fromJson
<--AccountInformationV2ResponseAssetsInner.fromJson
<--MarkPriceKlineCandlestickDataResponse.fromJson
<--UserCommissionRateResponse.fromJson
<--AccountInformationV3Response.fromJson
<--GetDownloadIdForFuturesTransactionHistoryResponse.fromJson
<--NewOrderResponse.fromJson
<--AccountInformationV2ResponsePositionsInner.fromJson
<--PremiumIndexKlineDataResponseItemInner.fromJson
<--ModifyOrderResponse.fromJson
<--FuturesTradfiPerpsContractResponse.fromJson
<--GetFundingRateHistoryResponse.fromJson
<--PositionAdlQuantileEstimationResponseInner.fromJson
<--CancelAllAlgoOpenOrdersResponse.fromJson
<--SymbolOrderBookTickerResponse2.fromJson
<--GetIncomeHistoryResponse.fromJson
<--ExchangeInformationResponseSymbolsInner.fromJson
<--OldTradesLookupResponseInner.fromJson
<--KlineCandlestickDataResponseItem.fromJson
<--ModifyIsolatedPositionMarginRequest.fromJson
<--ModifyMultipleOrdersRequest.fromJson
<--LongShortRatioResponse.fromJson
<--SymbolPriceTickerResponse.fromJson
<--ContinuousContractKlineCandlestickDataResponseItemInner.fromJson
<--StartUserDataStreamResponse.fromJson
<--QuarterlyContractSettlementPriceResponse.fromJson
<--ExchangeInformationResponse.fromJson
<--FuturesTradingQuantitativeRulesIndicatorsResponse.fromJson
<--OpenInterestStatisticsResponse.fromJson
<--CancelAlgoOrderResponse.fromJson
<--MarkPriceResponse2Inner.fromJson
<--GetFundingRateInfoResponse.fromJson
<--QueryUserRateLimitResponseInner.fromJson
<--BasisResponse.fromJson
<--SymbolConfigurationResponse.fromJson
<--QuarterlyContractSettlementPriceResponseInner.fromJson
<--RecentTradesListResponse.fromJson
<--OpenInterestResponse.fromJson
<--GetFundingRateInfoResponseInner.fromJson
<--TradingScheduleResponseMarketSchedulesCOMMODITY.fromJson
<--AdlRiskResponse2.fromJson
<--MultiAssetsModeAssetIndexResponse1.fromJson
<--PositionAdlQuantileEstimationResponse.fromJson
<--Ticker24hrPriceChangeStatisticsResponse.fromJson
<--NewAlgoOrderResponse.fromJson
<--PremiumIndexKlineDataResponseItem.fromJson
<--LongShortRatioResponseInner.fromJson
<--SymbolPriceTickerV2Response.fromJson
<--GetOrderModifyHistoryResponseInner.fromJson
<--Ticker24hrPriceChangeStatisticsResponse1.fromJson
<--FuturesAccountBalanceV2Response.fromJson
<--AccountInformationV3ResponseAssetsInner.fromJson
<--GetDownloadIdForFuturesTradeHistoryResponse.fromJson
<--SymbolPriceTickerResponse1.fromJson
<--KeepaliveUserDataStreamResponse.fromJson
<--OrderIdList.fromJson
<--QueryIndexPriceConstituentsResponse.fromJson
<--SendQuoteRequestResponse.fromJson
<--MarkPriceResponse1.fromJson
<--OpenInterestStatisticsResponseInner.fromJson
<--QueryInsuranceFundBalanceSnapshotResponse2Inner.fromJson
<--GetOrderModifyHistoryResponseInnerAmendmentPrice.fromJson
<--PositionInformationV3Response.fromJson
<--AccountTradeListResponse.fromJson
<--FuturesAccountBalanceV3Response.fromJson
<--NotionalAndLeverageBracketsResponse2.fromJson
<--ModifyOrderRequest.fromJson
<--AutoCancelAllOpenOrdersResponse.fromJson
<--QueryOrderResponse.fromJson
<--GetIncomeHistoryResponseInner.fromJson
<--IndexPriceKlineCandlestickDataResponseItem.fromJson
<--NewOrderRequest.fromJson
<--OrderStatusResponse.fromJson
<--CheckServerTimeResponse.fromJson
<--OrderBookResponseAsksItem.fromJson
<--CompressedAggregateTradesListResponseInner.fromJson
<--GetCurrentMultiAssetsModeResponse.fromJson
<--ExchangeInformationResponseAssetsInner.fromJson
<--GetOrderModifyHistoryResponse.fromJson
<--PlaceMultipleOrdersRequest.fromJson
<--GetFuturesTradeDownloadLinkByIdResponse.fromJson
<--SymbolOrderBookTickerResponse1.fromJson
<--AccountInformationV3ResponsePositionsInner.fromJson
<--GetPositionMarginChangeHistoryResponseInner.fromJson
<--RpiOrderBookResponseBidsItem.fromJson
<--BasisResponseInner.fromJson
<--PlaceMultipleOrdersResponse.fromJson
<--ToggleBnbBurnOnFuturesTradeResponse.fromJson
<--MultiAssetsModeAssetIndexResponse2Inner.fromJson
<--OrderBookResponse.fromJson
<--SymbolPriceTickerResponse2.fromJson
Please update the lib.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions