@ledgerhq/coin-kaspa 1.3.0-nightly.7 → 1.3.0

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 (163) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +26 -67
  3. package/lib/logic/tests/bip32.test.d.ts +2 -0
  4. package/lib/logic/tests/bip32.test.d.ts.map +1 -0
  5. package/lib/logic/tests/bip32.test.js +108 -0
  6. package/lib/logic/tests/bip32.test.js.map +1 -0
  7. package/lib/logic/tests/getFeeRate.test.d.ts +2 -0
  8. package/lib/logic/tests/getFeeRate.test.d.ts.map +1 -0
  9. package/lib/logic/tests/getFeeRate.test.js +57 -0
  10. package/lib/logic/tests/getFeeRate.test.js.map +1 -0
  11. package/lib/logic/tests/kaspaAddresses.test.d.ts +2 -0
  12. package/lib/logic/tests/kaspaAddresses.test.d.ts.map +1 -0
  13. package/lib/logic/tests/kaspaAddresses.test.js +172 -0
  14. package/lib/logic/tests/kaspaAddresses.test.js.map +1 -0
  15. package/lib/logic/tests/massCalcluation.test.d.ts +2 -0
  16. package/lib/logic/tests/massCalcluation.test.d.ts.map +1 -0
  17. package/lib/logic/tests/massCalcluation.test.js +27 -0
  18. package/lib/logic/tests/massCalcluation.test.js.map +1 -0
  19. package/lib/logic/tests/scanAddresses.integ.test.d.ts +2 -0
  20. package/lib/logic/tests/scanAddresses.integ.test.d.ts.map +1 -0
  21. package/lib/logic/tests/scanAddresses.integ.test.js +18 -0
  22. package/lib/logic/tests/scanAddresses.integ.test.js.map +1 -0
  23. package/lib/logic/tests/scanOperations.integ.test.d.ts +2 -0
  24. package/lib/logic/tests/scanOperations.integ.test.d.ts.map +1 -0
  25. package/lib/logic/tests/scanOperations.integ.test.js +254 -0
  26. package/lib/logic/tests/scanOperations.integ.test.js.map +1 -0
  27. package/lib/logic/tests/scanOperations.test.d.ts +2 -0
  28. package/lib/logic/tests/scanOperations.test.d.ts.map +1 -0
  29. package/lib/logic/tests/scanOperations.test.js +184 -0
  30. package/lib/logic/tests/scanOperations.test.js.map +1 -0
  31. package/lib/logic/tests/scanUtxos.integ.test.d.ts +2 -0
  32. package/lib/logic/tests/scanUtxos.integ.test.d.ts.map +1 -0
  33. package/lib/logic/tests/scanUtxos.integ.test.js +13 -0
  34. package/lib/logic/tests/scanUtxos.integ.test.js.map +1 -0
  35. package/lib/logic/tests/scanUtxos.test.d.ts +2 -0
  36. package/lib/logic/tests/scanUtxos.test.d.ts.map +1 -0
  37. package/lib/logic/tests/scanUtxos.test.js +167 -0
  38. package/lib/logic/tests/scanUtxos.test.js.map +1 -0
  39. package/lib/logic/tests/utxoLib.test.d.ts +2 -0
  40. package/lib/logic/tests/utxoLib.test.d.ts.map +1 -0
  41. package/lib/logic/tests/utxoLib.test.js +26 -0
  42. package/lib/logic/tests/utxoLib.test.js.map +1 -0
  43. package/lib/logic/tests/utxoSelection.test.d.ts +10 -0
  44. package/lib/logic/tests/utxoSelection.test.d.ts.map +1 -0
  45. package/lib/logic/tests/utxoSelection.test.js +256 -0
  46. package/lib/logic/tests/utxoSelection.test.js.map +1 -0
  47. package/lib/logic/tests/validAddress.test.d.ts +2 -0
  48. package/lib/logic/tests/validAddress.test.d.ts.map +1 -0
  49. package/lib/logic/tests/validAddress.test.js +56 -0
  50. package/lib/logic/tests/validAddress.test.js.map +1 -0
  51. package/lib/network/tests/getAddressesActive.test.d.ts +2 -0
  52. package/lib/network/tests/getAddressesActive.test.d.ts.map +1 -0
  53. package/lib/network/tests/getAddressesActive.test.js +65 -0
  54. package/lib/network/tests/getAddressesActive.test.js.map +1 -0
  55. package/lib/network/tests/getBalancesForAddresss.test.d.ts +2 -0
  56. package/lib/network/tests/getBalancesForAddresss.test.d.ts.map +1 -0
  57. package/lib/network/tests/getBalancesForAddresss.test.js +40 -0
  58. package/lib/network/tests/getBalancesForAddresss.test.js.map +1 -0
  59. package/lib/network/tests/getBlockDagInfo.test.d.ts +2 -0
  60. package/lib/network/tests/getBlockDagInfo.test.d.ts.map +1 -0
  61. package/lib/network/tests/getBlockDagInfo.test.js +36 -0
  62. package/lib/network/tests/getBlockDagInfo.test.js.map +1 -0
  63. package/lib/network/tests/getFeeEstimate.test.d.ts +2 -0
  64. package/lib/network/tests/getFeeEstimate.test.d.ts.map +1 -0
  65. package/lib/network/tests/getFeeEstimate.test.js +54 -0
  66. package/lib/network/tests/getFeeEstimate.test.js.map +1 -0
  67. package/lib/network/tests/getTransactions.test.d.ts +2 -0
  68. package/lib/network/tests/getTransactions.test.d.ts.map +1 -0
  69. package/lib/network/tests/getTransactions.test.js +157 -0
  70. package/lib/network/tests/getTransactions.test.js.map +1 -0
  71. package/lib/network/tests/getUtxosForAddress.test.d.ts +2 -0
  72. package/lib/network/tests/getUtxosForAddress.test.d.ts.map +1 -0
  73. package/lib/network/tests/getUtxosForAddress.test.js +142 -0
  74. package/lib/network/tests/getUtxosForAddress.test.js.map +1 -0
  75. package/lib/network/tests/getVirtualChainBlueScore.test.d.ts +2 -0
  76. package/lib/network/tests/getVirtualChainBlueScore.test.d.ts.map +1 -0
  77. package/lib/network/tests/getVirtualChainBlueScore.test.js +27 -0
  78. package/lib/network/tests/getVirtualChainBlueScore.test.js.map +1 -0
  79. package/lib/network/tests/submitTransaction.test.d.ts +2 -0
  80. package/lib/network/tests/submitTransaction.test.d.ts.map +1 -0
  81. package/lib/network/tests/submitTransaction.test.js +43 -0
  82. package/lib/network/tests/submitTransaction.test.js.map +1 -0
  83. package/lib-es/logic/tests/bip32.test.d.ts +2 -0
  84. package/lib-es/logic/tests/bip32.test.d.ts.map +1 -0
  85. package/lib-es/logic/tests/bip32.test.js +80 -0
  86. package/lib-es/logic/tests/bip32.test.js.map +1 -0
  87. package/lib-es/logic/tests/getFeeRate.test.d.ts +2 -0
  88. package/lib-es/logic/tests/getFeeRate.test.d.ts.map +1 -0
  89. package/lib-es/logic/tests/getFeeRate.test.js +55 -0
  90. package/lib-es/logic/tests/getFeeRate.test.js.map +1 -0
  91. package/lib-es/logic/tests/kaspaAddresses.test.d.ts +2 -0
  92. package/lib-es/logic/tests/kaspaAddresses.test.d.ts.map +1 -0
  93. package/lib-es/logic/tests/kaspaAddresses.test.js +170 -0
  94. package/lib-es/logic/tests/kaspaAddresses.test.js.map +1 -0
  95. package/lib-es/logic/tests/massCalcluation.test.d.ts +2 -0
  96. package/lib-es/logic/tests/massCalcluation.test.d.ts.map +1 -0
  97. package/lib-es/logic/tests/massCalcluation.test.js +22 -0
  98. package/lib-es/logic/tests/massCalcluation.test.js.map +1 -0
  99. package/lib-es/logic/tests/scanAddresses.integ.test.d.ts +2 -0
  100. package/lib-es/logic/tests/scanAddresses.integ.test.d.ts.map +1 -0
  101. package/lib-es/logic/tests/scanAddresses.integ.test.js +16 -0
  102. package/lib-es/logic/tests/scanAddresses.integ.test.js.map +1 -0
  103. package/lib-es/logic/tests/scanOperations.integ.test.d.ts +2 -0
  104. package/lib-es/logic/tests/scanOperations.integ.test.d.ts.map +1 -0
  105. package/lib-es/logic/tests/scanOperations.integ.test.js +249 -0
  106. package/lib-es/logic/tests/scanOperations.integ.test.js.map +1 -0
  107. package/lib-es/logic/tests/scanOperations.test.d.ts +2 -0
  108. package/lib-es/logic/tests/scanOperations.test.d.ts.map +1 -0
  109. package/lib-es/logic/tests/scanOperations.test.js +156 -0
  110. package/lib-es/logic/tests/scanOperations.test.js.map +1 -0
  111. package/lib-es/logic/tests/scanUtxos.integ.test.d.ts +2 -0
  112. package/lib-es/logic/tests/scanUtxos.integ.test.d.ts.map +1 -0
  113. package/lib-es/logic/tests/scanUtxos.integ.test.js +11 -0
  114. package/lib-es/logic/tests/scanUtxos.integ.test.js.map +1 -0
  115. package/lib-es/logic/tests/scanUtxos.test.d.ts +2 -0
  116. package/lib-es/logic/tests/scanUtxos.test.d.ts.map +1 -0
  117. package/lib-es/logic/tests/scanUtxos.test.js +139 -0
  118. package/lib-es/logic/tests/scanUtxos.test.js.map +1 -0
  119. package/lib-es/logic/tests/utxoLib.test.d.ts +2 -0
  120. package/lib-es/logic/tests/utxoLib.test.d.ts.map +1 -0
  121. package/lib-es/logic/tests/utxoLib.test.js +24 -0
  122. package/lib-es/logic/tests/utxoLib.test.js.map +1 -0
  123. package/lib-es/logic/tests/utxoSelection.test.d.ts +10 -0
  124. package/lib-es/logic/tests/utxoSelection.test.d.ts.map +1 -0
  125. package/lib-es/logic/tests/utxoSelection.test.js +229 -0
  126. package/lib-es/logic/tests/utxoSelection.test.js.map +1 -0
  127. package/lib-es/logic/tests/validAddress.test.d.ts +2 -0
  128. package/lib-es/logic/tests/validAddress.test.d.ts.map +1 -0
  129. package/lib-es/logic/tests/validAddress.test.js +54 -0
  130. package/lib-es/logic/tests/validAddress.test.js.map +1 -0
  131. package/lib-es/network/tests/getAddressesActive.test.d.ts +2 -0
  132. package/lib-es/network/tests/getAddressesActive.test.d.ts.map +1 -0
  133. package/lib-es/network/tests/getAddressesActive.test.js +63 -0
  134. package/lib-es/network/tests/getAddressesActive.test.js.map +1 -0
  135. package/lib-es/network/tests/getBalancesForAddresss.test.d.ts +2 -0
  136. package/lib-es/network/tests/getBalancesForAddresss.test.d.ts.map +1 -0
  137. package/lib-es/network/tests/getBalancesForAddresss.test.js +38 -0
  138. package/lib-es/network/tests/getBalancesForAddresss.test.js.map +1 -0
  139. package/lib-es/network/tests/getBlockDagInfo.test.d.ts +2 -0
  140. package/lib-es/network/tests/getBlockDagInfo.test.d.ts.map +1 -0
  141. package/lib-es/network/tests/getBlockDagInfo.test.js +34 -0
  142. package/lib-es/network/tests/getBlockDagInfo.test.js.map +1 -0
  143. package/lib-es/network/tests/getFeeEstimate.test.d.ts +2 -0
  144. package/lib-es/network/tests/getFeeEstimate.test.d.ts.map +1 -0
  145. package/lib-es/network/tests/getFeeEstimate.test.js +52 -0
  146. package/lib-es/network/tests/getFeeEstimate.test.js.map +1 -0
  147. package/lib-es/network/tests/getTransactions.test.d.ts +2 -0
  148. package/lib-es/network/tests/getTransactions.test.d.ts.map +1 -0
  149. package/lib-es/network/tests/getTransactions.test.js +155 -0
  150. package/lib-es/network/tests/getTransactions.test.js.map +1 -0
  151. package/lib-es/network/tests/getUtxosForAddress.test.d.ts +2 -0
  152. package/lib-es/network/tests/getUtxosForAddress.test.d.ts.map +1 -0
  153. package/lib-es/network/tests/getUtxosForAddress.test.js +140 -0
  154. package/lib-es/network/tests/getUtxosForAddress.test.js.map +1 -0
  155. package/lib-es/network/tests/getVirtualChainBlueScore.test.d.ts +2 -0
  156. package/lib-es/network/tests/getVirtualChainBlueScore.test.d.ts.map +1 -0
  157. package/lib-es/network/tests/getVirtualChainBlueScore.test.js +25 -0
  158. package/lib-es/network/tests/getVirtualChainBlueScore.test.js.map +1 -0
  159. package/lib-es/network/tests/submitTransaction.test.d.ts +2 -0
  160. package/lib-es/network/tests/submitTransaction.test.d.ts.map +1 -0
  161. package/lib-es/network/tests/submitTransaction.test.js +41 -0
  162. package/lib-es/network/tests/submitTransaction.test.js.map +1 -0
  163. package/package.json +11 -11
