edge-currency-plugins 1.0.0-rc.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 (233) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +3 -0
  3. package/lib/bch.js +15 -0
  4. package/lib/bsv.js +15 -0
  5. package/lib/btc.js +15 -0
  6. package/lib/common/constants.js +11 -0
  7. package/lib/common/fees/calcMinerFeePerByte.js +62 -0
  8. package/lib/common/fees/makeFees.js +182 -0
  9. package/lib/common/fees/processInfoServerFees.js +30 -0
  10. package/lib/common/fees/processMempoolSpaceFees.js +38 -0
  11. package/lib/common/plugin/makeCurrencyPlugin.js +66 -0
  12. package/lib/common/plugin/makeCurrencyTools.js +211 -0
  13. package/lib/common/plugin/makeEngineEmitter.js +102 -0
  14. package/lib/common/plugin/makeMetadata.js +99 -0
  15. package/lib/common/plugin/pluginState.js +253 -0
  16. package/lib/common/plugin/serverScores.js +328 -0
  17. package/lib/common/plugin/types.js +173 -0
  18. package/lib/common/plugin/utils.js +18 -0
  19. package/lib/common/utxobased/db/Models/ProcessorTransaction.js +122 -0
  20. package/lib/common/utxobased/db/Models/baselet.js +81 -0
  21. package/lib/common/utxobased/db/makeBaselets.js +123 -0
  22. package/lib/common/utxobased/db/makeMutex.js +17 -0
  23. package/lib/common/utxobased/db/makeProcessor.js +554 -0
  24. package/lib/common/utxobased/db/types.js +67 -0
  25. package/lib/common/utxobased/engine/await-lock.js +65 -0
  26. package/lib/common/utxobased/engine/constants.js +7 -0
  27. package/lib/common/utxobased/engine/makeServerStates.js +394 -0
  28. package/lib/common/utxobased/engine/makeUtxoEngine.js +690 -0
  29. package/lib/common/utxobased/engine/makeUtxoEngineState.js +1443 -0
  30. package/lib/common/utxobased/engine/makeUtxoWalletTools.js +216 -0
  31. package/lib/common/utxobased/engine/paymentRequest.js +102 -0
  32. package/lib/common/utxobased/engine/types.js +21 -0
  33. package/lib/common/utxobased/engine/util/defaultValidateConfirmations.js +19 -0
  34. package/lib/common/utxobased/engine/util/getOwnUtxosFromTx.js +54 -0
  35. package/lib/common/utxobased/engine/utils.js +239 -0
  36. package/lib/common/utxobased/info/all.js +67 -0
  37. package/lib/common/utxobased/info/badcoin.js +73 -0
  38. package/lib/common/utxobased/info/bitcoin.js +91 -0
  39. package/lib/common/utxobased/info/bitcoincash.js +93 -0
  40. package/lib/common/utxobased/info/bitcoincashtestnet.js +72 -0
  41. package/lib/common/utxobased/info/bitcoingold.js +85 -0
  42. package/lib/common/utxobased/info/bitcoingoldtestnet.js +71 -0
  43. package/lib/common/utxobased/info/bitcoinsv.js +76 -0
  44. package/lib/common/utxobased/info/bitcointestnet.js +81 -0
  45. package/lib/common/utxobased/info/dash.js +76 -0
  46. package/lib/common/utxobased/info/digibyte.js +76 -0
  47. package/lib/common/utxobased/info/dogecoin.js +76 -0
  48. package/lib/common/utxobased/info/eboost.js +70 -0
  49. package/lib/common/utxobased/info/feathercoin.js +76 -0
  50. package/lib/common/utxobased/info/groestlcoin.js +88 -0
  51. package/lib/common/utxobased/info/litecoin.js +82 -0
  52. package/lib/common/utxobased/info/qtum.js +67 -0
  53. package/lib/common/utxobased/info/ravencoin.js +70 -0
  54. package/lib/common/utxobased/info/scriptTemplates/bitcoincashScriptTemplates.js +56 -0
  55. package/lib/common/utxobased/info/scriptTemplates/types.js +14 -0
  56. package/lib/common/utxobased/info/smartcash.js +78 -0
  57. package/lib/common/utxobased/info/ufo.js +75 -0
  58. package/lib/common/utxobased/info/utxoPickers/dogeUtxoPicker.js +34 -0
  59. package/lib/common/utxobased/info/vertcoin.js +82 -0
  60. package/lib/common/utxobased/info/zcoin.js +72 -0
  61. package/lib/common/utxobased/keymanager/base.js +60 -0
  62. package/lib/common/utxobased/keymanager/bip69.js +31 -0
  63. package/lib/common/utxobased/keymanager/bitcoincashUtils/base32.js +88 -0
  64. package/lib/common/utxobased/keymanager/bitcoincashUtils/bn.js +210 -0
  65. package/lib/common/utxobased/keymanager/bitcoincashUtils/cashAddress.js +282 -0
  66. package/lib/common/utxobased/keymanager/cleaners.js +198 -0
  67. package/lib/common/utxobased/keymanager/coinmapper.js +12 -0
  68. package/lib/common/utxobased/keymanager/declarations/base58grscheck.d.js +1 -0
  69. package/lib/common/utxobased/keymanager/declarations/blake-hash.d.js +1 -0
  70. package/lib/common/utxobased/keymanager/declarations/bn.d.js +1 -0
  71. package/lib/common/utxobased/keymanager/declarations/bs58smartcheck.d.js +1 -0
  72. package/lib/common/utxobased/keymanager/declarations/wif-smart.d.js +1 -0
  73. package/lib/common/utxobased/keymanager/declarations/wifgrs.d.js +1 -0
  74. package/lib/common/utxobased/keymanager/keymanager.js +1214 -0
  75. package/lib/common/utxobased/keymanager/utxopicker/accumulative.js +52 -0
  76. package/lib/common/utxobased/keymanager/utxopicker/forceUseUtxo.js +59 -0
  77. package/lib/common/utxobased/keymanager/utxopicker/subtractFee.js +17 -0
  78. package/lib/common/utxobased/keymanager/utxopicker/types.js +42 -0
  79. package/lib/common/utxobased/keymanager/utxopicker/utils.js +159 -0
  80. package/lib/common/utxobased/keymanager/utxopicker.js +17 -0
  81. package/lib/common/utxobased/network/BlockBook.js +200 -0
  82. package/lib/common/utxobased/network/BlockBookAPI.js +335 -0
  83. package/lib/common/utxobased/network/Deferred.js +29 -0
  84. package/lib/common/utxobased/network/MakeSocketEmitter.js +35 -0
  85. package/lib/common/utxobased/network/Socket.js +362 -0
  86. package/lib/common/utxobased/network/nodejsWS.js +59 -0
  87. package/lib/common/utxobased/network/socketQueue.js +60 -0
  88. package/lib/common/utxobased/network/types.js +19 -0
  89. package/lib/common/utxobased/network/windowWS.js +54 -0
  90. package/lib/firo.js +15 -0
  91. package/lib/ftc.js +15 -0
  92. package/lib/index.js +19 -0
  93. package/lib/ltc.js +15 -0
  94. package/lib/src/bch.d.ts +3 -0
  95. package/lib/src/bsv.d.ts +3 -0
  96. package/lib/src/btc.d.ts +3 -0
  97. package/lib/src/common/constants.d.ts +9 -0
  98. package/lib/src/common/fees/calcMinerFeePerByte.d.ts +13 -0
  99. package/lib/src/common/fees/makeFees.d.ts +20 -0
  100. package/lib/src/common/fees/processInfoServerFees.d.ts +7 -0
  101. package/lib/src/common/fees/processMempoolSpaceFees.d.ts +13 -0
  102. package/lib/src/common/plugin/makeCurrencyPlugin.d.ts +3 -0
  103. package/lib/src/common/plugin/makeCurrencyTools.d.ts +8 -0
  104. package/lib/src/common/plugin/makeEngineEmitter.d.ts +23 -0
  105. package/lib/src/common/plugin/makeMetadata.d.ts +14 -0
  106. package/lib/src/common/plugin/pluginState.d.ts +34 -0
  107. package/lib/src/common/plugin/serverScores.d.ts +61 -0
  108. package/lib/src/common/plugin/types.d.ts +135 -0
  109. package/lib/src/common/plugin/utils.d.ts +6 -0
  110. package/lib/src/common/utxobased/db/Models/ProcessorTransaction.d.ts +16 -0
  111. package/lib/src/common/utxobased/db/Models/baselet.d.ts +28 -0
  112. package/lib/src/common/utxobased/db/makeBaselets.d.ts +33 -0
  113. package/lib/src/common/utxobased/db/makeMutex.d.ts +3 -0
  114. package/lib/src/common/utxobased/db/makeProcessor.d.ts +42 -0
  115. package/lib/src/common/utxobased/db/types.d.ts +47 -0
  116. package/lib/src/common/utxobased/engine/await-lock.d.ts +29 -0
  117. package/lib/src/common/utxobased/engine/constants.d.ts +4 -0
  118. package/lib/src/common/utxobased/engine/makeServerStates.d.ts +37 -0
  119. package/lib/src/common/utxobased/engine/makeUtxoEngine.d.ts +3 -0
  120. package/lib/src/common/utxobased/engine/makeUtxoEngineState.d.ts +108 -0
  121. package/lib/src/common/utxobased/engine/makeUtxoWalletTools.d.ts +52 -0
  122. package/lib/src/common/utxobased/engine/paymentRequest.d.ts +18 -0
  123. package/lib/src/common/utxobased/engine/types.d.ts +19 -0
  124. package/lib/src/common/utxobased/engine/util/defaultValidateConfirmations.d.ts +3 -0
  125. package/lib/src/common/utxobased/engine/util/getOwnUtxosFromTx.d.ts +4 -0
  126. package/lib/src/common/utxobased/engine/utils.d.ts +43 -0
  127. package/lib/src/common/utxobased/info/all.d.ts +22 -0
  128. package/lib/src/common/utxobased/info/badcoin.d.ts +3 -0
  129. package/lib/src/common/utxobased/info/bitcoin.d.ts +3 -0
  130. package/lib/src/common/utxobased/info/bitcoincash.d.ts +3 -0
  131. package/lib/src/common/utxobased/info/bitcoincashtestnet.d.ts +3 -0
  132. package/lib/src/common/utxobased/info/bitcoingold.d.ts +3 -0
  133. package/lib/src/common/utxobased/info/bitcoingoldtestnet.d.ts +3 -0
  134. package/lib/src/common/utxobased/info/bitcoinsv.d.ts +3 -0
  135. package/lib/src/common/utxobased/info/bitcointestnet.d.ts +6 -0
  136. package/lib/src/common/utxobased/info/dash.d.ts +3 -0
  137. package/lib/src/common/utxobased/info/digibyte.d.ts +3 -0
  138. package/lib/src/common/utxobased/info/dogecoin.d.ts +3 -0
  139. package/lib/src/common/utxobased/info/eboost.d.ts +3 -0
  140. package/lib/src/common/utxobased/info/feathercoin.d.ts +6 -0
  141. package/lib/src/common/utxobased/info/groestlcoin.d.ts +3 -0
  142. package/lib/src/common/utxobased/info/litecoin.d.ts +6 -0
  143. package/lib/src/common/utxobased/info/qtum.d.ts +3 -0
  144. package/lib/src/common/utxobased/info/ravencoin.d.ts +3 -0
  145. package/lib/src/common/utxobased/info/scriptTemplates/bitcoincashScriptTemplates.d.ts +2 -0
  146. package/lib/src/common/utxobased/info/scriptTemplates/types.d.ts +9 -0
  147. package/lib/src/common/utxobased/info/smartcash.d.ts +3 -0
  148. package/lib/src/common/utxobased/info/ufo.d.ts +3 -0
  149. package/lib/src/common/utxobased/info/utxoPickers/dogeUtxoPicker.d.ts +2 -0
  150. package/lib/src/common/utxobased/info/vertcoin.d.ts +3 -0
  151. package/lib/src/common/utxobased/info/zcoin.d.ts +6 -0
  152. package/lib/src/common/utxobased/keymanager/base.d.ts +9 -0
  153. package/lib/src/common/utxobased/keymanager/bip69.d.ts +19 -0
  154. package/lib/src/common/utxobased/keymanager/bitcoincashUtils/base32.d.ts +19 -0
  155. package/lib/src/common/utxobased/keymanager/bitcoincashUtils/bn.d.ts +2 -0
  156. package/lib/src/common/utxobased/keymanager/bitcoincashUtils/cashAddress.d.ts +12 -0
  157. package/lib/src/common/utxobased/keymanager/cleaners.d.ts +55 -0
  158. package/lib/src/common/utxobased/keymanager/coinmapper.d.ts +2 -0
  159. package/lib/src/common/utxobased/keymanager/keymanager.d.ts +198 -0
  160. package/lib/src/common/utxobased/keymanager/utxopicker/accumulative.d.ts +2 -0
  161. package/lib/src/common/utxobased/keymanager/utxopicker/forceUseUtxo.d.ts +2 -0
  162. package/lib/src/common/utxobased/keymanager/utxopicker/subtractFee.d.ts +2 -0
  163. package/lib/src/common/utxobased/keymanager/utxopicker/types.d.ts +36 -0
  164. package/lib/src/common/utxobased/keymanager/utxopicker/utils.d.ts +15 -0
  165. package/lib/src/common/utxobased/keymanager/utxopicker.d.ts +8 -0
  166. package/lib/src/common/utxobased/network/BlockBook.d.ts +33 -0
  167. package/lib/src/common/utxobased/network/BlockBookAPI.d.ts +163 -0
  168. package/lib/src/common/utxobased/network/Deferred.d.ts +8 -0
  169. package/lib/src/common/utxobased/network/MakeSocketEmitter.d.ts +13 -0
  170. package/lib/src/common/utxobased/network/Socket.d.ts +41 -0
  171. package/lib/src/common/utxobased/network/nodejsWS.d.ts +2 -0
  172. package/lib/src/common/utxobased/network/socketQueue.d.ts +8 -0
  173. package/lib/src/common/utxobased/network/types.d.ts +17 -0
  174. package/lib/src/common/utxobased/network/windowWS.d.ts +2 -0
  175. package/lib/src/firo.d.ts +3 -0
  176. package/lib/src/ftc.d.ts +3 -0
  177. package/lib/src/index.d.ts +4 -0
  178. package/lib/src/ltc.d.ts +3 -0
  179. package/lib/src/tbch.d.ts +3 -0
  180. package/lib/src/tbtc.d.ts +3 -0
  181. package/lib/src/tbtg.d.ts +3 -0
  182. package/lib/src/types.d.ts +6 -0
  183. package/lib/src/util/delay.d.ts +1 -0
  184. package/lib/src/util/filterUndefined.d.ts +1 -0
  185. package/lib/src/util/indexAtProtected.d.ts +5 -0
  186. package/lib/src/util/typeUtil.d.ts +8 -0
  187. package/lib/src/util/undefinedIfEmptyString.d.ts +1 -0
  188. package/lib/src/util/unixTime.d.ts +1 -0
  189. package/lib/tbch.js +15 -0
  190. package/lib/tbtc.js +15 -0
  191. package/lib/tbtg.js +15 -0
  192. package/lib/test/common/fees/calcMinerFeePerByte.spec.d.ts +1 -0
  193. package/lib/test/common/fees/fees.spec.d.ts +1 -0
  194. package/lib/test/common/plugin/currencyPlugin.fixtures/common.d.ts +29 -0
  195. package/lib/test/common/plugin/currencyPlugin.fixtures/currencies/bitcoin.d.ts +2 -0
  196. package/lib/test/common/plugin/currencyPlugin.fixtures/currencies/bitcoincash.d.ts +2 -0
  197. package/lib/test/common/plugin/currencyPlugin.fixtures/currencies/bitcoinsv.d.ts +2 -0
  198. package/lib/test/common/plugin/currencyPlugin.fixtures/currencies/digibyte.d.ts +2 -0
  199. package/lib/test/common/plugin/currencyPlugin.fixtures/currencies/feathercoin.d.ts +2 -0
  200. package/lib/test/common/plugin/currencyPlugin.fixtures/currencies/groestlcoin.d.ts +2 -0
  201. package/lib/test/common/plugin/currencyPlugin.fixtures/currencies/litecoin.d.ts +2 -0
  202. package/lib/test/common/plugin/currencyPlugin.fixtures/currencies/smartcash.d.ts +2 -0
  203. package/lib/test/common/plugin/currencyPlugin.fixtures/currencies/zcoin.d.ts +2 -0
  204. package/lib/test/common/plugin/currencyPlugin.fixtures/index.d.ts +2 -0
  205. package/lib/test/common/plugin/currencyPlugin.spec.d.ts +1 -0
  206. package/lib/test/common/plugin/makeMetadata.spec.d.ts +1 -0
  207. package/lib/test/common/plugin/serverScores.spec.d.ts +1 -0
  208. package/lib/test/common/utxobased/addressFormat/addressFormatIndex/addressFormat.spec.d.ts +1 -0
  209. package/lib/test/common/utxobased/db/Processor.spec.d.ts +1 -0
  210. package/lib/test/common/utxobased/engine/PaymentRequest.spec.d.ts +1 -0
  211. package/lib/test/common/utxobased/engine/UtxoWalletTools.spec.d.ts +1 -0
  212. package/lib/test/common/utxobased/engine/engine.fixtures/bitcoinTestnet/tests.d.ts +70 -0
  213. package/lib/test/common/utxobased/engine/engine.fixtures/index.d.ts +65 -0
  214. package/lib/test/common/utxobased/engine/engine.spec.d.ts +1 -0
  215. package/lib/test/common/utxobased/keymanager/coins/altcointestfixtures.d.ts +54 -0
  216. package/lib/test/common/utxobased/keymanager/coins/bitcoincashtransactiontest.spec.d.ts +1 -0
  217. package/lib/test/common/utxobased/keymanager/coins/bitcointransactiontest.spec.d.ts +1 -0
  218. package/lib/test/common/utxobased/keymanager/coins/cashaddr.spec.d.ts +1 -0
  219. package/lib/test/common/utxobased/keymanager/coins/checkdatasig.spec.d.ts +1 -0
  220. package/lib/test/common/utxobased/keymanager/coins/groestlcointransactiontest.spec.d.ts +1 -0
  221. package/lib/test/common/utxobased/keymanager/coins/keymanagertest.spec.d.ts +1 -0
  222. package/lib/test/common/utxobased/network/BlockBook.spec.d.ts +1 -0
  223. package/lib/test/util/objectKeys.d.ts +8 -0
  224. package/lib/test/util/testLog.d.ts +3 -0
  225. package/lib/test/utils.d.ts +10 -0
  226. package/lib/types.js +7 -0
  227. package/lib/util/delay.js +4 -0
  228. package/lib/util/filterUndefined.js +4 -0
  229. package/lib/util/indexAtProtected.js +9 -0
  230. package/lib/util/typeUtil.js +9 -0
  231. package/lib/util/undefinedIfEmptyString.js +2 -0
  232. package/lib/util/unixTime.js +2 -0
  233. package/package.json +101 -0
