@mr-zwets/bchn-api-wrapper 1.0.1 → 1.0.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 (74) hide show
  1. package/README.md +121 -129
  2. package/dist/interfaces/interfaces.d.ts +13 -0
  3. package/dist/interfaces/restInterfaces/interfaces.d.ts +124 -18
  4. package/dist/interfaces/rpcInterfaces/blockchain.d.ts +293 -102
  5. package/dist/interfaces/rpcInterfaces/control.d.ts +6 -0
  6. package/dist/interfaces/rpcInterfaces/generating.d.ts +2 -0
  7. package/dist/interfaces/rpcInterfaces/mining.d.ts +9 -0
  8. package/dist/interfaces/rpcInterfaces/network.d.ts +18 -0
  9. package/dist/interfaces/rpcInterfaces/rawtransactions.d.ts +21 -0
  10. package/dist/interfaces/rpcInterfaces/util.d.ts +5 -0
  11. package/dist/interfaces/rpcInterfaces/wallet.d.ts +54 -0
  12. package/dist/interfaces/rpcInterfaces/zmq.d.ts +1 -0
  13. package/dist/restClient.d.ts +13 -1
  14. package/dist/restClient.js +19 -6
  15. package/dist/rpcClient.d.ts +7 -0
  16. package/dist/rpcClient.js +7 -0
  17. package/dist/src/index.d.ts +4 -0
  18. package/dist/src/index.js +4 -0
  19. package/dist/src/interfaces/interfaces.d.ts +83 -0
  20. package/dist/src/interfaces/interfaces.js +1 -0
  21. package/dist/src/interfaces/restInterfaces/interfaces.d.ts +215 -0
  22. package/dist/src/interfaces/restInterfaces/interfaces.js +1 -0
  23. package/dist/src/interfaces/rpcInterfaces/blockchain.d.ts +883 -0
  24. package/dist/src/interfaces/rpcInterfaces/blockchain.js +3 -0
  25. package/dist/src/interfaces/rpcInterfaces/control.d.ts +60 -0
  26. package/dist/src/interfaces/rpcInterfaces/control.js +3 -0
  27. package/dist/src/interfaces/rpcInterfaces/generating.d.ts +19 -0
  28. package/dist/src/interfaces/rpcInterfaces/generating.js +3 -0
  29. package/dist/src/interfaces/rpcInterfaces/index.d.ts +9 -0
  30. package/{src/interfaces/rpcInterfaces/index.ts → dist/src/interfaces/rpcInterfaces/index.js} +12 -14
  31. package/dist/src/interfaces/rpcInterfaces/mining.d.ts +140 -0
  32. package/dist/src/interfaces/rpcInterfaces/mining.js +3 -0
  33. package/dist/src/interfaces/rpcInterfaces/network.d.ts +197 -0
  34. package/dist/src/interfaces/rpcInterfaces/network.js +3 -0
  35. package/dist/src/interfaces/rpcInterfaces/rawtransactions.d.ts +304 -0
  36. package/dist/src/interfaces/rpcInterfaces/rawtransactions.js +3 -0
  37. package/dist/src/interfaces/rpcInterfaces/util.d.ts +49 -0
  38. package/dist/src/interfaces/rpcInterfaces/util.js +3 -0
  39. package/dist/src/interfaces/rpcInterfaces/wallet.d.ts +674 -0
  40. package/dist/src/interfaces/rpcInterfaces/wallet.js +3 -0
  41. package/dist/src/interfaces/rpcInterfaces/zmq.d.ts +9 -0
  42. package/dist/src/interfaces/rpcInterfaces/zmq.js +3 -0
  43. package/dist/src/restClient.d.ts +29 -0
  44. package/dist/src/restClient.js +113 -0
  45. package/dist/src/rpcClient.d.ts +19 -0
  46. package/dist/src/rpcClient.js +92 -0
  47. package/dist/src/utils/errors.d.ts +3 -0
  48. package/dist/src/utils/errors.js +6 -0
  49. package/dist/src/utils/utils.d.ts +11 -0
  50. package/dist/src/utils/utils.js +49 -0
  51. package/package.json +11 -8
  52. package/CHANGELOG.md +0 -7
  53. package/src/index.ts +0 -4
  54. package/src/interfaces/interfaces.ts +0 -87
  55. package/src/interfaces/restInterfaces/interfaces.ts +0 -117
  56. package/src/interfaces/rpcInterfaces/blockchain.ts +0 -759
  57. package/src/interfaces/rpcInterfaces/control.ts +0 -62
  58. package/src/interfaces/rpcInterfaces/generating.ts +0 -21
  59. package/src/interfaces/rpcInterfaces/mining.ts +0 -143
  60. package/src/interfaces/rpcInterfaces/network.ts +0 -195
  61. package/src/interfaces/rpcInterfaces/rawtransactions.ts +0 -314
  62. package/src/interfaces/rpcInterfaces/util.ts +0 -52
  63. package/src/interfaces/rpcInterfaces/wallet.ts +0 -674
  64. package/src/interfaces/rpcInterfaces/zmq.ts +0 -11
  65. package/src/restClient.ts +0 -119
  66. package/src/rpcClient.ts +0 -93
  67. package/src/utils/errors.ts +0 -6
  68. package/src/utils/utils.ts +0 -55
  69. package/test/restClient.test.ts +0 -32
  70. package/test/rpcClient.test.ts +0 -115
  71. package/test/setupTests.ts +0 -54
  72. package/test/tsconfig.json +0 -4
  73. package/tsconfig.json +0 -13
  74. package/vitest.config.ts +0 -9