@@ -0,0 +1,155 @@
1
+ import { getTransactions } from "../index";
2
+ describe("getTransactions function", () => {
3
+ beforeEach(() => {
4
+ // Clear all mocks before each test to avoid interference
5
+ jest.clearAllMocks();
6
+ });
7
+ it("should fetch TXs for (burn)address from real API", async () => {
8
+ global.fetch = jest.fn().mockResolvedValueOnce({
9
+ ok: true,
10
+ headers: {
11
+ get: jest.fn(() => ""),
12
+ },
13
+ json: async () => [
14
+ {
15
+ subnetwork_id: "0000000000000000000000000000000000000000",
16
+ transaction_id: "72cee02d1c323e0a9154ebac60630f7e370eb9149afaa3eab9277a284c343964",
17
+ hash: "f383585dd39e9459dd97c0551c359e882c8248db618b8726ff9ed57dfb165440",
18
+ mass: "2036",
19
+ block_hash: [
20
+ "89193a460ae5c9dfc5983b72e71ffba2699d75420e906b4475e69861d62fa124",
21
+ "e194ab7d88ae78a212a388309f0994c3a819dc8d0a5c1f69bd0c811c9017e4bd",
22
+ ],
23
+ block_time: 1733730605449,
24
+ is_accepted: true,
25
+ accepting_block_hash: "9a2bdd094ae393f94f1a1dee87a9f467d406f8b2a7d9fd9becf9019f0e5eb922",
26
+ accepting_block_blue_score: 95828655,
27
+ inputs: [
28
+ {
29
+ transaction_id: "72cee02d1c323e0a9154ebac60630f7e370eb9149afaa3eab9277a284c343964",
30
+ index: 0,
31
+ previous_outpoint_hash: "6735abfcfeade8fdad092afd5a51ed6089b761fec30ee46a66db3a59ef009b74",
32
+ previous_outpoint_index: "0",
33
+ previous_outpoint_resolved: null,
34
+ previous_outpoint_address: null,
35
+ previous_outpoint_amount: null,
36
+ signature_script: "41b317450a27b848bb8e500cdacbf0fd53b1c6e7dfc9e9752e9f4a1892a8b63508f50a47e96acd45995223fb5d41e791f147d7f52fe5d13418a8a7e68cfa2c638901",
37
+ sig_op_count: "1",
38
+ },
39
+ ],
40
+ outputs: [
41
+ {
42
+ transaction_id: "72cee02d1c323e0a9154ebac60630f7e370eb9149afaa3eab9277a284c343964",
43
+ index: 0,
44
+ amount: 69000000,
45
+ script_public_key: "200000000000000000000000000000000000000000000000000000000000000000ac",
46
+ script_public_key_address: "kaspa:qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqkx9awp4e",
47
+ script_public_key_type: "pubkey",
48
+ accepting_block_hash: null,
49
+ },
50
+ {
51
+ transaction_id: "72cee02d1c323e0a9154ebac60630f7e370eb9149afaa3eab9277a284c343964",
52
+ index: 1,
53
+ amount: 230984512,
54
+ script_public_key: "2055b8f71e0175003a8ad8ce895d0f0ed6ca84d131115192df4e3842c5d8b049f7ac",
55
+ script_public_key_address: "kaspa:qp2m3ac7q96sqw52mr8gjhg0pmtv4px3xyg4ryklfcuy93wckpylwuna456vq",
56
+ script_public_key_type: "pubkey",
57
+ accepting_block_hash: null,
58
+ },
59
+ ],
60
+ },
61
+ {
62
+ subnetwork_id: "0000000000000000000000000000000000000000",
63
+ transaction_id: "0ae596c60c4a8b8ff8f9397e70266f68d32effb79ad37826b958f41e40759f90",
64
+ hash: "92d44bdb0fcb210650f7bd62043cb9c0c2013053ac54d1f5ffcb9c016f42f2ea",
65
+ mass: "1624",
66
+ block_hash: ["46ce80a5ff71f84b2a37d7ea615cd93edc4fcacf45a7a95d1d6e51d85360a72e"],
67
+ block_time: 1730564218472,
68
+ is_accepted: true,
69
+ accepting_block_hash: "d16be8f74302ed5fb2ee9873cc4e916aecd3ac346639f44fd5cc4fb0ec7dd076",
70
+ accepting_block_blue_score: 92661331,
71
+ inputs: [
72
+ {
73
+ transaction_id: "0ae596c60c4a8b8ff8f9397e70266f68d32effb79ad37826b958f41e40759f90",
74
+ index: 0,
75
+ previous_outpoint_hash: "48c1f630fe28ec4be1fabb8101dade0022d74dbfadab75e52619d5dde6ffdd5f",
76
+ previous_outpoint_index: "0",
77
+ previous_outpoint_resolved: null,
78
+ previous_outpoint_address: null,
79
+ previous_outpoint_amount: null,
80
+ signature_script: "419e980873eae21f245208162b341bf62b4702a56d94cd0ab55014359001bf3597bf3936b3cb1634f51c232567f2fa1fdd03fefe126ede1c320e4fa2574aa2506f01",
81
+ sig_op_count: "1",
82
+ },
83
+ ],
84
+ outputs: [
85
+ {
86
+ transaction_id: "0ae596c60c4a8b8ff8f9397e70266f68d32effb79ad37826b958f41e40759f90",
87
+ index: 0,
88
+ amount: 3499890212,
89
+ script_public_key: "200000000000000000000000000000000000000000000000000000000000000000ac",
90
+ script_public_key_address: "kaspa:qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqkx9awp4e",
91
+ script_public_key_type: "pubkey",
92
+ accepting_block_hash: null,
93
+ },
94
+ ],
95
+ },
96
+ {
97
+ subnetwork_id: "0000000000000000000000000000000000000000",
98
+ transaction_id: "0958e37fef35f5cc5f53e383f19a1fb589d110bd2e967a34122a48dea1232cb9",
99
+ hash: "7c9881a09bbacefad1f3ed199a7ff531431675dd9e479a46deb97c71aa35fe02",
100
+ mass: "2036",
101
+ block_hash: ["f926e1d1ebb621ce9dc87efca9c4bc02110dee8078ea304c21ab7c65a3d7285b"],
102
+ block_time: 1730187373390,
103
+ is_accepted: true,
104
+ accepting_block_hash: "7bf390afb0a46cd5cc2140540d1aea36f040613873a39fb7d86920ee8ea1cee6",
105
+ accepting_block_blue_score: 92283556,
106
+ inputs: [
107
+ {
108
+ transaction_id: "0958e37fef35f5cc5f53e383f19a1fb589d110bd2e967a34122a48dea1232cb9",
109
+ index: 0,
110
+ previous_outpoint_hash: "ba4d2b0d594e61b003036231c88abcc9a5c1f5ef2d6ea878f8b25a2ab9146d2a",
111
+ previous_outpoint_index: "0",
112
+ previous_outpoint_resolved: null,
113
+ previous_outpoint_address: null,
114
+ previous_outpoint_amount: null,
115
+ signature_script: "41a157a87e0a98d18fa4bd2b3a21925e4d961861b84a1be6bf37e495e49dba28406692ce0f4075c7b2ddc08edd6bb7db511ac6a2fd48e30cd88e38cc3999294ec301",
116
+ sig_op_count: "1",
117
+ },
118
+ ],
119
+ outputs: [
120
+ {
121
+ transaction_id: "0958e37fef35f5cc5f53e383f19a1fb589d110bd2e967a34122a48dea1232cb9",
122
+ index: 0,
123
+ amount: 100000000,
124
+ script_public_key: "200000000000000000000000000000000000000000000000000000000000000000ac",
125
+ script_public_key_address: "kaspa:qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqkx9awp4e",
126
+ script_public_key_type: "pubkey",
127
+ accepting_block_hash: null,
128
+ },
129
+ {
130
+ transaction_id: "0958e37fef35f5cc5f53e383f19a1fb589d110bd2e967a34122a48dea1232cb9",
131
+ index: 1,
132
+ amount: 1557776051,
133
+ script_public_key: "20ba05376ad62963e66d4a92ac2c73f8183dafcc66dc50960006359a7ad01a75cdac",
134
+ script_public_key_address: "kaspa:qzaq2dm26c5k8endf2f2ctrnlqvrmt7vvmw9p9sqqc6e57ksrf6u6xafdlpx5",
135
+ script_public_key_type: "pubkey",
136
+ accepting_block_hash: null,
137
+ },
138
+ ],
139
+ },
140
+ ],
141
+ });
142
+ const address = "kaspa:qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqkx9awp4e";
143
+ const result = await getTransactions(address);
144
+ expect(result.transactions.length).toBe(3);
145
+ });
146
+ it("should return an error if fetch returns a 500 response", async () => {
147
+ global.fetch = jest.fn().mockResolvedValue({
148
+ ok: false,
149
+ status: 500,
150
+ });
151
+ const address = "kaspa:qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqkx9awp4e";
152
+ await expect(getTransactions(address)).rejects.toThrowError("Network response was not ok.");
153
+ });
154
+ });
155
+ //# sourceMappingURL=getTransactions.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTransactions.test.js","sourceRoot":"","sources":["../../../src/network/tests/getTransactions.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=getUtxosForAddress.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getUtxosForAddress.test.d.ts","sourceRoot":"","sources":["../../../src/network/tests/getUtxosForAddress.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,140 @@
1
+ import { getUtxosForAddresses } from "../index";
2
+ function getUtxoForOutpoint(utxos, outpoint) {
3
+ for (const utxo of utxos) {
4
+ if (utxo.outpoint.transactionId === outpoint.transactionId &&
5
+ utxo.outpoint.index === outpoint.index) {
6
+ return utxo;
7
+ }
8
+ }
9
+ return null;
10
+ }
11
+ describe("getUtxosForAddress function", () => {
12
+ beforeEach(() => {
13
+ // Clear all mocks before each test to avoid interference
14
+ jest.clearAllMocks();
15
+ });
16
+ it("should fetch UTXOs for given address from real API", async () => {
17
+ global.fetch = jest.fn().mockResolvedValueOnce({
18
+ ok: true,
19
+ json: async () => [
20
+ {
21
+ address: "kaspa:qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqkx9awp4e",
22
+ outpoint: {
23
+ transactionId: "402f0762218346d622bbaeaa25107ab2398733f44f2369c902b176b25fa81e37",
24
+ index: 0,
25
+ },
26
+ utxoEntry: {
27
+ amount: "5000000000000",
28
+ scriptPublicKey: {
29
+ scriptPublicKey: "200000000000000000000000000000000000000000000000000000000000000000ac",
30
+ },
31
+ blockDaaScore: "1490933",
32
+ isCoinbase: false,
33
+ },
34
+ },
35
+ {
36
+ address: "kaspa:qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqkx9awp4e",
37
+ outpoint: {
38
+ transactionId: "6ef083d4a8a1d3cf31a90409f6af5fdc00264c684da80fd3aeb4f6f29684824b",
39
+ index: 0,
40
+ },
41
+ utxoEntry: {
42
+ amount: "5000000000000",
43
+ scriptPublicKey: {
44
+ scriptPublicKey: "200000000000000000000000000000000000000000000000000000000000000000ac",
45
+ },
46
+ blockDaaScore: "1491330",
47
+ isCoinbase: false,
48
+ },
49
+ },
50
+ {
51
+ address: "kaspa:qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqkx9awp4e",
52
+ outpoint: {
53
+ transactionId: "4413257fa1f7884b7cd6f7b42c326da71b45f8c609c3c19609cbf00e5cc66bf4",
54
+ index: 0,
55
+ },
56
+ utxoEntry: {
57
+ amount: "10000000000",
58
+ scriptPublicKey: {
59
+ scriptPublicKey: "200000000000000000000000000000000000000000000000000000000000000000ac",
60
+ },
61
+ blockDaaScore: "78211249",
62
+ isCoinbase: false,
63
+ },
64
+ },
65
+ ],
66
+ });
67
+ const addresses = ["kaspa:qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqkx9awp4e"];
68
+ const result = await getUtxosForAddresses(addresses);
69
+ const expectedUtxos = [
70
+ {
71
+ address: "kaspa:qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqkx9awp4e",
72
+ outpoint: {
73
+ transactionId: "402f0762218346d622bbaeaa25107ab2398733f44f2369c902b176b25fa81e37",
74
+ index: 0,
75
+ },
76
+ utxoEntry: {
77
+ amount: "5000000000000",
78
+ scriptPublicKey: {
79
+ scriptPublicKey: "200000000000000000000000000000000000000000000000000000000000000000ac",
80
+ },
81
+ blockDaaScore: "1490933",
82
+ isCoinbase: false,
83
+ },
84
+ },
85
+ {
86
+ address: "kaspa:qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqkx9awp4e",
87
+ outpoint: {
88
+ transactionId: "6ef083d4a8a1d3cf31a90409f6af5fdc00264c684da80fd3aeb4f6f29684824b",
89
+ index: 0,
90
+ },
91
+ utxoEntry: {
92
+ amount: "5000000000000",
93
+ scriptPublicKey: {
94
+ scriptPublicKey: "200000000000000000000000000000000000000000000000000000000000000000ac",
95
+ },
96
+ blockDaaScore: "1491330",
97
+ isCoinbase: false,
98
+ },
99
+ },
100
+ {
101
+ address: "kaspa:qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqkx9awp4e",
102
+ outpoint: {
103
+ transactionId: "4413257fa1f7884b7cd6f7b42c326da71b45f8c609c3c19609cbf00e5cc66bf4",
104
+ index: 0,
105
+ },
106
+ utxoEntry: {
107
+ amount: "10000000000",
108
+ scriptPublicKey: {
109
+ scriptPublicKey: "200000000000000000000000000000000000000000000000000000000000000000ac",
110
+ },
111
+ blockDaaScore: "78211249",
112
+ isCoinbase: false,
113
+ },
114
+ },
115
+ ];
116
+ for (const expectedUtxo of expectedUtxos) {
117
+ const utxoFromResponse = getUtxoForOutpoint(result, {
118
+ transactionId: expectedUtxo.outpoint.transactionId,
119
+ index: 0,
120
+ });
121
+ expect(utxoFromResponse).not.toBeNull();
122
+ expect(utxoFromResponse.address).toEqual(expectedUtxo.address);
123
+ expect(utxoFromResponse.outpoint.transactionId).toEqual(expectedUtxo.outpoint.transactionId);
124
+ expect(utxoFromResponse.outpoint.index).toEqual(expectedUtxo.outpoint.index);
125
+ expect(utxoFromResponse.utxoEntry.amount).toEqual(expectedUtxo.utxoEntry.amount);
126
+ expect(utxoFromResponse.utxoEntry.scriptPublicKey.scriptPublicKey).toEqual(expectedUtxo.utxoEntry.scriptPublicKey.scriptPublicKey);
127
+ expect(utxoFromResponse.utxoEntry.blockDaaScore).toEqual(expectedUtxo.utxoEntry.blockDaaScore);
128
+ expect(utxoFromResponse.utxoEntry.isCoinbase).toEqual(expectedUtxo.utxoEntry.isCoinbase);
129
+ }
130
+ });
131
+ it("should throw an error if the response is not ok", async () => {
132
+ global.fetch = jest.fn().mockResolvedValueOnce({
133
+ ok: false,
134
+ status: 400,
135
+ });
136
+ const addresses = ["invalidAddress"];
137
+ await expect(getUtxosForAddresses(addresses)).rejects.toThrow();
138
+ });
139
+ });
140
+ //# sourceMappingURL=getUtxosForAddress.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getUtxosForAddress.test.js","sourceRoot":"","sources":["../../../src/network/tests/getUtxosForAddress.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=getVirtualChainBlueScore.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getVirtualChainBlueScore.test.d.ts","sourceRoot":"","sources":["../../../src/network/tests/getVirtualChainBlueScore.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,25 @@
1
+ import { getVirtualChainBlueScore } from "../index";
2
+ describe("getVirtualChainBlueScore", () => {
3
+ beforeEach(() => {
4
+ // Clear all mocks before each test to avoid interference
5
+ jest.clearAllMocks();
6
+ });
7
+ it("should return the blue score from the API response", async () => {
8
+ // Mock the global fetch function
9
+ global.fetch = jest.fn().mockResolvedValueOnce({
10
+ ok: true,
11
+ json: async () => ({ blueScore: 12345 }),
12
+ });
13
+ const result = await getVirtualChainBlueScore();
14
+ expect(result).toBe(12345);
15
+ });
16
+ it("should throw an error when the fetch fails", async () => {
17
+ // Mock a failed fetch response
18
+ global.fetch = jest.fn().mockResolvedValueOnce({
19
+ ok: false,
20
+ });
21
+ await expect(getVirtualChainBlueScore()).rejects.toThrow("Failed to fetch");
22
+ expect(global.fetch).toHaveBeenCalledTimes(1);
23
+ });
24
+ });
25
+ //# sourceMappingURL=getVirtualChainBlueScore.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getVirtualChainBlueScore.test.js","sourceRoot":"","sources":["../../../src/network/tests/getVirtualChainBlueScore.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAEpD,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,UAAU,CAAC,GAAG,EAAE;QACd,yDAAyD;QACzD,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QAClE,iCAAiC;QACjC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,qBAAqB,CAAC;YAC7C,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;SACzC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,wBAAwB,EAAE,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,+BAA+B;QAC/B,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,qBAAqB,CAAC;YAC7C,EAAE,EAAE,KAAK;SACV,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,wBAAwB,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAC5E,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=submitTransaction.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"submitTransaction.test.d.ts","sourceRoot":"","sources":["../../../src/network/tests/submitTransaction.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,41 @@
1
+ import { submitTransaction } from "../index";
2
+ describe("submitTransaction function", () => {
3
+ beforeEach(() => {
4
+ // Clear all mocks before each test to avoid interference
5
+ jest.clearAllMocks();
6
+ });
7
+ it("Gets information about addresses being active or not", async () => {
8
+ global.fetch = jest.fn().mockResolvedValueOnce({
9
+ ok: true,
10
+ json: async () => ({
11
+ transactionId: "396f29c47bdd95dddbe868203ce905535a3de1b48af7adeb40b769662885c008",
12
+ }),
13
+ });
14
+ const transactionDetails = {
15
+ dummy: "data",
16
+ };
17
+ const result = await submitTransaction(JSON.stringify(transactionDetails));
18
+ const expectedResult = {
19
+ txId: "396f29c47bdd95dddbe868203ce905535a3de1b48af7adeb40b769662885c008",
20
+ };
21
+ expect(result).toEqual(expectedResult);
22
+ });
23
+ it("Throws an error if the response is not ok", async () => {
24
+ global.fetch = jest.fn().mockResolvedValueOnce({
25
+ ok: false,
26
+ status: 500,
27
+ });
28
+ const transactionDetails = {
29
+ dummy: "data",
30
+ };
31
+ await expect(submitTransaction(JSON.stringify(transactionDetails))).rejects.toThrow("Failed to submit transaction. Status: 500");
32
+ });
33
+ it("Throws an error if there is an exception while submitting", async () => {
34
+ global.fetch = jest.fn().mockRejectedValueOnce(new Error("Network error"));
35
+ const transactionDetails = {
36
+ dummy: "data",
37
+ };
38
+ await expect(submitTransaction(JSON.stringify(transactionDetails))).rejects.toThrow("Error submitting transaction: Error: Network error");
39
+ });
40
+ });
41
+ //# sourceMappingURL=submitTransaction.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"submitTransaction.test.js","sourceRoot":"","sources":["../../../src/network/tests/submitTransaction.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7C,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,UAAU,CAAC,GAAG,EAAE;QACd,yDAAyD;QACzD,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACpE,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,qBAAqB,CAAC;YAC7C,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;gBACjB,aAAa,EAAE,kEAAkE;aAClF,CAAC;SACH,CAAC,CAAC;QACH,MAAM,kBAAkB,GAAG;YACzB,KAAK,EAAE,MAAM;SACd,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAE3E,MAAM,cAAc,GAAG;YACrB,IAAI,EAAE,kEAAkE;SACzE,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,qBAAqB,CAAC;YAC7C,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,GAAG;SACZ,CAAC,CAAC;QAEH,MAAM,kBAAkB,GAAG;YACzB,KAAK,EAAE,MAAM;SACd,CAAC;QAEF,MAAM,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACjF,2CAA2C,CAC5C,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACzE,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;QAE3E,MAAM,kBAAkB,GAAG;YACzB,KAAK,EAAE,MAAM;SACd,CAAC;QAEF,MAAM,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACjF,oDAAoD,CACrD,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ledgerhq/coin-kaspa",
3
- "version": "1.3.0-nightly.7",
3
+ "version": "1.3.0",
4
4
  "description": "Ledger framework for Kaspa integration",
