quantum-coin-js-sdk 1.0.13 → 1.0.14

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/README.md CHANGED
@@ -5,7 +5,7 @@ Quantum Coin JS SDK provides functionality to interact with the Quantum Coin Blo
5
5
 
6
6
  **Example**
7
7
  ```js
8
- Installation:
9
8
 
10
9
 
10
+ Requires Node.js version v20.18.1 or higher
11
11
 
12
12
 
13
13
  ```
14
14
 
15
15
  * [quantum-coin-js-sdk](#module_quantum-coin-js-sdk)
@@ -28,6 +28,7 @@ Installation:
28
28
  * [.blockDetails](#module_quantum-coin-js-sdk..LatestBlockDetailsResult+blockDetails) : <code>BlockDetails</code>
29
29
  * [.response](#module_quantum-coin-js-sdk..LatestBlockDetailsResult+response) : <code>Object</code>
30
30
  * [.requestId](#module_quantum-coin-js-sdk..LatestBlockDetailsResult+requestId) : <code>string</code>
31
+ * [.err](#module_quantum-coin-js-sdk..LatestBlockDetailsResult+err) : <code>error</code>
31
32
  * [~AccountDetails](#module_quantum-coin-js-sdk..AccountDetails)
32
33
  * [.address](#module_quantum-coin-js-sdk..AccountDetails+address) : <code>string</code>
33
34
  * [.balance](#module_quantum-coin-js-sdk..AccountDetails+balance) : <code>string</code>
@@ -38,6 +39,7 @@ Installation:
38
39
  * [.accountDetails](#module_quantum-coin-js-sdk..AccountDetailsResult+accountDetails) : <code>AccountDetails</code>
39
40
  * [.response](#module_quantum-coin-js-sdk..AccountDetailsResult+response) : <code>Object</code>
40
41
  * [.requestId](#module_quantum-coin-js-sdk..AccountDetailsResult+requestId) : <code>string</code>
42
+ * [.err](#module_quantum-coin-js-sdk..AccountDetailsResult+err) : <code>error</code>
41
43
  * [~SignResult](#module_quantum-coin-js-sdk..SignResult)
42
44
  * [.resultCode](#module_quantum-coin-js-sdk..SignResult+resultCode) : <code>number</code>
43
45
  * [.txnHash](#module_quantum-coin-js-sdk..SignResult+txnHash) : <code>string</code>
@@ -47,6 +49,7 @@ Installation:
47
49
  * [.txnHash](#module_quantum-coin-js-sdk..SendResult+txnHash) : <code>string</code>
48
50
  * [.response](#module_quantum-coin-js-sdk..SendResult+response) : <code>Object</code>
49
51
  * [.requestId](#module_quantum-coin-js-sdk..SendResult+requestId) : <code>string</code>
52
+ * [.err](#module_quantum-coin-js-sdk..SendResult+err) : <code>error</code>
50
53
  * [~TransactionReceipt](#module_quantum-coin-js-sdk..TransactionReceipt)
51
54
  * [.cumulativeGasUsed](#module_quantum-coin-js-sdk..TransactionReceipt+cumulativeGasUsed) : <code>string</code>
52
55
  * [.effectiveGasPrice](#module_quantum-coin-js-sdk..TransactionReceipt+effectiveGasPrice) : <code>string</code>
@@ -71,6 +74,7 @@ Installation:
71
74
  * [.transactionDetails](#module_quantum-coin-js-sdk..TransactionDetailsResult+transactionDetails) : <code>TransactionDetails</code>
72
75
  * [.response](#module_quantum-coin-js-sdk..TransactionDetailsResult+response) : <code>Object</code>
73
76
  * [.requestId](#module_quantum-coin-js-sdk..TransactionDetailsResult+requestId) : <code>string</code>
77
+ * [.err](#module_quantum-coin-js-sdk..TransactionDetailsResult+err) : <code>error</code>
74
78
  * [~AccountTransactionCompact](#module_quantum-coin-js-sdk..AccountTransactionCompact)
75
79
  * [.blockNumber](#module_quantum-coin-js-sdk..AccountTransactionCompact+blockNumber) : <code>number</code>
76
80
  * [.from](#module_quantum-coin-js-sdk..AccountTransactionCompact+from) : <code>string</code>
@@ -86,6 +90,7 @@ Installation:
86
90
  * [.listAccountTransactionsResponse](#module_quantum-coin-js-sdk..AccountTransactionsResult+listAccountTransactionsResponse) : <code>ListAccountTransactionsResponse</code>
87
91
  * [.response](#module_quantum-coin-js-sdk..AccountTransactionsResult+response) : <code>Object</code>
88
92
  * [.requestId](#module_quantum-coin-js-sdk..AccountTransactionsResult+requestId) : <code>string</code>
93
+ * [.err](#module_quantum-coin-js-sdk..AccountTransactionsResult+err) : <code>error</code>
89
94
  * [~initialize(clientConfig)](#module_quantum-coin-js-sdk..initialize) ⇒ <code>Promise.&lt;boolean&gt;</code>
90
95
  * [~isAddressValid(address)](#module_quantum-coin-js-sdk..isAddressValid) ⇒ <code>boolean</code>
91
96
  * [~newWallet()](#module_quantum-coin-js-sdk..newWallet) ⇒ <code>Wallet</code>
@@ -239,6 +244,7 @@ This class represents a result from invoking the getLatestBlock function.
239
244
  * [.blockDetails](#module_quantum-coin-js-sdk..LatestBlockDetailsResult+blockDetails) : <code>BlockDetails</code>
240
245
  * [.response](#module_quantum-coin-js-sdk..LatestBlockDetailsResult+response) : <code>Object</code>
241
246
  * [.requestId](#module_quantum-coin-js-sdk..LatestBlockDetailsResult+requestId) : <code>string</code>
247
+ * [.err](#module_quantum-coin-js-sdk..LatestBlockDetailsResult+err) : <code>error</code>
242
248
 
243
249
  <a name="module_quantum-coin-js-sdk..LatestBlockDetailsResult+resultCode"></a>
244
250
 
@@ -266,6 +272,13 @@ An object of representing the raw Response returned by the service. For details,
266
272
  #### latestBlockDetailsResult.requestId : <code>string</code>
267
273
  An unique id to represent the request. This can be null if request failed before it could be sent.
268
274
 
275
+ **Kind**: instance property of [<code>LatestBlockDetailsResult</code>](#module_quantum-coin-js-sdk..LatestBlockDetailsResult)
276
+ **Access**: public
277
+ <a name="module_quantum-coin-js-sdk..LatestBlockDetailsResult+err"></a>
278
+
279
+ #### latestBlockDetailsResult.err : <code>error</code>
280
+ An error object if the operation resulted in an error and there was no response. This property is defined only if the resultCode is -10000.
281
+
269
282
  **Kind**: instance property of [<code>LatestBlockDetailsResult</code>](#module_quantum-coin-js-sdk..LatestBlockDetailsResult)
270
283
  **Access**: public
271
284
  <a name="module_quantum-coin-js-sdk..AccountDetails"></a>
@@ -323,6 +336,7 @@ This class represents a result from invoking the getAccountDetails function.
323
336
  * [.accountDetails](#module_quantum-coin-js-sdk..AccountDetailsResult+accountDetails) : <code>AccountDetails</code>
324
337
  * [.response](#module_quantum-coin-js-sdk..AccountDetailsResult+response) : <code>Object</code>
325
338
  * [.requestId](#module_quantum-coin-js-sdk..AccountDetailsResult+requestId) : <code>string</code>
339
+ * [.err](#module_quantum-coin-js-sdk..AccountDetailsResult+err) : <code>error</code>
326
340
 
327
341
  <a name="module_quantum-coin-js-sdk..AccountDetailsResult+resultCode"></a>
328
342
 
@@ -350,6 +364,13 @@ An object of representing the raw Response returned by the service. For details,
350
364
  #### accountDetailsResult.requestId : <code>string</code>
351
365
  An unique id to represent the request. This can be null if request failed before it could be sent.
352
366
 
367
+ **Kind**: instance property of [<code>AccountDetailsResult</code>](#module_quantum-coin-js-sdk..AccountDetailsResult)
368
+ **Access**: public
369
+ <a name="module_quantum-coin-js-sdk..AccountDetailsResult+err"></a>
370
+
371
+ #### accountDetailsResult.err : <code>error</code>
372
+ An error object if the operation resulted in an error and there was no response. This property is defined only if the resultCode is -10000.
373
+
353
374
  **Kind**: instance property of [<code>AccountDetailsResult</code>](#module_quantum-coin-js-sdk..AccountDetailsResult)
354
375
  **Access**: public
355
376
  <a name="module_quantum-coin-js-sdk..SignResult"></a>
@@ -399,6 +420,7 @@ This class represents a result from invoking the sendCoins function.
399
420
  * [.txnHash](#module_quantum-coin-js-sdk..SendResult+txnHash) : <code>string</code>
400
421
  * [.response](#module_quantum-coin-js-sdk..SendResult+response) : <code>Object</code>
401
422
  * [.requestId](#module_quantum-coin-js-sdk..SendResult+requestId) : <code>string</code>
423
+ * [.err](#module_quantum-coin-js-sdk..SendResult+err) : <code>error</code>
402
424
 
403
425
  <a name="module_quantum-coin-js-sdk..SendResult+resultCode"></a>
404
426
 
@@ -426,6 +448,13 @@ An object of representing the raw Response returned by the service. For details,
426
448
  #### sendResult.requestId : <code>string</code>
427
449
  An unique id to represent the request. This can be null if request failed before it could be sent.
428
450
 
451
+ **Kind**: instance property of [<code>SendResult</code>](#module_quantum-coin-js-sdk..SendResult)
452
+ **Access**: public
453
+ <a name="module_quantum-coin-js-sdk..SendResult+err"></a>
454
+
455
+ #### sendResult.err : <code>error</code>
456
+ An error object if the operation resulted in an error and there was no response. This property is defined only if the resultCode is -10000.
457
+
429
458
  **Kind**: instance property of [<code>SendResult</code>](#module_quantum-coin-js-sdk..SendResult)
430
459
  **Access**: public
431
460
  <a name="module_quantum-coin-js-sdk..TransactionReceipt"></a>
@@ -597,6 +626,7 @@ This class represents a result from invoking the getTransactionDetails function.
597
626
  * [.transactionDetails](#module_quantum-coin-js-sdk..TransactionDetailsResult+transactionDetails) : <code>TransactionDetails</code>
598
627
  * [.response](#module_quantum-coin-js-sdk..TransactionDetailsResult+response) : <code>Object</code>
599
628
  * [.requestId](#module_quantum-coin-js-sdk..TransactionDetailsResult+requestId) : <code>string</code>
629
+ * [.err](#module_quantum-coin-js-sdk..TransactionDetailsResult+err) : <code>error</code>
600
630
 
601
631
  <a name="module_quantum-coin-js-sdk..TransactionDetailsResult+resultCode"></a>
602
632
 
@@ -624,6 +654,13 @@ An object of representing the raw Response returned by the service. For details,
624
654
  #### transactionDetailsResult.requestId : <code>string</code>
625
655
  An unique id to represent the request. This can be null if request failed before it could be sent.
626
656
 
657
+ **Kind**: instance property of [<code>TransactionDetailsResult</code>](#module_quantum-coin-js-sdk..TransactionDetailsResult)
658
+ **Access**: public
659
+ <a name="module_quantum-coin-js-sdk..TransactionDetailsResult+err"></a>
660
+
661
+ #### transactionDetailsResult.err : <code>error</code>
662
+ An error object if the operation resulted in an error and there was no response. This property is defined only if the resultCode is -10000.
663
+
627
664
  **Kind**: instance property of [<code>TransactionDetailsResult</code>](#module_quantum-coin-js-sdk..TransactionDetailsResult)
628
665
  **Access**: public
629
666
  <a name="module_quantum-coin-js-sdk..AccountTransactionCompact"></a>
@@ -723,6 +760,7 @@ This class represents a result from invoking the listAccountTransactionDetails f
723
760
  * [.listAccountTransactionsResponse](#module_quantum-coin-js-sdk..AccountTransactionsResult+listAccountTransactionsResponse) : <code>ListAccountTransactionsResponse</code>
724
761
  * [.response](#module_quantum-coin-js-sdk..AccountTransactionsResult+response) : <code>Object</code>
725
762
  * [.requestId](#module_quantum-coin-js-sdk..AccountTransactionsResult+requestId) : <code>string</code>
763
+ * [.err](#module_quantum-coin-js-sdk..AccountTransactionsResult+err) : <code>error</code>
726
764
 
727
765
  <a name="module_quantum-coin-js-sdk..AccountTransactionsResult+resultCode"></a>
728
766
 
@@ -750,6 +788,13 @@ An object of representing the raw Response returned by the service. For details,
750
788
  #### accountTransactionsResult.requestId : <code>string</code>
751
789
  An unique id to represent the request. This can be null if request failed before it could be sent.
752
790
 
791
+ **Kind**: instance property of [<code>AccountTransactionsResult</code>](#module_quantum-coin-js-sdk..AccountTransactionsResult)
792
+ **Access**: public
793
+ <a name="module_quantum-coin-js-sdk..AccountTransactionsResult+err"></a>
794
+
795
+ #### accountTransactionsResult.err : <code>error</code>
796
+ An error object if the operation resulted in an error and there was no response. This property is defined only if the resultCode is -10000.
797
+
753
798
  **Kind**: instance property of [<code>AccountTransactionsResult</code>](#module_quantum-coin-js-sdk..AccountTransactionsResult)
754
799
  **Access**: public
755
800
  <a name="module_quantum-coin-js-sdk..initialize"></a>
@@ -878,7 +923,7 @@ The listAccountTransactions function returns a list of transactions for a specif
878
923
  <a name="module_quantum-coin-js-sdk..signSendCoinTransaction"></a>
879
924
 
880
925
  ### quantum-coin-js-sdk~signSendCoinTransaction(wallet, toAddress, coins, nonce) ⇒ <code>SignResult</code>
881
- The signSendCoinTransaction function returns a signed transaction.
926
+ The signSendCoinTransaction function returns a signed transaction.
882
927
 
883
928
  **Kind**: inner method of [<code>quantum-coin-js-sdk</code>](#module_quantum-coin-js-sdk)
884
929
  **Returns**: <code>SignResult</code> - Returns a promise of type SignResult.
@@ -893,7 +938,7 @@ The signSendCoinTransaction function returns a signed transaction.
893
938
  <a name="module_quantum-coin-js-sdk..sendCoins"></a>
894
939
 
895
940
  ### quantum-coin-js-sdk~sendCoins(wallet, toAddress, coins, nonce) ⇒ <code>Promise.&lt;SendResult&gt;</code>
896
- The sendCoins function posts a send-coin transaction to the blockchain.
941
+ The sendCoins function posts a send-coin transaction to the blockchain.
897
942
 
898
943
  **Kind**: inner method of [<code>quantum-coin-js-sdk</code>](#module_quantum-coin-js-sdk)
899
944
  **Returns**: <code>Promise.&lt;SendResult&gt;</code> - Returns a promise of type SendResult.
@@ -117,7 +117,7 @@ qcsdk.initialize(clientConfigVal).then((initResult) => {
117
117
 
118
118
  //Get the latest block details
119
119
  console.log("getLatestBlockDetails");
120
- qcsdk.getLatestBlockDetails(address).then((latestBlockDetailsResult) => {
120
+ qcsdk.getLatestBlockDetails().then((latestBlockDetailsResult) => {
121
121
  if (latestBlockDetailsResult === null) {
122
122
  console.error(" getLatestBlockDetails failed : latestBlockDetailsResult is null");
123
123
  return;
@@ -253,7 +253,8 @@ qcsdk.initialize(clientConfigVal).then((initResult) => {
253
253
  }
254
254
  });
255
255
 
256
- //Offline sign a transaction from existing wallet. This is typically called from an offline device hosting a cold storage wallet
256
+ //Offline sign a transaction from existing wallet. This is typically called from an offline device hosting a cold storage wallet.
257
+ //Another usecase is to first store the signed transaction in a database and then later submit it using the postTransaction function.
257
258
  let walletJsonExample = '{"address":"0xAB035828c5A9d240bB97c6136E4299150829c8dEa12908E85351e9dF6C379BB7","privateKey":"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","publicKey":"JEZUcaBrekkaFJIwX1H6/K6N+WNj3LOx8TVp5lWwgmb4qWncGvmGR762gNZFjp/xuTDjlC6drc4mG4+maUoqn8rGRr36EBvc8xxyRn10xklfxWDKNWf8pBcPvnLYy8H5SeA0LCsVJQemSun8WDYvk4fTFOglPvUuf2JvIYc1fBynVnGIuNI1wZ4I+7H/iSIPtsodSsBz3o79eLL2KKsiKHumU8cIx0iEYh3pBZqcQHe3oTywDHbA+sIGwpiqsw3MmTtIgELU2TNuYIMzIPsEzdEwBlh+oBZzDU0NkTe8Ll9MHB73baIAbzd4sSgLJd7yPCJOV0K2IiJygtZ5fYyGKFFt4OX4+WwO0oCihyHjigD8J3+XBZlCxzYi4VO3J/QGxf9+ITVKkwnoHhqXaw7bp3QhyFcfQLZXXOZ9e8sLGoBEQ/VU1CHrpe7VMuUA4BTO5/Ccv538PttQVxCGHpkNFNGk0Z8oZDRN7/genNi2QIM5uM07i0EsvOiw+iSJH+x615E+Ff8kyMxUA2zrDtyVVzbyOQyb8IkKxAI9RNqE4kpLCYaKCptPSueuUZX9JzI1aK4RM88zYIdJiquqdjgzlVAxfvHne9LCJp+NUECp0nuq0D6IJIg1oaYu7nXOVrImAm1XGMSQXxzdp9FbNkD4Hzxlm0ih/zbIw8pVI4RqtJrNf6Qeqbf6jeRvfzq9zUwm9mfeWZmLnnPyAG0XkJPKYGMAGbbWTL2uxm2zFSoSDR0zNLENi6xwaq5f8eQa+xYXF5rYxAchr83SHC6KUN+MX+IpLaRXjVxR7y6G+PUpVPaitUpIvLiHXzPdqTCQ7+xHkgcMo10CSGJjB+4HdEY3a7HPe/vqwFlPmRnr7CxXMHhLepmg71u1seI4fV69fHqsnfeKmdzL8XiB+djmUIZD/EXgoAx2rWhFt4a/csS/+w7owsE+QpWyYaDQidll7PDNuiYl8DyftuBUbDZ7BVwGb6vYGs7r8h6/iALRBoVdqGzb05OaFkZwUoAQBGBNKJgPRkfU6DNRpH4XIpcFgutE4aMWwk6sDpAri90fNgSgubFvZWPrztCTgQOgNdhbUlP2+jKC184Jsc3Sz62j+dGNk2muC/H0frCEGUYJetU2LfJ7mPI9gWbYWzFhXFWv2L4qOU6butU6X4hMDKScdcdPMniM1amn6JdF4rWTXNr4EkvXMh3NxFh60KHRFINMUljNtSsywg7+wVBYXHcShzR7ZnpF591QCwyJI5zuz/Fh9T7ucNsWWUIM9qeEeSu1wB/ZlyL7hQR2mKv9Axv1m4bPQsVzkldaIhVhToFr3NYANSVOGrYPwp0xtwZ1HeUQwD/Pj29uUXqb2acU80JqpsNtw5Ir1EtinKXpJ3lQec6jn+p2nFk3MlNPKw90cLRHg6QmllYVP4O+4ekNnvAVgNNs29Otf1Rh+3qfAKCSZdFged3fXgvTFigQD5tE+AFg9GNIkfnrZfq8G29OWKvbOlqNmogKOHQSHpcUODPiv/DwpbA9O04hCHoCIINZ0b8PxZNXaC/6+e2B6AkBMCnl9TZic4bNo+vs63ydTiuvJMSpWkbt2lnrJ7iKpiSAJ17ZBsXyZQCZ1+Zwe+HEBrA0hW02xVqy+dm3D0d1fnF5D+LdaUrH6UgaUy1bYI4KVq+LTOk2dC4nKkhVlYdG2JLtu16Olq/mpbLY/WeS3svKchXo69oq4lTogVxmc5DCl2gMHqVdK+v/4A7ObhCMftGKSD9BxXurBIhP5CQlYsEVO1tOagm0p7DcAI1O5QeKOCXgL1IrwNuW5gkuRM1MUyvKwnIl8FDBOVvzZRKfBSwAum4CEn6T+ja064ldZDigVACIWl9P9m9zmLXblWcZCi9e8ym+dg=="}';
258
259
  let walletExample = qcsdk.deserializeWallet(walletJsonExample);
259
260
 
package/index.js CHANGED
@@ -6,6 +6,9 @@
6
6
  * @description Quantum Coin JS SDK provides functionality to interact with the Quantum Coin Blockchain using the Relay APIs.
7
7
  * {@link https://github.com/quantumcoinproject/quantum-coin-js-sdk/tree/main/example|Example Project}
8
8
  * @example
9
+ *
10
+ * Requires Node.js version v20.18.1 or higher
11
+ *
9
12
  * Installation:
10
13
  * npm install quantum-coin-js-sdk --save
11
14
  *
@@ -152,7 +155,7 @@ class BlockDetails {
152
155
  * @classdesc This class represents a result from invoking the getLatestBlock function.
153
156
  */
154
157
  class LatestBlockDetailsResult {
155
- constructor(resultCode, blockDetails, response, requestId) {
158
+ constructor(resultCode, blockDetails, response, requestId, err) {
156
159
  /**
157
160
  * Represents the result of the operation. A value of 0 represents that the operation succeeded. Any other value indicates the operation failed. See the result code section for more details.
158
161
  * @type {number}
@@ -180,6 +183,13 @@ class LatestBlockDetailsResult {
180
183
  * @public
181
184
  */
182
185
  this.requestId = requestId;
186
+
187
+ /**
188
+ * An error object if the operation resulted in an error and there was no response. This property is defined only if the resultCode is -10000.
189
+ * @type {error}
190
+ * @public
191
+ */
192
+ this.err = err;
183
193
  }
184
194
  }
185
195
 
@@ -228,7 +238,7 @@ class AccountDetails {
228
238
  * @classdesc This class represents a result from invoking the getAccountDetails function.
229
239
  */
230
240
  class AccountDetailsResult {
231
- constructor(resultCode, accountDetails, response, requestId) {
241
+ constructor(resultCode, accountDetails, response, requestId, err) {
232
242
  /**
233
243
  * Represents the result of the operation. A value of 0 represents that the operation succeeded. Any other value indicates the operation failed. See the result code section for more details.
234
244
  * @type {number}
@@ -256,6 +266,13 @@ class AccountDetailsResult {
256
266
  * @public
257
267
  */
258
268
  this.requestId = requestId;
269
+
270
+ /**
271
+ * An error object if the operation resulted in an error and there was no response. This property is defined only if the resultCode is -10000.
272
+ * @type {error}
273
+ * @public
274
+ */
275
+ this.err = err;
259
276
  }
260
277
  }
261
278
 
@@ -299,7 +316,7 @@ class SignResult {
299
316
  * @classdesc This class represents a result from invoking the sendCoins function.
300
317
  */
301
318
  class SendResult {
302
- constructor(resultCode, txnHash, response, requestId) {
319
+ constructor(resultCode, txnHash, response, requestId, err) {
303
320
  /**
304
321
  * Represents the result of the operation. A value of 0 represents that the operation succeeded. Any other value indicates the operation failed. See the result code section for more details.
305
322
  * @type {number}
@@ -327,6 +344,13 @@ class SendResult {
327
344
  * @public
328
345
  */
329
346
  this.requestId = requestId;
347
+
348
+ /**
349
+ * An error object if the operation resulted in an error and there was no response. This property is defined only if the resultCode is -10000.
350
+ * @type {error}
351
+ * @public
352
+ */
353
+ this.err = err;
330
354
  }
331
355
  }
332
356
 
@@ -478,7 +502,7 @@ class TransactionDetails {
478
502
  * @classdesc This class represents a result from invoking the getTransactionDetails function. If transactions get discarded by the blockchain, for reasons such as due to lower than minimum gas fees or invalid nonce, the resultCode will always contain a non-zero value (failure).
479
503
  */
480
504
  class TransactionDetailsResult {
481
- constructor(resultCode, transactionDetails, response, requestId) {
505
+ constructor(resultCode, transactionDetails, response, requestId, err) {
482
506
  /**
483
507
  * Represents the result of the operation. A value of 0 represents that the operation succeeded. Any other value indicates the operation failed. See the result code section for more details.
484
508
  * @type {number}
@@ -507,6 +531,13 @@ class TransactionDetailsResult {
507
531
  * @public
508
532
  */
509
533
  this.requestId = requestId;
534
+
535
+ /**
536
+ * An error object if the operation resulted in an error and there was no response. This property is defined only if the resultCode is -10000.
537
+ * @type {error}
538
+ * @public
539
+ */
540
+ this.err = err;
510
541
  }
511
542
  }
512
543
 
@@ -595,7 +626,7 @@ class ListAccountTransactionsResponse {
595
626
  * @classdesc This class represents a result from invoking the listAccountTransactionDetails function.
596
627
  */
597
628
  class AccountTransactionsResult {
598
- constructor(resultCode, listAccountTransactionsResponse, response, requestId) {
629
+ constructor(resultCode, listAccountTransactionsResponse, response, requestId, err) {
599
630
  /**
600
631
  * Represents the result of the operation. A value of 0 represents that the operation succeeded. Any other value indicates the operation failed. See the result code section for more details.
601
632
  * @type {number}
@@ -623,6 +654,13 @@ class AccountTransactionsResult {
623
654
  * @public
624
655
  */
625
656
  this.requestId = requestId;
657
+
658
+ /**
659
+ * An error object if the operation resulted in an error and there was no response. This property is defined only if the resultCode is -10000.
660
+ * @type {error}
661
+ * @public
662
+ */
663
+ this.err = err;
626
664
  }
627
665
  }
628
666
 
@@ -902,21 +940,25 @@ async function postTransaction(txnData) {
902
940
 
903
941
  let txnDataJson = JSON.stringify({ txnData: txnData });
904
942
 
905
- const response = await fetch(url, {
906
- method: 'POST',
907
- headers: reqHeaders,
908
- body: txnDataJson
909
- });
943
+ try {
944
+ const response = await fetch(url, {
945
+ method: 'POST',
946
+ headers: reqHeaders,
947
+ body: txnDataJson
948
+ });
910
949
 
911
- if (response == null) {
912
- return new SendResult(-601, null, null, requestId);
913
- }
950
+ if (response == null) {
951
+ return new SendResult(-601, null, null, requestId);
952
+ }
914
953
 
915
- if (response.status == 200 || response.status == 204) {
916
- return new SendResult(0, null, response, requestId);
917
- }
954
+ if (response.status == 200 || response.status == 204) {
955
+ return new SendResult(0, null, response, requestId);
956
+ }
918
957
 
919
- return new SendResult(-602, null, response, requestId);
958
+ return new SendResult(-602, null, response, requestId);
959
+ } catch(error) {
960
+ return new SendResult(-10000, null, null, requestId, error);
961
+ }
920
962
  }
921
963
 
922
964
  /**
@@ -943,38 +985,42 @@ async function getLatestBlockDetails() {
943
985
 
944
986
  var url = config.readUrl + "/latestblock";
945
987
 
946
- const response = await fetch(url, {
947
- headers: reqHeaders,
948
- });
988
+ try {
989
+ const response = await fetch(url, {
990
+ headers: reqHeaders,
991
+ });
992
+
993
+ if (response == null) {
994
+ return new LatestBlockDetailsResult(-100, null, response, requestId);
995
+ }
996
+ if (response.status !== 200) {
997
+ return new LatestBlockDetailsResult(-101, null, response, requestId);
998
+ }
949
999
 
950
- if (response == null) {
951
- return new LatestBlockDetailsResult(-100, null, response, requestId);
952
- }
953
- if (response.status !== 200) {
954
- return new LatestBlockDetailsResult(-101, null, response, requestId);
955
- }
1000
+ const jsonObj = await response.json();
1001
+ if (jsonObj == null) {
1002
+ return new LatestBlockDetailsResult(-102, null, response, requestId);
1003
+ }
1004
+ const result = jsonObj.result;
956
1005
 
957
- const jsonObj = await response.json();
958
- if (jsonObj == null) {
959
- return new LatestBlockDetailsResult(-102, null, response, requestId);
960
- }
961
- const result = jsonObj.result;
1006
+ if (result == null) {
1007
+ return new LatestBlockDetailsResult(-103, null, response, requestId);
1008
+ }
962
1009
 
963
- if (result == null) {
964
- return new LatestBlockDetailsResult(-103, null, response, requestId);
965
- }
1010
+ if (result.blockNumber == null) {
1011
+ return new LatestBlockDetailsResult(-104, null, response, requestId);
1012
+ }
966
1013
 
967
- if (result.blockNumber == null) {
968
- return new LatestBlockDetailsResult(-104, null, response, requestId);
969
- }
1014
+ let blockNumber = parseInt(result.blockNumber);
1015
+ if (Number.isInteger(blockNumber) == false) {
1016
+ return new LatestBlockDetailsResult(-105, null, response, requestId);
1017
+ }
970
1018
 
971
- let blockNumber = parseInt(result.blockNumber);
972
- if (Number.isInteger(blockNumber) == false) {
973
- return new LatestBlockDetailsResult(-105, null, response, requestId);
1019
+ var blockDetails = new BlockDetails(blockNumber);
1020
+ return new LatestBlockDetailsResult(0, blockDetails, response, requestId);
1021
+ } catch (error) {
1022
+ return new LatestBlockDetailsResult(-10000, null, null, requestId, error);
974
1023
  }
975
-
976
- var blockDetails = new BlockDetails(blockNumber);
977
- return new LatestBlockDetailsResult(0, blockDetails, response, requestId);
978
1024
  }
979
1025
 
980
1026
  /**
@@ -1009,63 +1055,67 @@ async function getAccountDetails(address) {
1009
1055
  reqHeaders.append(API_KEY_HEADER_NAME, config.readApiKey);
1010
1056
  }
1011
1057
 
1012
-
1013
1058
  var url = config.readUrl + "/account/" + address;
1014
1059
 
1015
- const response = await fetch(url, {
1016
- headers: reqHeaders,
1017
- });
1060
+ try {
1061
+ const response = await fetch(url, {
1062
+ headers: reqHeaders,
1063
+ });
1018
1064
 
1019
- if(response == null) {
1020
- return new AccountDetailsResult(-202, null, response, requestId);
1021
- }
1022
- if (response.status !== 200) {
1023
- return new AccountDetailsResult(-203, null, response, requestId);
1024
- }
1065
+ if(response == null) {
1066
+ return new AccountDetailsResult(-202, null, response, requestId);
1067
+ }
1068
+ if (response.status !== 200) {
1069
+ return new AccountDetailsResult(-203, null, response, requestId);
1070
+ }
1025
1071
 
1026
- const jsonObj = await response.json();
1027
- if (jsonObj == null) {
1028
- return new AccountDetailsResult(-204, null, response, requestId);
1029
- }
1030
- const result = jsonObj.result;
1072
+ const jsonObj = await response.json();
1073
+ if (jsonObj == null) {
1074
+ return new AccountDetailsResult(-204, null, response, requestId);
1075
+ }
1076
+ const result = jsonObj.result;
1031
1077
 
1032
- if (result == null) {
1033
- return new AccountDetailsResult(-205, null, response, requestId);
1034
- }
1078
+ if (result == null) {
1079
+ return new AccountDetailsResult(-205, null, response, requestId);
1080
+ }
1035
1081
 
1036
- if(result.blockNumber == null) {
1037
- return new AccountDetailsResult(-206, null, response, requestId);
1038
- }
1082
+ if(result.blockNumber == null) {
1083
+ return new AccountDetailsResult(-206, null, response, requestId);
1084
+ }
1039
1085
 
1040
- let blockNumber = parseInt(result.blockNumber);
1041
- if (Number.isInteger(blockNumber) == false) {
1042
- return new AccountDetailsResult(-207, null, response, requestId);
1043
- }
1086
+ let blockNumber = parseInt(result.blockNumber);
1087
+ if (Number.isInteger(blockNumber) == false) {
1088
+ return new AccountDetailsResult(-207, null, response, requestId);
1089
+ }
1044
1090
 
1045
- if (result.nonce === null) {
1046
- nonce = 0;
1047
- } else {
1048
- let tempNonce = parseInt(result.nonce);
1049
- if (Number.isInteger(tempNonce) == true) {
1050
- nonce = tempNonce;
1051
- if (nonce < 0) {
1052
- return new AccountDetailsResult(-208, null, response, requestId);
1053
- }
1091
+ if (result.nonce === null) {
1092
+ nonce = 0;
1054
1093
  } else {
1055
- return new AccountDetailsResult(-209, null, response, requestId);
1094
+ let tempNonce = parseInt(result.nonce);
1095
+ if (Number.isInteger(tempNonce) == true) {
1096
+ nonce = tempNonce;
1097
+ if (nonce < 0) {
1098
+ return new AccountDetailsResult(-208, null, response, requestId);
1099
+ }
1100
+ } else {
1101
+ return new AccountDetailsResult(-209, null, response, requestId);
1102
+ }
1056
1103
  }
1057
- }
1058
1104
 
1059
- if (result.balance != null) {
1060
- if (isLargeNumber(result.balance) == false) {
1061
- return new AccountDetailsResult(-210, null, response, requestId);
1062
- } else {
1063
- balance = result.balance;
1105
+ if (result.balance != null) {
1106
+ if (isLargeNumber(result.balance) == false) {
1107
+ return new AccountDetailsResult(-210, null, response, requestId);
1108
+ } else {
1109
+ balance = result.balance;
1110
+ }
1064
1111
  }
1065
- }
1066
1112
 
1067
- var accountDetails = new AccountDetails(address, balance, nonce, blockNumber);
1068
- return new AccountDetailsResult(0, accountDetails, response, requestId);
1113
+ var accountDetails = new AccountDetails(address, balance, nonce, blockNumber);
1114
+ return new AccountDetailsResult(0, accountDetails, response, requestId);
1115
+
1116
+ } catch (error) {
1117
+ return new AccountDetailsResult(0, null, null, requestId, error);
1118
+ }
1069
1119
  }
1070
1120
 
1071
1121
  /**
@@ -1104,60 +1154,64 @@ async function getTransactionDetails(txnHash) {
1104
1154
 
1105
1155
  var url = config.readUrl + "/transaction/" + txnHash;
1106
1156
 
1107
- const response = await fetch(url, {
1108
- headers: reqHeaders,
1109
- });
1157
+ try {
1158
+ const response = await fetch(url, {
1159
+ headers: reqHeaders,
1160
+ });
1110
1161
 
1111
- if (response == null) {
1112
- return new TransactionDetailsResult(-302, null, response, requestId);
1113
- }
1114
- if (response.status !== 200) {
1115
- return new TransactionDetailsResult(-303, null, response, requestId);
1116
- }
1162
+ if (response == null) {
1163
+ return new TransactionDetailsResult(-302, null, response, requestId);
1164
+ }
1165
+ if (response.status !== 200) {
1166
+ return new TransactionDetailsResult(-303, null, response, requestId);
1167
+ }
1117
1168
 
1118
- const jsonObj = await response.json();
1119
- if (jsonObj == null) {
1120
- return new TransactionDetailsResult(-304, null, response, requestId);
1121
- }
1122
- const result = jsonObj.result;
1169
+ const jsonObj = await response.json();
1170
+ if (jsonObj == null) {
1171
+ return new TransactionDetailsResult(-304, null, response, requestId);
1172
+ }
1173
+ const result = jsonObj.result;
1123
1174
 
1124
- if (result == null) {
1125
- return new TransactionDetailsResult(-305, null, response, requestId);
1126
- }
1175
+ if (result == null) {
1176
+ return new TransactionDetailsResult(-305, null, response, requestId);
1177
+ }
1127
1178
 
1128
- var transactionDetails = new TransactionDetails();
1179
+ var transactionDetails = new TransactionDetails();
1129
1180
 
1130
- if (result.blockNumber !== null) {
1131
- let tempBlockNumber = parseInt(result.blockNumber);
1132
- if (Number.isInteger(tempBlockNumber) == true) {
1133
- transactionDetails.blockNumber = tempBlockNumber;
1134
- }
1135
- if (tempBlockNumber < 0) {
1136
- return new TransactionDetailsResult(-306, null, response, requestId);
1181
+ if (result.blockNumber !== null) {
1182
+ let tempBlockNumber = parseInt(result.blockNumber);
1183
+ if (Number.isInteger(tempBlockNumber) == true) {
1184
+ transactionDetails.blockNumber = tempBlockNumber;
1185
+ }
1186
+ if (tempBlockNumber < 0) {
1187
+ return new TransactionDetailsResult(-306, null, response, requestId);
1188
+ }
1137
1189
  }
1138
- }
1139
1190
 
1140
- transactionDetails.blockHash = result.blockHash;
1141
- transactionDetails.from = result.from;
1142
- transactionDetails.gas = result.gas;
1143
- transactionDetails.gasPrice = result.gasPrice;
1144
- transactionDetails.hash = result.hash;
1145
- transactionDetails.input = result.input;
1146
- transactionDetails.nonce = result.nonce;
1147
- transactionDetails.to = result.to;
1148
- transactionDetails.value = result.value;
1149
-
1150
- if(result.receipt !== null) {
1151
- transactionDetails.receipt = new TransactionReceipt();
1152
- transactionDetails.receipt.cumulativeGasUsed = result.receipt.cumulativeGasUsed;
1153
- transactionDetails.receipt.effectiveGasPrice = result.receipt.effectiveGasPrice;
1154
- transactionDetails.receipt.gasUsed = result.receipt.gasUsed;
1155
- transactionDetails.receipt.status = result.receipt.status;
1156
- transactionDetails.receipt.hash = result.receipt.hash;
1157
- transactionDetails.receipt.type = result.receipt.type;
1158
- }
1191
+ transactionDetails.blockHash = result.blockHash;
1192
+ transactionDetails.from = result.from;
1193
+ transactionDetails.gas = result.gas;
1194
+ transactionDetails.gasPrice = result.gasPrice;
1195
+ transactionDetails.hash = result.hash;
1196
+ transactionDetails.input = result.input;
1197
+ transactionDetails.nonce = result.nonce;
1198
+ transactionDetails.to = result.to;
1199
+ transactionDetails.value = result.value;
1200
+
1201
+ if(result.receipt !== null) {
1202
+ transactionDetails.receipt = new TransactionReceipt();
1203
+ transactionDetails.receipt.cumulativeGasUsed = result.receipt.cumulativeGasUsed;
1204
+ transactionDetails.receipt.effectiveGasPrice = result.receipt.effectiveGasPrice;
1205
+ transactionDetails.receipt.gasUsed = result.receipt.gasUsed;
1206
+ transactionDetails.receipt.status = result.receipt.status;
1207
+ transactionDetails.receipt.hash = result.receipt.hash;
1208
+ transactionDetails.receipt.type = result.receipt.type;
1209
+ }
1159
1210
 
1160
- return new TransactionDetailsResult(0, transactionDetails, response, requestId);
1211
+ return new TransactionDetailsResult(0, transactionDetails, response, requestId);
1212
+ } catch (error) {
1213
+ return new TransactionDetailsResult(0, null, null, requestId, error);
1214
+ }
1161
1215
  }
1162
1216
 
1163
1217
  /**
@@ -1205,58 +1259,64 @@ async function listAccountTransactions(address, pageNumber) {
1205
1259
  var url = config.readUrl + "/account/" + address + "/transactions/" + pageNumber;
1206
1260
  console.log(url);
1207
1261
 
1208
- const response = await fetch(url, {
1209
- headers: reqHeaders,
1210
- });
1262
+ try {
1263
+ const response = await fetch(url, {
1264
+ headers: reqHeaders,
1265
+ });
1211
1266
 
1212
- if (response === null) {
1213
- return new AccountTransactionsResult(-703, null, response, requestId);
1214
- }
1215
- if (response.status !== 200) {
1216
- return new AccountTransactionsResult(-704, null, response, requestId);
1217
- }
1267
+ if (response === null) {
1268
+ return new AccountTransactionsResult(-703, null, response, requestId);
1269
+ }
1270
+ if (response.status !== 200) {
1271
+ return new AccountTransactionsResult(-704, null, response, requestId);
1272
+ }
1218
1273
 
1219
- const jsonObj = await response.json();
1274
+ const jsonObj = await response.json();
1220
1275
 
1221
- if (jsonObj === null) {
1222
- return new AccountTransactionsResult(-705, null, response, requestId);
1223
- }
1224
- const result = jsonObj;
1276
+ if (jsonObj === null) {
1277
+ return new AccountTransactionsResult(-705, null, response, requestId);
1278
+ }
1279
+ const result = jsonObj;
1225
1280
 
1226
- if (result.pageCount === null) {
1227
- return new AccountTransactionsResult(-706, null, response, requestId);
1228
- }
1281
+ if (result.pageCount === null) {
1282
+ return new AccountTransactionsResult(-706, null, response, requestId);
1283
+ }
1229
1284
 
1230
- var listAccountDetailsResponse = new ListAccountTransactionsResponse();
1285
+ var listAccountDetailsResponse = new ListAccountTransactionsResponse();
1231
1286
 
1232
- let tempPageCount = parseInt(result.pageCount);
1233
- if (Number.isInteger(tempPageCount) === true) {
1234
- listAccountDetailsResponse.pageCount = tempPageCount;
1235
- }
1287
+ let tempPageCount = parseInt(result.pageCount);
1288
+ if (Number.isInteger(tempPageCount) === true) {
1289
+ listAccountDetailsResponse.pageCount = tempPageCount;
1290
+ }
1236
1291
 
1237
- if (result.items !== null) {
1238
- if (Array.isArray(result.items) === false) {
1239
- return new AccountTransactionsResult(-707, null, response, requestId);
1292
+ if (result.items !== null) {
1293
+ if (Array.isArray(result.items) === false) {
1294
+ return new AccountTransactionsResult(-707, null, response, requestId);
1295
+ }
1296
+ listAccountDetailsResponse.items = new Array();
1297
+ for (const item of result.items) {
1298
+ let txn = new AccountTransactionCompact();
1299
+ txn.blockNumber = item.blockNumber;
1300
+ txn.from = item.from;
1301
+ txn.hash = item.hash;
1302
+ txn.to = item.to;
1303
+ txn.value = item.value;
1304
+ txn.status = item.status;
1305
+ listAccountDetailsResponse.items.push(txn);
1306
+ }
1240
1307
  }
1241
- listAccountDetailsResponse.items = new Array();
1242
- for (const item of result.items) {
1243
- let txn = new AccountTransactionCompact();
1244
- txn.blockNumber = item.blockNumber;
1245
- txn.from = item.from;
1246
- txn.hash = item.hash;
1247
- txn.to = item.to;
1248
- txn.value = item.value;
1249
- txn.status = item.status;
1250
- listAccountDetailsResponse.items.push(txn);
1251
- }
1252
- }
1253
-
1254
- return new AccountTransactionsResult(0, listAccountDetailsResponse, response, requestId);
1308
+
1309
+ return new AccountTransactionsResult(0, listAccountDetailsResponse, response, requestId);
1310
+ } catch (error) {
1311
+ return new AccountTransactionsResult(0, null, null, requestId, error);
1312
+ }
1255
1313
  }
1256
1314
 
1257
1315
  /**
1258
1316
  * The signSendCoinTransaction function returns a signed transaction.
1317
+ * Since the gas fee for sending coins is fixed at 1000 coins, there is no option to set the gas fee explicitly.
1259
1318
  * This function is useful for offline (cold storage) wallets, where you can sign a transaction offline and then use the postTransaction function to post it on a connected device.
1319
+ * Another usecase for this function is when you want to first store a signed transaction to a database, then queue it and finally submit the transaction by calling the postTransaction function.
1260
1320
  *
1261
1321
  * @function signSendCoinTransaction
1262
1322
  * @param {Wallet} wallet - A Wallet object from which the transaction has to be sent. The address corresponding to the Wallet should have enough coins to cover gas fees as well. A minimum of 1000 coins (1000000000000000000000 wei) are required for gas fees.
@@ -1324,6 +1384,7 @@ async function signSendCoinTransaction(wallet, toAddress, coins, nonce) {
1324
1384
 
1325
1385
  /**
1326
1386
  * The sendCoins function posts a send-coin transaction to the blockchain.
1387
+ * Since the gas fee for sending coins is fixed at 1000 coins, there is no option to set the gas fee explicitly.
1327
1388
  * It may take many seconds after submitting a transaction before the transaction is returned by the getTransactionDetails function.
1328
1389
  * Transactions are usually committed in less than 30 seconds.
1329
1390
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "quantum-coin-js-sdk",
3
- "version": "1.0.13",
3
+ "version": "1.0.14",
4
4
  "description": "Quantum Coin - Q SDK in JavaScript",
5
5
  "main": "index.js",
6
6
  "scripts": {