ccxt 4.4.98__py2.py3-none-any.whl → 4.4.100__py2.py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- ccxt/__init__.py +3 -1
- ccxt/abstract/bingx.py +1 -0
- ccxt/abstract/bitget.py +6 -0
- ccxt/abstract/hibachi.py +26 -0
- ccxt/alpaca.py +1 -1
- ccxt/apex.py +1 -1
- ccxt/ascendex.py +1 -1
- ccxt/async_support/__init__.py +3 -1
- ccxt/async_support/alpaca.py +1 -1
- ccxt/async_support/apex.py +1 -1
- ccxt/async_support/ascendex.py +1 -1
- ccxt/async_support/base/exchange.py +44 -9
- ccxt/async_support/base/ws/client.py +3 -1
- ccxt/async_support/bigone.py +1 -1
- ccxt/async_support/binance.py +10 -8
- ccxt/async_support/bingx.py +33 -4
- ccxt/async_support/bitbank.py +1 -1
- ccxt/async_support/bitfinex.py +4 -1
- ccxt/async_support/bitflyer.py +1 -1
- ccxt/async_support/bitget.py +2040 -561
- ccxt/async_support/bithumb.py +1 -1
- ccxt/async_support/bitmart.py +2 -2
- ccxt/async_support/bitmex.py +3 -2
- ccxt/async_support/bitopro.py +1 -1
- ccxt/async_support/bitrue.py +2 -2
- ccxt/async_support/bitso.py +1 -1
- ccxt/async_support/bitstamp.py +1 -1
- ccxt/async_support/bittrade.py +1 -1
- ccxt/async_support/bitvavo.py +1 -1
- ccxt/async_support/blockchaincom.py +1 -1
- ccxt/async_support/blofin.py +1 -1
- ccxt/async_support/btcmarkets.py +1 -1
- ccxt/async_support/bybit.py +7 -3
- ccxt/async_support/coinbase.py +1 -1
- ccxt/async_support/coinbaseexchange.py +1 -1
- ccxt/async_support/coinbaseinternational.py +1 -1
- ccxt/async_support/coincatch.py +2 -2
- ccxt/async_support/coinex.py +67 -6
- ccxt/async_support/coinmate.py +1 -1
- ccxt/async_support/coinsph.py +1 -1
- ccxt/async_support/cryptocom.py +2 -2
- ccxt/async_support/defx.py +2 -2
- ccxt/async_support/delta.py +1 -1
- ccxt/async_support/deribit.py +1 -1
- ccxt/async_support/digifinex.py +2 -2
- ccxt/async_support/ellipx.py +1 -1
- ccxt/async_support/exmo.py +1 -1
- ccxt/async_support/foxbit.py +3 -3
- ccxt/async_support/gate.py +18 -4
- ccxt/async_support/gemini.py +1 -1
- ccxt/async_support/hashkey.py +2 -2
- ccxt/async_support/hibachi.py +2080 -0
- ccxt/async_support/hitbtc.py +2 -2
- ccxt/async_support/hollaex.py +1 -1
- ccxt/async_support/htx.py +4 -3
- ccxt/async_support/hyperliquid.py +71 -29
- ccxt/async_support/independentreserve.py +1 -1
- ccxt/async_support/indodax.py +1 -1
- ccxt/async_support/kraken.py +1 -1
- ccxt/async_support/krakenfutures.py +2 -1
- ccxt/async_support/kucoin.py +2 -2
- ccxt/async_support/kucoinfutures.py +2 -1
- ccxt/async_support/lbank.py +2 -2
- ccxt/async_support/mercado.py +1 -1
- ccxt/async_support/mexc.py +9 -2
- ccxt/async_support/modetrade.py +93 -2
- ccxt/async_support/ndax.py +1 -1
- ccxt/async_support/novadax.py +35 -1
- ccxt/async_support/okcoin.py +1 -1
- ccxt/async_support/okx.py +2 -2
- ccxt/async_support/onetrading.py +33 -0
- ccxt/async_support/oxfun.py +1 -1
- ccxt/async_support/p2b.py +32 -0
- ccxt/async_support/paradex.py +2 -1
- ccxt/async_support/phemex.py +2 -2
- ccxt/async_support/poloniex.py +2 -2
- ccxt/async_support/probit.py +36 -1
- ccxt/async_support/tokocrypto.py +1 -1
- ccxt/async_support/upbit.py +1 -1
- ccxt/async_support/vertex.py +1 -1
- ccxt/async_support/wavesexchange.py +1 -1
- ccxt/async_support/whitebit.py +2 -2
- ccxt/async_support/woo.py +4 -4
- ccxt/async_support/woofipro.py +93 -2
- ccxt/async_support/xt.py +2 -2
- ccxt/async_support/yobit.py +1 -1
- ccxt/async_support/zaif.py +1 -1
- ccxt/async_support/zonda.py +1 -1
- ccxt/base/errors.py +0 -6
- ccxt/base/exchange.py +11 -9
- ccxt/base/types.py +1 -0
- ccxt/bigone.py +1 -1
- ccxt/binance.py +10 -8
- ccxt/bingx.py +33 -4
- ccxt/bitbank.py +1 -1
- ccxt/bitfinex.py +4 -1
- ccxt/bitflyer.py +1 -1
- ccxt/bitget.py +2040 -561
- ccxt/bithumb.py +1 -1
- ccxt/bitmart.py +2 -2
- ccxt/bitmex.py +3 -2
- ccxt/bitopro.py +1 -1
- ccxt/bitrue.py +2 -2
- ccxt/bitso.py +1 -1
- ccxt/bitstamp.py +1 -1
- ccxt/bittrade.py +1 -1
- ccxt/bitvavo.py +1 -1
- ccxt/blockchaincom.py +1 -1
- ccxt/blofin.py +1 -1
- ccxt/btcmarkets.py +1 -1
- ccxt/bybit.py +7 -3
- ccxt/coinbase.py +1 -1
- ccxt/coinbaseexchange.py +1 -1
- ccxt/coinbaseinternational.py +1 -1
- ccxt/coincatch.py +2 -2
- ccxt/coinex.py +67 -6
- ccxt/coinmate.py +1 -1
- ccxt/coinsph.py +1 -1
- ccxt/cryptocom.py +2 -2
- ccxt/defx.py +2 -2
- ccxt/delta.py +1 -1
- ccxt/deribit.py +1 -1
- ccxt/digifinex.py +2 -2
- ccxt/ellipx.py +1 -1
- ccxt/exmo.py +1 -1
- ccxt/foxbit.py +3 -3
- ccxt/gate.py +18 -4
- ccxt/gemini.py +1 -1
- ccxt/hashkey.py +2 -2
- ccxt/hibachi.py +2079 -0
- ccxt/hitbtc.py +2 -2
- ccxt/hollaex.py +1 -1
- ccxt/htx.py +4 -3
- ccxt/hyperliquid.py +71 -29
- ccxt/independentreserve.py +1 -1
- ccxt/indodax.py +1 -1
- ccxt/kraken.py +1 -1
- ccxt/krakenfutures.py +2 -1
- ccxt/kucoin.py +2 -2
- ccxt/kucoinfutures.py +2 -1
- ccxt/lbank.py +2 -2
- ccxt/mercado.py +1 -1
- ccxt/mexc.py +9 -2
- ccxt/modetrade.py +93 -2
- ccxt/ndax.py +1 -1
- ccxt/novadax.py +35 -1
- ccxt/okcoin.py +1 -1
- ccxt/okx.py +2 -2
- ccxt/onetrading.py +33 -0
- ccxt/oxfun.py +1 -1
- ccxt/p2b.py +32 -0
- ccxt/paradex.py +2 -1
- ccxt/phemex.py +2 -2
- ccxt/poloniex.py +2 -2
- ccxt/pro/__init__.py +1 -1
- ccxt/pro/alpaca.py +2 -2
- ccxt/pro/apex.py +2 -2
- ccxt/pro/ascendex.py +2 -2
- ccxt/pro/binance.py +4 -5
- ccxt/pro/bitget.py +3 -3
- ccxt/pro/bithumb.py +2 -2
- ccxt/pro/bitmart.py +2 -2
- ccxt/pro/bitmex.py +3 -3
- ccxt/pro/bitstamp.py +3 -3
- ccxt/pro/bittrade.py +2 -2
- ccxt/pro/bitvavo.py +5 -3
- ccxt/pro/bybit.py +5 -4
- ccxt/pro/cex.py +3 -2
- ccxt/pro/coinbaseexchange.py +4 -4
- ccxt/pro/coinbaseinternational.py +2 -2
- ccxt/pro/coincatch.py +1 -1
- ccxt/pro/coinex.py +1 -1
- ccxt/pro/coinone.py +2 -2
- ccxt/pro/cryptocom.py +2 -2
- ccxt/pro/derive.py +2 -2
- ccxt/pro/gate.py +3 -3
- ccxt/pro/hollaex.py +2 -2
- ccxt/pro/htx.py +3 -3
- ccxt/pro/hyperliquid.py +101 -14
- ccxt/pro/kraken.py +2 -2
- ccxt/pro/krakenfutures.py +4 -3
- ccxt/pro/kucoin.py +4 -3
- ccxt/pro/kucoinfutures.py +4 -3
- ccxt/pro/mexc.py +328 -139
- ccxt/pro/modetrade.py +2 -2
- ccxt/pro/okcoin.py +2 -2
- ccxt/pro/okx.py +7 -6
- ccxt/pro/onetrading.py +2 -2
- ccxt/pro/oxfun.py +1 -1
- ccxt/pro/p2b.py +2 -2
- ccxt/pro/paradex.py +2 -2
- ccxt/pro/poloniex.py +2 -2
- ccxt/pro/probit.py +2 -2
- ccxt/pro/vertex.py +2 -2
- ccxt/pro/whitebit.py +2 -2
- ccxt/pro/woo.py +2 -2
- ccxt/pro/woofipro.py +2 -2
- ccxt/probit.py +36 -1
- ccxt/protobuf/__init__.py +0 -0
- ccxt/protobuf/mexc/PrivateAccountV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PrivateDealsV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PrivateOrdersV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PublicAggreBookTickerV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PublicAggreDealsV3Api_pb2.py +39 -0
- ccxt/protobuf/mexc/PublicAggreDepthsV3Api_pb2.py +39 -0
- ccxt/protobuf/mexc/PublicBookTickerBatchV3Api_pb2.py +38 -0
- ccxt/protobuf/mexc/PublicBookTickerV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PublicDealsV3Api_pb2.py +39 -0
- ccxt/protobuf/mexc/PublicIncreaseDepthsBatchV3Api_pb2.py +38 -0
- ccxt/protobuf/mexc/PublicIncreaseDepthsV3Api_pb2.py +39 -0
- ccxt/protobuf/mexc/PublicLimitDepthsV3Api_pb2.py +39 -0
- ccxt/protobuf/mexc/PublicMiniTickerV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PublicMiniTickersV3Api_pb2.py +38 -0
- ccxt/protobuf/mexc/PublicSpotKlineV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PushDataV3ApiWrapper_pb2.py +52 -0
- ccxt/protobuf/mexc/__init__.py +0 -0
- ccxt/test/tests_async.py +1 -1
- ccxt/test/tests_sync.py +1 -1
- ccxt/tokocrypto.py +1 -1
- ccxt/upbit.py +1 -1
- ccxt/vertex.py +1 -1
- ccxt/wavesexchange.py +1 -1
- ccxt/whitebit.py +2 -2
- ccxt/woo.py +4 -4
- ccxt/woofipro.py +93 -2
- ccxt/xt.py +2 -2
- ccxt/yobit.py +1 -1
- ccxt/zaif.py +1 -1
- ccxt/zonda.py +1 -1
- {ccxt-4.4.98.dist-info → ccxt-4.4.100.dist-info}/METADATA +8 -7
- {ccxt-4.4.98.dist-info → ccxt-4.4.100.dist-info}/RECORD +234 -213
- {ccxt-4.4.98.dist-info → ccxt-4.4.100.dist-info}/LICENSE.txt +0 -0
- {ccxt-4.4.98.dist-info → ccxt-4.4.100.dist-info}/WHEEL +0 -0
- {ccxt-4.4.98.dist-info → ccxt-4.4.100.dist-info}/top_level.txt +0 -0
ccxt/async_support/onetrading.py
CHANGED
@@ -42,6 +42,9 @@ class onetrading(Exchange, ImplicitAPI):
|
|
42
42
|
'future': False,
|
43
43
|
'option': False,
|
44
44
|
'addMargin': False,
|
45
|
+
'borrowCrossMargin': False,
|
46
|
+
'borrowIsolatedMargin': False,
|
47
|
+
'borrowMargin': False,
|
45
48
|
'cancelAllOrders': True,
|
46
49
|
'cancelOrder': True,
|
47
50
|
'cancelOrders': True,
|
@@ -54,9 +57,14 @@ class onetrading(Exchange, ImplicitAPI):
|
|
54
57
|
'createStopMarketOrder': False,
|
55
58
|
'createStopOrder': True,
|
56
59
|
'fetchAccounts': False,
|
60
|
+
'fetchAllGreeks': False,
|
57
61
|
'fetchBalance': True,
|
62
|
+
'fetchBorrowInterest': False,
|
63
|
+
'fetchBorrowRate': False,
|
58
64
|
'fetchBorrowRateHistories': False,
|
59
65
|
'fetchBorrowRateHistory': False,
|
66
|
+
'fetchBorrowRates': False,
|
67
|
+
'fetchBorrowRatesPerSymbol': False,
|
60
68
|
'fetchClosedOrders': True,
|
61
69
|
'fetchCrossBorrowRate': False,
|
62
70
|
'fetchCrossBorrowRates': False,
|
@@ -68,21 +76,41 @@ class onetrading(Exchange, ImplicitAPI):
|
|
68
76
|
'fetchDeposits': False,
|
69
77
|
'fetchDepositsWithdrawals': False,
|
70
78
|
'fetchFundingHistory': False,
|
79
|
+
'fetchFundingInterval': False,
|
80
|
+
'fetchFundingIntervals': False,
|
71
81
|
'fetchFundingRate': False,
|
72
82
|
'fetchFundingRateHistory': False,
|
73
83
|
'fetchFundingRates': False,
|
84
|
+
'fetchGreeks': False,
|
74
85
|
'fetchIndexOHLCV': False,
|
75
86
|
'fetchIsolatedBorrowRate': False,
|
76
87
|
'fetchIsolatedBorrowRates': False,
|
88
|
+
'fetchIsolatedPositions': False,
|
77
89
|
'fetchLedger': False,
|
78
90
|
'fetchLeverage': False,
|
91
|
+
'fetchLeverages': False,
|
92
|
+
'fetchLeverageTiers': False,
|
93
|
+
'fetchLiquidations': False,
|
94
|
+
'fetchLongShortRatio': False,
|
95
|
+
'fetchLongShortRatioHistory': False,
|
96
|
+
'fetchMarginAdjustmentHistory': False,
|
79
97
|
'fetchMarginMode': False,
|
98
|
+
'fetchMarginModes': False,
|
99
|
+
'fetchMarketLeverageTiers': False,
|
80
100
|
'fetchMarkets': True,
|
81
101
|
'fetchMarkOHLCV': False,
|
102
|
+
'fetchMarkPrice': False,
|
103
|
+
'fetchMarkPrices': False,
|
104
|
+
'fetchMyLiquidations': False,
|
105
|
+
'fetchMySettlementHistory': False,
|
82
106
|
'fetchMyTrades': True,
|
83
107
|
'fetchOHLCV': True,
|
108
|
+
'fetchOpenInterest': False,
|
84
109
|
'fetchOpenInterestHistory': False,
|
110
|
+
'fetchOpenInterests': False,
|
85
111
|
'fetchOpenOrders': True,
|
112
|
+
'fetchOption': False,
|
113
|
+
'fetchOptionChain': False,
|
86
114
|
'fetchOrder': True,
|
87
115
|
'fetchOrderBook': True,
|
88
116
|
'fetchOrders': False,
|
@@ -95,6 +123,7 @@ class onetrading(Exchange, ImplicitAPI):
|
|
95
123
|
'fetchPositionsHistory': False,
|
96
124
|
'fetchPositionsRisk': False,
|
97
125
|
'fetchPremiumIndexOHLCV': False,
|
126
|
+
'fetchSettlementHistory': False,
|
98
127
|
'fetchTicker': True,
|
99
128
|
'fetchTickers': True,
|
100
129
|
'fetchTime': True,
|
@@ -106,9 +135,13 @@ class onetrading(Exchange, ImplicitAPI):
|
|
106
135
|
'fetchTransactions': False,
|
107
136
|
'fetchTransfer': False,
|
108
137
|
'fetchTransfers': False,
|
138
|
+
'fetchUnderlyingAssets': False,
|
139
|
+
'fetchVolatilityHistory': False,
|
109
140
|
'fetchWithdrawal': False,
|
110
141
|
'fetchWithdrawals': False,
|
111
142
|
'reduceMargin': False,
|
143
|
+
'repayCrossMargin': False,
|
144
|
+
'repayIsolatedMargin': False,
|
112
145
|
'setLeverage': False,
|
113
146
|
'setMargin': False,
|
114
147
|
'setMarginMode': False,
|
ccxt/async_support/oxfun.py
CHANGED
@@ -2024,7 +2024,7 @@ class oxfun(Exchange, ImplicitAPI):
|
|
2024
2024
|
}
|
2025
2025
|
return self.safe_string(statuses, status, status)
|
2026
2026
|
|
2027
|
-
async def withdraw(self, code: str, amount: float, address: str, tag=None, params={}) -> Transaction:
|
2027
|
+
async def withdraw(self, code: str, amount: float, address: str, tag: Str = None, params={}) -> Transaction:
|
2028
2028
|
"""
|
2029
2029
|
make a withdrawal
|
2030
2030
|
|
ccxt/async_support/p2b.py
CHANGED
@@ -34,6 +34,9 @@ class p2b(Exchange, ImplicitAPI):
|
|
34
34
|
'future': False,
|
35
35
|
'option': False,
|
36
36
|
'addMargin': False,
|
37
|
+
'borrowCrossMargin': False,
|
38
|
+
'borrowIsolatedMargin': False,
|
39
|
+
'borrowMargin': False,
|
37
40
|
'cancelAllOrders': False,
|
38
41
|
'cancelOrder': True,
|
39
42
|
'cancelOrders': False,
|
@@ -49,9 +52,14 @@ class p2b(Exchange, ImplicitAPI):
|
|
49
52
|
'createStopMarketOrder': False,
|
50
53
|
'createStopOrder': False,
|
51
54
|
'fetchAccounts': False,
|
55
|
+
'fetchAllGreeks': False,
|
52
56
|
'fetchBalance': True,
|
53
57
|
'fetchBorrowInterest': False,
|
58
|
+
'fetchBorrowRate': False,
|
59
|
+
'fetchBorrowRateHistories': False,
|
54
60
|
'fetchBorrowRateHistory': False,
|
61
|
+
'fetchBorrowRates': False,
|
62
|
+
'fetchBorrowRatesPerSymbol': False,
|
55
63
|
'fetchClosedOrders': True,
|
56
64
|
'fetchCrossBorrowRate': False,
|
57
65
|
'fetchCrossBorrowRates': False,
|
@@ -62,23 +70,42 @@ class p2b(Exchange, ImplicitAPI):
|
|
62
70
|
'fetchDeposits': False,
|
63
71
|
'fetchDepositsWithdrawals': False,
|
64
72
|
'fetchFundingHistory': False,
|
73
|
+
'fetchFundingInterval': False,
|
74
|
+
'fetchFundingIntervals': False,
|
65
75
|
'fetchFundingRate': False,
|
66
76
|
'fetchFundingRateHistory': False,
|
67
77
|
'fetchFundingRates': False,
|
78
|
+
'fetchGreeks': False,
|
68
79
|
'fetchIndexOHLCV': False,
|
69
80
|
'fetchIsolatedBorrowRate': False,
|
70
81
|
'fetchIsolatedBorrowRates': False,
|
82
|
+
'fetchIsolatedPositions': False,
|
71
83
|
'fetchLedger': False,
|
72
84
|
'fetchLedgerEntry': False,
|
85
|
+
'fetchLeverage': False,
|
86
|
+
'fetchLeverages': False,
|
73
87
|
'fetchLeverageTiers': False,
|
88
|
+
'fetchLiquidations': False,
|
89
|
+
'fetchLongShortRatio': False,
|
90
|
+
'fetchLongShortRatioHistory': False,
|
91
|
+
'fetchMarginAdjustmentHistory': False,
|
92
|
+
'fetchMarginMode': False,
|
93
|
+
'fetchMarginModes': False,
|
74
94
|
'fetchMarketLeverageTiers': False,
|
75
95
|
'fetchMarkets': True,
|
76
96
|
'fetchMarkOHLCV': False,
|
97
|
+
'fetchMarkPrice': False,
|
98
|
+
'fetchMarkPrices': False,
|
99
|
+
'fetchMyLiquidations': False,
|
100
|
+
'fetchMySettlementHistory': False,
|
77
101
|
'fetchMyTrades': True,
|
78
102
|
'fetchOHLCV': True,
|
79
103
|
'fetchOpenInterest': False,
|
80
104
|
'fetchOpenInterestHistory': False,
|
105
|
+
'fetchOpenInterests': False,
|
81
106
|
'fetchOpenOrders': True,
|
107
|
+
'fetchOption': False,
|
108
|
+
'fetchOptionChain': False,
|
82
109
|
'fetchOrderBook': True,
|
83
110
|
'fetchOrderBooks': False,
|
84
111
|
'fetchOrders': False,
|
@@ -91,6 +118,7 @@ class p2b(Exchange, ImplicitAPI):
|
|
91
118
|
'fetchPositionsHistory': False,
|
92
119
|
'fetchPositionsRisk': False,
|
93
120
|
'fetchPremiumIndexOHLCV': False,
|
121
|
+
'fetchSettlementHistory': False,
|
94
122
|
'fetchTicker': True,
|
95
123
|
'fetchTickers': True,
|
96
124
|
'fetchTrades': True,
|
@@ -99,10 +127,14 @@ class p2b(Exchange, ImplicitAPI):
|
|
99
127
|
'fetchTransactionFees': False,
|
100
128
|
'fetchTransactions': False,
|
101
129
|
'fetchTransfers': False,
|
130
|
+
'fetchUnderlyingAssets': False,
|
131
|
+
'fetchVolatilityHistory': False,
|
102
132
|
'fetchWithdrawAddresses': False,
|
103
133
|
'fetchWithdrawal': False,
|
104
134
|
'fetchWithdrawals': False,
|
105
135
|
'reduceMargin': False,
|
136
|
+
'repayCrossMargin': False,
|
137
|
+
'repayIsolatedMargin': False,
|
106
138
|
'setLeverage': False,
|
107
139
|
'setMargin': False,
|
108
140
|
'setMarginMode': False,
|
ccxt/async_support/paradex.py
CHANGED
@@ -1971,6 +1971,7 @@ class paradex(Exchange, ImplicitAPI):
|
|
1971
1971
|
'contracts': None,
|
1972
1972
|
'contractSize': None,
|
1973
1973
|
'price': None,
|
1974
|
+
'side': None,
|
1974
1975
|
'baseValue': None,
|
1975
1976
|
'quoteValue': None,
|
1976
1977
|
'timestamp': timestamp,
|
@@ -2268,7 +2269,7 @@ class paradex(Exchange, ImplicitAPI):
|
|
2268
2269
|
}
|
2269
2270
|
return self.safe_string(modes, mode, mode)
|
2270
2271
|
|
2271
|
-
async def set_leverage(self, leverage:
|
2272
|
+
async def set_leverage(self, leverage: int, symbol: Str = None, params={}):
|
2272
2273
|
"""
|
2273
2274
|
set the level of leverage for a market
|
2274
2275
|
|
ccxt/async_support/phemex.py
CHANGED
@@ -4332,7 +4332,7 @@ class phemex(Exchange, ImplicitAPI):
|
|
4332
4332
|
url = self.implode_hostname(self.urls['api'][api]) + url
|
4333
4333
|
return {'url': url, 'method': method, 'body': body, 'headers': headers}
|
4334
4334
|
|
4335
|
-
async def set_leverage(self, leverage:
|
4335
|
+
async def set_leverage(self, leverage: int, symbol: Str = None, params={}):
|
4336
4336
|
"""
|
4337
4337
|
set the level of leverage for a market
|
4338
4338
|
|
@@ -4641,7 +4641,7 @@ class phemex(Exchange, ImplicitAPI):
|
|
4641
4641
|
sorted = self.sort_by(result, 'timestamp')
|
4642
4642
|
return self.filter_by_symbol_since_limit(sorted, symbol, since, limit)
|
4643
4643
|
|
4644
|
-
async def withdraw(self, code: str, amount: float, address: str, tag=None, params={}) -> Transaction:
|
4644
|
+
async def withdraw(self, code: str, amount: float, address: str, tag: Str = None, params={}) -> Transaction:
|
4645
4645
|
"""
|
4646
4646
|
make a withdrawal
|
4647
4647
|
|
ccxt/async_support/poloniex.py
CHANGED
@@ -2731,7 +2731,7 @@ class poloniex(Exchange, ImplicitAPI):
|
|
2731
2731
|
'status': None,
|
2732
2732
|
}
|
2733
2733
|
|
2734
|
-
async def withdraw(self, code: str, amount: float, address: str, tag=None, params={}) -> Transaction:
|
2734
|
+
async def withdraw(self, code: str, amount: float, address: str, tag: Str = None, params={}) -> Transaction:
|
2735
2735
|
"""
|
2736
2736
|
make a withdrawal
|
2737
2737
|
|
@@ -3126,7 +3126,7 @@ class poloniex(Exchange, ImplicitAPI):
|
|
3126
3126
|
},
|
3127
3127
|
}
|
3128
3128
|
|
3129
|
-
async def set_leverage(self, leverage:
|
3129
|
+
async def set_leverage(self, leverage: int, symbol: Str = None, params={}):
|
3130
3130
|
"""
|
3131
3131
|
set the level of leverage for a market
|
3132
3132
|
|
ccxt/async_support/probit.py
CHANGED
@@ -43,7 +43,12 @@ class probit(Exchange, ImplicitAPI):
|
|
43
43
|
'future': False,
|
44
44
|
'option': False,
|
45
45
|
'addMargin': False,
|
46
|
+
'borrowCrossMargin': False,
|
47
|
+
'borrowIsolatedMargin': False,
|
48
|
+
'borrowMargin': False,
|
46
49
|
'cancelOrder': True,
|
50
|
+
'closeAllPositions': False,
|
51
|
+
'closePosition': False,
|
47
52
|
'createMarketBuyOrderWithCost': True,
|
48
53
|
'createMarketOrder': True,
|
49
54
|
'createMarketOrderWithCost': False,
|
@@ -53,9 +58,14 @@ class probit(Exchange, ImplicitAPI):
|
|
53
58
|
'createStopLimitOrder': False,
|
54
59
|
'createStopMarketOrder': False,
|
55
60
|
'createStopOrder': False,
|
61
|
+
'fetchAllGreeks': False,
|
56
62
|
'fetchBalance': True,
|
63
|
+
'fetchBorrowInterest': False,
|
64
|
+
'fetchBorrowRate': False,
|
57
65
|
'fetchBorrowRateHistories': False,
|
58
66
|
'fetchBorrowRateHistory': False,
|
67
|
+
'fetchBorrowRates': False,
|
68
|
+
'fetchBorrowRatesPerSymbol': False,
|
59
69
|
'fetchClosedOrders': True,
|
60
70
|
'fetchCrossBorrowRate': False,
|
61
71
|
'fetchCrossBorrowRates': False,
|
@@ -66,21 +76,40 @@ class probit(Exchange, ImplicitAPI):
|
|
66
76
|
'fetchDeposits': True,
|
67
77
|
'fetchDepositsWithdrawals': True,
|
68
78
|
'fetchFundingHistory': False,
|
79
|
+
'fetchFundingInterval': False,
|
80
|
+
'fetchFundingIntervals': False,
|
69
81
|
'fetchFundingRate': False,
|
70
82
|
'fetchFundingRateHistory': False,
|
71
83
|
'fetchFundingRates': False,
|
84
|
+
'fetchGreeks': False,
|
72
85
|
'fetchIndexOHLCV': False,
|
73
86
|
'fetchIsolatedBorrowRate': False,
|
74
87
|
'fetchIsolatedBorrowRates': False,
|
88
|
+
'fetchIsolatedPositions': False,
|
75
89
|
'fetchLeverage': False,
|
90
|
+
'fetchLeverages': False,
|
76
91
|
'fetchLeverageTiers': False,
|
92
|
+
'fetchLiquidations': False,
|
93
|
+
'fetchLongShortRatio': False,
|
94
|
+
'fetchLongShortRatioHistory': False,
|
95
|
+
'fetchMarginAdjustmentHistory': False,
|
77
96
|
'fetchMarginMode': False,
|
97
|
+
'fetchMarginModes': False,
|
98
|
+
'fetchMarketLeverageTiers': False,
|
78
99
|
'fetchMarkets': True,
|
79
100
|
'fetchMarkOHLCV': False,
|
101
|
+
'fetchMarkPrice': False,
|
102
|
+
'fetchMarkPrices': False,
|
103
|
+
'fetchMyLiquidations': False,
|
104
|
+
'fetchMySettlementHistory': False,
|
80
105
|
'fetchMyTrades': True,
|
81
106
|
'fetchOHLCV': True,
|
107
|
+
'fetchOpenInterest': False,
|
82
108
|
'fetchOpenInterestHistory': False,
|
109
|
+
'fetchOpenInterests': False,
|
83
110
|
'fetchOpenOrders': True,
|
111
|
+
'fetchOption': False,
|
112
|
+
'fetchOptionChain': False,
|
84
113
|
'fetchOrder': True,
|
85
114
|
'fetchOrderBook': True,
|
86
115
|
'fetchPosition': False,
|
@@ -91,6 +120,7 @@ class probit(Exchange, ImplicitAPI):
|
|
91
120
|
'fetchPositionsHistory': False,
|
92
121
|
'fetchPositionsRisk': False,
|
93
122
|
'fetchPremiumIndexOHLCV': False,
|
123
|
+
'fetchSettlementHistory': False,
|
94
124
|
'fetchTicker': True,
|
95
125
|
'fetchTickers': True,
|
96
126
|
'fetchTime': True,
|
@@ -100,11 +130,16 @@ class probit(Exchange, ImplicitAPI):
|
|
100
130
|
'fetchTransactions': 'emulated',
|
101
131
|
'fetchTransfer': False,
|
102
132
|
'fetchTransfers': False,
|
133
|
+
'fetchUnderlyingAssets': False,
|
134
|
+
'fetchVolatilityHistory': False,
|
103
135
|
'fetchWithdrawal': False,
|
104
136
|
'fetchWithdrawals': True,
|
105
137
|
'reduceMargin': False,
|
138
|
+
'repayCrossMargin': False,
|
139
|
+
'repayIsolatedMargin': False,
|
106
140
|
'sandbox': False,
|
107
141
|
'setLeverage': False,
|
142
|
+
'setMargin': False,
|
108
143
|
'setMarginMode': False,
|
109
144
|
'setPositionMode': False,
|
110
145
|
'signIn': True,
|
@@ -1399,7 +1434,7 @@ class probit(Exchange, ImplicitAPI):
|
|
1399
1434
|
data = self.safe_list(response, 'data', [])
|
1400
1435
|
return self.parse_deposit_addresses(data, codes)
|
1401
1436
|
|
1402
|
-
async def withdraw(self, code: str, amount: float, address: str, tag=None, params={}) -> Transaction:
|
1437
|
+
async def withdraw(self, code: str, amount: float, address: str, tag: Str = None, params={}) -> Transaction:
|
1403
1438
|
"""
|
1404
1439
|
|
1405
1440
|
https://docs-en.probit.com/reference/withdrawal
|
ccxt/async_support/tokocrypto.py
CHANGED
@@ -2353,7 +2353,7 @@ class tokocrypto(Exchange, ImplicitAPI):
|
|
2353
2353
|
'fee': fee,
|
2354
2354
|
}
|
2355
2355
|
|
2356
|
-
async def withdraw(self, code: str, amount: float, address: str, tag=None, params={}) -> Transaction:
|
2356
|
+
async def withdraw(self, code: str, amount: float, address: str, tag: Str = None, params={}) -> Transaction:
|
2357
2357
|
"""
|
2358
2358
|
|
2359
2359
|
https://www.tokocrypto.com/apidocs/#withdraw-signed
|
ccxt/async_support/upbit.py
CHANGED
@@ -2121,7 +2121,7 @@ class upbit(Exchange, ImplicitAPI):
|
|
2121
2121
|
raise AddressPending(self.id + ' is generating ' + code + ' deposit address, call fetchDepositAddress or createDepositAddress one more time later to retrieve the generated address')
|
2122
2122
|
return self.parse_deposit_address(response)
|
2123
2123
|
|
2124
|
-
async def withdraw(self, code: str, amount: float, address: str, tag=None, params={}) -> Transaction:
|
2124
|
+
async def withdraw(self, code: str, amount: float, address: str, tag: Str = None, params={}) -> Transaction:
|
2125
2125
|
"""
|
2126
2126
|
|
2127
2127
|
https://docs.upbit.com/kr/reference/디지털자산-출금하기
|
ccxt/async_support/vertex.py
CHANGED
@@ -2907,7 +2907,7 @@ class vertex(Exchange, ImplicitAPI):
|
|
2907
2907
|
#
|
2908
2908
|
return self.safe_dict(response, 'data', {})
|
2909
2909
|
|
2910
|
-
async def withdraw(self, code: str, amount: float, address: str, tag=None, params={}) -> Transaction:
|
2910
|
+
async def withdraw(self, code: str, amount: float, address: str, tag: Str = None, params={}) -> Transaction:
|
2911
2911
|
"""
|
2912
2912
|
make a withdrawal
|
2913
2913
|
|
@@ -2413,7 +2413,7 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
2413
2413
|
raise ExchangeError(self.id + ' ' + body)
|
2414
2414
|
return None
|
2415
2415
|
|
2416
|
-
async def withdraw(self, code: str, amount: float, address: str, tag=None, params={}) -> Transaction:
|
2416
|
+
async def withdraw(self, code: str, amount: float, address: str, tag: Str = None, params={}) -> Transaction:
|
2417
2417
|
"""
|
2418
2418
|
make a withdrawal
|
2419
2419
|
:param str code: unified currency code
|
ccxt/async_support/whitebit.py
CHANGED
@@ -2146,7 +2146,7 @@ class whitebit(Exchange, ImplicitAPI):
|
|
2146
2146
|
'tag': self.safe_string(depositAddress, 'memo'),
|
2147
2147
|
}
|
2148
2148
|
|
2149
|
-
async def set_leverage(self, leverage:
|
2149
|
+
async def set_leverage(self, leverage: int, symbol: Str = None, params={}):
|
2150
2150
|
"""
|
2151
2151
|
set the level of leverage for a market
|
2152
2152
|
|
@@ -2217,7 +2217,7 @@ class whitebit(Exchange, ImplicitAPI):
|
|
2217
2217
|
'status': None,
|
2218
2218
|
}
|
2219
2219
|
|
2220
|
-
async def withdraw(self, code: str, amount: float, address: str, tag=None, params={}) -> Transaction:
|
2220
|
+
async def withdraw(self, code: str, amount: float, address: str, tag: Str = None, params={}) -> Transaction:
|
2221
2221
|
"""
|
2222
2222
|
make a withdrawal
|
2223
2223
|
|
ccxt/async_support/woo.py
CHANGED
@@ -1111,7 +1111,7 @@ class woo(Exchange, ImplicitAPI):
|
|
1111
1111
|
raise NotSupported(self.id + ' createMarketSellOrderWithCost() supports spot orders only')
|
1112
1112
|
return await self.create_order(symbol, 'market', 'sell', cost, 1, params)
|
1113
1113
|
|
1114
|
-
async def create_trailing_amount_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, trailingAmount=None, trailingTriggerPrice=None, params={}) -> Order:
|
1114
|
+
async def create_trailing_amount_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, trailingAmount: Num = None, trailingTriggerPrice: Num = None, params={}) -> Order:
|
1115
1115
|
"""
|
1116
1116
|
create a trailing order by providing the symbol, type, side, amount, price and trailingAmount
|
1117
1117
|
|
@@ -1135,7 +1135,7 @@ class woo(Exchange, ImplicitAPI):
|
|
1135
1135
|
params['trailingTriggerPrice'] = trailingTriggerPrice
|
1136
1136
|
return await self.create_order(symbol, type, side, amount, price, params)
|
1137
1137
|
|
1138
|
-
async def create_trailing_percent_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, trailingPercent=None, trailingTriggerPrice=None, params={}) -> Order:
|
1138
|
+
async def create_trailing_percent_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, trailingPercent: Num = None, trailingTriggerPrice: Num = None, params={}) -> Order:
|
1139
1139
|
"""
|
1140
1140
|
create a trailing order by providing the symbol, type, side, amount, price and trailingPercent
|
1141
1141
|
|
@@ -2839,7 +2839,7 @@ class woo(Exchange, ImplicitAPI):
|
|
2839
2839
|
}
|
2840
2840
|
return self.safe_string(statuses, status, status)
|
2841
2841
|
|
2842
|
-
async def withdraw(self, code: str, amount: float, address: str, tag=None, params={}) -> Transaction:
|
2842
|
+
async def withdraw(self, code: str, amount: float, address: str, tag: Str = None, params={}) -> Transaction:
|
2843
2843
|
"""
|
2844
2844
|
make a withdrawal
|
2845
2845
|
|
@@ -3455,7 +3455,7 @@ class woo(Exchange, ImplicitAPI):
|
|
3455
3455
|
'shortLeverage': shortLeverage,
|
3456
3456
|
}
|
3457
3457
|
|
3458
|
-
async def set_leverage(self, leverage:
|
3458
|
+
async def set_leverage(self, leverage: int, symbol: Str = None, params={}):
|
3459
3459
|
"""
|
3460
3460
|
set the level of leverage for a market
|
3461
3461
|
|
ccxt/async_support/woofipro.py
CHANGED
@@ -1036,6 +1036,97 @@ class woofipro(Exchange, ImplicitAPI):
|
|
1036
1036
|
sorted = self.sort_by(rates, 'timestamp')
|
1037
1037
|
return self.filter_by_symbol_since_limit(sorted, symbol, since, limit)
|
1038
1038
|
|
1039
|
+
def parse_income(self, income, market: Market = None):
|
1040
|
+
#
|
1041
|
+
# {
|
1042
|
+
# "symbol": "PERP_ETH_USDC",
|
1043
|
+
# "funding_rate": 0.00046875,
|
1044
|
+
# "mark_price": 2100,
|
1045
|
+
# "funding_fee": 0.000016,
|
1046
|
+
# "payment_type": "Pay",
|
1047
|
+
# "status": "Accrued",
|
1048
|
+
# "created_time": 1682235722003,
|
1049
|
+
# "updated_time": 1682235722003
|
1050
|
+
# }
|
1051
|
+
#
|
1052
|
+
marketId = self.safe_string(income, 'symbol')
|
1053
|
+
symbol = self.safe_symbol(marketId, market)
|
1054
|
+
amount = self.safe_string(income, 'funding_fee')
|
1055
|
+
code = self.safe_currency_code('USDC')
|
1056
|
+
timestamp = self.safe_integer(income, 'updated_time')
|
1057
|
+
rate = self.safe_number(income, 'funding_rate')
|
1058
|
+
paymentType = self.safe_string(income, 'payment_type')
|
1059
|
+
amount = Precise.string_neg(amount) if (paymentType == 'Pay') else amount
|
1060
|
+
return {
|
1061
|
+
'info': income,
|
1062
|
+
'symbol': symbol,
|
1063
|
+
'code': code,
|
1064
|
+
'timestamp': timestamp,
|
1065
|
+
'datetime': self.iso8601(timestamp),
|
1066
|
+
'id': None,
|
1067
|
+
'amount': self.parse_number(amount),
|
1068
|
+
'rate': rate,
|
1069
|
+
}
|
1070
|
+
|
1071
|
+
async def fetch_funding_history(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
1072
|
+
"""
|
1073
|
+
fetch the history of funding payments paid and received on self account
|
1074
|
+
|
1075
|
+
https://orderly.network/docs/build-on-omnichain/evm-api/restful-api/private/get-funding-fee-history
|
1076
|
+
|
1077
|
+
:param str [symbol]: unified market symbol
|
1078
|
+
:param int [since]: the earliest time in ms to fetch funding history for
|
1079
|
+
:param int [limit]: the maximum number of funding history structures to retrieve
|
1080
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
1081
|
+
:param boolean [params.paginate]: default False, when True will automatically paginate by calling self endpoint multiple times. See in the docs all the [availble parameters](https://github.com/ccxt/ccxt/wiki/Manual#pagination-params)
|
1082
|
+
:returns dict: a `funding history structure <https://docs.ccxt.com/#/?id=funding-history-structure>`
|
1083
|
+
"""
|
1084
|
+
await self.load_markets()
|
1085
|
+
paginate = False
|
1086
|
+
paginate, params = self.handle_option_and_params(params, 'fetchFundingHistory', 'paginate')
|
1087
|
+
if paginate:
|
1088
|
+
return await self.fetch_paginated_call_incremental('fetchFundingHistory', symbol, since, limit, params, 'page', 500)
|
1089
|
+
request: dict = {}
|
1090
|
+
market: Market = None
|
1091
|
+
if symbol is not None:
|
1092
|
+
market = self.market(symbol)
|
1093
|
+
request['symbol'] = market['id']
|
1094
|
+
if since is not None:
|
1095
|
+
request['start_t'] = since
|
1096
|
+
until = self.safe_integer(params, 'until') # unified in milliseconds
|
1097
|
+
params = self.omit(params, ['until'])
|
1098
|
+
if until is not None:
|
1099
|
+
request['end_t'] = until
|
1100
|
+
if limit is not None:
|
1101
|
+
request['size'] = min(limit, 500)
|
1102
|
+
response = await self.v1PrivateGetFundingFeeHistory(self.extend(request, params))
|
1103
|
+
#
|
1104
|
+
# {
|
1105
|
+
# "success": True,
|
1106
|
+
# "timestamp": 1702989203989,
|
1107
|
+
# "data": {
|
1108
|
+
# "meta": {
|
1109
|
+
# "total": 9,
|
1110
|
+
# "records_per_page": 25,
|
1111
|
+
# "current_page": 1
|
1112
|
+
# },
|
1113
|
+
# "rows": [{
|
1114
|
+
# "symbol": "PERP_ETH_USDC",
|
1115
|
+
# "funding_rate": 0.00046875,
|
1116
|
+
# "mark_price": 2100,
|
1117
|
+
# "funding_fee": 0.000016,
|
1118
|
+
# "payment_type": "Pay",
|
1119
|
+
# "status": "Accrued",
|
1120
|
+
# "created_time": 1682235722003,
|
1121
|
+
# "updated_time": 1682235722003
|
1122
|
+
# }]
|
1123
|
+
# }
|
1124
|
+
# }
|
1125
|
+
#
|
1126
|
+
data = self.safe_dict(response, 'data', {})
|
1127
|
+
rows = self.safe_list(data, 'rows', [])
|
1128
|
+
return self.parse_incomes(rows, market, since, limit)
|
1129
|
+
|
1039
1130
|
async def fetch_trading_fees(self, params={}) -> TradingFees:
|
1040
1131
|
"""
|
1041
1132
|
fetch the trading fees for multiple markets
|
@@ -2341,7 +2432,7 @@ class woofipro(Exchange, ImplicitAPI):
|
|
2341
2432
|
def sign_message(self, message, privateKey):
|
2342
2433
|
return self.sign_hash(self.hash_message(message), privateKey[-64:])
|
2343
2434
|
|
2344
|
-
async def withdraw(self, code: str, amount: float, address: str, tag=None, params={}) -> Transaction:
|
2435
|
+
async def withdraw(self, code: str, amount: float, address: str, tag: Str = None, params={}) -> Transaction:
|
2345
2436
|
"""
|
2346
2437
|
make a withdrawal
|
2347
2438
|
|
@@ -2471,7 +2562,7 @@ class woofipro(Exchange, ImplicitAPI):
|
|
2471
2562
|
data = self.safe_dict(response, 'data', {})
|
2472
2563
|
return self.parse_leverage(data, market)
|
2473
2564
|
|
2474
|
-
async def set_leverage(self, leverage:
|
2565
|
+
async def set_leverage(self, leverage: int, symbol: Str = None, params={}):
|
2475
2566
|
"""
|
2476
2567
|
set the level of leverage for a market
|
2477
2568
|
|
ccxt/async_support/xt.py
CHANGED
@@ -3781,7 +3781,7 @@ class xt(Exchange, ImplicitAPI):
|
|
3781
3781
|
withdrawals = self.safe_value(data, 'items', [])
|
3782
3782
|
return self.parse_transactions(withdrawals, currency, since, limit, params)
|
3783
3783
|
|
3784
|
-
async def withdraw(self, code: str, amount: float, address: str, tag=None, params={}) -> Transaction:
|
3784
|
+
async def withdraw(self, code: str, amount: float, address: str, tag: Str = None, params={}) -> Transaction:
|
3785
3785
|
"""
|
3786
3786
|
make a withdrawal
|
3787
3787
|
|
@@ -3911,7 +3911,7 @@ class xt(Exchange, ImplicitAPI):
|
|
3911
3911
|
}
|
3912
3912
|
return self.safe_string(statuses, status, status)
|
3913
3913
|
|
3914
|
-
async def set_leverage(self, leverage:
|
3914
|
+
async def set_leverage(self, leverage: int, symbol: str = None, params={}):
|
3915
3915
|
"""
|
3916
3916
|
set the level of leverage for a market
|
3917
3917
|
|
ccxt/async_support/yobit.py
CHANGED
@@ -1276,7 +1276,7 @@ class yobit(Exchange, ImplicitAPI):
|
|
1276
1276
|
'tag': None,
|
1277
1277
|
}
|
1278
1278
|
|
1279
|
-
async def withdraw(self, code: str, amount: float, address: str, tag=None, params={}) -> Transaction:
|
1279
|
+
async def withdraw(self, code: str, amount: float, address: str, tag: Str = None, params={}) -> Transaction:
|
1280
1280
|
"""
|
1281
1281
|
|
1282
1282
|
https://yobit.net/en/api
|
ccxt/async_support/zaif.py
CHANGED
@@ -659,7 +659,7 @@ class zaif(Exchange, ImplicitAPI):
|
|
659
659
|
response = await self.privatePostTradeHistory(self.extend(request, params))
|
660
660
|
return self.parse_orders(response['return'], market, since, limit)
|
661
661
|
|
662
|
-
async def withdraw(self, code: str, amount: float, address: str, tag=None, params={}) -> Transaction:
|
662
|
+
async def withdraw(self, code: str, amount: float, address: str, tag: Str = None, params={}) -> Transaction:
|
663
663
|
"""
|
664
664
|
|
665
665
|
https://zaif-api-document.readthedocs.io/ja/latest/TradingAPI.html#id41
|
ccxt/async_support/zonda.py
CHANGED
@@ -1776,7 +1776,7 @@ class zonda(Exchange, ImplicitAPI):
|
|
1776
1776
|
}
|
1777
1777
|
return self.safe_string(statuses, status, status)
|
1778
1778
|
|
1779
|
-
async def withdraw(self, code: str, amount: float, address: str, tag=None, params={}) -> Transaction:
|
1779
|
+
async def withdraw(self, code: str, amount: float, address: str, tag: Str = None, params={}) -> Transaction:
|
1780
1780
|
"""
|
1781
1781
|
|
1782
1782
|
https://docs.zondacrypto.exchange/reference/crypto-withdrawal-1
|
ccxt/base/errors.py
CHANGED
@@ -1,9 +1,3 @@
|
|
1
|
-
# ----------------------------------------------------------------------------
|
2
|
-
|
3
|
-
# PLEASE DO NOT EDIT THIS FILE, IT IS GENERATED AND WILL BE OVERWRITTEN:
|
4
|
-
# https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-contribute-code
|
5
|
-
# EDIT THE CORRESPONDENT .ts FILE INSTEAD
|
6
|
-
|
7
1
|
error_hierarchy = {
|
8
2
|
'BaseError': {
|
9
3
|
'ExchangeError': {
|