ccxt-ir 4.12.4 → 4.13.1
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 +4 -4
- package/dist/ccxt.browser.min.js +3 -3
- package/dist/cjs/ccxt.js +4 -1
- package/dist/cjs/src/abstract/bitwana.js +11 -0
- package/dist/cjs/src/bitwana.js +420 -0
- package/dist/cjs/src/changefa.js +1 -1
- package/dist/cjs/src/kifpoolme.js +2 -2
- package/js/ccxt.d.ts +5 -2
- package/js/ccxt.js +4 -2
- package/js/src/abstract/bitwana.d.ts +9 -0
- package/js/src/abstract/bitwana.js +11 -0
- package/js/src/base/Exchange.d.ts +2 -2
- package/js/src/bitwana.d.ts +24 -0
- package/js/src/bitwana.js +419 -0
- package/js/src/changefa.js +1 -1
- package/js/src/coinbaseexchange.d.ts +1 -1
- package/js/src/kifpoolme.js +2 -2
- package/js/src/protobuf/mexc/compiled.d.cts +6 -0
- package/js/src/src/bitwana.d.ts +21 -0
- package/js/src/static_dependencies/fflake/browser.d.ts +5 -5
- package/js/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.d.ts +1 -1
- package/js/src/static_dependencies/qs/formats.d.cts +6 -0
- package/js/src/static_dependencies/qs/index.d.cts +6 -0
- package/js/src/static_dependencies/qs/parse.d.cts +6 -0
- package/js/src/static_dependencies/qs/stringify.d.cts +6 -0
- package/js/src/static_dependencies/qs/utils.d.cts +6 -0
- package/js/src/static_dependencies/starknet/utils/calldata/parser/index.d.ts +1 -1
- package/js/test.js +76 -24
- package/package.json +1 -1
|
@@ -0,0 +1,419 @@
|
|
|
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
|
+
// ---------------------------------------------------------------------------
|
|
8
|
+
import Exchange from './abstract/bitwana.js';
|
|
9
|
+
// ---------------------------------------------------------------------------
|
|
10
|
+
/**
|
|
11
|
+
* @class bitwana
|
|
12
|
+
* @augments Exchange
|
|
13
|
+
* @description Set rateLimit to 1000 if fully verified
|
|
14
|
+
*/
|
|
15
|
+
export default class bitwana extends Exchange {
|
|
16
|
+
marketTypeToSymbol(base, quote, marketType = 'spot') {
|
|
17
|
+
return base + '/' + quote;
|
|
18
|
+
}
|
|
19
|
+
describe() {
|
|
20
|
+
return this.deepExtend(super.describe(), {
|
|
21
|
+
'id': 'bitwana',
|
|
22
|
+
'name': 'Bitwana',
|
|
23
|
+
'countries': ['IR'],
|
|
24
|
+
'rateLimit': 1000,
|
|
25
|
+
'version': '1',
|
|
26
|
+
'certified': false,
|
|
27
|
+
'pro': false,
|
|
28
|
+
'has': {
|
|
29
|
+
'CORS': undefined,
|
|
30
|
+
'spot': true,
|
|
31
|
+
'margin': false,
|
|
32
|
+
'swap': false,
|
|
33
|
+
'future': false,
|
|
34
|
+
'option': false,
|
|
35
|
+
'addMargin': false,
|
|
36
|
+
'cancelAllOrders': false,
|
|
37
|
+
'cancelOrder': false,
|
|
38
|
+
'cancelOrders': false,
|
|
39
|
+
'createDepositAddress': false,
|
|
40
|
+
'createOrder': false,
|
|
41
|
+
'createStopLimitOrder': false,
|
|
42
|
+
'createStopMarketOrder': false,
|
|
43
|
+
'createStopOrder': false,
|
|
44
|
+
'editOrder': false,
|
|
45
|
+
'fetchBalance': false,
|
|
46
|
+
'fetchBorrowInterest': false,
|
|
47
|
+
'fetchBorrowRateHistories': false,
|
|
48
|
+
'fetchBorrowRateHistory': false,
|
|
49
|
+
'fetchClosedOrders': false,
|
|
50
|
+
'fetchCrossBorrowRate': false,
|
|
51
|
+
'fetchCrossBorrowRates': false,
|
|
52
|
+
'fetchCurrencies': false,
|
|
53
|
+
'fetchDepositAddress': false,
|
|
54
|
+
'fetchDeposits': false,
|
|
55
|
+
'fetchFundingHistory': false,
|
|
56
|
+
'fetchFundingRate': false,
|
|
57
|
+
'fetchFundingRateHistory': false,
|
|
58
|
+
'fetchFundingRates': false,
|
|
59
|
+
'fetchIndexOHLCV': false,
|
|
60
|
+
'fetchIsolatedBorrowRate': false,
|
|
61
|
+
'fetchIsolatedBorrowRates': false,
|
|
62
|
+
'fetchL2OrderBook': false,
|
|
63
|
+
'fetchL3OrderBook': false,
|
|
64
|
+
'fetchLedger': false,
|
|
65
|
+
'fetchLedgerEntry': false,
|
|
66
|
+
'fetchLeverageTiers': false,
|
|
67
|
+
'fetchMarkets': true,
|
|
68
|
+
'fetchMarkOHLCV': false,
|
|
69
|
+
'fetchMyTrades': false,
|
|
70
|
+
'fetchOHLCV': false,
|
|
71
|
+
'fetchOpenInterestHistory': false,
|
|
72
|
+
'fetchOpenOrders': false,
|
|
73
|
+
'fetchOrder': false,
|
|
74
|
+
'fetchOrderBook': false,
|
|
75
|
+
'fetchOrders': false,
|
|
76
|
+
'fetchOrderTrades': 'emulated',
|
|
77
|
+
'fetchPositions': false,
|
|
78
|
+
'fetchPremiumIndexOHLCV': false,
|
|
79
|
+
'fetchTicker': true,
|
|
80
|
+
'fetchTickers': true,
|
|
81
|
+
'fetchTime': false,
|
|
82
|
+
'fetchTrades': false,
|
|
83
|
+
'fetchTradingFee': false,
|
|
84
|
+
'fetchTradingFees': false,
|
|
85
|
+
'fetchWithdrawals': false,
|
|
86
|
+
'otc': true,
|
|
87
|
+
'setLeverage': false,
|
|
88
|
+
'setMarginMode': false,
|
|
89
|
+
'transfer': false,
|
|
90
|
+
'withdraw': false,
|
|
91
|
+
},
|
|
92
|
+
'comment': 'This comment is optional',
|
|
93
|
+
'urls': {
|
|
94
|
+
'logo': 'https://cdn.arz.digital/cr-odin/img/exchanges/bitwana/64x64.png',
|
|
95
|
+
'api': {
|
|
96
|
+
'public': 'https://bitwana.com',
|
|
97
|
+
},
|
|
98
|
+
'www': 'https://bitwana.com/',
|
|
99
|
+
'doc': [
|
|
100
|
+
'https://bitwana.com/',
|
|
101
|
+
],
|
|
102
|
+
},
|
|
103
|
+
'api': {
|
|
104
|
+
'public': {
|
|
105
|
+
'get': {
|
|
106
|
+
'api/1/markets': 1,
|
|
107
|
+
'api/1/markets/{id}': 1,
|
|
108
|
+
},
|
|
109
|
+
},
|
|
110
|
+
},
|
|
111
|
+
'fees': {},
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
parseSpotMarket(market) {
|
|
115
|
+
// {
|
|
116
|
+
// "id": "BTC_IRT",
|
|
117
|
+
// "symbol": "بیتکوین-تومان",
|
|
118
|
+
// "base": "BTC",
|
|
119
|
+
// "quote": "IRT",
|
|
120
|
+
// "buyPrice": "10222846365",
|
|
121
|
+
// "sellPrice": "10233403625",
|
|
122
|
+
// "userOrderPricePrecision": 0,
|
|
123
|
+
// "quantityPrecision": 6,
|
|
124
|
+
// "minimumOrder": 100000,
|
|
125
|
+
// "maximumOrder": 300000000,
|
|
126
|
+
// "lastTradedPrice": "10249911984",
|
|
127
|
+
// "lowestPrice": "10063564406",
|
|
128
|
+
// "highestPrice": "10320391247",
|
|
129
|
+
// "sourceVolume": "0.036557",
|
|
130
|
+
// "destinationVolume": "371770611.78",
|
|
131
|
+
// "tradingEnabled": true,
|
|
132
|
+
// "otcEnabled": false,
|
|
133
|
+
// }
|
|
134
|
+
const id = this.safeString(market, 'id');
|
|
135
|
+
const baseId = this.safeString(market, 'base');
|
|
136
|
+
const quoteId = this.safeString(market, 'quote');
|
|
137
|
+
const base = this.safeCurrencyCode(baseId);
|
|
138
|
+
const quote = this.safeCurrencyCode(quoteId);
|
|
139
|
+
return {
|
|
140
|
+
'id': id,
|
|
141
|
+
'symbol': this.marketTypeToSymbol(base, quote, 'spot'),
|
|
142
|
+
'base': base,
|
|
143
|
+
'quote': quote,
|
|
144
|
+
'settle': undefined,
|
|
145
|
+
'baseId': baseId,
|
|
146
|
+
'quoteId': quoteId,
|
|
147
|
+
'settleId': undefined,
|
|
148
|
+
'type': 'spot',
|
|
149
|
+
'spot': true,
|
|
150
|
+
'margin': false,
|
|
151
|
+
'swap': false,
|
|
152
|
+
'future': false,
|
|
153
|
+
'option': false,
|
|
154
|
+
'active': true,
|
|
155
|
+
'contract': false,
|
|
156
|
+
'linear': undefined,
|
|
157
|
+
'inverse': undefined,
|
|
158
|
+
'contractSize': undefined,
|
|
159
|
+
'expiry': undefined,
|
|
160
|
+
'expiryDatetime': undefined,
|
|
161
|
+
'strike': undefined,
|
|
162
|
+
'optionType': undefined,
|
|
163
|
+
'precision': {
|
|
164
|
+
'amount': this.safeInteger(market, 'quantityPrecision'),
|
|
165
|
+
'price': this.safeInteger(market, 'userOrderPricePrecision'),
|
|
166
|
+
},
|
|
167
|
+
'limits': {
|
|
168
|
+
'leverage': {
|
|
169
|
+
'min': undefined,
|
|
170
|
+
'max': undefined,
|
|
171
|
+
},
|
|
172
|
+
'amount': {
|
|
173
|
+
'min': undefined,
|
|
174
|
+
'max': undefined,
|
|
175
|
+
},
|
|
176
|
+
'price': {
|
|
177
|
+
'min': undefined,
|
|
178
|
+
'max': undefined,
|
|
179
|
+
},
|
|
180
|
+
'cost': {
|
|
181
|
+
'min': this.safeNumber(market, 'minimumOrder'),
|
|
182
|
+
'max': this.safeNumber(market, 'maximumOrder'),
|
|
183
|
+
},
|
|
184
|
+
},
|
|
185
|
+
'created': undefined,
|
|
186
|
+
'info': market,
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
parseOtcMarket(market) {
|
|
190
|
+
const rawId = this.safeString(market, 'id');
|
|
191
|
+
const baseId = this.safeString(market, 'base');
|
|
192
|
+
const quoteId = this.safeString(market, 'quote');
|
|
193
|
+
const base = this.safeCurrencyCode(baseId);
|
|
194
|
+
const quote = this.safeCurrencyCode(quoteId);
|
|
195
|
+
return {
|
|
196
|
+
'id': rawId + '_OTC',
|
|
197
|
+
'symbol': this.marketTypeToSymbol(base, quote, 'otc'),
|
|
198
|
+
'base': base,
|
|
199
|
+
'quote': quote,
|
|
200
|
+
'settle': undefined,
|
|
201
|
+
'baseId': baseId,
|
|
202
|
+
'quoteId': quoteId,
|
|
203
|
+
'settleId': undefined,
|
|
204
|
+
'type': 'otc',
|
|
205
|
+
'spot': false,
|
|
206
|
+
'margin': false,
|
|
207
|
+
'swap': false,
|
|
208
|
+
'future': false,
|
|
209
|
+
'option': false,
|
|
210
|
+
'active': true,
|
|
211
|
+
'contract': false,
|
|
212
|
+
'linear': undefined,
|
|
213
|
+
'inverse': undefined,
|
|
214
|
+
'contractSize': undefined,
|
|
215
|
+
'expiry': undefined,
|
|
216
|
+
'expiryDatetime': undefined,
|
|
217
|
+
'strike': undefined,
|
|
218
|
+
'optionType': undefined,
|
|
219
|
+
'precision': {
|
|
220
|
+
'amount': this.safeInteger(market, 'quantityPrecision'),
|
|
221
|
+
'price': this.safeInteger(market, 'userOrderPricePrecision'),
|
|
222
|
+
},
|
|
223
|
+
'limits': {
|
|
224
|
+
'leverage': {
|
|
225
|
+
'min': undefined,
|
|
226
|
+
'max': undefined,
|
|
227
|
+
},
|
|
228
|
+
'amount': {
|
|
229
|
+
'min': undefined,
|
|
230
|
+
'max': undefined,
|
|
231
|
+
},
|
|
232
|
+
'price': {
|
|
233
|
+
'min': undefined,
|
|
234
|
+
'max': undefined,
|
|
235
|
+
},
|
|
236
|
+
'cost': {
|
|
237
|
+
'min': this.safeNumber(market, 'minimumOrder'),
|
|
238
|
+
'max': this.safeNumber(market, 'maximumOrder'),
|
|
239
|
+
},
|
|
240
|
+
},
|
|
241
|
+
'created': undefined,
|
|
242
|
+
'info': market,
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
async fetchMarkets(params = {}) {
|
|
246
|
+
/**
|
|
247
|
+
* @method
|
|
248
|
+
* @name bitwana#fetchMarkets
|
|
249
|
+
* @description retrieves data on all markets for bitwana
|
|
250
|
+
* @see https://bitwana.com/api/1/markets?with_price=true
|
|
251
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
252
|
+
* @returns {object[]} an array of objects representing market data
|
|
253
|
+
*/
|
|
254
|
+
const marketType = this.safeString(params, 'type', 'spot');
|
|
255
|
+
const request = {
|
|
256
|
+
'with_price': true,
|
|
257
|
+
};
|
|
258
|
+
const response = await this.publicGetApi1Markets(this.extend(request, params));
|
|
259
|
+
const markets = this.safeList(response, 'content', []);
|
|
260
|
+
const result = [];
|
|
261
|
+
for (let i = 0; i < markets.length; i++) {
|
|
262
|
+
const market = markets[i];
|
|
263
|
+
if (marketType === 'otc') {
|
|
264
|
+
result.push(this.parseOtcMarket(market));
|
|
265
|
+
}
|
|
266
|
+
else {
|
|
267
|
+
result.push(this.parseSpotMarket(market));
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
return result;
|
|
271
|
+
}
|
|
272
|
+
async fetchTickers(symbols = undefined, params = {}) {
|
|
273
|
+
/**
|
|
274
|
+
* @method
|
|
275
|
+
* @name bitwana#fetchTickers
|
|
276
|
+
* @description fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
|
|
277
|
+
* @see https://bitwana.com/api/1/markets?with_price=true
|
|
278
|
+
* @param {string[]|undefined} symbols unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
|
|
279
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
280
|
+
* @returns {object} a dictionary of [ticker structures]{@link https://docs.ccxt.com/#/?id=ticker-structure}
|
|
281
|
+
*/
|
|
282
|
+
const marketType = this.safeString(params, 'type', 'spot');
|
|
283
|
+
await this.loadMarkets(false, { 'type': marketType });
|
|
284
|
+
if (symbols !== undefined) {
|
|
285
|
+
symbols = this.marketSymbols(symbols);
|
|
286
|
+
}
|
|
287
|
+
const request = {
|
|
288
|
+
'with_price': true,
|
|
289
|
+
};
|
|
290
|
+
const response = await this.publicGetApi1Markets(this.extend(request, params));
|
|
291
|
+
const markets = this.safeList(response, 'content', []);
|
|
292
|
+
const result = {};
|
|
293
|
+
for (let i = 0; i < markets.length; i++) {
|
|
294
|
+
const market = markets[i];
|
|
295
|
+
if (marketType === 'otc') {
|
|
296
|
+
const otcTicker = this.parseOtcTicker(market);
|
|
297
|
+
result[otcTicker['symbol']] = otcTicker;
|
|
298
|
+
}
|
|
299
|
+
else {
|
|
300
|
+
const spotTicker = this.parseSpotTicker(market);
|
|
301
|
+
result[spotTicker['symbol']] = spotTicker;
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
return this.filterByArrayTickers(result, 'symbol', symbols);
|
|
305
|
+
}
|
|
306
|
+
async fetchTicker(symbol, params = {}) {
|
|
307
|
+
/**
|
|
308
|
+
* @method
|
|
309
|
+
* @name bitwana#fetchTicker
|
|
310
|
+
* @description fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
|
311
|
+
* @see https://bitwana.com/api/1/markets/BTC_IRT?with_price=true
|
|
312
|
+
* @param {string} symbol unified symbol of the market to fetch the ticker for
|
|
313
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
314
|
+
* @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
|
|
315
|
+
*/
|
|
316
|
+
const marketType = this.safeString(params, 'type', 'spot');
|
|
317
|
+
await this.loadMarkets(false, { 'type': marketType });
|
|
318
|
+
const market = this.market(symbol);
|
|
319
|
+
const request = {
|
|
320
|
+
'id': this.safeString(market['info'], 'id'),
|
|
321
|
+
'with_price': true,
|
|
322
|
+
};
|
|
323
|
+
const response = await this.publicGetApi1MarketsId(this.extend(request, params));
|
|
324
|
+
const ticker = this.safeDict(response, 'content');
|
|
325
|
+
if (marketType === 'otc') {
|
|
326
|
+
return this.parseOtcTicker(ticker, market);
|
|
327
|
+
}
|
|
328
|
+
return this.parseSpotTicker(ticker, market);
|
|
329
|
+
}
|
|
330
|
+
parseSpotTicker(ticker, market = undefined) {
|
|
331
|
+
const baseId = this.safeString(ticker, 'base');
|
|
332
|
+
const quoteId = this.safeString(ticker, 'quote');
|
|
333
|
+
const base = this.safeCurrencyCode(baseId);
|
|
334
|
+
const quote = this.safeCurrencyCode(quoteId);
|
|
335
|
+
let symbol = this.marketTypeToSymbol(base, quote, 'spot');
|
|
336
|
+
if (market !== undefined) {
|
|
337
|
+
symbol = market['symbol'];
|
|
338
|
+
}
|
|
339
|
+
const high = this.safeNumber(ticker, 'highestPrice');
|
|
340
|
+
const low = this.safeNumber(ticker, 'lowestPrice');
|
|
341
|
+
const bid = this.safeNumber(ticker, 'buyPrice');
|
|
342
|
+
const ask = this.safeNumber(ticker, 'sellPrice');
|
|
343
|
+
const last = this.safeNumber(ticker, 'lastTradedPrice');
|
|
344
|
+
const change = this.safeNumber(ticker, 'changePrice');
|
|
345
|
+
const percentage = this.safeNumber(ticker, 'changeRate');
|
|
346
|
+
const baseVolume = this.safeNumber(ticker, 'sourceVolume');
|
|
347
|
+
const quoteVolume = this.safeNumber(ticker, 'destinationVolume');
|
|
348
|
+
return this.safeTicker({
|
|
349
|
+
'symbol': symbol,
|
|
350
|
+
'timestamp': undefined,
|
|
351
|
+
'datetime': undefined,
|
|
352
|
+
'high': high,
|
|
353
|
+
'low': low,
|
|
354
|
+
'bid': bid,
|
|
355
|
+
'bidVolume': undefined,
|
|
356
|
+
'ask': ask,
|
|
357
|
+
'askVolume': undefined,
|
|
358
|
+
'vwap': undefined,
|
|
359
|
+
'open': undefined,
|
|
360
|
+
'close': last,
|
|
361
|
+
'last': last,
|
|
362
|
+
'previousClose': undefined,
|
|
363
|
+
'change': change,
|
|
364
|
+
'percentage': percentage,
|
|
365
|
+
'average': undefined,
|
|
366
|
+
'baseVolume': baseVolume,
|
|
367
|
+
'quoteVolume': quoteVolume,
|
|
368
|
+
'info': ticker,
|
|
369
|
+
}, market);
|
|
370
|
+
}
|
|
371
|
+
parseOtcTicker(ticker, market = undefined) {
|
|
372
|
+
const baseId = this.safeString(ticker, 'base');
|
|
373
|
+
const quoteId = this.safeString(ticker, 'quote');
|
|
374
|
+
const base = this.safeCurrencyCode(baseId);
|
|
375
|
+
const quote = this.safeCurrencyCode(quoteId);
|
|
376
|
+
let symbol = this.marketTypeToSymbol(base, quote, 'otc');
|
|
377
|
+
if (market !== undefined) {
|
|
378
|
+
symbol = market['symbol'];
|
|
379
|
+
}
|
|
380
|
+
const high = this.safeNumber(ticker, 'highestPrice');
|
|
381
|
+
const low = this.safeNumber(ticker, 'lowestPrice');
|
|
382
|
+
const bid = this.safeNumber(ticker, 'buyPrice');
|
|
383
|
+
const ask = this.safeNumber(ticker, 'sellPrice');
|
|
384
|
+
const last = this.safeNumber(ticker, 'lastTradedPrice');
|
|
385
|
+
const change = this.safeNumber(ticker, 'changePrice');
|
|
386
|
+
const percentage = this.safeNumber(ticker, 'changeRate');
|
|
387
|
+
return this.safeTicker({
|
|
388
|
+
'symbol': symbol,
|
|
389
|
+
'timestamp': undefined,
|
|
390
|
+
'datetime': undefined,
|
|
391
|
+
'high': high,
|
|
392
|
+
'low': low,
|
|
393
|
+
'bid': bid,
|
|
394
|
+
'bidVolume': undefined,
|
|
395
|
+
'ask': ask,
|
|
396
|
+
'askVolume': undefined,
|
|
397
|
+
'vwap': undefined,
|
|
398
|
+
'open': undefined,
|
|
399
|
+
'close': last,
|
|
400
|
+
'last': last,
|
|
401
|
+
'previousClose': undefined,
|
|
402
|
+
'change': change,
|
|
403
|
+
'percentage': percentage,
|
|
404
|
+
'average': undefined,
|
|
405
|
+
'baseVolume': undefined,
|
|
406
|
+
'quoteVolume': undefined,
|
|
407
|
+
'info': ticker,
|
|
408
|
+
}, market);
|
|
409
|
+
}
|
|
410
|
+
sign(path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
|
|
411
|
+
const query = this.omit(params, this.extractParams(path));
|
|
412
|
+
let url = this.urls['api'][api] + '/' + this.implodeParams(path, params);
|
|
413
|
+
if (Object.keys(query).length) {
|
|
414
|
+
url += '?' + this.urlencode(query);
|
|
415
|
+
}
|
|
416
|
+
headers = { 'Content-Type': 'application/json' };
|
|
417
|
+
return { 'url': url, 'method': method, 'body': body, 'headers': headers };
|
|
418
|
+
}
|
|
419
|
+
}
|
package/js/src/changefa.js
CHANGED
|
@@ -227,7 +227,7 @@ export default class changefa extends Exchange {
|
|
|
227
227
|
const buyPrice = this.safeNumber(ticker, 'buyPrice');
|
|
228
228
|
const sellPrice = this.safeNumber(ticker, 'sellPrice');
|
|
229
229
|
if ((buyPrice !== undefined) && (sellPrice !== undefined)) {
|
|
230
|
-
last =
|
|
230
|
+
last = sellPrice;
|
|
231
231
|
}
|
|
232
232
|
const weeklyPriceLog = this.safeList(ticker, 'weeklyPriceLog', []);
|
|
233
233
|
let high = undefined;
|
|
@@ -311,7 +311,7 @@ export default class coinbaseexchange extends Exchange {
|
|
|
311
311
|
* @returns {object[]} a list of [transaction structures]{@link https://docs.ccxt.com/#/?id=transaction-structure}
|
|
312
312
|
*/
|
|
313
313
|
fetchWithdrawals(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<Transaction[]>;
|
|
314
|
-
parseTransactionStatus(transaction: any): "
|
|
314
|
+
parseTransactionStatus(transaction: any): "canceled" | "pending" | "ok" | "failed";
|
|
315
315
|
parseTransaction(transaction: Dict, currency?: Currency): Transaction;
|
|
316
316
|
/**
|
|
317
317
|
* @method
|
package/js/src/kifpoolme.js
CHANGED
|
@@ -310,8 +310,8 @@ export default class kifpoolme extends Exchange {
|
|
|
310
310
|
let ask = undefined;
|
|
311
311
|
if (quoteId === 'IRT') {
|
|
312
312
|
// For IRT: priceSellIRT is the sell price (bid), priceBuyIRT is the buy price (ask)
|
|
313
|
-
|
|
314
|
-
|
|
313
|
+
ask = this.safeNumber(ticker, 'priceSellIRT');
|
|
314
|
+
bid = this.safeNumber(ticker, 'priceBuyIRT');
|
|
315
315
|
last = ask;
|
|
316
316
|
}
|
|
317
317
|
else {
|
|
@@ -1,2 +1,8 @@
|
|
|
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
|
+
|
|
1
7
|
export = $root;
|
|
2
8
|
declare var $root: {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import Exchange from './abstract/bitwana.js';
|
|
2
|
+
import { Market, Strings, Ticker, Tickers } from './base/types.js';
|
|
3
|
+
/**
|
|
4
|
+
* @class bitwana
|
|
5
|
+
* @augments Exchange
|
|
6
|
+
* @description Set rateLimit to 1000 if fully verified
|
|
7
|
+
*/
|
|
8
|
+
export default class bitwana extends Exchange {
|
|
9
|
+
describe(): any;
|
|
10
|
+
parseMarket(market: any): Market;
|
|
11
|
+
fetchMarkets(params?: {}): Promise<Market[]>;
|
|
12
|
+
fetchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
|
|
13
|
+
fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
|
|
14
|
+
parseTicker(ticker: any, market?: Market): Ticker;
|
|
15
|
+
sign(path: any, api?: string, method?: string, params?: {}, headers?: any, body?: any): {
|
|
16
|
+
url: string;
|
|
17
|
+
method: string;
|
|
18
|
+
body: any;
|
|
19
|
+
headers: any;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
@@ -5,7 +5,7 @@ export function deflate(data: any, opts: any, cb: any): () => void;
|
|
|
5
5
|
* @param opts The compression options
|
|
6
6
|
* @returns The deflated version of the data
|
|
7
7
|
*/
|
|
8
|
-
export function deflateSync(data: any, opts: any): Uint8Array |
|
|
8
|
+
export function deflateSync(data: any, opts: any): Uint8Array | Uint16Array | Uint32Array;
|
|
9
9
|
export function inflate(data: any, opts: any, cb: any): () => void;
|
|
10
10
|
/**
|
|
11
11
|
* Expands DEFLATE data with no wrapper
|
|
@@ -21,7 +21,7 @@ export function gzip(data: any, opts: any, cb: any): () => void;
|
|
|
21
21
|
* @param opts The compression options
|
|
22
22
|
* @returns The gzipped version of the data
|
|
23
23
|
*/
|
|
24
|
-
export function gzipSync(data: any, opts: any): Uint8Array |
|
|
24
|
+
export function gzipSync(data: any, opts: any): Uint8Array | Uint16Array | Uint32Array;
|
|
25
25
|
export function gunzip(data: any, opts: any, cb: any): () => void;
|
|
26
26
|
/**
|
|
27
27
|
* Expands GZIP data
|
|
@@ -37,7 +37,7 @@ export function zlib(data: any, opts: any, cb: any): () => void;
|
|
|
37
37
|
* @param opts The compression options
|
|
38
38
|
* @returns The zlib-compressed version of the data
|
|
39
39
|
*/
|
|
40
|
-
export function zlibSync(data: any, opts: any): Uint8Array |
|
|
40
|
+
export function zlibSync(data: any, opts: any): Uint8Array | Uint16Array | Uint32Array;
|
|
41
41
|
export function unzlib(data: any, opts: any, cb: any): () => void;
|
|
42
42
|
/**
|
|
43
43
|
* Expands Zlib data
|
|
@@ -61,7 +61,7 @@ export function decompressSync(data: any, out: any): any;
|
|
|
61
61
|
* not need to be true unless decoding a binary string.
|
|
62
62
|
* @returns The string encoded in UTF-8/Latin-1 binary
|
|
63
63
|
*/
|
|
64
|
-
export function strToU8(str: any, latin1: any): Uint8Array |
|
|
64
|
+
export function strToU8(str: any, latin1: any): Uint8Array | Uint16Array | Uint32Array;
|
|
65
65
|
/**
|
|
66
66
|
* Converts a Uint8Array to a string
|
|
67
67
|
* @param dat The data to decode to string
|
|
@@ -69,7 +69,7 @@ export function strToU8(str: any, latin1: any): Uint8Array | Uint32Array | Uint1
|
|
|
69
69
|
* not need to be true unless encoding to binary string.
|
|
70
70
|
* @returns The original UTF-8/Latin-1 string
|
|
71
71
|
*/
|
|
72
|
-
export function strFromU8(dat: any, latin1: any): string | Uint8Array |
|
|
72
|
+
export function strFromU8(dat: any, latin1: any): string | Uint8Array | Uint16Array | Uint32Array;
|
|
73
73
|
export function zip(data: any, opts: any, cb: any): () => void;
|
|
74
74
|
/**
|
|
75
75
|
* Synchronously creates a ZIP file. Prefer using `zip` for better performance
|
|
@@ -15,7 +15,7 @@ export declare class BigInteger {
|
|
|
15
15
|
protected intValue(): number;
|
|
16
16
|
protected byteValue(): number;
|
|
17
17
|
protected shortValue(): number;
|
|
18
|
-
protected signum():
|
|
18
|
+
protected signum(): 0 | 1 | -1;
|
|
19
19
|
toByteArray(): number[];
|
|
20
20
|
protected equals(a: BigInteger): boolean;
|
|
21
21
|
protected min(a: BigInteger): BigInteger;
|
|
@@ -1,3 +1,9 @@
|
|
|
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
|
+
|
|
1
7
|
declare const _default: string;
|
|
2
8
|
export declare namespace formatters {
|
|
3
9
|
function RFC1738(value: any): string;
|
|
@@ -1,3 +1,9 @@
|
|
|
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
|
+
|
|
1
7
|
import formats = require("./formats.cjs");
|
|
2
8
|
import parse = require("./parse.cjs");
|
|
3
9
|
import stringify = require("./stringify.cjs");
|
|
@@ -1,2 +1,8 @@
|
|
|
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
|
+
|
|
1
7
|
declare function _exports(str: any, opts: any): any;
|
|
2
8
|
export = _exports;
|
|
@@ -1,2 +1,8 @@
|
|
|
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
|
+
|
|
1
7
|
declare function _exports(object: any, opts: any): string;
|
|
2
8
|
export = _exports;
|
|
@@ -1,3 +1,9 @@
|
|
|
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
|
+
|
|
1
7
|
export function arrayToObject(source: any, options: any): any;
|
|
2
8
|
export function assign(target: any, source: any): any;
|
|
3
9
|
export function combine(a: any, b: any): any[];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Abi, FunctionAbi, RawArgs } from '../../../types/index.js';
|
|
2
2
|
import { AbiParserInterface } from './interface.js';
|
|
3
3
|
export declare function createAbiParser(abi: Abi): AbiParserInterface;
|
|
4
|
-
export declare function getAbiVersion(abi: Abi):
|
|
4
|
+
export declare function getAbiVersion(abi: Abi): 0 | 1 | 2;
|
|
5
5
|
export declare function isNoConstructorValid(method: string, argsCalldata: RawArgs, abiMethod?: FunctionAbi): boolean;
|