ccxt 4.5.56 → 4.5.57
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.
- package/README.md +10 -9
- package/dist/ccxt.browser.min.js +10 -10
- package/dist/cjs/ccxt.js +6 -11
- package/dist/cjs/src/apex.js +1 -1
- package/dist/cjs/src/arkham.js +3 -3
- package/dist/cjs/src/ascendex.js +2 -2
- package/dist/cjs/src/aster.js +7 -4
- package/dist/cjs/src/backpack.js +4 -4
- package/dist/cjs/src/base/Exchange.js +69 -32
- package/dist/cjs/src/base/functions/io.js +25 -0
- package/dist/cjs/src/base/functions.js +1 -0
- package/dist/cjs/src/bigone.js +3 -3
- package/dist/cjs/src/binance.js +192 -194
- package/dist/cjs/src/bingx.js +3 -3
- package/dist/cjs/src/bitfinex.js +71 -58
- package/dist/cjs/src/bitget.js +2 -2
- package/dist/cjs/src/bitmart.js +13 -6
- package/dist/cjs/src/bitmex.js +1 -1
- package/dist/cjs/src/bitopro.js +1 -1
- package/dist/cjs/src/bitrue.js +2 -2
- package/dist/cjs/src/bitso.js +1 -1
- package/dist/cjs/src/bitstamp.js +2 -1
- package/dist/cjs/src/bitteam.js +1 -1
- package/dist/cjs/src/bittrade.js +0 -1
- package/dist/cjs/src/bitvavo.js +457 -34
- package/dist/cjs/src/blofin.js +26 -3
- package/dist/cjs/src/bullish.js +6 -5
- package/dist/cjs/src/bydfi.js +1 -1
- package/dist/cjs/src/cex.js +3 -3
- package/dist/cjs/src/coinbase.js +75 -65
- package/dist/cjs/src/coinbaseexchange.js +2 -2
- package/dist/cjs/src/coinbaseinternational.js +2 -1
- package/dist/cjs/src/coinex.js +74 -74
- package/dist/cjs/src/coinmetro.js +1 -1
- package/dist/cjs/src/coinsph.js +1 -1
- package/dist/cjs/src/cryptocom.js +46 -48
- package/dist/cjs/src/cryptomus.js +43 -39
- package/dist/cjs/src/deepcoin.js +3 -2
- package/dist/cjs/src/delta.js +51 -52
- package/dist/cjs/src/deribit.js +31 -33
- package/dist/cjs/src/derive.js +26 -28
- package/dist/cjs/src/digifinex.js +43 -44
- package/dist/cjs/src/exmo.js +92 -83
- package/dist/cjs/src/extended.js +3497 -0
- package/dist/cjs/src/foxbit.js +71 -75
- package/dist/cjs/src/gate.js +53 -53
- package/dist/cjs/src/gemini.js +41 -43
- package/dist/cjs/src/grvt.js +4 -4
- package/dist/cjs/src/hashkey.js +52 -54
- package/dist/cjs/src/hitbtc.js +3 -13
- package/dist/cjs/src/hollaex.js +51 -54
- package/dist/cjs/src/htx.js +75 -67
- package/dist/cjs/src/hyperliquid.js +41 -42
- package/dist/cjs/src/indodax.js +2 -2
- package/dist/cjs/src/kraken.js +57 -58
- package/dist/cjs/src/kucoin.js +3 -2
- package/dist/cjs/src/latoken.js +30 -32
- package/dist/cjs/src/lbank.js +56 -56
- package/dist/cjs/src/lighter.js +35 -37
- package/dist/cjs/src/luno.js +35 -43
- package/dist/cjs/src/mexc.js +48 -49
- package/dist/cjs/src/modetrade.js +50 -52
- package/dist/cjs/src/ndax.js +35 -37
- package/dist/cjs/src/okx.js +17 -2
- package/dist/cjs/src/onetrading.js +21 -23
- package/dist/cjs/src/phemex.js +43 -45
- package/dist/cjs/src/poloniex.js +17 -12
- package/dist/cjs/src/pro/alpaca.js +1 -1
- package/dist/cjs/src/pro/apex.js +1 -1
- package/dist/cjs/src/pro/arkham.js +1 -1
- package/dist/cjs/src/pro/backpack.js +1 -1
- package/dist/cjs/src/pro/binance.js +3 -3
- package/dist/cjs/src/pro/bitget.js +1 -1
- package/dist/cjs/src/pro/bithumb.js +1 -1
- package/dist/cjs/src/pro/bitstamp.js +1 -1
- package/dist/cjs/src/pro/blockchaincom.js +1 -1
- package/dist/cjs/src/pro/bybit.js +1 -1
- package/dist/cjs/src/pro/cex.js +1 -1
- package/dist/cjs/src/pro/coinex.js +1 -1
- package/dist/cjs/src/pro/coinone.js +1 -1
- package/dist/cjs/src/pro/cryptocom.js +3 -1
- package/dist/cjs/src/pro/dydx.js +1 -1
- package/dist/cjs/src/pro/exmo.js +1 -1
- package/dist/cjs/src/pro/extended.js +865 -0
- package/dist/cjs/src/pro/gate.js +1 -1
- package/dist/cjs/src/pro/independentreserve.js +1 -1
- package/dist/cjs/src/pro/kucoin.js +1 -1
- package/dist/cjs/src/pro/luno.js +3 -3
- package/dist/cjs/src/pro/onetrading.js +1 -1
- package/dist/cjs/src/pro/toobit.js +1 -1
- package/dist/cjs/src/pro/weex.js +1 -1
- package/dist/cjs/src/static_dependencies/starknet/utils/hash/classHash.js +7 -7
- package/dist/cjs/src/tokocrypto.js +1 -1
- package/dist/cjs/src/toobit.js +2 -2
- package/dist/cjs/src/upbit.js +3 -3
- package/dist/cjs/src/weex.js +57 -62
- package/dist/cjs/src/whitebit.js +61 -63
- package/dist/cjs/src/woo.js +65 -54
- package/dist/cjs/src/woofipro.js +53 -47
- package/dist/cjs/src/xt.js +1 -1
- package/dist/cjs/src/zebpay.js +70 -72
- package/js/ccxt.d.ts +8 -14
- package/js/ccxt.js +6 -10
- package/js/src/abstract/bitvavo.d.ts +15 -7
- package/js/src/abstract/extended.d.ts +58 -0
- package/js/src/apex.js +1 -1
- package/js/src/arkham.js +3 -3
- package/js/src/ascendex.js +2 -2
- package/js/src/aster.js +7 -4
- package/js/src/backpack.js +4 -4
- package/js/src/base/Exchange.d.ts +10 -6
- package/js/src/base/Exchange.js +69 -32
- package/js/src/base/functions/io.d.ts +7 -0
- package/js/src/base/functions/io.js +24 -0
- package/js/src/bigone.js +3 -3
- package/js/src/binance.d.ts +2 -0
- package/js/src/binance.js +196 -198
- package/js/src/bingx.js +3 -3
- package/js/src/bitfinex.d.ts +2 -0
- package/js/src/bitfinex.js +71 -58
- package/js/src/bitget.js +2 -2
- package/js/src/bitmart.js +13 -6
- package/js/src/bitmex.js +1 -1
- package/js/src/bitopro.js +1 -1
- package/js/src/bitrue.js +2 -2
- package/js/src/bitso.js +1 -1
- package/js/src/bitstamp.js +2 -1
- package/js/src/bitteam.js +1 -1
- package/js/src/bittrade.js +0 -1
- package/js/src/bitvavo.d.ts +114 -21
- package/js/src/bitvavo.js +457 -34
- package/js/src/blofin.d.ts +1 -0
- package/js/src/blofin.js +26 -3
- package/js/src/bullish.js +6 -5
- package/js/src/bydfi.js +1 -1
- package/js/src/cex.js +3 -3
- package/js/src/coinbase.d.ts +63 -56
- package/js/src/coinbase.js +75 -65
- package/js/src/coinbaseexchange.js +2 -2
- package/js/src/coinbaseinternational.js +2 -1
- package/js/src/coinex.d.ts +1 -0
- package/js/src/coinex.js +74 -74
- package/js/src/coinmetro.d.ts +1 -1
- package/js/src/coinmetro.js +1 -1
- package/js/src/coinsph.js +1 -1
- package/js/src/cryptocom.d.ts +1 -0
- package/js/src/cryptocom.js +46 -48
- package/js/src/cryptomus.d.ts +2 -1
- package/js/src/cryptomus.js +43 -39
- package/js/src/deepcoin.js +3 -2
- package/js/src/delta.d.ts +1 -0
- package/js/src/delta.js +51 -52
- package/js/src/deribit.d.ts +1 -0
- package/js/src/deribit.js +31 -33
- package/js/src/derive.d.ts +1 -0
- package/js/src/derive.js +26 -28
- package/js/src/digifinex.d.ts +1 -0
- package/js/src/digifinex.js +43 -44
- package/js/src/exmo.d.ts +1 -0
- package/js/src/exmo.js +92 -83
- package/js/src/extended.d.ts +554 -0
- package/js/src/extended.js +3490 -0
- package/js/src/foxbit.d.ts +1 -0
- package/js/src/foxbit.js +71 -75
- package/js/src/gate.d.ts +1 -0
- package/js/src/gate.js +53 -53
- package/js/src/gemini.d.ts +2 -1
- package/js/src/gemini.js +41 -43
- package/js/src/grvt.js +4 -4
- package/js/src/hashkey.d.ts +1 -0
- package/js/src/hashkey.js +52 -54
- package/js/src/hitbtc.d.ts +0 -1
- package/js/src/hitbtc.js +3 -13
- package/js/src/hollaex.d.ts +1 -0
- package/js/src/hollaex.js +51 -54
- package/js/src/htx.d.ts +1 -0
- package/js/src/htx.js +75 -67
- package/js/src/hyperliquid.d.ts +1 -0
- package/js/src/hyperliquid.js +41 -42
- package/js/src/indodax.js +2 -2
- package/js/src/kraken.d.ts +2 -1
- package/js/src/kraken.js +57 -58
- package/js/src/kucoin.js +3 -2
- package/js/src/latoken.d.ts +1 -0
- package/js/src/latoken.js +30 -32
- package/js/src/lbank.d.ts +1 -0
- package/js/src/lbank.js +56 -56
- package/js/src/lighter.d.ts +1 -0
- package/js/src/lighter.js +35 -37
- package/js/src/luno.d.ts +1 -0
- package/js/src/luno.js +35 -43
- package/js/src/mexc.d.ts +2 -1
- package/js/src/mexc.js +48 -49
- package/js/src/modetrade.d.ts +1 -0
- package/js/src/modetrade.js +50 -52
- package/js/src/ndax.d.ts +1 -0
- package/js/src/ndax.js +35 -37
- package/js/src/okx.js +17 -2
- package/js/src/onetrading.d.ts +2 -1
- package/js/src/onetrading.js +21 -23
- package/js/src/phemex.d.ts +1 -0
- package/js/src/phemex.js +43 -45
- package/js/src/poloniex.js +17 -12
- package/js/src/pro/alpaca.js +1 -1
- package/js/src/pro/apex.js +1 -1
- package/js/src/pro/arkham.js +1 -1
- package/js/src/pro/backpack.js +1 -1
- package/js/src/pro/binance.js +3 -3
- package/js/src/pro/bitget.js +1 -1
- package/js/src/pro/bithumb.js +1 -1
- package/js/src/pro/bitstamp.js +1 -1
- package/js/src/pro/blockchaincom.js +1 -1
- package/js/src/pro/bybit.js +1 -1
- package/js/src/pro/cex.js +1 -1
- package/js/src/pro/coinex.js +1 -1
- package/js/src/pro/coinone.js +1 -1
- package/js/src/pro/cryptocom.js +3 -1
- package/js/src/pro/dydx.js +1 -1
- package/js/src/pro/exmo.js +1 -1
- package/js/src/pro/extended.d.ts +126 -0
- package/js/src/pro/extended.js +858 -0
- package/js/src/pro/gate.js +1 -1
- package/js/src/pro/independentreserve.js +1 -1
- package/js/src/pro/kucoin.js +1 -1
- package/js/src/pro/luno.d.ts +1 -1
- package/js/src/pro/luno.js +3 -3
- package/js/src/pro/onetrading.js +1 -1
- package/js/src/pro/toobit.js +1 -1
- package/js/src/pro/weex.js +1 -1
- package/js/src/tokocrypto.js +1 -1
- package/js/src/toobit.js +2 -2
- package/js/src/upbit.js +3 -3
- package/js/src/weex.d.ts +1 -0
- package/js/src/weex.js +57 -62
- package/js/src/whitebit.d.ts +1 -0
- package/js/src/whitebit.js +61 -63
- package/js/src/woo.d.ts +1 -0
- package/js/src/woo.js +65 -54
- package/js/src/woofipro.d.ts +1 -0
- package/js/src/woofipro.js +53 -47
- package/js/src/xt.js +1 -1
- package/js/src/zebpay.d.ts +2 -1
- package/js/src/zebpay.js +70 -72
- package/package.json +7 -7
- package/dist/cjs/src/gateio.js +0 -18
- package/dist/cjs/src/oxfun.js +0 -2933
- package/dist/cjs/src/pro/gateio.js +0 -18
- package/dist/cjs/src/pro/oxfun.js +0 -1113
- package/js/src/abstract/gateio.d.ts +0 -346
- package/js/src/abstract/gateio.js +0 -5
- package/js/src/abstract/oxfun.d.ts +0 -37
- package/js/src/gateio.d.ts +0 -4
- package/js/src/gateio.js +0 -11
- package/js/src/oxfun.d.ts +0 -442
- package/js/src/oxfun.js +0 -2926
- package/js/src/pro/gateio.d.ts +0 -4
- package/js/src/pro/gateio.js +0 -11
- package/js/src/pro/oxfun.d.ts +0 -234
- package/js/src/pro/oxfun.js +0 -1106
- /package/dist/cjs/src/abstract/{oxfun.js → extended.js} +0 -0
- /package/js/src/abstract/{oxfun.js → extended.js} +0 -0
package/dist/cjs/src/coinex.js
CHANGED
|
@@ -730,90 +730,88 @@ class coinex extends coinex$1["default"] {
|
|
|
730
730
|
// }
|
|
731
731
|
//
|
|
732
732
|
const data = this.safeList(response, 'data', []);
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
}
|
|
755
|
-
const precisionString = this.parsePrecision(this.safeString(chain, 'withdrawal_precision'));
|
|
756
|
-
const feeString = this.safeString(chain, 'withdrawal_fee');
|
|
757
|
-
const minNetworkDepositString = this.safeString(chain, 'min_deposit_amount');
|
|
758
|
-
const minNetworkWithdrawString = this.safeString(chain, 'min_withdraw_amount');
|
|
759
|
-
const canDepositChain = this.safeBool(chain, 'deposit_enabled');
|
|
760
|
-
const canWithdrawChain = this.safeBool(chain, 'withdraw_enabled');
|
|
761
|
-
const network = {
|
|
762
|
-
'id': networkId,
|
|
763
|
-
'network': networkCode,
|
|
764
|
-
'name': undefined,
|
|
765
|
-
'active': canDepositChain && canWithdrawChain,
|
|
766
|
-
'deposit': canDepositChain,
|
|
767
|
-
'withdraw': canWithdrawChain,
|
|
768
|
-
'fee': this.parseNumber(feeString),
|
|
769
|
-
'precision': this.parseNumber(precisionString),
|
|
770
|
-
'limits': {
|
|
771
|
-
'amount': {
|
|
772
|
-
'min': undefined,
|
|
773
|
-
'max': undefined,
|
|
774
|
-
},
|
|
775
|
-
'deposit': {
|
|
776
|
-
'min': this.parseNumber(minNetworkDepositString),
|
|
777
|
-
'max': undefined,
|
|
778
|
-
},
|
|
779
|
-
'withdraw': {
|
|
780
|
-
'min': this.parseNumber(minNetworkWithdrawString),
|
|
781
|
-
'max': undefined,
|
|
782
|
-
},
|
|
783
|
-
},
|
|
784
|
-
'info': chain,
|
|
785
|
-
};
|
|
786
|
-
networks[networkCode] = network;
|
|
733
|
+
return this.parseCurrencies(data);
|
|
734
|
+
}
|
|
735
|
+
parseCurrency(coin) {
|
|
736
|
+
const asset = this.safeDict(coin, 'asset', {});
|
|
737
|
+
const chains = this.safeList(coin, 'chains', []);
|
|
738
|
+
const currencyId = this.safeString(asset, 'ccy');
|
|
739
|
+
if (currencyId === undefined) {
|
|
740
|
+
return undefined; // coinex returns empty structures for some reason
|
|
741
|
+
}
|
|
742
|
+
const code = this.safeCurrencyCode(currencyId);
|
|
743
|
+
const canDeposit = this.safeBool(asset, 'deposit_enabled');
|
|
744
|
+
const canWithdraw = this.safeBool(asset, 'withdraw_enabled');
|
|
745
|
+
const firstChain = this.safeDict(chains, 0, {});
|
|
746
|
+
const firstPrecisionString = this.parsePrecision(this.safeString(firstChain, 'withdrawal_precision'));
|
|
747
|
+
const networks = {};
|
|
748
|
+
for (let j = 0; j < chains.length; j++) {
|
|
749
|
+
const chain = chains[j];
|
|
750
|
+
const networkId = this.safeString(chain, 'chain');
|
|
751
|
+
const networkCode = this.networkIdToCode(networkId, code);
|
|
752
|
+
if (networkId === undefined) {
|
|
753
|
+
continue;
|
|
787
754
|
}
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
755
|
+
const precisionString = this.parsePrecision(this.safeString(chain, 'withdrawal_precision'));
|
|
756
|
+
const feeString = this.safeString(chain, 'withdrawal_fee');
|
|
757
|
+
const minNetworkDepositString = this.safeString(chain, 'min_deposit_amount');
|
|
758
|
+
const minNetworkWithdrawString = this.safeString(chain, 'min_withdraw_amount');
|
|
759
|
+
const canDepositChain = this.safeBool(chain, 'deposit_enabled');
|
|
760
|
+
const canWithdrawChain = this.safeBool(chain, 'withdraw_enabled');
|
|
761
|
+
const network = {
|
|
762
|
+
'id': networkId,
|
|
763
|
+
'network': networkCode,
|
|
791
764
|
'name': undefined,
|
|
792
|
-
'active':
|
|
793
|
-
'deposit':
|
|
794
|
-
'withdraw':
|
|
795
|
-
'fee':
|
|
796
|
-
'precision': this.parseNumber(
|
|
765
|
+
'active': canDepositChain && canWithdrawChain,
|
|
766
|
+
'deposit': canDepositChain,
|
|
767
|
+
'withdraw': canWithdrawChain,
|
|
768
|
+
'fee': this.parseNumber(feeString),
|
|
769
|
+
'precision': this.parseNumber(precisionString),
|
|
797
770
|
'limits': {
|
|
798
771
|
'amount': {
|
|
799
772
|
'min': undefined,
|
|
800
773
|
'max': undefined,
|
|
801
774
|
},
|
|
802
775
|
'deposit': {
|
|
803
|
-
'min':
|
|
776
|
+
'min': this.parseNumber(minNetworkDepositString),
|
|
804
777
|
'max': undefined,
|
|
805
778
|
},
|
|
806
779
|
'withdraw': {
|
|
807
|
-
'min':
|
|
780
|
+
'min': this.parseNumber(minNetworkWithdrawString),
|
|
808
781
|
'max': undefined,
|
|
809
782
|
},
|
|
810
783
|
},
|
|
811
|
-
'
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
784
|
+
'info': chain,
|
|
785
|
+
};
|
|
786
|
+
networks[networkCode] = network;
|
|
787
|
+
}
|
|
788
|
+
return this.safeCurrencyStructure({
|
|
789
|
+
'id': currencyId,
|
|
790
|
+
'code': code,
|
|
791
|
+
'name': undefined,
|
|
792
|
+
'active': canDeposit && canWithdraw,
|
|
793
|
+
'deposit': canDeposit,
|
|
794
|
+
'withdraw': canWithdraw,
|
|
795
|
+
'fee': undefined,
|
|
796
|
+
'precision': this.parseNumber(firstPrecisionString),
|
|
797
|
+
'limits': {
|
|
798
|
+
'amount': {
|
|
799
|
+
'min': undefined,
|
|
800
|
+
'max': undefined,
|
|
801
|
+
},
|
|
802
|
+
'deposit': {
|
|
803
|
+
'min': undefined,
|
|
804
|
+
'max': undefined,
|
|
805
|
+
},
|
|
806
|
+
'withdraw': {
|
|
807
|
+
'min': undefined,
|
|
808
|
+
'max': undefined,
|
|
809
|
+
},
|
|
810
|
+
},
|
|
811
|
+
'networks': networks,
|
|
812
|
+
'type': 'crypto',
|
|
813
|
+
'info': coin,
|
|
814
|
+
});
|
|
817
815
|
}
|
|
818
816
|
/**
|
|
819
817
|
* @method
|
|
@@ -3998,7 +3996,7 @@ class coinex extends coinex$1["default"] {
|
|
|
3998
3996
|
if (networkCode === undefined) {
|
|
3999
3997
|
throw new errors.ArgumentsRequired(this.id + ' fetchDepositAddress() requires a "network" parameter');
|
|
4000
3998
|
}
|
|
4001
|
-
request['chain'] = this.networkCodeToId(networkCode); // required for on-chain, not required for inter-user transfer
|
|
3999
|
+
request['chain'] = this.networkCodeToId(networkCode, currency['code']); // required for on-chain, not required for inter-user transfer
|
|
4002
4000
|
const response = await this.v2PrivateGetAssetsDepositAddress(this.extend(request, params));
|
|
4003
4001
|
//
|
|
4004
4002
|
// {
|
|
@@ -4924,7 +4922,7 @@ class coinex extends coinex$1["default"] {
|
|
|
4924
4922
|
let networkCode = undefined;
|
|
4925
4923
|
[networkCode, params] = this.handleNetworkCodeAndParams(params);
|
|
4926
4924
|
if (networkCode !== undefined) {
|
|
4927
|
-
request['chain'] = this.networkCodeToId(networkCode); // required for on-chain, not required for inter-user transfer
|
|
4925
|
+
request['chain'] = this.networkCodeToId(networkCode, currency['code']); // required for on-chain, not required for inter-user transfer
|
|
4928
4926
|
}
|
|
4929
4927
|
const response = await this.v2PrivatePostAssetsWithdraw(this.extend(request, params));
|
|
4930
4928
|
//
|
|
@@ -5131,7 +5129,7 @@ class coinex extends coinex$1["default"] {
|
|
|
5131
5129
|
'txid': txid,
|
|
5132
5130
|
'timestamp': timestamp,
|
|
5133
5131
|
'datetime': this.iso8601(timestamp),
|
|
5134
|
-
'network': this.networkIdToCode(networkId),
|
|
5132
|
+
'network': this.networkIdToCode(networkId, code),
|
|
5135
5133
|
'address': address,
|
|
5136
5134
|
'addressTo': address,
|
|
5137
5135
|
'addressFrom': undefined,
|
|
@@ -5834,7 +5832,9 @@ class coinex extends coinex$1["default"] {
|
|
|
5834
5832
|
result['withdraw']['percentage'] = false;
|
|
5835
5833
|
const networkId = this.safeString(entry, 'chain');
|
|
5836
5834
|
if (networkId) {
|
|
5837
|
-
const
|
|
5835
|
+
const currencyId = this.safeString(asset, 'ccy');
|
|
5836
|
+
const feeCode = this.safeCurrencyCode(currencyId, currency);
|
|
5837
|
+
const networkCode = this.networkIdToCode(networkId, feeCode);
|
|
5838
5838
|
result['networks'][networkCode] = {
|
|
5839
5839
|
'withdraw': {
|
|
5840
5840
|
'fee': this.safeNumber(entry, 'withdrawal_fee'),
|
|
@@ -891,7 +891,7 @@ class coinmetro extends coinmetro$1["default"] {
|
|
|
891
891
|
orderbook['nonce'] = this.safeInteger(book, 'seqNumber');
|
|
892
892
|
return orderbook;
|
|
893
893
|
}
|
|
894
|
-
|
|
894
|
+
parseOrderBookBidsAsks(bidasks, priceKey = 0, amountKey = 1, countOrIdKey = 2) {
|
|
895
895
|
const prices = Object.keys(bidasks);
|
|
896
896
|
const result = [];
|
|
897
897
|
for (let i = 0; i < prices.length; i++) {
|
package/dist/cjs/src/coinsph.js
CHANGED
|
@@ -628,7 +628,7 @@ class coinsph extends coinsph$1["default"] {
|
|
|
628
628
|
for (let j = 0; j < networkList.length; j++) {
|
|
629
629
|
const networkItem = networkList[j];
|
|
630
630
|
const network = this.safeString(networkItem, 'network');
|
|
631
|
-
const networkCode = this.networkIdToCode(network);
|
|
631
|
+
const networkCode = this.networkIdToCode(network, code);
|
|
632
632
|
networks[networkCode] = {
|
|
633
633
|
'info': networkItem,
|
|
634
634
|
'id': network,
|
|
@@ -564,7 +564,8 @@ class cryptocom extends cryptocom$1["default"] {
|
|
|
564
564
|
response = await this.v1PrivatePostPrivateGetCurrencyNetworks(params);
|
|
565
565
|
}
|
|
566
566
|
catch (e) {
|
|
567
|
-
|
|
567
|
+
const erString = this.exceptionMessage(e);
|
|
568
|
+
if (erString.indexOf('"msg":"SYS_ERROR"') >= 0) {
|
|
568
569
|
// sub-accounts can't access this endpoint
|
|
569
570
|
// {"code":"10001","msg":"SYS_ERROR"}
|
|
570
571
|
return {};
|
|
@@ -617,57 +618,54 @@ class cryptocom extends cryptocom$1["default"] {
|
|
|
617
618
|
//
|
|
618
619
|
const resultData = this.safeDict(response, 'result', {});
|
|
619
620
|
const currencyMap = this.safeDict(resultData, 'currency_map', {});
|
|
620
|
-
const
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
'network': network,
|
|
637
|
-
'active': undefined,
|
|
638
|
-
'deposit': this.safeBool(chain, 'deposit_enabled', false),
|
|
639
|
-
'withdraw': this.safeBool(chain, 'withdraw_enabled', false),
|
|
640
|
-
'fee': this.safeNumber(chain, 'withdrawal_fee'),
|
|
641
|
-
'precision': undefined,
|
|
642
|
-
'limits': {
|
|
643
|
-
'withdraw': {
|
|
644
|
-
'min': this.safeNumber(chain, 'min_withdrawal_amount'),
|
|
645
|
-
'max': undefined,
|
|
646
|
-
},
|
|
647
|
-
},
|
|
648
|
-
};
|
|
649
|
-
}
|
|
650
|
-
result[code] = this.safeCurrencyStructure({
|
|
651
|
-
'info': currency,
|
|
652
|
-
'id': id,
|
|
653
|
-
'code': code,
|
|
654
|
-
'name': this.safeString(currency, 'full_name'),
|
|
621
|
+
const enhancedArray = this.addKeyInArrayItems(currencyMap, '_coin_id');
|
|
622
|
+
return this.parseCurrencies(enhancedArray);
|
|
623
|
+
}
|
|
624
|
+
parseCurrency(currency) {
|
|
625
|
+
const id = this.safeString(currency, '_coin_id');
|
|
626
|
+
const code = this.safeCurrencyCode(id);
|
|
627
|
+
const networks = {};
|
|
628
|
+
const chains = this.safeList(currency, 'network_list', []);
|
|
629
|
+
for (let j = 0; j < chains.length; j++) {
|
|
630
|
+
const chain = chains[j];
|
|
631
|
+
const networkId = this.safeString(chain, 'network_id');
|
|
632
|
+
const network = this.networkIdToCode(networkId, code);
|
|
633
|
+
networks[network] = {
|
|
634
|
+
'info': chain,
|
|
635
|
+
'id': networkId,
|
|
636
|
+
'network': network,
|
|
655
637
|
'active': undefined,
|
|
656
|
-
'deposit':
|
|
657
|
-
'withdraw':
|
|
658
|
-
'fee':
|
|
638
|
+
'deposit': this.safeBool(chain, 'deposit_enabled', false),
|
|
639
|
+
'withdraw': this.safeBool(chain, 'withdraw_enabled', false),
|
|
640
|
+
'fee': this.safeNumber(chain, 'withdrawal_fee'),
|
|
659
641
|
'precision': undefined,
|
|
660
642
|
'limits': {
|
|
661
|
-
'
|
|
662
|
-
'min':
|
|
643
|
+
'withdraw': {
|
|
644
|
+
'min': this.safeNumber(chain, 'min_withdrawal_amount'),
|
|
663
645
|
'max': undefined,
|
|
664
646
|
},
|
|
665
647
|
},
|
|
666
|
-
|
|
667
|
-
'networks': networks,
|
|
668
|
-
});
|
|
648
|
+
};
|
|
669
649
|
}
|
|
670
|
-
return
|
|
650
|
+
return this.safeCurrencyStructure({
|
|
651
|
+
'info': currency,
|
|
652
|
+
'id': id,
|
|
653
|
+
'code': code,
|
|
654
|
+
'name': this.safeString(currency, 'full_name'),
|
|
655
|
+
'active': undefined,
|
|
656
|
+
'deposit': undefined,
|
|
657
|
+
'withdraw': undefined,
|
|
658
|
+
'fee': undefined,
|
|
659
|
+
'precision': undefined,
|
|
660
|
+
'limits': {
|
|
661
|
+
'amount': {
|
|
662
|
+
'min': undefined,
|
|
663
|
+
'max': undefined,
|
|
664
|
+
},
|
|
665
|
+
},
|
|
666
|
+
'type': 'crypto',
|
|
667
|
+
'networks': networks,
|
|
668
|
+
});
|
|
671
669
|
}
|
|
672
670
|
/**
|
|
673
671
|
* @method
|
|
@@ -2021,7 +2019,7 @@ class cryptocom extends cryptocom$1["default"] {
|
|
|
2021
2019
|
}
|
|
2022
2020
|
let networkCode = undefined;
|
|
2023
2021
|
[networkCode, params] = this.handleNetworkCodeAndParams(params);
|
|
2024
|
-
const networkId = this.networkCodeToId(networkCode);
|
|
2022
|
+
const networkId = this.networkCodeToId(networkCode, code);
|
|
2025
2023
|
if (networkId !== undefined) {
|
|
2026
2024
|
request['network_id'] = networkId;
|
|
2027
2025
|
}
|
|
@@ -3334,8 +3332,8 @@ class cryptocom extends cryptocom$1["default"] {
|
|
|
3334
3332
|
paramsKeys = object;
|
|
3335
3333
|
}
|
|
3336
3334
|
else {
|
|
3337
|
-
const
|
|
3338
|
-
paramsKeys =
|
|
3335
|
+
const objectKeys = Object.keys(object);
|
|
3336
|
+
paramsKeys = this.sort(objectKeys);
|
|
3339
3337
|
}
|
|
3340
3338
|
for (let i = 0; i < paramsKeys.length; i++) {
|
|
3341
3339
|
const key = paramsKeys[i];
|
|
@@ -79,7 +79,7 @@ class cryptomus extends cryptomus$1["default"] {
|
|
|
79
79
|
'fetchConvertTradeHistory': false,
|
|
80
80
|
'fetchCrossBorrowRate': false,
|
|
81
81
|
'fetchCrossBorrowRates': false,
|
|
82
|
-
'fetchCurrencies':
|
|
82
|
+
'fetchCurrencies': true,
|
|
83
83
|
'fetchDepositAddress': false,
|
|
84
84
|
'fetchDeposits': false,
|
|
85
85
|
'fetchDepositsWithdrawals': false,
|
|
@@ -406,46 +406,50 @@ class cryptomus extends cryptomus$1["default"] {
|
|
|
406
406
|
//
|
|
407
407
|
const coins = this.safeList(response, 'result');
|
|
408
408
|
const groupedById = this.groupBy(coins, 'currency_code');
|
|
409
|
-
const
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
'limits': {
|
|
424
|
-
'withdraw': {
|
|
425
|
-
'min': this.safeNumber(networkEntry, 'min_withdraw'),
|
|
426
|
-
'max': this.safeNumber(networkEntry, 'max_withdraw'),
|
|
427
|
-
},
|
|
428
|
-
'deposit': {
|
|
429
|
-
'min': this.safeNumber(networkEntry, 'min_deposit'),
|
|
430
|
-
'max': this.safeNumber(networkEntry, 'max_deposit'),
|
|
431
|
-
},
|
|
432
|
-
},
|
|
433
|
-
'active': undefined,
|
|
434
|
-
'deposit': this.safeBool(networkEntry, 'can_withdraw'),
|
|
435
|
-
'withdraw': this.safeBool(networkEntry, 'can_deposit'),
|
|
436
|
-
'fee': undefined,
|
|
437
|
-
'precision': undefined,
|
|
438
|
-
'info': networkEntry,
|
|
439
|
-
};
|
|
409
|
+
const groupedArray = Object.values(groupedById);
|
|
410
|
+
return this.parseCurrencies(groupedArray);
|
|
411
|
+
}
|
|
412
|
+
parseCurrency(rawCurrency) {
|
|
413
|
+
// currency here is array of networks
|
|
414
|
+
let id = undefined; // all entried have same id, as they were grouped by
|
|
415
|
+
let code = undefined;
|
|
416
|
+
const networks = {};
|
|
417
|
+
for (let i = 0; i < rawCurrency.length; i++) {
|
|
418
|
+
const networkEntry = rawCurrency[i];
|
|
419
|
+
// set ID on first loop
|
|
420
|
+
if (id === undefined) {
|
|
421
|
+
id = this.safeString(networkEntry, 'currency_code');
|
|
422
|
+
code = this.safeCurrencyCode(id);
|
|
440
423
|
}
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
'
|
|
445
|
-
'
|
|
446
|
-
|
|
424
|
+
const networkId = this.safeString(networkEntry, 'network_code');
|
|
425
|
+
const networkCode = this.networkIdToCode(networkId, code);
|
|
426
|
+
networks[networkCode] = {
|
|
427
|
+
'id': networkId,
|
|
428
|
+
'network': networkCode,
|
|
429
|
+
'limits': {
|
|
430
|
+
'withdraw': {
|
|
431
|
+
'min': this.safeNumber(networkEntry, 'min_withdraw'),
|
|
432
|
+
'max': this.safeNumber(networkEntry, 'max_withdraw'),
|
|
433
|
+
},
|
|
434
|
+
'deposit': {
|
|
435
|
+
'min': this.safeNumber(networkEntry, 'min_deposit'),
|
|
436
|
+
'max': this.safeNumber(networkEntry, 'max_deposit'),
|
|
437
|
+
},
|
|
438
|
+
},
|
|
439
|
+
'active': undefined,
|
|
440
|
+
'deposit': this.safeBool(networkEntry, 'can_deposit'),
|
|
441
|
+
'withdraw': this.safeBool(networkEntry, 'can_withdraw'),
|
|
442
|
+
'fee': undefined,
|
|
443
|
+
'precision': undefined,
|
|
444
|
+
'info': networkEntry,
|
|
445
|
+
};
|
|
447
446
|
}
|
|
448
|
-
return
|
|
447
|
+
return this.safeCurrencyStructure({
|
|
448
|
+
'id': id,
|
|
449
|
+
'code': code,
|
|
450
|
+
'networks': networks,
|
|
451
|
+
'info': rawCurrency,
|
|
452
|
+
});
|
|
449
453
|
}
|
|
450
454
|
/**
|
|
451
455
|
* @method
|
package/dist/cjs/src/deepcoin.js
CHANGED
|
@@ -1066,7 +1066,7 @@ class deepcoin extends deepcoin$1["default"] {
|
|
|
1066
1066
|
const amount = this.safeNumber(transaction, 'amount');
|
|
1067
1067
|
const timestamp = this.safeTimestamp(transaction, 'createTime');
|
|
1068
1068
|
const networkId = this.safeString(transaction, 'chainName');
|
|
1069
|
-
const network = this.networkIdToCode(networkId);
|
|
1069
|
+
const network = this.networkIdToCode(networkId, code);
|
|
1070
1070
|
const status = this.parseTransactionStatus(this.safeString(transaction, 'status'));
|
|
1071
1071
|
return {
|
|
1072
1072
|
'info': transaction,
|
|
@@ -1213,10 +1213,11 @@ class deepcoin extends deepcoin$1["default"] {
|
|
|
1213
1213
|
const chain = this.safeString(response, 'chain');
|
|
1214
1214
|
const address = this.safeString(response, 'address');
|
|
1215
1215
|
this.checkAddress(address);
|
|
1216
|
+
const code = this.safeString(currency, 'code');
|
|
1216
1217
|
return {
|
|
1217
1218
|
'info': response,
|
|
1218
1219
|
'currency': undefined,
|
|
1219
|
-
'network': this.networkIdToCode(chain),
|
|
1220
|
+
'network': this.networkIdToCode(chain, code),
|
|
1220
1221
|
'address': address,
|
|
1221
1222
|
'tag': this.safeString(response, 'memo'),
|
|
1222
1223
|
};
|
package/dist/cjs/src/delta.js
CHANGED
|
@@ -565,62 +565,60 @@ class delta extends delta$1["default"] {
|
|
|
565
565
|
// }
|
|
566
566
|
//
|
|
567
567
|
const currencies = this.safeList(response, 'result', []);
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
'limits': {
|
|
590
|
-
'deposit': {
|
|
591
|
-
'min': this.safeNumber(chain, 'min_deposit_amount'),
|
|
592
|
-
'max': undefined,
|
|
593
|
-
},
|
|
594
|
-
'withdraw': {
|
|
595
|
-
'min': this.safeNumber(chain, 'min_withdrawal_amount'),
|
|
596
|
-
'max': undefined,
|
|
597
|
-
},
|
|
598
|
-
},
|
|
599
|
-
};
|
|
600
|
-
}
|
|
601
|
-
result[code] = this.safeCurrencyStructure({
|
|
602
|
-
'id': id,
|
|
603
|
-
'numericId': numericId,
|
|
604
|
-
'code': code,
|
|
605
|
-
'name': this.safeString(currency, 'name'),
|
|
606
|
-
'info': currency,
|
|
607
|
-
'active': undefined,
|
|
608
|
-
'deposit': this.safeString(currency, 'deposit_status') === 'enabled',
|
|
609
|
-
'withdraw': this.safeString(currency, 'withdrawal_status') === 'enabled',
|
|
610
|
-
'fee': this.safeNumber(currency, 'base_withdrawal_fee'),
|
|
611
|
-
'precision': this.parseNumber(this.parsePrecision(this.safeString(currency, 'precision'))),
|
|
568
|
+
return this.parseCurrencies(currencies);
|
|
569
|
+
}
|
|
570
|
+
parseCurrency(rawCurrency) {
|
|
571
|
+
const id = this.safeString(rawCurrency, 'symbol');
|
|
572
|
+
const numericId = this.safeInteger(rawCurrency, 'id');
|
|
573
|
+
const code = this.safeCurrencyCode(id);
|
|
574
|
+
const chains = this.safeList(rawCurrency, 'networks', []);
|
|
575
|
+
const networks = {};
|
|
576
|
+
for (let j = 0; j < chains.length; j++) {
|
|
577
|
+
const chain = chains[j];
|
|
578
|
+
const networkId = this.safeString(chain, 'network');
|
|
579
|
+
const networkCode = this.networkIdToCode(networkId, code);
|
|
580
|
+
networks[networkCode] = {
|
|
581
|
+
'id': networkId,
|
|
582
|
+
'network': networkCode,
|
|
583
|
+
'name': this.safeString(chain, 'name'),
|
|
584
|
+
'info': chain,
|
|
585
|
+
'active': this.safeString(chain, 'status') === 'enabled',
|
|
586
|
+
'deposit': this.safeString(chain, 'deposit_status') === 'enabled',
|
|
587
|
+
'withdraw': this.safeString(chain, 'withdrawal_status') === 'enabled',
|
|
588
|
+
'fee': this.safeNumber(chain, 'base_withdrawal_fee'),
|
|
612
589
|
'limits': {
|
|
613
|
-
'
|
|
590
|
+
'deposit': {
|
|
591
|
+
'min': this.safeNumber(chain, 'min_deposit_amount'),
|
|
592
|
+
'max': undefined,
|
|
593
|
+
},
|
|
614
594
|
'withdraw': {
|
|
615
|
-
'min': this.safeNumber(
|
|
595
|
+
'min': this.safeNumber(chain, 'min_withdrawal_amount'),
|
|
616
596
|
'max': undefined,
|
|
617
597
|
},
|
|
618
598
|
},
|
|
619
|
-
|
|
620
|
-
'type': 'crypto',
|
|
621
|
-
});
|
|
599
|
+
};
|
|
622
600
|
}
|
|
623
|
-
return
|
|
601
|
+
return this.safeCurrencyStructure({
|
|
602
|
+
'id': id,
|
|
603
|
+
'numericId': numericId,
|
|
604
|
+
'code': code,
|
|
605
|
+
'name': this.safeString(rawCurrency, 'name'),
|
|
606
|
+
'info': rawCurrency,
|
|
607
|
+
'active': undefined,
|
|
608
|
+
'deposit': this.safeString(rawCurrency, 'deposit_status') === 'enabled',
|
|
609
|
+
'withdraw': this.safeString(rawCurrency, 'withdrawal_status') === 'enabled',
|
|
610
|
+
'fee': this.safeNumber(rawCurrency, 'base_withdrawal_fee'),
|
|
611
|
+
'precision': this.parseNumber(this.parsePrecision(this.safeString(rawCurrency, 'precision'))),
|
|
612
|
+
'limits': {
|
|
613
|
+
'amount': { 'min': undefined, 'max': undefined },
|
|
614
|
+
'withdraw': {
|
|
615
|
+
'min': this.safeNumber(rawCurrency, 'min_withdrawal_amount'),
|
|
616
|
+
'max': undefined,
|
|
617
|
+
},
|
|
618
|
+
},
|
|
619
|
+
'networks': networks,
|
|
620
|
+
'type': 'crypto',
|
|
621
|
+
});
|
|
624
622
|
}
|
|
625
623
|
async loadMarkets(reload = false, params = {}) {
|
|
626
624
|
const markets = await super.loadMarkets(reload, params);
|
|
@@ -2608,11 +2606,12 @@ class delta extends delta$1["default"] {
|
|
|
2608
2606
|
const address = this.safeString(depositAddress, 'address');
|
|
2609
2607
|
const marketId = this.safeString(depositAddress, 'asset_symbol');
|
|
2610
2608
|
const networkId = this.safeString(depositAddress, 'network');
|
|
2609
|
+
const code = this.safeCurrencyCode(marketId, currency);
|
|
2611
2610
|
this.checkAddress(address);
|
|
2612
2611
|
return {
|
|
2613
2612
|
'info': depositAddress,
|
|
2614
|
-
'currency':
|
|
2615
|
-
'network': this.networkIdToCode(networkId),
|
|
2613
|
+
'currency': code,
|
|
2614
|
+
'network': this.networkIdToCode(networkId, code),
|
|
2616
2615
|
'address': address,
|
|
2617
2616
|
'tag': this.safeString(depositAddress, 'memo'),
|
|
2618
2617
|
};
|