@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,62 @@
1
+ /* --- Control Commands --- */
2
+ // progress 6/6
3
+
4
+ export interface GetMemoryInfo {
5
+ method: 'getmemoryinfo';
6
+ params: [
7
+ mode?: 'stats' | 'mallocinfo'
8
+ ];
9
+ response: {
10
+ locked: {
11
+ used: number;
12
+ free: number;
13
+ total: number;
14
+ locked: number;
15
+ chunks_used: number;
16
+ chunks_free: number;
17
+ };
18
+ };
19
+ }
20
+
21
+ export interface GetRpcInfo {
22
+ method: 'getrpcinfo';
23
+ params: [];
24
+ response: {
25
+ active_commands: {
26
+ method: string;
27
+ duration: number;
28
+ }[];
29
+ logpath: string;
30
+ };
31
+ }
32
+
33
+ export interface Help {
34
+ method: 'help';
35
+ params: [
36
+ command?: string
37
+ ];
38
+ response: string;
39
+ }
40
+
41
+ export interface Logging {
42
+ method: 'logging';
43
+ params: [
44
+ include_category?: string[],
45
+ exclude_category?: string[]
46
+ ];
47
+ response: {
48
+ [category: string]: boolean;
49
+ };
50
+ }
51
+
52
+ export interface Stop {
53
+ method: 'stop';
54
+ params: [];
55
+ response: string;
56
+ }
57
+
58
+ export interface Uptime {
59
+ method: 'uptime';
60
+ params: [];
61
+ response: number;
62
+ }
@@ -0,0 +1,21 @@
1
+ /* --- Generating Commands --- */
2
+ // progress 2/2
3
+
4
+ export interface Generate {
5
+ method: 'generate';
6
+ params: [
7
+ nblocks: number,
8
+ maxtries?: number,
9
+ ];
10
+ response: string[];
11
+ }
12
+
13
+ export interface GenerateToAddress {
14
+ method: 'generatetoaddress';
15
+ params: [
16
+ nblocks: number,
17
+ address: string,
18
+ maxtries?: number,
19
+ ];
20
+ response: string[];
21
+ }
@@ -0,0 +1,14 @@
1
+ // For the full list of commands see the documentation on
2
+ // https://docs.bitcoincashnode.org/doc/json-rpc/
3
+
4
+ // Total progress 136/136 (100%)
5
+
6
+ export * from './blockchain.js';
7
+ export * from './control.js';
8
+ export * from './generating.js';
9
+ export * from './mining.js';
10
+ export * from './network.js';
11
+ export * from './rawtransactions.js';
12
+ export * from './util.js';
13
+ export * from './wallet.js';
14
+ export * from './zmq.js'
@@ -0,0 +1,143 @@
1
+ /* --- Mining Commands --- */
2
+ // progress 9/9
3
+
4
+ export interface GetBlockTemplate {
5
+ method: 'getblocktemplate';
6
+ params: {
7
+ mode?: 'template' | 'proposal';
8
+ capabilities?: ('longpoll' | 'coinbasetxn' | 'coinbasevalue' | 'proposal' | 'serverlist' | 'workid')[];
9
+ longpollid?: string;
10
+ checkvalidity?: boolean;
11
+ ignorecache?: boolean;
12
+ };
13
+ response: {
14
+ version: number;
15
+ previousblockhash: string;
16
+ transactions: {
17
+ data: string;
18
+ txid: string;
19
+ hash: string;
20
+ depends: number[];
21
+ fee: number;
22
+ sigops: number;
23
+ required: boolean;
24
+ }[];
25
+ coinbaseaux: {
26
+ flags: string;
27
+ };
28
+ coinbasevalue: number;
29
+ coinbasetxn?: object;
30
+ target: string;
31
+ mintime: number;
32
+ mutable: string[];
33
+ noncerange: string;
34
+ sigoplimit: number;
35
+ sizelimit: number;
36
+ curtime: number;
37
+ bits: string;
38
+ height: number;
39
+ }
40
+ }
41
+
42
+ export interface GetBlockTemplateLight {
43
+ method: 'getblocktemplatelight';
44
+ params: [
45
+ {
46
+ mode?: 'template' | 'proposal';
47
+ capabilities?: ('longpoll' | 'coinbasetxn' | 'coinbasevalue' | 'proposal' | 'serverlist' | 'workid')[];
48
+ longpollid?: string;
49
+ checkvalidity?: boolean;
50
+ ignorecache?: boolean;
51
+ },
52
+ additional_txs?: string[]
53
+ ];
54
+ response: {
55
+ version: number;
56
+ previousblockhash: string;
57
+ job_id: string;
58
+ merkle: string[];
59
+ coinbaseaux: {
60
+ flags: string;
61
+ };
62
+ coinbasevalue: number;
63
+ coinbasetxn: object;
64
+ target: string;
65
+ mintime: number;
66
+ mutable: string[];
67
+ noncerange: string;
68
+ sigoplimit: number;
69
+ sizelimit: number;
70
+ curtime: number;
71
+ bits: string;
72
+ height: number;
73
+ };
74
+ }
75
+
76
+
77
+ export interface GetMiningInfo {
78
+ method: 'getmininginfo';
79
+ params: [];
80
+ response: {
81
+ blocks: number;
82
+ currentblocksize: number;
83
+ currentblocktx: number;
84
+ difficulty: number;
85
+ networkhashps: number;
86
+ miningblocksizelimit: number;
87
+ pooledtx: number;
88
+ chain: string;
89
+ warnings: string;
90
+ }
91
+ }
92
+
93
+ export interface GetNetworkHashps {
94
+ method: 'getnetworkhashps';
95
+ params: [
96
+ nblocks?: number,
97
+ height?: number
98
+ ];
99
+ response: number
100
+ }
101
+
102
+ export interface PrioritiseTransaction {
103
+ method: 'prioritisetransaction';
104
+ params: [
105
+ txid: string,
106
+ fee_delta: number
107
+ ];
108
+ response: true
109
+ }
110
+
111
+ export interface SubmitBlock {
112
+ method: 'submitblock';
113
+ params: [
114
+ hexdata: string,
115
+ dummy?: string
116
+ ];
117
+ response: {}
118
+ }
119
+
120
+ export interface SubmitBlockLight {
121
+ method: 'submitblocklight';
122
+ params: [
123
+ hexdata: string,
124
+ job_id: string
125
+ ];
126
+ response: {}
127
+ }
128
+
129
+ export interface SubmitHeader {
130
+ method: 'submitheader';
131
+ params: [
132
+ hexdata: string
133
+ ];
134
+ response: {}
135
+ }
136
+
137
+ export interface ValidateBlockTemplate {
138
+ method: 'validateblocktemplate';
139
+ params: [
140
+ hexdata: string
141
+ ];
142
+ response: true
143
+ }
@@ -0,0 +1,195 @@
1
+ /* --- Network Commands --- */
2
+ // progress 14/14
3
+
4
+ export interface AddNode {
5
+ method: 'addnode';
6
+ params: [
7
+ node: string,
8
+ command: 'add' | 'remove' | 'onetry'
9
+ ];
10
+ response: null;
11
+ }
12
+
13
+ export interface ClearBanned {
14
+ method: 'clearbanned';
15
+ params: [
16
+ manual?: boolean,
17
+ automatic?: boolean
18
+ ];
19
+ response: null;
20
+ }
21
+
22
+ export interface DisconnectNode {
23
+ method: 'disconnectnode';
24
+ params: [
25
+ address?: string,
26
+ nodeid?: number
27
+ ];
28
+ response: null;
29
+ }
30
+
31
+ export interface GetAddedNodeInfo {
32
+ method: 'getaddednodeinfo';
33
+ params: [
34
+ node?: string
35
+ ];
36
+ response: {
37
+ addednode: string;
38
+ connected: boolean;
39
+ addresses?: {
40
+ address: string;
41
+ connected: string;
42
+ }[];
43
+ }[];
44
+ }
45
+
46
+ export interface GetConnectionCount {
47
+ method: 'getconnectioncount';
48
+ params: [];
49
+ response: number
50
+ }
51
+
52
+ export interface GetExcessiveBlock {
53
+ method: 'getexcessiveblock';
54
+ params: [];
55
+ response: number;
56
+ }
57
+
58
+ export interface GetNetTotals {
59
+ method: 'getnettotals';
60
+ params: [];
61
+ response: {
62
+ totalbytesrecv: number;
63
+ totalbytessent: number;
64
+ timemillis: number;
65
+ uploadtarget: {
66
+ timeframe: number;
67
+ target: number;
68
+ target_reached: boolean;
69
+ serve_historical_blocks: boolean;
70
+ bytes_left_in_cycle: number;
71
+ time_left_in_cycle: number;
72
+ };
73
+ };
74
+ }
75
+
76
+ export interface GetNetworkInfo {
77
+ method: 'getnetworkinfo';
78
+ params: [];
79
+ response: {
80
+ version: number;
81
+ subversion: string;
82
+ protocolversion: number;
83
+ localservices: string;
84
+ localrelay: boolean;
85
+ timeoffset: number;
86
+ connections: number;
87
+ networkactive: boolean;
88
+ networks: {
89
+ name: string;
90
+ limited: boolean;
91
+ reachable: boolean;
92
+ proxy: string;
93
+ proxy_randomize_credentials: boolean;
94
+ }[];
95
+ relayfee: number;
96
+ excessutxocharge: number;
97
+ localaddresses: {
98
+ address: string;
99
+ port: number;
100
+ score: number;
101
+ }[]
102
+ warnings: string;
103
+ }
104
+ }
105
+
106
+ export interface GetNodeAddresses {
107
+ method: 'getnodeaddresses';
108
+ params: [
109
+ count?: number
110
+ ];
111
+ response: {
112
+ time: number;
113
+ services: number;
114
+ address: string;
115
+ port: number;
116
+ }[];
117
+ }
118
+
119
+ export interface GetPeerInfo {
120
+ method: 'getpeerinfo';
121
+ params: [];
122
+ response: {
123
+ id: number;
124
+ addr: string;
125
+ addrbind: string;
126
+ addrlocal: string;
127
+ mapped_as: string;
128
+ services: string;
129
+ relaytxes: boolean;
130
+ lastsend: number;
131
+ lastrecv: number;
132
+ bytessent: number;
133
+ bytesrecv: number;
134
+ conntime: number;
135
+ timeoffset: number;
136
+ pingtime: number;
137
+ minping: number;
138
+ pingwait: number;
139
+ version: number;
140
+ subver: string;
141
+ inbound: boolean;
142
+ addnode: boolean;
143
+ startingheight: number;
144
+ banscore: number;
145
+ synced_headers: number;
146
+ synced_blocks: number;
147
+ inflight: number[];
148
+ addr_processed: number;
149
+ addr_rate_limited: number;
150
+ whitelisted: boolean;
151
+ minfeefilter: number;
152
+ bytessent_per_msg: {
153
+ [msg: string]: number;
154
+ };
155
+ bytesrecv_per_msg: {
156
+ [msg: string]: number;
157
+ };
158
+ }[];
159
+ }
160
+
161
+ export interface ListBanned {
162
+ method: 'listbanned';
163
+ params: [];
164
+ response: {
165
+ address: string;
166
+ banned_until: number;
167
+ ban_created: number;
168
+ ban_reason: string;
169
+ }[];
170
+ }
171
+
172
+ export interface Ping {
173
+ method: 'ping';
174
+ params: [];
175
+ response: null;
176
+ }
177
+
178
+ export interface SetBan {
179
+ method: 'setban';
180
+ params: [
181
+ subnet: string,
182
+ command: 'add' | 'remove',
183
+ bantime?: number,
184
+ absolute?: boolean
185
+ ];
186
+ response: null;
187
+ }
188
+
189
+ export interface SetNetworkActive {
190
+ method: 'setnetworkactive';
191
+ params: [
192
+ state: boolean
193
+ ];
194
+ response: null;
195
+ }