@@ -0,0 +1,215 @@
1
+ import type { Transaction } from "../interfaces.js";
2
+ /** Adaptive Block Limit Algorithm state (activated May 2024). */
3
+ export interface AblaState {
4
+ epsilon: number;
5
+ beta: number;
6
+ blocksize: number;
7
+ blocksizelimit: number;
8
+ nextblocksizelimit: number;
9
+ }
10
+ /**
11
+ * Base block info fields shared across response types.
12
+ * @note `previousblockhash` not present on genesis block (height 0).
13
+ * @note `nextblockhash` not present on chain tip.
14
+ */
15
+ interface BlockInfoBase {
16
+ hash: string;
17
+ confirmations: number;
18
+ size: number;
19
+ height: number;
20
+ version: number;
21
+ versionHex: string;
22
+ merkleroot: string;
23
+ time: number;
24
+ mediantime: number;
25
+ nonce: number;
26
+ bits: string;
27
+ difficulty: number;
28
+ chainwork: string;
29
+ nTx: number;
30
+ previousblockhash: string;
31
+ nextblockhash: string;
32
+ }
33
+ /** Block info with tx IDs only - works for any block. */
34
+ export interface BlockInfoNoTxDetails extends BlockInfoBase {
35
+ tx: string[];
36
+ ablastate?: AblaState;
37
+ }
38
+ /** Block info with tx IDs only - for blocks before ABLA activation (May 2024). */
39
+ export interface BlockInfoNoTxDetailsPreAbla extends BlockInfoBase {
40
+ tx: string[];
41
+ }
42
+ /** Block info with tx IDs only - for blocks after ABLA activation (May 2024). */
43
+ export interface BlockInfoNoTxDetailsPostAbla extends BlockInfoBase {
44
+ tx: string[];
45
+ ablastate: AblaState;
46
+ }
47
+ /** Block info with full transaction objects - works for any block. */
48
+ export interface BlockInfoTxDetails extends BlockInfoBase {
49
+ tx: Transaction[];
50
+ ablastate?: AblaState;
51
+ }
52
+ /** Block info with full transaction objects - for blocks before ABLA activation (May 2024). */
53
+ export interface BlockInfoTxDetailsPreAbla extends BlockInfoBase {
54
+ tx: Transaction[];
55
+ }
56
+ /** Block info with full transaction objects - for blocks after ABLA activation (May 2024). */
57
+ export interface BlockInfoTxDetailsPostAbla extends BlockInfoBase {
58
+ tx: Transaction[];
59
+ ablastate: AblaState;
60
+ }
61
+ /**
62
+ * Base header info fields shared across response types.
63
+ * @note `previousblockhash` not present on genesis block (height 0).
64
+ * @note `nextblockhash` not present on chain tip.
65
+ */
66
+ interface HeaderInfoBase {
67
+ hash: string;
68
+ confirmations: number;
69
+ height: number;
70
+ version: number;
71
+ versionHex: string;
72
+ merkleroot: string;
73
+ time: number;
74
+ mediantime: number;
75
+ nonce: number;
76
+ bits: string;
77
+ difficulty: number;
78
+ chainwork: string;
79
+ nTx: number;
80
+ previousblockhash: string;
81
+ nextblockhash: string;
82
+ }
83
+ /** Block header info - works for any block. */
84
+ export interface HeaderInfo extends HeaderInfoBase {
85
+ ablastate?: AblaState;
86
+ }
87
+ /** Block header info - for blocks before ABLA activation (May 2024). */
88
+ export interface HeaderInfoPreAbla extends HeaderInfoBase {
89
+ }
90
+ /** Block header info - for blocks after ABLA activation (May 2024). */
91
+ export interface HeaderInfoPostAbla extends HeaderInfoBase {
92
+ ablastate: AblaState;
93
+ }
94
+ /** Current blockchain state and synchronization status. */
95
+ export interface ChainInfo {
96
+ chain: 'main' | 'test' | 'regtest';
97
+ blocks: number;
98
+ headers: number;
99
+ bestblockhash: string;
100
+ difficulty: number;
101
+ mediantime: number;
102
+ verificationprogress: number;
103
+ initialblockdownload: boolean;
104
+ chainwork: string;
105
+ size_on_disk: number;
106
+ pruned: boolean;
107
+ warnings: string;
108
+ }
109
+ /** UTXO set query result with bitmap for checked outpoints. */
110
+ export interface UtxosInfo {
111
+ chaintipHash: string;
112
+ chainHeight: number;
113
+ utxos: {
114
+ scriptPubKey: {
115
+ addresses: string[];
116
+ type: string;
117
+ hex: string;
118
+ reqSigs: number;
119
+ asm: string;
120
+ };
121
+ value: number;
122
+ height: number;
123
+ txvers: number;
124
+ }[];
125
+ bitmap: string;
126
+ }
127
+ /** Mempool configuration and size statistics. */
128
+ export interface MempoolInfo {
129
+ loaded: boolean;
130
+ size: number;
131
+ bytes: number;
132
+ usage: number;
133
+ maxmempool: number;
134
+ mempoolminfee: number;
135
+ minrelaytxfee: number;
136
+ permitbaremultisig: boolean;
137
+ maxdatacarriersize: number;
138
+ }
139
+ /** Mempool contents indexed by txid with fee and dependency info. */
140
+ export interface MempoolContent {
141
+ [txid: string]: {
142
+ fees: {
143
+ base: number;
144
+ modified: number;
145
+ };
146
+ size: number;
147
+ time: number;
148
+ depends: string[];
149
+ spentby: string[];
150
+ };
151
+ }
152
+ /** Transaction with block hash (for confirmed transactions). */
153
+ export interface TxDetails extends Transaction {
154
+ blockhash: string;
155
+ }
156
+ /** Script fingerprint and pattern info for bytecode analysis (v29.0.0+). */
157
+ export interface ByteCodePattern {
158
+ fingerprint: string;
159
+ pattern: string;
160
+ patternArgsInfo?: string[];
161
+ }
162
+ /** Script with optional bytecode pattern metadata (v29.0.0+). */
163
+ export interface ScriptPubKeyWithPattern {
164
+ asm: string;
165
+ hex: string;
166
+ type: string;
167
+ address?: string;
168
+ byteCodePattern?: ByteCodePattern;
169
+ }
170
+ /** Transaction input with prevout and pattern info (v29.0.0+). */
171
+ export interface TransactionInputWithPattern {
172
+ txid: string;
173
+ vout: number;
174
+ scriptSig: {
175
+ asm: string;
176
+ hex: string;
177
+ };
178
+ sequence: number;
179
+ prevout?: {
180
+ generated: boolean;
181
+ height: number;
182
+ value: number;
183
+ scriptPubKey: ScriptPubKeyWithPattern;
184
+ };
185
+ redeemScript?: {
186
+ asm: string;
187
+ hex: string;
188
+ type: string;
189
+ byteCodePattern?: ByteCodePattern;
190
+ p2shType?: string;
191
+ };
192
+ }
193
+ /** Transaction output with pattern-enabled scriptPubKey (v29.0.0+). */
194
+ export interface TransactionOutputWithPattern {
195
+ value: number;
196
+ n: number;
197
+ scriptPubKey: ScriptPubKeyWithPattern;
198
+ }
199
+ /** Transaction with bytecode patterns and optional fee (v29.0.0+). */
200
+ export interface TxDetailsWithPatterns {
201
+ txid: string;
202
+ hash: string;
203
+ size: number;
204
+ version: number;
205
+ locktime: number;
206
+ vin: TransactionInputWithPattern[];
207
+ vout: TransactionOutputWithPattern[];
208
+ blockhash: string;
209
+ fee?: number;
210
+ }
211
+ /** Block with pattern-enhanced transactions (v29.0.0+). */
212
+ export interface BlockInfoWithPatterns extends Omit<BlockInfoNoTxDetails, 'tx'> {
213
+ tx: TxDetailsWithPatterns[];
214
+ }
215
+ export {};
@@ -0,0 +1 @@
1
+ export {};