ccxt-ir 4.17.0 → 4.18.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.
Files changed (102) hide show
  1. package/README.md +4 -4
  2. package/dist/373.ccxt.browser.js +1 -1
  3. package/dist/373.ccxt.browser.min.js +1 -1
  4. package/dist/ccxt.browser.min.js +15 -15
  5. package/dist/cjs/ccxt.js +277 -244
  6. package/dist/cjs/src/baazar.js +160 -0
  7. package/dist/cjs/src/base/Exchange.js +7364 -7364
  8. package/dist/cjs/src/daric.js +181 -0
  9. package/dist/cjs/src/digikalagold.js +178 -0
  10. package/dist/cjs/src/goldcore.js +155 -0
  11. package/dist/cjs/src/goldika.js +163 -0
  12. package/dist/cjs/src/goldis.js +157 -0
  13. package/dist/cjs/src/hamrahgold.js +171 -0
  14. package/dist/cjs/src/iranexchange.js +390 -390
  15. package/dist/cjs/src/melligold.js +210 -210
  16. package/dist/cjs/src/milligold.js +146 -146
  17. package/dist/cjs/src/talaavan.js +155 -0
  18. package/dist/cjs/src/talapp.js +156 -0
  19. package/dist/cjs/src/technogold.js +143 -143
  20. package/dist/cjs/src/wallgold.js +154 -154
  21. package/dist/cjs/src/zarafza.js +159 -0
  22. package/dist/cjs/src/zarminex.js +162 -0
  23. package/dist/cjs/src/zarniv.js +178 -0
  24. package/js/ccxt.d.ts +751 -718
  25. package/js/ccxt.js +543 -521
  26. package/js/src/abstract/baazar.d.ts +8 -0
  27. package/js/src/abstract/baazar.js +11 -0
  28. package/js/src/abstract/daric.d.ts +8 -0
  29. package/js/src/abstract/daric.js +11 -0
  30. package/js/src/abstract/digikalagold.d.ts +8 -0
  31. package/js/src/abstract/digikalagold.js +11 -0
  32. package/js/src/abstract/goldcore.d.ts +8 -0
  33. package/js/src/abstract/goldcore.js +11 -0
  34. package/js/src/abstract/goldika.d.ts +8 -0
  35. package/js/src/abstract/goldika.js +11 -0
  36. package/js/src/abstract/goldis.d.ts +8 -0
  37. package/js/src/abstract/goldis.js +11 -0
  38. package/js/src/abstract/hamrahgold.d.ts +8 -0
  39. package/js/src/abstract/hamrahgold.js +11 -0
  40. package/js/src/abstract/melligold.d.ts +8 -8
  41. package/js/src/abstract/melligold.js +5 -5
  42. package/js/src/abstract/milligold.d.ts +8 -8
  43. package/js/src/abstract/milligold.js +5 -5
  44. package/js/src/abstract/talaavan.d.ts +8 -0
  45. package/js/src/abstract/talaavan.js +11 -0
  46. package/js/src/abstract/talapp.d.ts +8 -0
  47. package/js/src/abstract/talapp.js +11 -0
  48. package/js/src/abstract/technogold.d.ts +8 -8
  49. package/js/src/abstract/technogold.js +5 -5
  50. package/js/src/abstract/wallgold.d.ts +8 -8
  51. package/js/src/abstract/wallgold.js +5 -5
  52. package/js/src/abstract/zarafza.d.ts +8 -0
  53. package/js/src/abstract/zarafza.js +11 -0
  54. package/js/src/abstract/zarminex.d.ts +8 -0
  55. package/js/src/abstract/zarminex.js +11 -0
  56. package/js/src/abstract/zarniv.d.ts +9 -0
  57. package/js/src/abstract/zarniv.js +11 -0
  58. package/js/src/baazar.d.ts +20 -0
  59. package/js/src/baazar.js +159 -0
  60. package/js/src/base/Exchange.d.ts +926 -926
  61. package/js/src/base/Exchange.js +7397 -7397
  62. package/js/src/coinbaseexchange.d.ts +334 -334
  63. package/js/src/daric.d.ts +22 -0
  64. package/js/src/daric.js +180 -0
  65. package/js/src/digikalagold.d.ts +21 -0
  66. package/js/src/digikalagold.js +177 -0
  67. package/js/src/goldika.d.ts +20 -0
  68. package/js/src/goldika.js +162 -0
  69. package/js/src/goldis.d.ts +21 -0
  70. package/js/src/goldis.js +156 -0
  71. package/js/src/hamrahgold.d.ts +21 -0
  72. package/js/src/hamrahgold.js +170 -0
  73. package/js/src/iranexchange.js +393 -393
  74. package/js/src/melligold.d.ts +21 -21
  75. package/js/src/melligold.js +214 -214
  76. package/js/src/milligold.d.ts +20 -20
  77. package/js/src/milligold.js +149 -149
  78. package/js/src/protobuf/mexc/compiled.d.cts +2 -2
  79. package/js/src/static_dependencies/fflake/browser.d.ts +222 -222
  80. package/js/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.d.ts +101 -101
  81. package/js/src/static_dependencies/qs/formats.d.cts +8 -8
  82. package/js/src/static_dependencies/qs/index.d.cts +4 -4
  83. package/js/src/static_dependencies/qs/parse.d.cts +2 -2
  84. package/js/src/static_dependencies/qs/stringify.d.cts +2 -2
  85. package/js/src/static_dependencies/qs/utils.d.cts +9 -9
  86. package/js/src/static_dependencies/starknet/utils/calldata/parser/index.d.ts +5 -5
  87. package/js/src/talaavan.d.ts +20 -0
  88. package/js/src/talaavan.js +154 -0
  89. package/js/src/talapp.d.ts +20 -0
  90. package/js/src/talapp.js +155 -0
  91. package/js/src/technogold.d.ts +20 -20
  92. package/js/src/technogold.js +146 -146
  93. package/js/src/wallgold.d.ts +21 -21
  94. package/js/src/wallgold.js +157 -157
  95. package/js/src/zarafza.d.ts +20 -0
  96. package/js/src/zarafza.js +158 -0
  97. package/js/src/zarminex.d.ts +20 -0
  98. package/js/src/zarminex.js +161 -0
  99. package/js/src/zarniv.d.ts +21 -0
  100. package/js/src/zarniv.js +177 -0
  101. package/js/test.js +61 -61
  102. package/package.json +1 -1
