@mr-zwets/bchn-api-wrapper 1.0.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 (60) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +129 -0
  3. package/dist/index.d.ts +4 -0
  4. package/dist/index.js +4 -0
  5. package/dist/interfaces/interfaces.d.ts +70 -0
  6. package/dist/interfaces/interfaces.js +1 -0
  7. package/dist/interfaces/restInterfaces/interfaces.d.ts +109 -0
  8. package/dist/interfaces/restInterfaces/interfaces.js +1 -0
  9. package/dist/interfaces/rpcInterfaces/blockchain.d.ts +692 -0
  10. package/dist/interfaces/rpcInterfaces/blockchain.js +3 -0
  11. package/dist/interfaces/rpcInterfaces/control.d.ts +54 -0
  12. package/dist/interfaces/rpcInterfaces/control.js +3 -0
  13. package/dist/interfaces/rpcInterfaces/generating.d.ts +17 -0
  14. package/dist/interfaces/rpcInterfaces/generating.js +3 -0
  15. package/dist/interfaces/rpcInterfaces/index.d.ts +9 -0
  16. package/dist/interfaces/rpcInterfaces/index.js +12 -0
  17. package/dist/interfaces/rpcInterfaces/mining.d.ts +131 -0
  18. package/dist/interfaces/rpcInterfaces/mining.js +3 -0
  19. package/dist/interfaces/rpcInterfaces/network.d.ts +179 -0
  20. package/dist/interfaces/rpcInterfaces/network.js +3 -0
  21. package/dist/interfaces/rpcInterfaces/rawtransactions.d.ts +283 -0
  22. package/dist/interfaces/rpcInterfaces/rawtransactions.js +3 -0
  23. package/dist/interfaces/rpcInterfaces/util.d.ts +44 -0
  24. package/dist/interfaces/rpcInterfaces/util.js +3 -0
  25. package/dist/interfaces/rpcInterfaces/wallet.d.ts +620 -0
  26. package/dist/interfaces/rpcInterfaces/wallet.js +3 -0
  27. package/dist/interfaces/rpcInterfaces/zmq.d.ts +8 -0
  28. package/dist/interfaces/rpcInterfaces/zmq.js +3 -0
  29. package/dist/restClient.d.ts +17 -0
  30. package/dist/restClient.js +100 -0
  31. package/dist/rpcClient.d.ts +12 -0
  32. package/dist/rpcClient.js +85 -0
  33. package/dist/utils/errors.d.ts +3 -0
  34. package/dist/utils/errors.js +6 -0
  35. package/dist/utils/utils.d.ts +11 -0
  36. package/dist/utils/utils.js +49 -0
  37. package/package.json +40 -0
  38. package/src/index.ts +4 -0
  39. package/src/interfaces/interfaces.ts +87 -0
  40. package/src/interfaces/restInterfaces/interfaces.ts +117 -0
  41. package/src/interfaces/rpcInterfaces/blockchain.ts +759 -0
  42. package/src/interfaces/rpcInterfaces/control.ts +62 -0
  43. package/src/interfaces/rpcInterfaces/generating.ts +21 -0
  44. package/src/interfaces/rpcInterfaces/index.ts +14 -0
  45. package/src/interfaces/rpcInterfaces/mining.ts +143 -0
  46. package/src/interfaces/rpcInterfaces/network.ts +195 -0
  47. package/src/interfaces/rpcInterfaces/rawtransactions.ts +314 -0
  48. package/src/interfaces/rpcInterfaces/util.ts +52 -0
  49. package/src/interfaces/rpcInterfaces/wallet.ts +674 -0
  50. package/src/interfaces/rpcInterfaces/zmq.ts +11 -0
  51. package/src/restClient.ts +119 -0
  52. package/src/rpcClient.ts +93 -0
  53. package/src/utils/errors.ts +6 -0
  54. package/src/utils/utils.ts +55 -0
  55. package/test/restClient.test.ts +32 -0
  56. package/test/rpcClient.test.ts +115 -0
  57. package/test/setupTests.ts +54 -0
  58. package/test/tsconfig.json +4 -0
  59. package/tsconfig.json +13 -0
  60. package/vitest.config.ts +9 -0