5
5
  "keywords": [
6
6
  "Ledger",
@@ -97,15 +97,15 @@
97
97
  "lru-cache": "^7.14.1",
98
98
  "prando": "^6.0.1",
99
99
  "rxjs": "^7.8.1",
100
- "@ledgerhq/coin-framework": "^6.7.0-nightly.7",
101
- "@ledgerhq/cryptoassets": "^13.31.0-nightly.7",
102
- "@ledgerhq/devices": "8.6.2-nightly.0",
103
- "@ledgerhq/errors": "^6.27.0-nightly.0",
104
- "@ledgerhq/live-env": "^2.19.0-nightly.2",
105
- "@ledgerhq/live-network": "^2.0.20-nightly.3",
100
+ "@ledgerhq/coin-framework": "^6.7.0",
101
+ "@ledgerhq/cryptoassets": "^13.31.0",
102
+ "@ledgerhq/devices": "8.6.1",
103
+ "@ledgerhq/errors": "^6.26.0",
104
+ "@ledgerhq/live-env": "^2.19.0",
105
+ "@ledgerhq/live-network": "^2.0.20",
106
106
  "@ledgerhq/logs": "^6.13.0",
107
- "@ledgerhq/types-cryptoassets": "^7.29.0-nightly.0",
108
- "@ledgerhq/types-live": "^6.87.0-nightly.5"
107
+ "@ledgerhq/types-cryptoassets": "^7.29.0",
108
+ "@ledgerhq/types-live": "^6.87.0"
109
109
  },
110
110
  "devDependencies": {
111
111
  "@types/invariant": "^2.2.2",
@@ -118,8 +118,8 @@
118
118
  "timemachine": "^0.3.2",
119
119
  "ts-jest": "^29.1.1",
120
120
  "@ledgerhq/disable-network-setup": "^0.0.0",
121
- "@ledgerhq/hw-transport-node-speculos": "^6.29.13-nightly.0",
122
- "@ledgerhq/hw-transport-node-speculos-http": "^6.30.3-nightly.0"
121
+ "@ledgerhq/hw-transport-node-speculos": "^6.29.12",
122
+ "@ledgerhq/hw-transport-node-speculos-http": "^6.30.2"
123
123
  },
124
124
  "scripts": {
125
125
  "clean": "rimraf lib lib-es",