@@ -5,149 +5,149 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var Exchange = require('./base/Exchange.js');
6
6
 
7
7
  // ----------------------------------------------------------------------------
8
- // ---------------------------------------------------------------------------
9
- /**
10
- * @class technogold
11
- * @augments Exchange
12
- */
13
- class technogold extends Exchange["default"] {
14
- describe() {
15
- return this.deepExtend(super.describe(), {
16
- 'id': 'technogold',
17
- 'name': 'Techno Gold',
18
- 'countries': ['IR'],
19
- 'rateLimit': 1000,
20
- 'version': '1',
21
- 'certified': false,
22
- 'pro': false,
23
- 'has': {
24
- 'CORS': undefined,
25
- 'spot': false,
26
- 'margin': false,
27
- 'swap': false,
28
- 'future': false,
29
- 'option': false,
30
- 'fetchMarkets': true,
31
- 'fetchTicker': true,
32
- 'fetchTickers': true,
33
- 'otc': true,
34
- },
35
- 'options': {
36
- 'defaultType': 'otc',
37
- },
38
- 'urls': {
39
- 'api': {
40
- 'public': 'https://api2.technogold.gold',
41
- },
42
- 'www': 'https://technogold.gold',
43
- 'doc': 'https://technogold.gold',
44
- },
45
- 'api': {
46
- 'public': {
47
- 'get': {
48
- 'customer/tradeables/only-price/1': 1,
49
- },
50
- },
51
- },
52
- });
53
- }
54
- async fetchMarkets(params = {}) {
55
- const response = await this.publicGetCustomerTradeablesOnlyPrice1(params);
56
- return [this.parseMarket(response)];
57
- }
58
- parseMarket(response) {
59
- return {
60
- 'id': 'XAU18IRT',
61
- 'symbol': 'XAU18/IRT',
62
- 'base': 'XAU18',
63
- 'quote': 'IRT',
64
- 'settle': undefined,
65
- 'baseId': 'XAU18',
66
- 'quoteId': 'IRT',
67
- 'settleId': undefined,
68
- 'type': 'otc',
69
- 'spot': false,
70
- 'margin': false,
71
- 'swap': false,
72
- 'future': false,
73
- 'option': false,
74
- 'active': this.safeBool(response, 'succeed', true),
75
- 'contract': false,
76
- 'linear': undefined,
77
- 'inverse': undefined,
78
- 'contractSize': undefined,
79
- 'expiry': undefined,
80
- 'expiryDatetime': undefined,
81
- 'strike': undefined,
82
- 'optionType': undefined,
83
- 'precision': {
84
- 'amount': undefined,
85
- 'price': undefined,
86
- },
87
- 'limits': {
88
- 'leverage': { 'min': undefined, 'max': undefined },
89
- 'amount': { 'min': undefined, 'max': undefined },
90
- 'price': { 'min': undefined, 'max': undefined },
91
- 'cost': { 'min': undefined, 'max': undefined },
92
- },
93
- 'created': undefined,
94
- 'info': response,
95
- };
96
- }
97
- async fetchTicker(symbol, params = {}) {
98
- await this.loadMarkets();
99
- const market = this.market(symbol);
100
- const response = await this.publicGetCustomerTradeablesOnlyPrice1(params);
101
- return this.parseTicker(response, market);
102
- }
103
- async fetchTickers(symbols = undefined, params = {}) {
104
- await this.loadMarkets();
105
- if (symbols !== undefined) {
106
- symbols = this.marketSymbols(symbols);
107
- }
108
- const market = this.market('XAU18/IRT');
109
- const response = await this.publicGetCustomerTradeablesOnlyPrice1(params);
110
- const ticker = this.parseTicker(response, market);
111
- const result = {};
112
- result[ticker['symbol']] = ticker;
113
- return this.filterByArrayTickers(result, 'symbol', symbols);
114
- }
115
- parseTicker(response, market = undefined) {
116
- const prices = this.safeDict(response, 'results', {});
117
- const buy = this.safeNumber(prices, 'buy_price');
118
- const sell = this.safeNumber(prices, 'sell_price');
119
- return this.safeTicker({
120
- 'symbol': market['symbol'],
121
- 'timestamp': undefined,
122
- 'datetime': undefined,
123
- 'high': undefined,
124
- 'low': undefined,
125
- 'bid': sell,
126
- 'bidVolume': undefined,
127
- 'ask': buy,
128
- 'askVolume': undefined,
129
- 'vwap': undefined,
130
- 'open': undefined,
131
- 'close': buy,
132
- 'last': buy,
133
- 'previousClose': undefined,
134
- 'change': undefined,
135
- 'percentage': undefined,
136
- 'average': undefined,
137
- 'baseVolume': undefined,
138
- 'quoteVolume': undefined,
139
- 'info': response,
140
- }, market);
141
- }
142
- sign(path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
143
- let url = this.urls['api'][api] + '/' + this.implodeParams(path, params);
144
- const query = this.omit(params, this.extractParams(path));
145
- if (Object.keys(query).length) {
146
- url += '?' + this.urlencode(query);
147
- }
148
- headers = { 'Content-Type': 'application/json' };
149
- return { 'url': url, 'method': method, 'body': body, 'headers': headers };
150
- }
8
+ // ---------------------------------------------------------------------------
9
+ /**
10
+ * @class technogold
11
+ * @augments Exchange
12
+ */
13
+ class technogold extends Exchange["default"] {
14
+ describe() {
15
+ return this.deepExtend(super.describe(), {
16
+ 'id': 'technogold',
17
+ 'name': 'Techno Gold',
18
+ 'countries': ['IR'],
19
+ 'rateLimit': 1000,
20
+ 'version': '1',
21
+ 'certified': false,
22
+ 'pro': false,
23
+ 'has': {
24
+ 'CORS': undefined,
25
+ 'spot': false,
26
+ 'margin': false,
27
+ 'swap': false,
28
+ 'future': false,
29
+ 'option': false,
30
+ 'fetchMarkets': true,
31
+ 'fetchTicker': true,
32
+ 'fetchTickers': true,
33
+ 'otc': true,
34
+ },
35
+ 'options': {
36
+ 'defaultType': 'otc',
37
+ },
38
+ 'urls': {
39
+ 'api': {
40
+ 'public': 'https://api2.technogold.gold',
41
+ },
42
+ 'www': 'https://technogold.gold',
43
+ 'doc': 'https://technogold.gold',
44
+ },
45
+ 'api': {
46
+ 'public': {
47
+ 'get': {
48
+ 'customer/tradeables/only-price/1': 1,
49
+ },
50
+ },
51
+ },
52
+ });
53
+ }
54
+ async fetchMarkets(params = {}) {
55
+ const response = await this.publicGetCustomerTradeablesOnlyPrice1(params);
56
+ return [this.parseMarket(response)];
57
+ }
58
+ parseMarket(response) {
59
+ return {
60
+ 'id': 'XAU18IRT',
61
+ 'symbol': 'XAU18/IRT',
62
+ 'base': 'XAU18',
63
+ 'quote': 'IRT',
64
+ 'settle': undefined,
65
+ 'baseId': 'XAU18',
66
+ 'quoteId': 'IRT',
67
+ 'settleId': undefined,
68
+ 'type': 'otc',
69
+ 'spot': false,
70
+ 'margin': false,
71
+ 'swap': false,
72
+ 'future': false,
73
+ 'option': false,
74
+ 'active': this.safeBool(response, 'succeed', true),
75
+ 'contract': false,
76
+ 'linear': undefined,
77
+ 'inverse': undefined,
78
+ 'contractSize': undefined,
79
+ 'expiry': undefined,
80
+ 'expiryDatetime': undefined,
81
+ 'strike': undefined,
82
+ 'optionType': undefined,
83
+ 'precision': {
84
+ 'amount': undefined,
85
+ 'price': undefined,
86
+ },
87
+ 'limits': {
88
+ 'leverage': { 'min': undefined, 'max': undefined },
89
+ 'amount': { 'min': undefined, 'max': undefined },
90
+ 'price': { 'min': undefined, 'max': undefined },
91
+ 'cost': { 'min': undefined, 'max': undefined },
92
+ },
93
+ 'created': undefined,
94
+ 'info': response,
95
+ };
96
+ }
97
+ async fetchTicker(symbol, params = {}) {
98
+ await this.loadMarkets();
99
+ const market = this.market(symbol);
100
+ const response = await this.publicGetCustomerTradeablesOnlyPrice1(params);
101
+ return this.parseTicker(response, market);
102
+ }
103
+ async fetchTickers(symbols = undefined, params = {}) {
104
+ await this.loadMarkets();
105
+ if (symbols !== undefined) {
106
+ symbols = this.marketSymbols(symbols);
107
+ }
108
+ const market = this.market('XAU18/IRT');
109
+ const response = await this.publicGetCustomerTradeablesOnlyPrice1(params);
110
+ const ticker = this.parseTicker(response, market);
111
+ const result = {};
112
+ result[ticker['symbol']] = ticker;
113
+ return this.filterByArrayTickers(result, 'symbol', symbols);
114
+ }
115
+ parseTicker(response, market = undefined) {
116
+ const prices = this.safeDict(response, 'results', {});
117
+ const buy = this.safeNumber(prices, 'buy_price');
118
+ const sell = this.safeNumber(prices, 'sell_price');
119
+ return this.safeTicker({
120
+ 'symbol': market['symbol'],
121
+ 'timestamp': undefined,
122
+ 'datetime': undefined,
123
+ 'high': undefined,
124
+ 'low': undefined,
125
+ 'bid': sell,
126
+ 'bidVolume': undefined,
127
+ 'ask': buy,
128
+ 'askVolume': undefined,
129
+ 'vwap': undefined,
130
+ 'open': undefined,
131
+ 'close': buy,
132
+ 'last': buy,
133
+ 'previousClose': undefined,
134
+ 'change': undefined,
135
+ 'percentage': undefined,
136
+ 'average': undefined,
137
+ 'baseVolume': undefined,
138
+ 'quoteVolume': undefined,
139
+ 'info': response,
140
+ }, market);
141
+ }
142
+ sign(path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
143
+ let url = this.urls['api'][api] + '/' + this.implodeParams(path, params);
144
+ const query = this.omit(params, this.extractParams(path));
145
+ if (Object.keys(query).length) {
146
+ url += '?' + this.urlencode(query);
147
+ }
148
+ headers = { 'Content-Type': 'application/json' };
149
+ return { 'url': url, 'method': method, 'body': body, 'headers': headers };
150
+ }
151
151
  }
152
152
 
153
153
  exports["default"] = technogold;
@@ -5,160 +5,160 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var Exchange = require('./base/Exchange.js');
6
6
 
7
7
  // ----------------------------------------------------------------------------
8
- // ---------------------------------------------------------------------------
9
- /**
10
- * @class wallgold
11
- * @augments Exchange
12
- */
13
- class wallgold extends Exchange["default"] {
14
- describe() {
15
- return this.deepExtend(super.describe(), {
16
- 'id': 'wallgold',
17
- 'name': 'WallGold',
18
- 'countries': ['IR'],
19
- 'rateLimit': 1000,
20
- 'version': '1',
21
- 'certified': false,
22
- 'pro': false,
23
- 'has': {
24
- 'CORS': undefined,
25
- 'spot': false,
26
- 'margin': false,
27
- 'swap': false,
28
- 'future': false,
29
- 'option': false,
30
- 'fetchMarkets': true,
31
- 'fetchTicker': true,
32
- 'fetchTickers': true,
33
- 'otc': true,
34
- },
35
- 'options': {
36
- 'defaultType': 'otc',
37
- },
38
- 'urls': {
39
- 'api': {
40
- 'public': 'https://api.wallgold.ir',
41
- },
42
- 'www': 'https://wallgold.ir',
43
- 'doc': 'https://wallgold.ir',
44
- },
45
- 'api': {
46
- 'public': {
47
- 'get': {
48
- 'api/v1/price': 1,
49
- },
50
- },
51
- },
52
- });
53
- }
54
- async fetchMarkets(params = {}) {
55
- const response = await this.fetchPrice('buy', params);
56
- return [this.parseMarket(response)];
57
- }
58
- fetchPrice(side, params = {}) {
59
- return this.publicGetApiV1Price(this.extend({
60
- 'side': side,
61
- 'symbol': 'GLD_18C_750TMN',
62
- }, params));
63
- }
64
- parseMarket(response) {
65
- return {
66
- 'id': 'XAU18IRT',
67
- 'symbol': 'XAU18/IRT',
68
- 'base': 'XAU18',
69
- 'quote': 'IRT',
70
- 'settle': undefined,
71
- 'baseId': 'XAU18',
72
- 'quoteId': 'IRT',
73
- 'settleId': undefined,
74
- 'type': 'otc',
75
- 'spot': false,
76
- 'margin': false,
77
- 'swap': false,
78
- 'future': false,
79
- 'option': false,
80
- 'active': this.safeBool(response, 'success', true),
81
- 'contract': false,
82
- 'linear': undefined,
83
- 'inverse': undefined,
84
- 'contractSize': undefined,
85
- 'expiry': undefined,
86
- 'expiryDatetime': undefined,
87
- 'strike': undefined,
88
- 'optionType': undefined,
89
- 'precision': {
90
- 'amount': undefined,
91
- 'price': undefined,
92
- },
93
- 'limits': {
94
- 'leverage': { 'min': undefined, 'max': undefined },
95
- 'amount': { 'min': undefined, 'max': undefined },
96
- 'price': { 'min': undefined, 'max': undefined },
97
- 'cost': { 'min': undefined, 'max': undefined },
98
- },
99
- 'created': undefined,
100
- 'info': response,
101
- };
102
- }
103
- async fetchTicker(symbol, params = {}) {
104
- await this.loadMarkets();
105
- const market = this.market(symbol);
106
- const buyResponse = await this.fetchPrice('buy', params);
107
- const sellResponse = await this.fetchPrice('sell', params);
108
- return this.parseTicker(buyResponse, market, sellResponse);
109
- }
110
- async fetchTickers(symbols = undefined, params = {}) {
111
- await this.loadMarkets();
112
- if (symbols !== undefined) {
113
- symbols = this.marketSymbols(symbols);
114
- }
115
- const market = this.market('XAU18/IRT');
116
- const buyResponse = await this.fetchPrice('buy', params);
117
- const sellResponse = await this.fetchPrice('sell', params);
118
- const ticker = this.parseTicker(buyResponse, market, sellResponse);
119
- const result = {};
120
- result[ticker['symbol']] = ticker;
121
- return this.filterByArrayTickers(result, 'symbol', symbols);
122
- }
123
- parseTicker(buyResponse, market = undefined, sellResponse = undefined) {
124
- const buyResult = this.safeDict(buyResponse, 'result', {});
125
- const sellResult = this.safeDict(sellResponse, 'result', buyResult);
126
- const bid = this.safeNumber(buyResult, 'price');
127
- const ask = this.safeNumber(sellResult, 'price');
128
- const currentTime = this.safeString(buyResult, 'currentTime');
129
- const timestamp = currentTime ? this.parse8601(currentTime) : undefined;
130
- return this.safeTicker({
131
- 'symbol': market['symbol'],
132
- 'timestamp': timestamp,
133
- 'datetime': undefined,
134
- 'high': undefined,
135
- 'low': undefined,
136
- 'bid': bid,
137
- 'bidVolume': undefined,
138
- 'ask': ask,
139
- 'askVolume': undefined,
140
- 'vwap': undefined,
141
- 'open': undefined,
142
- 'close': ask,
143
- 'last': ask,
144
- 'previousClose': undefined,
145
- 'change': undefined,
146
- 'percentage': undefined,
147
- 'average': undefined,
148
- 'baseVolume': undefined,
149
- 'quoteVolume': undefined,
150
- 'info': { 'buy': buyResponse, 'sell': sellResponse },
151
- }, market);
152
- }
153
- sign(path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
154
- let url = this.urls['api'][api] + '/' + this.implodeParams(path, params);
155
- const query = this.omit(params, this.extractParams(path));
156
- if (Object.keys(query).length) {
157
- url += '?' + this.urlencode(query);
158
- }
159
- headers = { 'Content-Type': 'application/json' };
160
- return { 'url': url, 'method': method, 'body': body, 'headers': headers };
161
- }
8
+ // ---------------------------------------------------------------------------
9
+ /**
10
+ * @class wallgold
11
+ * @augments Exchange
12
+ */
13
+ class wallgold extends Exchange["default"] {
14
+ describe() {
15
+ return this.deepExtend(super.describe(), {
16
+ 'id': 'wallgold',
17
+ 'name': 'WallGold',
18
+ 'countries': ['IR'],
19
+ 'rateLimit': 1000,
20
+ 'version': '1',
21
+ 'certified': false,
22
+ 'pro': false,
23
+ 'has': {
24
+ 'CORS': undefined,
25
+ 'spot': false,
26
+ 'margin': false,
27
+ 'swap': false,
28
+ 'future': false,
29
+ 'option': false,
30
+ 'fetchMarkets': true,
31
+ 'fetchTicker': true,
32
+ 'fetchTickers': true,
33
+ 'otc': true,
34
+ },
35
+ 'options': {
36
+ 'defaultType': 'otc',
37
+ },
38
+ 'urls': {
39
+ 'api': {
40
+ 'public': 'https://api.wallgold.ir',
41
+ },
42
+ 'www': 'https://wallgold.ir',
43
+ 'doc': 'https://wallgold.ir',
44
+ },
45
+ 'api': {
46
+ 'public': {
47
+ 'get': {
48
+ 'api/v1/price': 1,
49
+ },
50
+ },
51
+ },
52
+ });
53
+ }
54
+ async fetchMarkets(params = {}) {
55
+ const response = await this.fetchPrice('buy', params);
56
+ return [this.parseMarket(response)];
57
+ }
58
+ fetchPrice(side, params = {}) {
59
+ return this.publicGetApiV1Price(this.extend({
60
+ 'side': side,
61
+ 'symbol': 'GLD_18C_750TMN',
62
+ }, params));
63
+ }
64
+ parseMarket(response) {
65
+ return {
66
+ 'id': 'XAU18IRT',
67
+ 'symbol': 'XAU18/IRT',
68
+ 'base': 'XAU18',
69
+ 'quote': 'IRT',
70
+ 'settle': undefined,
71
+ 'baseId': 'XAU18',
72
+ 'quoteId': 'IRT',
73
+ 'settleId': undefined,
74
+ 'type': 'otc',
75
+ 'spot': false,
76
+ 'margin': false,
77
+ 'swap': false,
78
+ 'future': false,
79
+ 'option': false,
80
+ 'active': this.safeBool(response, 'success', true),
81
+ 'contract': false,
82
+ 'linear': undefined,
83
+ 'inverse': undefined,
84
+ 'contractSize': undefined,
85
+ 'expiry': undefined,
86
+ 'expiryDatetime': undefined,
87
+ 'strike': undefined,
88
+ 'optionType': undefined,
89
+ 'precision': {
90
+ 'amount': undefined,
91
+ 'price': undefined,
92
+ },
93
+ 'limits': {
94
+ 'leverage': { 'min': undefined, 'max': undefined },
95
+ 'amount': { 'min': undefined, 'max': undefined },
96
+ 'price': { 'min': undefined, 'max': undefined },
97
+ 'cost': { 'min': undefined, 'max': undefined },
98
+ },
99
+ 'created': undefined,
100
+ 'info': response,
101
+ };
102
+ }
103
+ async fetchTicker(symbol, params = {}) {
104
+ await this.loadMarkets();
105
+ const market = this.market(symbol);
106
+ const buyResponse = await this.fetchPrice('buy', params);
107
+ const sellResponse = await this.fetchPrice('sell', params);
108
+ return this.parseTicker(buyResponse, market, sellResponse);
109
+ }
110
+ async fetchTickers(symbols = undefined, params = {}) {
111
+ await this.loadMarkets();
112
+ if (symbols !== undefined) {
113
+ symbols = this.marketSymbols(symbols);
114
+ }
115
+ const market = this.market('XAU18/IRT');
116
+ const buyResponse = await this.fetchPrice('buy', params);
117
+ const sellResponse = await this.fetchPrice('sell', params);
118
+ const ticker = this.parseTicker(buyResponse, market, sellResponse);
119
+ const result = {};
120
+ result[ticker['symbol']] = ticker;
121
+ return this.filterByArrayTickers(result, 'symbol', symbols);
122
+ }
123
+ parseTicker(buyResponse, market = undefined, sellResponse = undefined) {
124
+ const buyResult = this.safeDict(buyResponse, 'result', {});
125
+ const sellResult = this.safeDict(sellResponse, 'result', buyResult);
126
+ const bid = this.safeNumber(buyResult, 'price');
127
+ const ask = this.safeNumber(sellResult, 'price');
128
+ const currentTime = this.safeString(buyResult, 'currentTime');
129
+ const timestamp = currentTime ? this.parse8601(currentTime) : undefined;
130
+ return this.safeTicker({
131
+ 'symbol': market['symbol'],
132
+ 'timestamp': timestamp,
133
+ 'datetime': undefined,
134
+ 'high': undefined,
135
+ 'low': undefined,
136
+ 'bid': bid,
137
+ 'bidVolume': undefined,
138
+ 'ask': ask,
139
+ 'askVolume': undefined,
140
+ 'vwap': undefined,
141
+ 'open': undefined,
142
+ 'close': ask,
143
+ 'last': ask,
144
+ 'previousClose': undefined,
145
+ 'change': undefined,
146
+ 'percentage': undefined,
147
+ 'average': undefined,
148
+ 'baseVolume': undefined,
149
+ 'quoteVolume': undefined,
150
+ 'info': { 'buy': buyResponse, 'sell': sellResponse },
151
+ }, market);
152
+ }
153
+ sign(path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
154
+ let url = this.urls['api'][api] + '/' + this.implodeParams(path, params);
155
+ const query = this.omit(params, this.extractParams(path));
156
+ if (Object.keys(query).length) {
157
+ url += '?' + this.urlencode(query);
158
+ }
159
+ headers = { 'Content-Type': 'application/json' };
160
+ return { 'url': url, 'method': method, 'body': body, 'headers': headers };
161
+ }
162
162
  }
163
163
 
164
164
  exports["default"] = wallgold;