@covalenthq/client-sdk 0.1.1 → 0.1.3

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 (66) hide show
  1. package/README.md +171 -1
  2. package/dist/services/BalanceService.d.ts +390 -0
  3. package/dist/services/BalanceService.js +618 -0
  4. package/dist/services/BalanceService.js.map +1 -0
  5. package/dist/services/BaseService.d.ts +303 -0
  6. package/dist/services/BaseService.js +691 -0
  7. package/dist/services/BaseService.js.map +1 -0
  8. package/dist/services/Client.d.ts +22 -0
  9. package/dist/services/Client.js +26 -0
  10. package/dist/services/Client.js.map +1 -0
  11. package/dist/services/NftService.d.ts +428 -0
  12. package/dist/services/NftService.js +981 -0
  13. package/dist/services/NftService.js.map +1 -0
  14. package/dist/services/PricingService.d.ts +75 -0
  15. package/dist/services/PricingService.js +126 -0
  16. package/dist/services/PricingService.js.map +1 -0
  17. package/dist/services/SecurityService.d.ts +96 -0
  18. package/dist/services/SecurityService.js +122 -0
  19. package/dist/services/SecurityService.js.map +1 -0
  20. package/dist/services/TransactionService.d.ts +222 -0
  21. package/dist/services/TransactionService.js +433 -0
  22. package/dist/services/TransactionService.js.map +1 -0
  23. package/dist/services/XykService.d.ts +529 -0
  24. package/dist/services/XykService.js +1000 -0
  25. package/dist/services/XykService.js.map +1 -0
  26. package/dist/services/index.js.map +1 -0
  27. package/dist/util/ApiHelpers.d.ts +1 -0
  28. package/dist/util/ApiHelpers.js +15 -0
  29. package/dist/util/ApiHelpers.js.map +1 -0
  30. package/dist/util/backoff.d.ts +9 -0
  31. package/dist/util/backoff.js +25 -0
  32. package/dist/util/backoff.js.map +1 -0
  33. package/package.json +9 -1
  34. package/dist/ApprovalService.d.ts +0 -59
  35. package/dist/ApprovalService.js +0 -52
  36. package/dist/ApprovalService.js.map +0 -1
  37. package/dist/BalancesService.d.ts +0 -189
  38. package/dist/BalancesService.js +0 -231
  39. package/dist/BalancesService.js.map +0 -1
  40. package/dist/BaseService.d.ts +0 -169
  41. package/dist/BaseService.js +0 -276
  42. package/dist/BaseService.js.map +0 -1
  43. package/dist/Client.d.ts +0 -24
  44. package/dist/Client.js +0 -30
  45. package/dist/Client.js.map +0 -1
  46. package/dist/LogEventService.d.ts +0 -62
  47. package/dist/LogEventService.js +0 -75
  48. package/dist/LogEventService.js.map +0 -1
  49. package/dist/NameResolverService.d.ts +0 -33
  50. package/dist/NameResolverService.js +0 -52
  51. package/dist/NameResolverService.js.map +0 -1
  52. package/dist/NftService.d.ts +0 -271
  53. package/dist/NftService.js +0 -528
  54. package/dist/NftService.js.map +0 -1
  55. package/dist/PricingService.d.ts +0 -52
  56. package/dist/PricingService.js +0 -65
  57. package/dist/PricingService.js.map +0 -1
  58. package/dist/TransactionsService.d.ts +0 -126
  59. package/dist/TransactionsService.js +0 -230
  60. package/dist/TransactionsService.js.map +0 -1
  61. package/dist/XykService.d.ts +0 -383
  62. package/dist/XykService.js +0 -467
  63. package/dist/XykService.js.map +0 -1
  64. package/dist/index.js.map +0 -1
  65. /package/dist/{index.d.ts → services/index.d.ts} +0 -0
  66. /package/dist/{index.js → services/index.js} +0 -0