@@ -0,0 +1,335 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+ var _cleaners = require('cleaners');
12
+
13
+
14
+ /**
15
+ * Websocket Task
16
+ */
17
+
18
+
19
+
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+
28
+
29
+
30
+
31
+
32
+
33
+
34
+
35
+
36
+
37
+
38
+ const asBlockbookAccountUtxo = (
39
+ asAddress = _cleaners.asString
40
+ ) =>
41
+ _cleaners.asObject.call(void 0, {
42
+ txid: _cleaners.asString,
43
+ vout: _cleaners.asNumber,
44
+ value: _cleaners.asString,
45
+ confirmations: _cleaners.asOptional.call(void 0, _cleaners.asNumber),
46
+ coinbase: _cleaners.asOptional.call(void 0, _cleaners.asBoolean),
47
+ height: _cleaners.asOptional.call(void 0, _cleaners.asNumber),
48
+ lockTime: _cleaners.asOptional.call(void 0, _cleaners.asNumber),
49
+ address: _cleaners.asOptional.call(void 0, asAddress),
50
+ path: _cleaners.asOptional.call(void 0, _cleaners.asString)
51
+ }); exports.asBlockbookAccountUtxo = asBlockbookAccountUtxo
52
+
53
+
54
+
55
+
56
+
57
+
58
+
59
+
60
+
61
+
62
+
63
+
64
+
65
+
66
+
67
+
68
+
69
+
70
+
71
+
72
+
73
+
74
+
75
+
76
+
77
+ const asBlockbookTransaction = (
78
+ asAddress = _cleaners.asString
79
+ ) =>
80
+ _cleaners.asObject.call(void 0, {
81
+ txid: _cleaners.asString,
82
+ hex: _cleaners.asString,
83
+ blockHeight: _cleaners.asNumber,
84
+ confirmations: _cleaners.asNumber,
85
+ blockTime: _cleaners.asNumber,
86
+ fees: _cleaners.asString,
87
+ vin: _cleaners.asArray.call(void 0,
88
+ _cleaners.asObject.call(void 0, {
89
+ txid: _cleaners.asString,
90
+ sequence: _cleaners.asOptional.call(void 0, _cleaners.asNumber),
91
+ n: _cleaners.asNumber,
92
+ vout: _cleaners.asOptional.call(void 0, _cleaners.asNumber, -1),
93
+ addresses: _cleaners.asArray.call(void 0, asAddress),
94
+ isAddress: _cleaners.asBoolean,
95
+ value: _cleaners.asString,
96
+ hex: _cleaners.asOptional.call(void 0, _cleaners.asString)
97
+ })
98
+ ),
99
+ vout: _cleaners.asArray.call(void 0,
100
+ _cleaners.asObject.call(void 0, {
101
+ n: _cleaners.asNumber,
102
+ value: _cleaners.asString,
103
+ addresses: _cleaners.asArray.call(void 0, asAddress),
104
+ hex: _cleaners.asOptional.call(void 0, _cleaners.asString)
105
+ })
106
+ )
107
+ }); exports.asBlockbookTransaction = asBlockbookTransaction
108
+
109
+ // ---------------------------------------------------------------------
110
+ // Blockbook API Response Types
111
+ // ---------------------------------------------------------------------
112
+
113
+ /**
114
+ * Error Response
115
+ */
116
+
117
+ const asBlockbookErrorResponse = _cleaners.asObject.call(void 0, {
118
+ error: _cleaners.asObject.call(void 0, {
119
+ message: _cleaners.asString
120
+ })
121
+ }); exports.asBlockbookErrorResponse = asBlockbookErrorResponse
122
+
123
+ /**
124
+ * Blockbook Response Generic
125
+ */
126
+
127
+ const asBlockbookResponse = (asT) => raw => {
128
+ const errResponse = _cleaners.asMaybe.call(void 0, (0, exports.asBlockbookErrorResponse))(raw)
129
+
130
+ if (errResponse != null)
131
+ throw new Error(`Blockbook Error: ${errResponse.error.message}`)
132
+
133
+ return asT(raw)
134
+ }; exports.asBlockbookResponse = asBlockbookResponse
135
+
136
+ // ---------------------------------------------------------------------
137
+ // Blockbook API Messages
138
+ // ---------------------------------------------------------------------
139
+
140
+ /**
141
+ * Ping Message
142
+ */
143
+ const pingMessage = () => {
144
+ return {
145
+ method: 'ping',
146
+ params: undefined,
147
+ cleaner: exports.asBlockbookResponse.call(void 0, exports.asPingResponse)
148
+ }
149
+ }; exports.pingMessage = pingMessage
150
+
151
+ const asPingResponse = _cleaners.asObject.call(void 0, {}); exports.asPingResponse = asPingResponse
152
+
153
+ /**
154
+ * Get Info
155
+ */
156
+ const infoMessage = () => {
157
+ return {
158
+ method: 'getInfo',
159
+ params: {},
160
+ cleaner: exports.asBlockbookResponse.call(void 0, exports.asInfoResponse)
161
+ }
162
+ }; exports.infoMessage = infoMessage
163
+
164
+ const asInfoResponse = _cleaners.asObject.call(void 0, {
165
+ name: _cleaners.asString,
166
+ shortcut: _cleaners.asString,
167
+ decimals: _cleaners.asNumber,
168
+ version: _cleaners.asString,
169
+ bestHeight: _cleaners.asNumber,
170
+ bestHash: _cleaners.asString,
171
+ block0Hash: _cleaners.asString,
172
+ testnet: _cleaners.asBoolean,
173
+ backend: _cleaners.asOptional.call(void 0,
174
+ _cleaners.asObject.call(void 0, {
175
+ version: _cleaners.asString,
176
+ subversion: _cleaners.asString
177
+ })
178
+ )
179
+ }); exports.asInfoResponse = asInfoResponse
180
+
181
+ /**
182
+ * Get Account UTXO
183
+ */
184
+ const addressUtxosMessage = (
185
+ address,
186
+ asAddress = _cleaners.asString
187
+ ) => {
188
+ const wasAddress = _cleaners.uncleaner.call(void 0, asAddress)
189
+ return {
190
+ method: 'getAccountUtxo',
191
+ params: { descriptor: wasAddress(address) },
192
+ cleaner: exports.asBlockbookResponse.call(void 0, exports.asAddressUtxosResponse.call(void 0, asAddress))
193
+ }
194
+ }; exports.addressUtxosMessage = addressUtxosMessage
195
+
196
+ const asAddressUtxosResponse = (
197
+ asAddress = _cleaners.asString
198
+ ) => _cleaners.asArray.call(void 0, exports.asBlockbookAccountUtxo.call(void 0, asAddress)); exports.asAddressUtxosResponse = asAddressUtxosResponse
199
+
200
+ /**
201
+ * Get Transaction
202
+ */
203
+ const transactionMessage = (
204
+ hash,
205
+ asAddress = _cleaners.asString
206
+ ) => ({
207
+ method: 'getTransaction',
208
+ params: { txid: hash },
209
+ cleaner: exports.asBlockbookResponse.call(void 0, exports.asTransactionResponse.call(void 0, asAddress))
210
+ }); exports.transactionMessage = transactionMessage
211
+
212
+ const asTransactionResponse = exports.asBlockbookTransaction; exports.asTransactionResponse = asTransactionResponse
213
+
214
+ /**
215
+ * Send Transaction
216
+ */
217
+ const broadcastTxMessage = (
218
+ transaction
219
+ ) => {
220
+ return {
221
+ method: 'sendTransaction',
222
+ params: { hex: transaction.signedTx },
223
+ cleaner: exports.asBlockbookResponse.call(void 0, exports.asBroadcastTxResponse)
224
+ }
225
+ }; exports.broadcastTxMessage = broadcastTxMessage
226
+
227
+ const asBroadcastTxResponse = _cleaners.asObject.call(void 0, {
228
+ result: _cleaners.asString
229
+ }); exports.asBroadcastTxResponse = asBroadcastTxResponse
230
+
231
+ /**
232
+ * Get Account Info
233
+ */
234
+
235
+
236
+
237
+
238
+
239
+
240
+
241
+ const addressMessage = (
242
+ address,
243
+ asAddress = _cleaners.asString,
244
+ params = {}
245
+ ) => {
246
+ const wasAddress = _cleaners.uncleaner.call(void 0, asAddress)
247
+ return {
248
+ method: 'getAccountInfo',
249
+ params: {
250
+ ...{ details: 'basic', page: 1, pageSize: 100, ...params },
251
+ descriptor: wasAddress(address)
252
+ },
253
+ cleaner: exports.asBlockbookResponse.call(void 0, exports.asAddressResponse.call(void 0, asAddress))
254
+ }
255
+ }; exports.addressMessage = addressMessage
256
+
257
+
258
+
259
+
260
+
261
+
262
+
263
+
264
+
265
+
266
+
267
+
268
+
269
+
270
+ // eslint-disable-next-line @typescript-eslint/explicit-function-return-type
271
+ const asAddressResponse = (asAddress = _cleaners.asString) =>
272
+ _cleaners.asObject.call(void 0, {
273
+ // details: basic
274
+ address: asAddress,
275
+ balance: _cleaners.asString,
276
+ totalReceived: _cleaners.asString,
277
+ totalSent: _cleaners.asString,
278
+ txs: _cleaners.asNumber,
279
+ unconfirmedBalance: _cleaners.asString,
280
+ unconfirmedTxs: _cleaners.asNumber,
281
+ // details: txids
282
+ txids: _cleaners.asOptional.call(void 0, _cleaners.asArray.call(void 0, _cleaners.asString), []),
283
+ // details: txs
284
+ transactions: _cleaners.asOptional.call(void 0, _cleaners.asArray.call(void 0, exports.asBlockbookTransaction.call(void 0, asAddress)), []),
285
+ // Pagination (included with txids and txs requests)
286
+ page: _cleaners.asOptional.call(void 0, _cleaners.asNumber, NaN),
287
+ totalPages: _cleaners.asOptional.call(void 0, _cleaners.asNumber, NaN),
288
+ itemsOnPage: _cleaners.asOptional.call(void 0, _cleaners.asNumber, NaN)
289
+ }); exports.asAddressResponse = asAddressResponse
290
+
291
+ /**
292
+ * Subscribe New Block
293
+ */
294
+ const subscribeNewBlockMessage = () => {
295
+ return {
296
+ method: 'subscribeNewBlock',
297
+ params: {},
298
+ cleaner: exports.asBlockbookResponse.call(void 0, exports.asSubscribeNewBlockResponse)
299
+ }
300
+ }; exports.subscribeNewBlockMessage = subscribeNewBlockMessage
301
+
302
+
303
+
304
+ const asSubscribeNewBlockResponse = _cleaners.asObject.call(void 0, {
305
+ height: _cleaners.asNumber,
306
+ hash: _cleaners.asString
307
+ }); exports.asSubscribeNewBlockResponse = asSubscribeNewBlockResponse
308
+
309
+ /**
310
+ * Subscribe Address
311
+ */
312
+ const subscribeAddressesMessage = (
313
+ addresses,
314
+ asAddress = _cleaners.asString
315
+ ) => {
316
+ const wasAddress = _cleaners.uncleaner.call(void 0, asAddress)
317
+ return {
318
+ method: 'subscribeAddresses',
319
+ params: {
320
+ addresses: addresses.map(wasAddress)
321
+ },
322
+ cleaner: exports.asBlockbookResponse.call(void 0, exports.asSubscribeAddressResponse.call(void 0, asAddress))
323
+ }
324
+ }; exports.subscribeAddressesMessage = subscribeAddressesMessage
325
+
326
+
327
+
328
+
329
+ const asSubscribeAddressResponse = (
330
+ asAddress = _cleaners.asString
331
+ ) =>
332
+ _cleaners.asObject.call(void 0, {
333
+ address: asAddress,
334
+ tx: exports.asBlockbookTransaction.call(void 0, asAddress)
335
+ }); exports.asSubscribeAddressResponse = asSubscribeAddressResponse
@@ -0,0 +1,29 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});// Wrapper class for a Promise with external resolve/reject functions
2
+ // Inspired by https://stackoverflow.com/questions/26150232/resolve-javascript-promise-outside-function-scope
3
+
4
+ class Deferred {constructor() { Deferred.prototype.__init.call(this);Deferred.prototype.__init2.call(this);Deferred.prototype.__init3.call(this); }
5
+ __init() {this._resolve = () => {
6
+ return
7
+ }}
8
+
9
+ __init2() {this._reject = () => {
10
+ return
11
+ }}
12
+
13
+ __init3() {this._promise = new Promise((resolve, reject) => {
14
+ this._reject = reject
15
+ this._resolve = resolve
16
+ })}
17
+
18
+ get promise() {
19
+ return this._promise
20
+ }
21
+
22
+ resolve(value) {
23
+ this._resolve(value)
24
+ }
25
+
26
+ reject(reason) {
27
+ this._reject(reason)
28
+ }
29
+ } exports.default = Deferred;
@@ -0,0 +1,35 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _events = require('events');
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+
28
+
29
+ class SocketEmitter extends _events.EventEmitter {} exports.SocketEmitter = SocketEmitter;
30
+
31
+ var SocketEvent; (function (SocketEvent) {
32
+ const CONNECTION_OPEN = 'connection:open'; SocketEvent["CONNECTION_OPEN"] = CONNECTION_OPEN;
33
+ const CONNECTION_CLOSE = 'connection:close'; SocketEvent["CONNECTION_CLOSE"] = CONNECTION_CLOSE;
34
+ const CONNECTION_TIMER = 'connection:timer'; SocketEvent["CONNECTION_TIMER"] = CONNECTION_TIMER;
35
+ })(SocketEvent || (exports.SocketEvent = SocketEvent = {}));