@@ -0,0 +1,692 @@
1
+ import type { TokenData, Transaction, TransactionInput } from "../interfaces.js";
2
+ export interface FinalizeBlock {
3
+ method: 'finalizeblock';
4
+ params: [
5
+ blockhash: string
6
+ ];
7
+ }
8
+ export interface GetBestBlockHash {
9
+ method: 'getbestblockhash';
10
+ params: [];
11
+ response: string;
12
+ }
13
+ interface GetBlockBase {
14
+ method: 'getblock';
15
+ params: [
16
+ blockhash: string,
17
+ verbosity?: number | boolean
18
+ ];
19
+ }
20
+ export interface GetBlockVerbosity0 extends GetBlockBase {
21
+ params: [
22
+ blockhash: string,
23
+ verbosity?: 0 | false
24
+ ];
25
+ response: string;
26
+ }
27
+ export interface GetBlockVerbosity1 extends GetBlockBase {
28
+ params: [
29
+ blockhash: string,
30
+ verbosity?: 1 | true
31
+ ];
32
+ response: {
33
+ hash: string;
34
+ confirmations: number;
35
+ size: number;
36
+ height: number;
37
+ version: number;
38
+ versionHex: string;
39
+ merkleroot: string;
40
+ tx: string[];
41
+ time: number;
42
+ mediantime: number;
43
+ nonce: number;
44
+ bits: string;
45
+ difficulty: number;
46
+ chainwork: string;
47
+ nTx: number;
48
+ previousblockhash: string;
49
+ nextblockhash: string;
50
+ ablastate: {
51
+ epsilon: number;
52
+ beta: number;
53
+ blocksize: number;
54
+ blocksizelimit: number;
55
+ nextblocksizelimit: number;
56
+ };
57
+ };
58
+ }
59
+ export interface GetBlockVerbosity2 extends GetBlockBase {
60
+ params: [
61
+ blockhash: string,
62
+ verbosity: 2
63
+ ];
64
+ response: {
65
+ hash: string;
66
+ confirmations: number;
67
+ size: number;
68
+ height: number;
69
+ version: number;
70
+ versionHex: string;
71
+ merkleroot: string;
72
+ tx: {
73
+ txid: string;
74
+ fee?: number;
75
+ }[];
76
+ time: number;
77
+ mediantime: number;
78
+ nonce: number;
79
+ bits: string;
80
+ difficulty: number;
81
+ chainwork: string;
82
+ nTx: number;
83
+ previousblockhash: string;
84
+ nextblockhash: string;
85
+ ablastate?: {
86
+ epsilon: number;
87
+ beta: number;
88
+ blocksize: number;
89
+ blocksizelimit: number;
90
+ nextblocksizelimit: number;
91
+ };
92
+ };
93
+ }
94
+ export interface TransactionInputWithPrevout extends TransactionInput {
95
+ prevout?: {
96
+ generated: boolean;
97
+ height: number;
98
+ value: number;
99
+ scriptPubKey: {
100
+ asm: string;
101
+ hex: string;
102
+ type: 'nonstandard' | 'pubkey' | 'pubkeyhash' | 'scripthash' | 'multisig' | 'nulldata';
103
+ address?: string;
104
+ };
105
+ tokenData?: TokenData;
106
+ };
107
+ }
108
+ export interface TransactionWithPrevout extends Omit<Transaction, 'vin'> {
109
+ vin: TransactionInputWithPrevout[];
110
+ }
111
+ export interface GetBlockVerbosity3 extends GetBlockBase {
112
+ params: [
113
+ blockhash: string,
114
+ verbosity: 3
115
+ ];
116
+ response: {
117
+ hash: string;
118
+ confirmations: number;
119
+ size: number;
120
+ height: number;
121
+ version: number;
122
+ versionHex: string;
123
+ merkleroot: string;
124
+ tx: TransactionWithPrevout[];
125
+ time: number;
126
+ mediantime: number;
127
+ nonce: number;
128
+ bits: string;
129
+ difficulty: number;
130
+ chainwork: string;
131
+ nTx: number;
132
+ previousblockhash: string;
133
+ nextblockhash: string;
134
+ ablastate?: {
135
+ epsilon: number;
136
+ beta: number;
137
+ blocksize: number;
138
+ blocksizelimit: number;
139
+ nextblocksizelimit: number;
140
+ };
141
+ };
142
+ }
143
+ export interface GetBlockchainInfo {
144
+ method: 'getblockchaininfo';
145
+ params: [];
146
+ response: {
147
+ chain: 'main' | 'test' | 'regtest';
148
+ blocks: number;
149
+ headers: number;
150
+ bestblockhash: string;
151
+ difficulty: number;
152
+ mediantime: number;
153
+ verificationprogress: number;
154
+ initialblockdownload: boolean;
155
+ chainwork: string;
156
+ size_on_disk: number;
157
+ pruned: boolean;
158
+ pruneheight: number;
159
+ automatic_pruning: boolean;
160
+ prune_target_size?: number;
161
+ warnings: string;
162
+ };
163
+ }
164
+ export interface GetBlockCount {
165
+ method: 'getblockcount';
166
+ params: [];
167
+ response: number;
168
+ }
169
+ export interface GetBlockHash {
170
+ method: 'getblockhash';
171
+ params: [
172
+ height: number
173
+ ];
174
+ response: string;
175
+ }
176
+ export interface GetBlockHeaderBase {
177
+ method: 'getblockheader';
178
+ params: [
179
+ hash_or_height: string | number,
180
+ verbosity?: boolean | number
181
+ ];
182
+ }
183
+ export interface GetBlockHeaderVerbosity0 extends GetBlockHeaderBase {
184
+ params: [
185
+ hash_or_height: string | number,
186
+ verbosity?: false | 0
187
+ ];
188
+ response: string;
189
+ }
190
+ export interface GetBlockHeaderVerbosity1 extends GetBlockHeaderBase {
191
+ params: [
192
+ hash_or_height: string | number,
193
+ verbosity?: true | 1
194
+ ];
195
+ response: {
196
+ hash: string;
197
+ confirmations: number;
198
+ height: number;
199
+ version: number;
200
+ versionHex: string;
201
+ merkleroot: string;
202
+ time: number;
203
+ mediantime: number;
204
+ nonce: number;
205
+ bits: string;
206
+ difficulty: number;
207
+ chainwork: string;
208
+ nTx: number;
209
+ previousblockhash: string;
210
+ nextblockhash: string;
211
+ ablastate: {
212
+ epsilon: number;
213
+ beta: number;
214
+ blocksize: number;
215
+ blocksizelimit: number;
216
+ nextblocksizelimit: number;
217
+ };
218
+ };
219
+ }
220
+ export interface GetBlockStats {
221
+ method: 'getblockheader';
222
+ params: [
223
+ hash_or_height: string | number,
224
+ stats?: string[]
225
+ ];
226
+ response: {
227
+ avgfee: number;
228
+ avgfeerate: number;
229
+ avgtxsize: number;
230
+ blockhash: string;
231
+ feerate_percentiles: {
232
+ "10th_percentile_feerate": number;
233
+ "25th_percentile_feerate": number;
234
+ "50th_percentile_feerate": number;
235
+ "75th_percentile_feerate": number;
236
+ "90th_percentile_feerate": number;
237
+ };
238
+ height: number;
239
+ ins: number;
240
+ maxfee: number;
241
+ maxfeerate: number;
242
+ maxtxsize: number;
243
+ medianfee: number;
244
+ mediantime: number;
245
+ mediantxsize: number;
246
+ minfee: number;
247
+ minfeerate: number;
248
+ mintxsize: number;
249
+ outs: number;
250
+ subsidy: number;
251
+ time: number;
252
+ total_out: number;
253
+ total_size: number;
254
+ totalfee: number;
255
+ txs: number;
256
+ utxo_increase: number;
257
+ utxo_size_inc: number;
258
+ };
259
+ }
260
+ export interface GetChainTips {
261
+ method: 'getchaintips';
262
+ params: [];
263
+ response: {
264
+ height: number;
265
+ hash: string;
266
+ branchlen: number;
267
+ status: 'active' | 'parked' | 'headers-only' | 'valid-headers' | 'valid-fork' | 'active';
268
+ }[];
269
+ }
270
+ export interface GetChainTxStats {
271
+ method: 'getchaintxstats';
272
+ params: [
273
+ nblocks?: number,
274
+ blockhash?: string
275
+ ];
276
+ response: {
277
+ time: number;
278
+ txcount: number;
279
+ window_final_block_hash: string;
280
+ window_block_count: number;
281
+ window_tx_count: number | undefined;
282
+ window_interval: number | undefined;
283
+ txrate: number;
284
+ };
285
+ }
286
+ export interface GetDifficulty {
287
+ method: 'getdifficulty';
288
+ params: [];
289
+ response: number;
290
+ }
291
+ interface GetDsProofBase {
292
+ method: 'getdsproof';
293
+ params: [
294
+ dspid_or_txid_or_outpoint: string | {
295
+ txid: string;
296
+ vout: number;
297
+ },
298
+ verbosity?: number | boolean,
299
+ recursive?: boolean
300
+ ];
301
+ }
302
+ export interface GetDsProofVerbosity0 extends GetDsProofBase {
303
+ params: [
304
+ dspid_or_txid_or_outpoint: string | {
305
+ txid: string;
306
+ vout: number;
307
+ },
308
+ verbosity?: 0 | false,
309
+ recursive?: boolean
310
+ ];
311
+ response: {
312
+ hex: string;
313
+ txid: string | null;
314
+ path?: string[];
315
+ };
316
+ }
317
+ export interface GetDsProofVerbosity1 extends GetDsProofBase {
318
+ params: [
319
+ dspid_or_txid_or_outpoint: string | {
320
+ txid: string;
321
+ vout: number;
322
+ },
323
+ verbosity?: 1,
324
+ recursive?: boolean
325
+ ];
326
+ response: {
327
+ hex: string;
328
+ txid: string | null;
329
+ path?: string[];
330
+ descendants?: string[];
331
+ };
332
+ }
333
+ export interface GetDsProofVerbosity2 extends GetDsProofBase {
334
+ params: [
335
+ dspid_or_txid_or_outpoint: string | {
336
+ txid: string;
337
+ vout: number;
338
+ },
339
+ verbosity?: 2 | true,
340
+ recursive?: boolean
341
+ ];
342
+ response: {
343
+ dspid: string;
344
+ txid: string | null;
345
+ outpoint: {
346
+ txid: string;
347
+ vout: number;
348
+ };
349
+ descendants?: string[];
350
+ path?: string[];
351
+ };
352
+ }
353
+ interface Spender {
354
+ txversion: number;
355
+ sequence: number;
356
+ locktime: number;
357
+ hashprevoutputs: string;
358
+ hashsequence: string;
359
+ hashoutputs: string;
360
+ pushdata: {
361
+ asm: string;
362
+ hex: string;
363
+ };
364
+ }
365
+ export interface GetDsProofVerbosity3 extends GetDsProofVerbosity2 {
366
+ response: {
367
+ dspid: string;
368
+ txid: string | null;
369
+ outpoint: {
370
+ txid: string;
371
+ vout: number;
372
+ };
373
+ spenders: Spender[];
374
+ descendants?: string[];
375
+ path?: string[];
376
+ };
377
+ }
378
+ export interface GetDsProofListBase {
379
+ method: 'getdsprooflist';
380
+ params: [
381
+ verbosity?: number | boolean,
382
+ include_orphans?: boolean
383
+ ];
384
+ }
385
+ export interface GetDsProofListVerbosity0 extends GetDsProofListBase {
386
+ params: [
387
+ verbosity?: 0 | false,
388
+ include_orphans?: boolean
389
+ ];
390
+ response: string[];
391
+ }
392
+ export interface GetDsProofListVerbosity1 extends GetDsProofListBase {
393
+ params: [
394
+ verbosity?: 1,
395
+ include_orphans?: boolean
396
+ ];
397
+ response: {
398
+ hex: string;
399
+ txid: string | null;
400
+ }[];
401
+ }
402
+ export interface GetDsProofListVerbosity2 extends GetDsProofListBase {
403
+ params: [
404
+ verbosity?: 2 | true,
405
+ include_orphans?: boolean
406
+ ];
407
+ response: {
408
+ dspid: string;
409
+ txid: string | null;
410
+ outpoint: {
411
+ txid: string;
412
+ vout: number;
413
+ };
414
+ }[];
415
+ }
416
+ export interface GetDsProofListVerbosity3 extends GetDsProofListBase {
417
+ response: {
418
+ dspid: string;
419
+ txid: string | null;
420
+ outpoint: {
421
+ txid: string;
422
+ vout: number;
423
+ };
424
+ spenders: Spender[];
425
+ }[];
426
+ }
427
+ export interface GetDsProofScore {
428
+ method: 'getdsproofscore';
429
+ params: [
430
+ txid: string
431
+ ];
432
+ response: number;
433
+ }
434
+ export interface GetFinalizedBlockHash {
435
+ method: 'getfinalizedblockhash';
436
+ params: [];
437
+ response: string;
438
+ }
439
+ interface GetMempoolAncestorsBase {
440
+ method: 'getmempoolancestors';
441
+ params: [
442
+ txid: string,
443
+ verbose?: boolean | number
444
+ ];
445
+ }
446
+ export interface GetMempoolAncestorsVerbosity0 extends GetMempoolAncestorsBase {
447
+ params: [
448
+ txid: string,
449
+ verbose?: false | 0
450
+ ];
451
+ response: string[];
452
+ }
453
+ export interface GetMempoolAncestorsVerbosity1 extends GetMempoolAncestorsBase {
454
+ params: [
455
+ txid: string,
456
+ verbose?: true | 1
457
+ ];
458
+ response: {
459
+ [transactionid: string]: {
460
+ size: number;
461
+ time: number;
462
+ fees: {
463
+ base: number;
464
+ modified: number;
465
+ };
466
+ depends: string[];
467
+ spentby: string[];
468
+ };
469
+ };
470
+ }
471
+ interface GetMempoolDescendantsBase {
472
+ method: 'getmempooldescendants';
473
+ params: [
474
+ txid: string,
475
+ verbose?: boolean | number
476
+ ];
477
+ }
478
+ export interface GetMempoolDescendantsVerbosity0 extends GetMempoolDescendantsBase {
479
+ params: [
480
+ txid: string,
481
+ verbose?: false | 0
482
+ ];
483
+ response: string[];
484
+ }
485
+ export interface GetMempoolDescendantsVerbosity1 extends GetMempoolDescendantsBase {
486
+ params: [
487
+ txid: string,
488
+ verbose?: true | 1
489
+ ];
490
+ response: {
491
+ [transactionid: string]: {
492
+ size: number;
493
+ time: number;
494
+ fees: {
495
+ base: number;
496
+ modified: number;
497
+ };
498
+ depends: string[];
499
+ spentby: string[];
500
+ };
501
+ };
502
+ }
503
+ export interface GetMempoolEntry {
504
+ method: 'getmempoolentry';
505
+ params: [
506
+ txid: string
507
+ ];
508
+ response: {
509
+ size: number;
510
+ time: number;
511
+ fees: {
512
+ base: number;
513
+ modified: number;
514
+ };
515
+ depends: string[];
516
+ spentby: string[];
517
+ };
518
+ }
519
+ export interface GetMempoolInfo {
520
+ method: 'getmempoolinfo';
521
+ params: [];
522
+ response: {
523
+ loaded: boolean;
524
+ size: number;
525
+ bytes: number;
526
+ usage: number;
527
+ maxmempool: number;
528
+ mempoolminfee: number;
529
+ minrelaytxfee: number;
530
+ };
531
+ }
532
+ interface GetRawMempoolBase {
533
+ method: 'getrawmempool';
534
+ params: [
535
+ verbose?: boolean | number
536
+ ];
537
+ }
538
+ export interface GetRawMempoolVerbosity0 extends GetRawMempoolBase {
539
+ params: [
540
+ verbose?: false | 0
541
+ ];
542
+ response: string[];
543
+ }
544
+ export interface GetRawMempoolVerbosity1 extends GetRawMempoolBase {
545
+ params: [
546
+ verbose?: true | 1
547
+ ];
548
+ response: {
549
+ [transactionid: string]: {
550
+ size: number;
551
+ time: number;
552
+ fees: {
553
+ base: number;
554
+ modified: number;
555
+ };
556
+ depends: string[];
557
+ spentby: string[];
558
+ };
559
+ };
560
+ }
561
+ export interface GetTxOut {
562
+ method: 'gettxout';
563
+ params: [
564
+ txid: string,
565
+ vout: number,
566
+ include_mempool?: boolean
567
+ ];
568
+ response: {
569
+ bestblock: string;
570
+ confirmations: number;
571
+ value: number;
572
+ scriptPubKey: {
573
+ asm: string;
574
+ hex: string;
575
+ type: string;
576
+ addresses: string[];
577
+ };
578
+ tokenData?: TokenData;
579
+ coinbase: boolean;
580
+ };
581
+ }
582
+ export interface GetTxOutProof {
583
+ method: 'gettxoutproof';
584
+ params: [
585
+ txids: string[],
586
+ blockhash?: string
587
+ ];
588
+ response: string;
589
+ }
590
+ export interface GetTxOutSetInfo {
591
+ method: 'gettxoutsetinfo';
592
+ params: [
593
+ txid: string
594
+ ];
595
+ response: {
596
+ height: number;
597
+ bestblock: string;
598
+ transactions: number;
599
+ txouts: number;
600
+ bogosize: number;
601
+ hash_serialized: string;
602
+ disk_size: number;
603
+ total_amount: number;
604
+ };
605
+ }
606
+ export interface InvalidateBlock {
607
+ method: 'invalidateblock';
608
+ params: [
609
+ blockhash: string
610
+ ];
611
+ response: null;
612
+ }
613
+ export interface ParkBlock {
614
+ method: 'parkblock';
615
+ params: [
616
+ blockhash: string
617
+ ];
618
+ response: null;
619
+ }
620
+ export interface PreciousBlock {
621
+ method: 'preciousblock';
622
+ params: [
623
+ blockhash: string
624
+ ];
625
+ response: null;
626
+ }
627
+ export interface PruneBlockchain {
628
+ method: 'pruneblockchain';
629
+ params: [
630
+ height: number
631
+ ];
632
+ response: number;
633
+ }
634
+ export interface ReconsiderBlock {
635
+ method: 'reconsiderblock';
636
+ params: [
637
+ blockhash: string
638
+ ];
639
+ response: null;
640
+ }
641
+ export interface SaveMempool {
642
+ method: 'savemempool';
643
+ params: [];
644
+ response: null;
645
+ }
646
+ export interface ScanTxOutSet {
647
+ method: 'scantxoutset';
648
+ params: [
649
+ action: 'start' | 'abort' | 'status',
650
+ scanobjects?: Array<string | {
651
+ desc: string;
652
+ range?: number;
653
+ }>
654
+ ];
655
+ response: {
656
+ unspents: Array<{
657
+ txid: string;
658
+ vout: number;
659
+ scriptPubKey: string;
660
+ amount: number;
661
+ height: number;
662
+ tokenData?: TokenData;
663
+ }>;
664
+ total_amount: number;
665
+ token_total_amount?: {
666
+ [category: string]: string;
667
+ };
668
+ } | boolean;
669
+ }
670
+ export interface UnparkBlock {
671
+ method: 'unparkblock';
672
+ params: [
673
+ blockhash: string
674
+ ];
675
+ response: null;
676
+ }
677
+ export interface VerifyChain {
678
+ method: 'verifychain';
679
+ params: [
680
+ checklevel?: number,
681
+ nblocks?: number
682
+ ];
683
+ response: boolean;
684
+ }
685
+ export interface VerifyTxOutProof {
686
+ method: 'verifytxoutproof';
687
+ params: [
688
+ proof: string
689
+ ];
690
+ response: string[];
691
+ }
692
+ export {};
@@ -0,0 +1,3 @@
1
+ /* --- Blockchain Commands --- */
2
+ // progress 33/33
3
+ export {};