@tchain/tcabci-read-js-client 2.5.8 → 2.5.10
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.
- package/callback.d.ts +4 -0
- package/client.d.ts +12 -9
- package/client.js +107 -110
- package/package.json +12 -1
- package/websocketOptions.js +1 -1
- package/.editorconfig +0 -9
- package/.prettierrc +0 -16
- package/bytea.js +0 -15
- package/client_test.js +0 -404
- package/errors_test.js +0 -11
- package/eslint.config.js +0 -45
- package/websocketOptions_test.js +0 -134
- package/websocket_test.js +0 -556
package/callback.d.ts
ADDED
package/client.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { TXType } from './transaction'
|
|
2
|
+
import { SuccessCallback, ErrorCallback, CloseCallback, ListenCallback } from './callback'
|
|
2
3
|
|
|
3
4
|
declare class TCaBCIClient {
|
|
4
5
|
constructor(
|
|
@@ -7,15 +8,19 @@ declare class TCaBCIClient {
|
|
|
7
8
|
chainName: string,
|
|
8
9
|
chainVersion: string,
|
|
9
10
|
)
|
|
10
|
-
|
|
11
11
|
SetDebug(debug: boolean): TCaBCIClient
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
12
|
+
SetSuccessCallback(cb: SuccessCallback): TCaBCIClient
|
|
13
|
+
SetErrorCallback(cb: ErrorCallback): TCaBCIClient
|
|
14
|
+
SetCloseCallback(cb: CloseCallback): TCaBCIClient
|
|
15
|
+
SetListenCallback(cb: ListenCallback): TCaBCIClient
|
|
16
|
+
IsConnected(): boolean
|
|
17
|
+
IsSubscribed(): boolean
|
|
18
|
+
get SubscribeAddresses(): string[]
|
|
19
|
+
get SubscribedSignedData(): Record<string, string> | null
|
|
20
|
+
get Socket(): WebSocket
|
|
17
21
|
Start(): Awaited<TCaBCIClient>
|
|
18
|
-
Stop(): Awaited<TCaBCIClient>
|
|
22
|
+
Stop(code?: number): Awaited<TCaBCIClient>
|
|
23
|
+
Reconnect(code?: number): Awaited<TCaBCIClient>
|
|
19
24
|
Status(): {
|
|
20
25
|
chain_name: string
|
|
21
26
|
chain_version: string
|
|
@@ -105,8 +110,6 @@ declare class TCaBCIClient {
|
|
|
105
110
|
chainName?: string,
|
|
106
111
|
chainVersion?: string,
|
|
107
112
|
): Promise<{ data: Record<string, any> }>
|
|
108
|
-
Disconnect(code?: number): Awaited<TCaBCIClient>
|
|
109
|
-
Reconnect(code?: number): Awaited<TCaBCIClient>
|
|
110
113
|
}
|
|
111
114
|
|
|
112
115
|
export = TCaBCIClient
|
package/client.js
CHANGED
|
@@ -23,47 +23,51 @@ import { TWebSocket } from './websocket.js'
|
|
|
23
23
|
import { TX_TYPE_LIST } from './transaction.js'
|
|
24
24
|
|
|
25
25
|
/**
|
|
26
|
-
* @callback
|
|
26
|
+
* @callback SuccessCallback
|
|
27
27
|
* @param {Event} event
|
|
28
28
|
* @return void
|
|
29
29
|
*/
|
|
30
|
+
|
|
30
31
|
/**
|
|
31
|
-
* @callback
|
|
32
|
+
* @callback ErrorCallback
|
|
32
33
|
* @param {Event} event
|
|
33
34
|
* @return void
|
|
34
35
|
*/
|
|
36
|
+
|
|
35
37
|
/**
|
|
36
|
-
* @callback
|
|
38
|
+
* @callback CloseCallback
|
|
37
39
|
* @param {Event} event
|
|
38
40
|
* @return void
|
|
39
41
|
*/
|
|
42
|
+
|
|
40
43
|
/**
|
|
41
|
-
* @callback
|
|
44
|
+
* @callback ListenCallback
|
|
42
45
|
* @param {*} message
|
|
43
46
|
* @return void
|
|
44
47
|
*/
|
|
48
|
+
|
|
45
49
|
export default class TCaBCIClient {
|
|
46
50
|
_subscribed = false
|
|
47
51
|
_subscribedAddresses = []
|
|
48
|
-
|
|
52
|
+
_SubscribedSignedData = {}
|
|
49
53
|
_connected = false
|
|
50
54
|
_chainName = 'transferchain'
|
|
51
55
|
_chainVersion = 'v1'
|
|
52
|
-
_version = `v2.5.
|
|
56
|
+
_version = `v2.5.10`
|
|
53
57
|
/**
|
|
54
|
-
* @type {?
|
|
58
|
+
* @type {?SuccessCallback}
|
|
55
59
|
*/
|
|
56
60
|
_successCb = null
|
|
57
61
|
/**
|
|
58
|
-
* @type {?
|
|
62
|
+
* @type {?ErrorCallback}
|
|
59
63
|
*/
|
|
60
64
|
_errorCb = null
|
|
61
65
|
/**
|
|
62
|
-
* @type {?
|
|
66
|
+
* @type {?CloseCallback}
|
|
63
67
|
*/
|
|
64
68
|
_closeCb = null
|
|
65
69
|
/**
|
|
66
|
-
* @type {?
|
|
70
|
+
* @type {?ListenCallback}
|
|
67
71
|
*/
|
|
68
72
|
_listenCb = null
|
|
69
73
|
_wsLibrary = null
|
|
@@ -116,12 +120,8 @@ export default class TCaBCIClient {
|
|
|
116
120
|
return this
|
|
117
121
|
}
|
|
118
122
|
|
|
119
|
-
Socket() {
|
|
120
|
-
return this._ws
|
|
121
|
-
}
|
|
122
|
-
|
|
123
123
|
/**
|
|
124
|
-
* @param {
|
|
124
|
+
* @param {SuccessCallback} cb
|
|
125
125
|
* @return {TCaBCIClient}
|
|
126
126
|
*/
|
|
127
127
|
SetSuccessCallback(cb) {
|
|
@@ -131,7 +131,7 @@ export default class TCaBCIClient {
|
|
|
131
131
|
}
|
|
132
132
|
|
|
133
133
|
/**
|
|
134
|
-
* @param {
|
|
134
|
+
* @param {ErrorCallback} cb
|
|
135
135
|
* @return {TCaBCIClient}
|
|
136
136
|
*/
|
|
137
137
|
SetErrorCallback(cb) {
|
|
@@ -141,7 +141,7 @@ export default class TCaBCIClient {
|
|
|
141
141
|
}
|
|
142
142
|
|
|
143
143
|
/**
|
|
144
|
-
* @param {
|
|
144
|
+
* @param {CloseCallback} cb
|
|
145
145
|
* @return {TCaBCIClient}
|
|
146
146
|
*/
|
|
147
147
|
SetCloseCallback(cb) {
|
|
@@ -151,7 +151,7 @@ export default class TCaBCIClient {
|
|
|
151
151
|
}
|
|
152
152
|
|
|
153
153
|
/**
|
|
154
|
-
* @param {
|
|
154
|
+
* @param {ListenCallback} cb
|
|
155
155
|
* @return {TCaBCIClient}
|
|
156
156
|
*/
|
|
157
157
|
SetListenCallback(cb) {
|
|
@@ -160,21 +160,53 @@ export default class TCaBCIClient {
|
|
|
160
160
|
return this
|
|
161
161
|
}
|
|
162
162
|
|
|
163
|
+
IsConnected() {
|
|
164
|
+
return this._connected
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
IsSubscribed() {
|
|
168
|
+
return this._subscribed
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
get SubscribeAddresses() {
|
|
172
|
+
return this._subscribedAddresses
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
get SubscribedSignedData() {
|
|
176
|
+
return this._SubscribedSignedData
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
get Socket() {
|
|
180
|
+
return this._ws
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
async Reconnect(code = 1000) {
|
|
184
|
+
if (this.IsConnected()) {
|
|
185
|
+
await this._disconnect(code)
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
await this._connect()
|
|
189
|
+
|
|
190
|
+
return this
|
|
191
|
+
}
|
|
192
|
+
|
|
163
193
|
async Start() {
|
|
164
|
-
return this.
|
|
194
|
+
return this._connect()
|
|
165
195
|
}
|
|
166
196
|
|
|
167
197
|
/**
|
|
198
|
+
* @param {?number} code
|
|
168
199
|
* @return {Awaited<TCaBCIClient>}
|
|
169
200
|
* @throws {Error}
|
|
170
201
|
*/
|
|
171
|
-
async Stop() {
|
|
172
|
-
if (!this.
|
|
202
|
+
async Stop(code = 1000) {
|
|
203
|
+
if (!this.IsConnected()) {
|
|
173
204
|
throw new Error(NOT_CONNECTED)
|
|
174
205
|
}
|
|
175
|
-
|
|
176
|
-
this.
|
|
177
|
-
this.
|
|
206
|
+
|
|
207
|
+
await this._disconnect(code)
|
|
208
|
+
this._setConnected(false)
|
|
209
|
+
this._setSubscribed(false)
|
|
178
210
|
|
|
179
211
|
return this
|
|
180
212
|
}
|
|
@@ -214,35 +246,30 @@ export default class TCaBCIClient {
|
|
|
214
246
|
}
|
|
215
247
|
}
|
|
216
248
|
|
|
217
|
-
if (!this.
|
|
249
|
+
if (!this.IsConnected()) throw new Error(NOT_CONNECTED)
|
|
218
250
|
|
|
219
|
-
|
|
220
|
-
sdata =
|
|
251
|
+
const addrs = [],
|
|
252
|
+
sdata = signedData ?? this.SubscribedSignedData
|
|
221
253
|
|
|
222
|
-
addrs
|
|
223
|
-
sdata = signedData
|
|
254
|
+
addrs.push(...addresses)
|
|
224
255
|
|
|
225
|
-
if (this.
|
|
256
|
+
if (this.SubscribeAddresses.length > 0) {
|
|
226
257
|
let newAddress = []
|
|
227
258
|
|
|
228
259
|
for (let i = 0; i < addresses.length; i++) {
|
|
229
|
-
if (this.
|
|
260
|
+
if (this.SubscribeAddresses.indexOf(addresses[i]) === -1) {
|
|
230
261
|
newAddress.push(addresses[i])
|
|
231
262
|
}
|
|
232
263
|
}
|
|
233
|
-
addrs
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
if (this.getSubscribedSignedData().length > 0) {
|
|
237
|
-
sdata = this.getSubscribedSignedData()
|
|
264
|
+
addrs.push(...newAddress)
|
|
238
265
|
}
|
|
239
266
|
|
|
240
267
|
const message = new Message(true, SUBSCRIBEMessage, addrs, sdata, txTypes)
|
|
241
268
|
|
|
242
269
|
this._ws.send(message.ToJSON())
|
|
243
|
-
this.
|
|
244
|
-
.
|
|
245
|
-
.
|
|
270
|
+
this._setSubscribeAddresses(addrs, true)
|
|
271
|
+
._setSubscribeSignedData(signedData)
|
|
272
|
+
._setSubscribed(true)
|
|
246
273
|
|
|
247
274
|
return this
|
|
248
275
|
}
|
|
@@ -251,19 +278,15 @@ export default class TCaBCIClient {
|
|
|
251
278
|
* @return {TCaBCIClient}
|
|
252
279
|
*/
|
|
253
280
|
Unsubscribe() {
|
|
254
|
-
if (!this.
|
|
281
|
+
if (!this.IsSubscribed()) {
|
|
255
282
|
throw new Error(NOT_SUBSCRIBED)
|
|
256
283
|
}
|
|
257
284
|
this._ws.send(
|
|
258
|
-
new Message(
|
|
259
|
-
true,
|
|
260
|
-
UNSUBSCRIBEMessage,
|
|
261
|
-
this.getSubscribeAddresses(),
|
|
262
|
-
).ToJSON(),
|
|
285
|
+
new Message(true, UNSUBSCRIBEMessage, this.SubscribeAddresses).ToJSON(),
|
|
263
286
|
)
|
|
264
|
-
this.
|
|
265
|
-
this.
|
|
266
|
-
this.
|
|
287
|
+
this._setSubscribed(false)
|
|
288
|
+
this._setSubscribeAddresses([])
|
|
289
|
+
this._setSubscribeSignedData({})
|
|
267
290
|
|
|
268
291
|
return this
|
|
269
292
|
}
|
|
@@ -591,68 +614,43 @@ export default class TCaBCIClient {
|
|
|
591
614
|
})
|
|
592
615
|
}
|
|
593
616
|
|
|
594
|
-
|
|
595
|
-
* @param {?number} code
|
|
596
|
-
* @return {Promise<TCaBCIClient>}
|
|
597
|
-
*/
|
|
598
|
-
async Disconnect(code = 1000) {
|
|
599
|
-
if (this.getConnected()) {
|
|
600
|
-
await this._ws.disconnect(code)
|
|
601
|
-
|
|
602
|
-
this.setConnected(false)
|
|
603
|
-
this.setSubscribed(false)
|
|
604
|
-
}
|
|
605
|
-
|
|
606
|
-
return this
|
|
607
|
-
}
|
|
608
|
-
|
|
609
|
-
async Reconnect(code = 1000) {
|
|
610
|
-
if (this.getConnected()) {
|
|
611
|
-
await this.Disconnect(code)
|
|
612
|
-
}
|
|
613
|
-
|
|
614
|
-
await this.connect()
|
|
615
|
-
|
|
616
|
-
return this
|
|
617
|
-
}
|
|
618
|
-
|
|
619
|
-
callSuccessCallback(event) {
|
|
617
|
+
_callSuccessCallback(event) {
|
|
620
618
|
if (this._successCb) this._successCb(event)
|
|
621
619
|
}
|
|
622
620
|
|
|
623
|
-
|
|
621
|
+
_callErrorCallback(event) {
|
|
624
622
|
if (this._errorCb) this._errorCb(event)
|
|
625
623
|
}
|
|
626
624
|
|
|
627
|
-
|
|
625
|
+
_callCloseCallback(event) {
|
|
628
626
|
if (this._closeCb) this._closeCb(event)
|
|
629
627
|
}
|
|
630
628
|
|
|
631
|
-
|
|
629
|
+
_callListenCallback(message) {
|
|
632
630
|
if (this._listenCb) this._listenCb(message)
|
|
633
631
|
}
|
|
634
632
|
|
|
635
633
|
/**
|
|
636
634
|
* @return {Promise<TWebSocket>}
|
|
637
635
|
*/
|
|
638
|
-
async
|
|
639
|
-
if (this.
|
|
636
|
+
async _connect() {
|
|
637
|
+
if (this.IsConnected()) {
|
|
640
638
|
return Promise.reject(new Error(ALREADY_CONNECTED))
|
|
641
639
|
}
|
|
642
640
|
|
|
643
641
|
this._ws = new TWebSocket(this._options)
|
|
644
642
|
|
|
645
643
|
this._ws.addErrorListener((e) => {
|
|
646
|
-
this.
|
|
647
|
-
this.
|
|
648
|
-
this.
|
|
649
|
-
this.
|
|
650
|
-
this.
|
|
644
|
+
this._setConnected(false)
|
|
645
|
+
this._setSubscribed(false)
|
|
646
|
+
this._setSubscribeAddresses([], false)
|
|
647
|
+
this._setSubscribeSignedData({})
|
|
648
|
+
this._callErrorCallback(e)
|
|
651
649
|
})
|
|
652
650
|
|
|
653
651
|
this._ws.addOpenListener((e) => {
|
|
654
|
-
this.
|
|
655
|
-
this.
|
|
652
|
+
this._setConnected(true)
|
|
653
|
+
this._callSuccessCallback(e)
|
|
656
654
|
})
|
|
657
655
|
|
|
658
656
|
this._ws.addMessageListener((message) => {
|
|
@@ -660,44 +658,43 @@ export default class TCaBCIClient {
|
|
|
660
658
|
return { status: message.data }
|
|
661
659
|
}
|
|
662
660
|
|
|
663
|
-
this.
|
|
661
|
+
this._callListenCallback(
|
|
664
662
|
!isJSON(message.data) ? message.data : fromJSON(message.data),
|
|
665
663
|
)
|
|
666
664
|
})
|
|
667
665
|
|
|
668
666
|
this._ws.addCloseListener((e) => {
|
|
669
|
-
this.
|
|
670
|
-
this.
|
|
671
|
-
this.
|
|
672
|
-
this.
|
|
673
|
-
this.
|
|
667
|
+
this._setConnected(false)
|
|
668
|
+
this._setSubscribed(false)
|
|
669
|
+
this._setSubscribeAddresses([], false)
|
|
670
|
+
this._setSubscribeSignedData({})
|
|
671
|
+
this._callCloseCallback(e)
|
|
674
672
|
})
|
|
675
673
|
|
|
676
674
|
return this._ws.connect()
|
|
677
675
|
}
|
|
678
676
|
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
677
|
+
/**
|
|
678
|
+
* @param {?number} code
|
|
679
|
+
* @return {Promise<TCaBCIClient>}
|
|
680
|
+
*/
|
|
681
|
+
async _disconnect(code = 1000) {
|
|
682
|
+
if (this.IsConnected()) {
|
|
683
|
+
await this._ws.disconnect(code)
|
|
682
684
|
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
685
|
+
this._setConnected(false)
|
|
686
|
+
this._setSubscribed(false)
|
|
687
|
+
}
|
|
686
688
|
|
|
687
|
-
|
|
688
|
-
return this._subscribed
|
|
689
|
+
return this
|
|
689
690
|
}
|
|
690
691
|
|
|
691
|
-
|
|
692
|
+
_setSubscribed(value) {
|
|
692
693
|
this._subscribed = value
|
|
693
694
|
}
|
|
694
695
|
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
}
|
|
698
|
-
|
|
699
|
-
getSubscribedSignedData() {
|
|
700
|
-
return this._subscribedSignedData
|
|
696
|
+
_setConnected(value) {
|
|
697
|
+
this._connected = value
|
|
701
698
|
}
|
|
702
699
|
|
|
703
700
|
/**
|
|
@@ -705,7 +702,7 @@ export default class TCaBCIClient {
|
|
|
705
702
|
* @param {?boolean} push
|
|
706
703
|
* @return {TCaBCIClient}
|
|
707
704
|
*/
|
|
708
|
-
|
|
705
|
+
_setSubscribeAddresses(addresses, push = false) {
|
|
709
706
|
if (push) {
|
|
710
707
|
this._subscribedAddresses.push(...addresses)
|
|
711
708
|
|
|
@@ -720,8 +717,8 @@ export default class TCaBCIClient {
|
|
|
720
717
|
* @param {Object} signedData
|
|
721
718
|
* @return {TCaBCIClient}
|
|
722
719
|
*/
|
|
723
|
-
|
|
724
|
-
this.
|
|
720
|
+
_setSubscribeSignedData(signedData) {
|
|
721
|
+
this._SubscribedSignedData = signedData
|
|
725
722
|
|
|
726
723
|
return this
|
|
727
724
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tchain/tcabci-read-js-client",
|
|
3
|
-
"version": "2.5.
|
|
3
|
+
"version": "2.5.10",
|
|
4
4
|
"description": "TransferChain Fastest Read Network WebSocket Client",
|
|
5
5
|
"main": "client.js",
|
|
6
6
|
"type": "module",
|
|
@@ -8,6 +8,17 @@
|
|
|
8
8
|
"type": "git",
|
|
9
9
|
"url": "git+https://github.com/TransferChain/tcabci-read-js-client.git"
|
|
10
10
|
},
|
|
11
|
+
"files": [
|
|
12
|
+
"*.d.ts",
|
|
13
|
+
"constants.js",
|
|
14
|
+
"client.js",
|
|
15
|
+
"errors.js",
|
|
16
|
+
"message.js",
|
|
17
|
+
"transaction.js",
|
|
18
|
+
"util.js",
|
|
19
|
+
"websocket.js",
|
|
20
|
+
"websocketOptions.js"
|
|
21
|
+
],
|
|
11
22
|
"author": "TransferChain A.G <info@transferchain.io>",
|
|
12
23
|
"license": "Apache-2.0",
|
|
13
24
|
"bugs": {
|
package/websocketOptions.js
CHANGED
package/.editorconfig
DELETED
package/.prettierrc
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"printWidth": 80,
|
|
3
|
-
"tabWidth": 2,
|
|
4
|
-
"useTabs": false,
|
|
5
|
-
"singleQuote": true,
|
|
6
|
-
"endOfLine": "lf",
|
|
7
|
-
"trailingComma": "all",
|
|
8
|
-
"semi": false,
|
|
9
|
-
"bracketSameLine": false,
|
|
10
|
-
"bracketSpacing": true,
|
|
11
|
-
"proseWrap": "preserve",
|
|
12
|
-
"arrowParens": "always",
|
|
13
|
-
"htmlWhitespaceSensitivity": "ignore",
|
|
14
|
-
"vueIndentScriptAndStyle": false,
|
|
15
|
-
"singleAttributePerLine": false
|
|
16
|
-
}
|
package/bytea.js
DELETED