@@ -0,0 +1,691 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseService = exports.Response = void 0;
4
+ const backoff_1 = require("../util/backoff");
5
+ const ApiHelpers_1 = require("../util/ApiHelpers");
6
+ class BlockResponse {
7
+ constructor(data) {
8
+ this.updated_at = data.updated_at;
9
+ this.chain_id = data.chain_id;
10
+ this.chain_name = data.chain_name;
11
+ this.items = data.items && data.items !== null ? data.items.map((itemData) => new Block(itemData)) : null;
12
+ }
13
+ }
14
+ class Block {
15
+ constructor(data) {
16
+ this.signed_at = data.signed_at;
17
+ this.height = data.height;
18
+ }
19
+ }
20
+ class ResolvedAddress {
21
+ constructor(data) {
22
+ this.address = data.address;
23
+ this.updated_at = data.updated_at;
24
+ this.chain_id = data.chain_id;
25
+ this.chain_name = data.chain_name;
26
+ this.items = data.items && data.items !== null ? data.items.map((itemData) => new ResolvedAddressItem(itemData)) : null;
27
+ }
28
+ }
29
+ class ResolvedAddressItem {
30
+ constructor(data) {
31
+ this.address = data.address;
32
+ this.name = data.name;
33
+ }
34
+ }
35
+ class BlockHeightsResponse {
36
+ constructor(data) {
37
+ this.updated_at = data.updated_at;
38
+ this.chain_id = data.chain_id;
39
+ this.chain_name = data.chain_name;
40
+ this.items = data.items && data.items !== null ? data.items.map((itemData) => new Block(itemData)) : null;
41
+ this.pagination = data.pagination && data.pagination !== null ? new Pagination(data.pagination) : null;
42
+ }
43
+ }
44
+ class Pagination {
45
+ constructor(data) {
46
+ this.has_more = data.has_more;
47
+ this.page_number = data.page_number;
48
+ this.page_size = data.page_size;
49
+ this.total_count = data.total_count;
50
+ }
51
+ }
52
+ class GetLogsResponse {
53
+ constructor(data) {
54
+ this.updated_at = data.updated_at;
55
+ this.chain_id = data.chain_id;
56
+ this.chain_name = data.chain_name;
57
+ this.items = data.items && data.items !== null ? data.items.map((itemData) => new GetLogsEvent(itemData)) : null;
58
+ }
59
+ }
60
+ class GetLogsEvent {
61
+ constructor(data) {
62
+ this.block_signed_at = data.block_signed_at;
63
+ this.block_height = data.block_height;
64
+ this.block_hash = data.block_hash;
65
+ this.tx_offset = data.tx_offset;
66
+ this.log_offset = data.log_offset;
67
+ this.tx_hash = data.tx_hash;
68
+ this.raw_log_topics = data.raw_log_topics;
69
+ this.sender_contract_decimals = data.sender_contract_decimals;
70
+ this.sender_name = data.sender_name;
71
+ this.sender_contract_ticker_symbol = data.sender_contract_ticker_symbol;
72
+ this.sender_address = data.sender_address;
73
+ this.sender_address_label = data.sender_address_label;
74
+ this.sender_logo_url = data.sender_logo_url;
75
+ this.raw_log_data = data.raw_log_data;
76
+ this.decoded = data.decoded && data.decoded !== null ? new DecodedItem(data.decoded) : null;
77
+ }
78
+ }
79
+ class DecodedItem {
80
+ constructor(data) {
81
+ this.name = data.name;
82
+ this.signature = data.signature;
83
+ this.params = data.params && data.params !== null ? data.params.map((itemData) => new Param(itemData)) : null;
84
+ }
85
+ }
86
+ class Param {
87
+ constructor(data) {
88
+ this.name = data.name;
89
+ this.type = data.type;
90
+ this.indexed = data.indexed;
91
+ this.decoded = data.decoded;
92
+ this.value = data.value;
93
+ }
94
+ }
95
+ class LogEventsByAddressResponse {
96
+ constructor(data) {
97
+ this.updated_at = data.updated_at;
98
+ this.chain_id = data.chain_id;
99
+ this.chain_name = data.chain_name;
100
+ this.items = data.items && data.items !== null ? data.items.map((itemData) => new LogEvent(itemData)) : null;
101
+ this.pagination = data.pagination && data.pagination !== null ? new Pagination(data.pagination) : null;
102
+ }
103
+ }
104
+ class LogEvent {
105
+ constructor(data) {
106
+ this.block_signed_at = data.block_signed_at;
107
+ this.block_height = data.block_height;
108
+ this.tx_offset = data.tx_offset;
109
+ this.log_offset = data.log_offset;
110
+ this.tx_hash = data.tx_hash;
111
+ this.raw_log_topics = data.raw_log_topics;
112
+ this.sender_contract_decimals = data.sender_contract_decimals;
113
+ this.sender_name = data.sender_name;
114
+ this.sender_contract_ticker_symbol = data.sender_contract_ticker_symbol;
115
+ this.sender_address = data.sender_address;
116
+ this.sender_address_label = data.sender_address_label;
117
+ this.sender_logo_url = data.sender_logo_url;
118
+ this.raw_log_data = data.raw_log_data;
119
+ this.decoded = data.decoded && data.decoded !== null ? new DecodedItem(data.decoded) : null;
120
+ }
121
+ }
122
+ class LogEventsByTopicHashResponse {
123
+ constructor(data) {
124
+ this.updated_at = data.updated_at;
125
+ this.chain_id = data.chain_id;
126
+ this.chain_name = data.chain_name;
127
+ this.items = data.items && data.items !== null ? data.items.map((itemData) => new LogEvent(itemData)) : null;
128
+ this.pagination = data.pagination && data.pagination !== null ? new Pagination(data.pagination) : null;
129
+ }
130
+ }
131
+ class AllChainsResponse {
132
+ constructor(data) {
133
+ this.updated_at = data.updated_at;
134
+ this.items = data.items && data.items !== null ? data.items.map((itemData) => new ChainItem(itemData)) : null;
135
+ }
136
+ }
137
+ class ChainItem {
138
+ constructor(data) {
139
+ this.name = data.name;
140
+ this.chain_id = data.chain_id;
141
+ this.is_testnet = data.is_testnet;
142
+ this.db_schema_name = data.db_schema_name;
143
+ this.label = data.label;
144
+ this.category_label = data.category_label;
145
+ this.logo_url = data.logo_url;
146
+ this.black_logo_url = data.black_logo_url;
147
+ this.white_logo_url = data.white_logo_url;
148
+ this.is_appchain = data.is_appchain;
149
+ this.appchain_of = data.appchain_of && data.appchain_of !== null ? new ChainItem(data.appchain_of) : null;
150
+ }
151
+ }
152
+ class AllChainsStatusResponse {
153
+ constructor(data) {
154
+ this.updated_at = data.updated_at;
155
+ this.items = data.items && data.items !== null ? data.items.map((itemData) => new ChainStatusItem(itemData)) : null;
156
+ }
157
+ }
158
+ class ChainStatusItem {
159
+ constructor(data) {
160
+ this.name = data.name;
161
+ this.chain_id = data.chain_id;
162
+ this.is_testnet = data.is_testnet;
163
+ this.logo_url = data.logo_url;
164
+ this.black_logo_url = data.black_logo_url;
165
+ this.white_logo_url = data.white_logo_url;
166
+ this.is_appchain = data.is_appchain;
167
+ this.synced_block_height = data.synced_block_height;
168
+ this.synced_blocked_signed_at = data.synced_blocked_signed_at;
169
+ this.has_data = data.has_data;
170
+ }
171
+ }
172
+ /**
173
+ * Class A - Base
174
+ *
175
+ */
176
+ class Response {
177
+ }
178
+ exports.Response = Response;
179
+ class BaseService {
180
+ constructor(apiKey) {
181
+ this.apiKey = apiKey;
182
+ }
183
+ /**
184
+ *
185
+ * @param {string} chainName - The chain name eg: `eth-mainnet`.
186
+ * @param {string} blockHeight - The block height or `latest` for the latest block available.
187
+ *
188
+ */
189
+ async getBlock(chainName, blockHeight) {
190
+ let success = false;
191
+ let data;
192
+ let response;
193
+ const backoff = new backoff_1.ExponentialBackoff();
194
+ while (!success) {
195
+ try {
196
+ const urlParams = new URLSearchParams();
197
+ response = await fetch(`https://api.covalenthq.com/v1/${chainName}/block_v2/${blockHeight}/?${urlParams}`, {
198
+ headers: {
199
+ "Authorization": `Bearer ${this.apiKey}`
200
+ }
201
+ });
202
+ data = await response.json();
203
+ if (data.error && data.error_code === 429) {
204
+ try {
205
+ await backoff.backOff();
206
+ }
207
+ catch (error) {
208
+ (0, ApiHelpers_1.checkAndModifyResponse)(data);
209
+ success = true;
210
+ return {
211
+ data: null,
212
+ error: data.error,
213
+ error_code: data ? data.error_code : response.status,
214
+ error_message: data ? data.error_message : "401 Authorization Required"
215
+ };
216
+ }
217
+ }
218
+ else {
219
+ const dataClass = new BlockResponse(data.data);
220
+ (0, ApiHelpers_1.checkAndModifyResponse)(dataClass);
221
+ success = true;
222
+ return {
223
+ data: dataClass,
224
+ error: data.error,
225
+ error_code: data ? data.error_code : response.status,
226
+ error_message: data ? data.error_message : "401 Authorization Required"
227
+ };
228
+ }
229
+ }
230
+ catch (error) {
231
+ success = true;
232
+ return {
233
+ data: null,
234
+ error: true,
235
+ error_code: data ? data.error_code : response.status,
236
+ error_message: data ? data.error_message : "401 Authorization Required"
237
+ };
238
+ }
239
+ }
240
+ }
241
+ /**
242
+ *
243
+ * @param {string} chainName - The chain name eg: `eth-mainnet`.
244
+ * @param {string} walletAddress - The requested address. Passing in an `ENS`, `RNS`, `Lens Handle`, or an `Unstoppable Domain` resolves automatically.
245
+ *
246
+ */
247
+ async getResolvedAddress(chainName, walletAddress) {
248
+ let success = false;
249
+ let data;
250
+ let response;
251
+ const backoff = new backoff_1.ExponentialBackoff();
252
+ while (!success) {
253
+ try {
254
+ const urlParams = new URLSearchParams();
255
+ response = await fetch(`https://api.covalenthq.com/v1/${chainName}/address/${walletAddress}/resolve_address/?${urlParams}`, {
256
+ headers: {
257
+ "Authorization": `Bearer ${this.apiKey}`
258
+ }
259
+ });
260
+ data = await response.json();
261
+ if (data.error && data.error_code === 429) {
262
+ try {
263
+ await backoff.backOff();
264
+ }
265
+ catch (error) {
266
+ (0, ApiHelpers_1.checkAndModifyResponse)(data);
267
+ success = true;
268
+ return {
269
+ data: null,
270
+ error: data.error,
271
+ error_code: data ? data.error_code : response.status,
272
+ error_message: data ? data.error_message : "401 Authorization Required"
273
+ };
274
+ }
275
+ }
276
+ else {
277
+ const dataClass = new ResolvedAddress(data.data);
278
+ (0, ApiHelpers_1.checkAndModifyResponse)(dataClass);
279
+ success = true;
280
+ return {
281
+ data: dataClass,
282
+ error: data.error,
283
+ error_code: data ? data.error_code : response.status,
284
+ error_message: data ? data.error_message : "401 Authorization Required"
285
+ };
286
+ }
287
+ }
288
+ catch (error) {
289
+ success = true;
290
+ return {
291
+ data: null,
292
+ error: true,
293
+ error_code: data ? data.error_code : response.status,
294
+ error_message: data ? data.error_message : "401 Authorization Required"
295
+ };
296
+ }
297
+ }
298
+ }
299
+ /**
300
+ *
301
+ * @param {string} chainName - The chain name eg: `eth-mainnet`.
302
+ * @param {string} startDate - The start date in YYYY-MM-DD format.
303
+ * @param {string} endDate - The end date in YYYY-MM-DD format.
304
+ *
305
+ */
306
+ async getBlockHeights(chainName, startDate, endDate) {
307
+ let success = false;
308
+ let data;
309
+ let response;
310
+ const backoff = new backoff_1.ExponentialBackoff();
311
+ while (!success) {
312
+ try {
313
+ const urlParams = new URLSearchParams();
314
+ response = await fetch(`https://api.covalenthq.com/v1/${chainName}/block_v2/${startDate}/${endDate}/?${urlParams}`, {
315
+ headers: {
316
+ "Authorization": `Bearer ${this.apiKey}`
317
+ }
318
+ });
319
+ data = await response.json();
320
+ if (data.error && data.error_code === 429) {
321
+ try {
322
+ await backoff.backOff();
323
+ }
324
+ catch (error) {
325
+ (0, ApiHelpers_1.checkAndModifyResponse)(data);
326
+ success = true;
327
+ return {
328
+ data: null,
329
+ error: data.error,
330
+ error_code: data ? data.error_code : response.status,
331
+ error_message: data ? data.error_message : "401 Authorization Required"
332
+ };
333
+ }
334
+ }
335
+ else {
336
+ const dataClass = new BlockHeightsResponse(data.data);
337
+ (0, ApiHelpers_1.checkAndModifyResponse)(dataClass);
338
+ success = true;
339
+ return {
340
+ data: dataClass,
341
+ error: data.error,
342
+ error_code: data ? data.error_code : response.status,
343
+ error_message: data ? data.error_message : "401 Authorization Required"
344
+ };
345
+ }
346
+ }
347
+ catch (error) {
348
+ success = true;
349
+ return {
350
+ data: null,
351
+ error: true,
352
+ error_code: data ? data.error_code : response.status,
353
+ error_message: data ? data.error_message : "401 Authorization Required"
354
+ };
355
+ }
356
+ }
357
+ }
358
+ /**
359
+ *
360
+ * @param {string} chainName - The chain name eg: `eth-mainnet`.
361
+ * @param {number} startingBlock - The first block to retrieve log events with. Accepts decimals, hexadecimals, or the strings `earliest` and `latest`.
362
+ * @param {string} endingBlock - The last block to retrieve log events with. Accepts decimals, hexadecimals, or the strings `earliest` and `latest`.
363
+ * @param {string} address - The address of the log events sender contract.
364
+ * @param {string} topics - The topic hash(es) to retrieve logs with.
365
+ * @param {string} blockHash - The block hash to retrieve logs for.
366
+ * @param {boolean} skipDecode - Omit decoded log events.
367
+ *
368
+ */
369
+ async getLogs(chainName, startingBlock, endingBlock, address, topics, blockHash, skipDecode) {
370
+ let success = false;
371
+ let data;
372
+ let response;
373
+ const backoff = new backoff_1.ExponentialBackoff();
374
+ while (!success) {
375
+ try {
376
+ const urlParams = new URLSearchParams();
377
+ if (startingBlock !== undefined) {
378
+ urlParams.append("starting-block", startingBlock.toString());
379
+ }
380
+ if (endingBlock !== undefined) {
381
+ urlParams.append("ending-block", endingBlock.toString());
382
+ }
383
+ if (address !== undefined) {
384
+ urlParams.append("address", address.toString());
385
+ }
386
+ if (topics !== undefined) {
387
+ urlParams.append("topics", topics.toString());
388
+ }
389
+ if (blockHash !== undefined) {
390
+ urlParams.append("block-hash", blockHash.toString());
391
+ }
392
+ if (skipDecode !== undefined) {
393
+ urlParams.append("skip-decode", skipDecode.toString());
394
+ }
395
+ response = await fetch(`https://api.covalenthq.com/v1/${chainName}/events/?${urlParams}`, {
396
+ headers: {
397
+ "Authorization": `Bearer ${this.apiKey}`
398
+ }
399
+ });
400
+ data = await response.json();
401
+ if (data.error && data.error_code === 429) {
402
+ try {
403
+ await backoff.backOff();
404
+ }
405
+ catch (error) {
406
+ (0, ApiHelpers_1.checkAndModifyResponse)(data);
407
+ success = true;
408
+ return {
409
+ data: null,
410
+ error: data.error,
411
+ error_code: data ? data.error_code : response.status,
412
+ error_message: data ? data.error_message : "401 Authorization Required"
413
+ };
414
+ }
415
+ }
416
+ else {
417
+ const dataClass = new GetLogsResponse(data.data);
418
+ (0, ApiHelpers_1.checkAndModifyResponse)(dataClass);
419
+ success = true;
420
+ return {
421
+ data: dataClass,
422
+ error: data.error,
423
+ error_code: data ? data.error_code : response.status,
424
+ error_message: data ? data.error_message : "401 Authorization Required"
425
+ };
426
+ }
427
+ }
428
+ catch (error) {
429
+ success = true;
430
+ return {
431
+ data: null,
432
+ error: true,
433
+ error_code: data ? data.error_code : response.status,
434
+ error_message: data ? data.error_message : "401 Authorization Required"
435
+ };
436
+ }
437
+ }
438
+ }
439
+ /**
440
+ *
441
+ * @param {string} chainName - The chain name eg: `eth-mainnet`.
442
+ * @param {string} contractAddress - The endpoint will return event logs emitted from this contract address. Passing in an `ENS`, `RNS`, `Lens Handle`, or an `Unstoppable Domain` resolves automatically.
443
+ * @param {number} startingBlock - The first block to retrieve log events with. Accepts decimals, hexadecimals, or the strings `earliest` and `latest`.
444
+ * @param {string} endingBlock - The last block to retrieve log events with. Accepts decimals, hexadecimals, or the strings `earliest` and `latest`.
445
+ *
446
+ */
447
+ async getLogEventsByAddress(chainName, contractAddress, startingBlock, endingBlock) {
448
+ let success = false;
449
+ let data;
450
+ let response;
451
+ const backoff = new backoff_1.ExponentialBackoff();
452
+ while (!success) {
453
+ try {
454
+ const urlParams = new URLSearchParams();
455
+ if (startingBlock !== undefined) {
456
+ urlParams.append("starting-block", startingBlock.toString());
457
+ }
458
+ if (endingBlock !== undefined) {
459
+ urlParams.append("ending-block", endingBlock.toString());
460
+ }
461
+ response = await fetch(`https://api.covalenthq.com/v1/${chainName}/events/address/${contractAddress}/?${urlParams}`, {
462
+ headers: {
463
+ "Authorization": `Bearer ${this.apiKey}`
464
+ }
465
+ });
466
+ data = await response.json();
467
+ if (data.error && data.error_code === 429) {
468
+ try {
469
+ await backoff.backOff();
470
+ }
471
+ catch (error) {
472
+ (0, ApiHelpers_1.checkAndModifyResponse)(data);
473
+ success = true;
474
+ return {
475
+ data: null,
476
+ error: data.error,
477
+ error_code: data ? data.error_code : response.status,
478
+ error_message: data ? data.error_message : "401 Authorization Required"
479
+ };
480
+ }
481
+ }
482
+ else {
483
+ const dataClass = new LogEventsByAddressResponse(data.data);
484
+ (0, ApiHelpers_1.checkAndModifyResponse)(dataClass);
485
+ success = true;
486
+ return {
487
+ data: dataClass,
488
+ error: data.error,
489
+ error_code: data ? data.error_code : response.status,
490
+ error_message: data ? data.error_message : "401 Authorization Required"
491
+ };
492
+ }
493
+ }
494
+ catch (error) {
495
+ success = true;
496
+ return {
497
+ data: null,
498
+ error: true,
499
+ error_code: data ? data.error_code : response.status,
500
+ error_message: data ? data.error_message : "401 Authorization Required"
501
+ };
502
+ }
503
+ }
504
+ }
505
+ /**
506
+ *
507
+ * @param {string} chainName - The chain name eg: `eth-mainnet`.
508
+ * @param {string} topicHash - The endpoint will return event logs that contain this topic hash.
509
+ * @param {number} startingBlock - The first block to retrieve log events with. Accepts decimals, hexadecimals, or the strings `earliest` and `latest`.
510
+ * @param {string} endingBlock - The last block to retrieve log events with. Accepts decimals, hexadecimals, or the strings `earliest` and `latest`.
511
+ * @param {string} secondaryTopics - Additional topic hash(es) to filter on - padded & unpadded address fields are supported.
512
+ *
513
+ */
514
+ async getLogEventsByTopicHash(chainName, topicHash, startingBlock, endingBlock, secondaryTopics) {
515
+ let success = false;
516
+ let data;
517
+ let response;
518
+ const backoff = new backoff_1.ExponentialBackoff();
519
+ while (!success) {
520
+ try {
521
+ const urlParams = new URLSearchParams();
522
+ if (startingBlock !== undefined) {
523
+ urlParams.append("starting-block", startingBlock.toString());
524
+ }
525
+ if (endingBlock !== undefined) {
526
+ urlParams.append("ending-block", endingBlock.toString());
527
+ }
528
+ if (secondaryTopics !== undefined) {
529
+ urlParams.append("secondary-topics", secondaryTopics.toString());
530
+ }
531
+ response = await fetch(`https://api.covalenthq.com/v1/${chainName}/events/topics/${topicHash}/?${urlParams}`, {
532
+ headers: {
533
+ "Authorization": `Bearer ${this.apiKey}`
534
+ }
535
+ });
536
+ data = await response.json();
537
+ if (data.error && data.error_code === 429) {
538
+ try {
539
+ await backoff.backOff();
540
+ }
541
+ catch (error) {
542
+ (0, ApiHelpers_1.checkAndModifyResponse)(data);
543
+ success = true;
544
+ return {
545
+ data: null,
546
+ error: data.error,
547
+ error_code: data ? data.error_code : response.status,
548
+ error_message: data ? data.error_message : "401 Authorization Required"
549
+ };
550
+ }
551
+ }
552
+ else {
553
+ const dataClass = new LogEventsByTopicHashResponse(data.data);
554
+ (0, ApiHelpers_1.checkAndModifyResponse)(dataClass);
555
+ success = true;
556
+ return {
557
+ data: dataClass,
558
+ error: data.error,
559
+ error_code: data ? data.error_code : response.status,
560
+ error_message: data ? data.error_message : "401 Authorization Required"
561
+ };
562
+ }
563
+ }
564
+ catch (error) {
565
+ success = true;
566
+ return {
567
+ data: null,
568
+ error: true,
569
+ error_code: data ? data.error_code : response.status,
570
+ error_message: data ? data.error_message : "401 Authorization Required"
571
+ };
572
+ }
573
+ }
574
+ }
575
+ /**
576
+ *
577
+
578
+ *
579
+ */
580
+ async getAllChains() {
581
+ let success = false;
582
+ let data;
583
+ let response;
584
+ const backoff = new backoff_1.ExponentialBackoff();
585
+ while (!success) {
586
+ try {
587
+ const urlParams = new URLSearchParams();
588
+ response = await fetch(`https://api.covalenthq.com/v1/chains/?${urlParams}`, {
589
+ headers: {
590
+ "Authorization": `Bearer ${this.apiKey}`
591
+ }
592
+ });
593
+ data = await response.json();
594
+ if (data.error && data.error_code === 429) {
595
+ try {
596
+ await backoff.backOff();
597
+ }
598
+ catch (error) {
599
+ (0, ApiHelpers_1.checkAndModifyResponse)(data);
600
+ success = true;
601
+ return {
602
+ data: null,
603
+ error: data.error,
604
+ error_code: data ? data.error_code : response.status,
605
+ error_message: data ? data.error_message : "401 Authorization Required"
606
+ };
607
+ }
608
+ }
609
+ else {
610
+ const dataClass = new AllChainsResponse(data.data);
611
+ (0, ApiHelpers_1.checkAndModifyResponse)(dataClass);
612
+ success = true;
613
+ return {
614
+ data: dataClass,
615
+ error: data.error,
616
+ error_code: data ? data.error_code : response.status,
617
+ error_message: data ? data.error_message : "401 Authorization Required"
618
+ };
619
+ }
620
+ }
621
+ catch (error) {
622
+ success = true;
623
+ return {
624
+ data: null,
625
+ error: true,
626
+ error_code: data ? data.error_code : response.status,
627
+ error_message: data ? data.error_message : "401 Authorization Required"
628
+ };
629
+ }
630
+ }
631
+ }
632
+ /**
633
+ *
634
+
635
+ *
636
+ */
637
+ async getAllChainStatus() {
638
+ let success = false;
639
+ let data;
640
+ let response;
641
+ const backoff = new backoff_1.ExponentialBackoff();
642
+ while (!success) {
643
+ try {
644
+ const urlParams = new URLSearchParams();
645
+ response = await fetch(`https://api.covalenthq.com/v1/chains/status/?${urlParams}`, {
646
+ headers: {
647
+ "Authorization": `Bearer ${this.apiKey}`
648
+ }
649
+ });
650
+ data = await response.json();
651
+ if (data.error && data.error_code === 429) {
652
+ try {
653
+ await backoff.backOff();
654
+ }
655
+ catch (error) {
656
+ (0, ApiHelpers_1.checkAndModifyResponse)(data);
657
+ success = true;
658
+ return {
659
+ data: null,
660
+ error: data.error,
661
+ error_code: data ? data.error_code : response.status,
662
+ error_message: data ? data.error_message : "401 Authorization Required"
663
+ };
664
+ }
665
+ }
666
+ else {
667
+ const dataClass = new AllChainsStatusResponse(data.data);
668
+ (0, ApiHelpers_1.checkAndModifyResponse)(dataClass);
669
+ success = true;
670
+ return {
671
+ data: dataClass,
672
+ error: data.error,
673
+ error_code: data ? data.error_code : response.status,
674
+ error_message: data ? data.error_message : "401 Authorization Required"
675
+ };
676
+ }
677
+ }
678
+ catch (error) {
679
+ success = true;
680
+ return {
681
+ data: null,
682
+ error: true,
683
+ error_code: data ? data.error_code : response.status,
684
+ error_message: data ? data.error_message : "401 Authorization Required"
685
+ };
686
+ }
687
+ }
688
+ }
689
+ }
690
+ exports.BaseService = BaseService;
691
+ //# sourceMappingURL=BaseService.js.map