@bsv/wallet-toolbox 1.3.21 → 1.3.22

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 (502) hide show
  1. package/mobile/out/src/CWIStyleWalletManager.d.ts +437 -0
  2. package/mobile/out/src/CWIStyleWalletManager.d.ts.map +1 -0
  3. package/mobile/out/src/CWIStyleWalletManager.js +1255 -0
  4. package/mobile/out/src/CWIStyleWalletManager.js.map +1 -0
  5. package/mobile/out/src/SetupClient.d.ts +126 -0
  6. package/mobile/out/src/SetupClient.d.ts.map +1 -0
  7. package/mobile/out/src/SetupClient.js +220 -0
  8. package/mobile/out/src/SetupClient.js.map +1 -0
  9. package/mobile/out/src/SetupWallet.d.ts +100 -0
  10. package/mobile/out/src/SetupWallet.d.ts.map +1 -0
  11. package/mobile/out/src/SetupWallet.js +3 -0
  12. package/mobile/out/src/SetupWallet.js.map +1 -0
  13. package/mobile/out/src/SimpleWalletManager.d.ts +169 -0
  14. package/mobile/out/src/SimpleWalletManager.d.ts.map +1 -0
  15. package/mobile/out/src/SimpleWalletManager.js +315 -0
  16. package/mobile/out/src/SimpleWalletManager.js.map +1 -0
  17. package/mobile/out/src/Wallet.d.ts +177 -0
  18. package/mobile/out/src/Wallet.d.ts.map +1 -0
  19. package/mobile/out/src/Wallet.js +742 -0
  20. package/mobile/out/src/Wallet.js.map +1 -0
  21. package/mobile/out/src/WalletAuthenticationManager.d.ts +33 -0
  22. package/mobile/out/src/WalletAuthenticationManager.d.ts.map +1 -0
  23. package/mobile/out/src/WalletAuthenticationManager.js +113 -0
  24. package/mobile/out/src/WalletAuthenticationManager.js.map +1 -0
  25. package/mobile/out/src/WalletPermissionsManager.d.ts +598 -0
  26. package/mobile/out/src/WalletPermissionsManager.d.ts.map +1 -0
  27. package/mobile/out/src/WalletPermissionsManager.js +1868 -0
  28. package/mobile/out/src/WalletPermissionsManager.js.map +1 -0
  29. package/mobile/out/src/WalletSettingsManager.d.ts +52 -0
  30. package/mobile/out/src/WalletSettingsManager.d.ts.map +1 -0
  31. package/mobile/out/src/WalletSettingsManager.js +82 -0
  32. package/mobile/out/src/WalletSettingsManager.js.map +1 -0
  33. package/mobile/out/src/index.client.d.ts +19 -0
  34. package/mobile/out/src/index.client.d.ts.map +1 -0
  35. package/mobile/out/src/index.client.js +58 -0
  36. package/mobile/out/src/index.client.js.map +1 -0
  37. package/mobile/out/src/index.mobile.d.ts +19 -0
  38. package/mobile/out/src/index.mobile.d.ts.map +1 -0
  39. package/mobile/out/src/index.mobile.js +58 -0
  40. package/mobile/out/src/index.mobile.js.map +1 -0
  41. package/mobile/out/src/monitor/Monitor.d.ts +91 -0
  42. package/mobile/out/src/monitor/Monitor.d.ts.map +1 -0
  43. package/mobile/out/src/monitor/Monitor.js +298 -0
  44. package/mobile/out/src/monitor/Monitor.js.map +1 -0
  45. package/mobile/out/src/monitor/tasks/TaskCheckForProofs.d.ts +53 -0
  46. package/mobile/out/src/monitor/tasks/TaskCheckForProofs.d.ts.map +1 -0
  47. package/mobile/out/src/monitor/tasks/TaskCheckForProofs.js +194 -0
  48. package/mobile/out/src/monitor/tasks/TaskCheckForProofs.js.map +1 -0
  49. package/mobile/out/src/monitor/tasks/TaskCheckNoSends.d.ts +33 -0
  50. package/mobile/out/src/monitor/tasks/TaskCheckNoSends.d.ts.map +1 -0
  51. package/mobile/out/src/monitor/tasks/TaskCheckNoSends.js +65 -0
  52. package/mobile/out/src/monitor/tasks/TaskCheckNoSends.js.map +1 -0
  53. package/mobile/out/src/monitor/tasks/TaskClock.d.ts +14 -0
  54. package/mobile/out/src/monitor/tasks/TaskClock.d.ts.map +1 -0
  55. package/mobile/out/src/monitor/tasks/TaskClock.js +27 -0
  56. package/mobile/out/src/monitor/tasks/TaskClock.js.map +1 -0
  57. package/mobile/out/src/monitor/tasks/TaskFailAbandoned.d.ts +20 -0
  58. package/mobile/out/src/monitor/tasks/TaskFailAbandoned.d.ts.map +1 -0
  59. package/mobile/out/src/monitor/tasks/TaskFailAbandoned.js +52 -0
  60. package/mobile/out/src/monitor/tasks/TaskFailAbandoned.js.map +1 -0
  61. package/mobile/out/src/monitor/tasks/TaskNewHeader.d.ts +15 -0
  62. package/mobile/out/src/monitor/tasks/TaskNewHeader.d.ts.map +1 -0
  63. package/mobile/out/src/monitor/tasks/TaskNewHeader.js +43 -0
  64. package/mobile/out/src/monitor/tasks/TaskNewHeader.js.map +1 -0
  65. package/mobile/out/src/monitor/tasks/TaskPurge.d.ts +45 -0
  66. package/mobile/out/src/monitor/tasks/TaskPurge.d.ts.map +1 -0
  67. package/mobile/out/src/monitor/tasks/TaskPurge.js +34 -0
  68. package/mobile/out/src/monitor/tasks/TaskPurge.js.map +1 -0
  69. package/mobile/out/src/monitor/tasks/TaskReviewStatus.d.ts +26 -0
  70. package/mobile/out/src/monitor/tasks/TaskReviewStatus.d.ts.map +1 -0
  71. package/mobile/out/src/monitor/tasks/TaskReviewStatus.js +43 -0
  72. package/mobile/out/src/monitor/tasks/TaskReviewStatus.js.map +1 -0
  73. package/mobile/out/src/monitor/tasks/TaskSendWaiting.d.ts +35 -0
  74. package/mobile/out/src/monitor/tasks/TaskSendWaiting.d.ts.map +1 -0
  75. package/mobile/out/src/monitor/tasks/TaskSendWaiting.js +107 -0
  76. package/mobile/out/src/monitor/tasks/TaskSendWaiting.js.map +1 -0
  77. package/mobile/out/src/monitor/tasks/TaskSyncWhenIdle.d.ts +12 -0
  78. package/mobile/out/src/monitor/tasks/TaskSyncWhenIdle.d.ts.map +1 -0
  79. package/mobile/out/src/monitor/tasks/TaskSyncWhenIdle.js +22 -0
  80. package/mobile/out/src/monitor/tasks/TaskSyncWhenIdle.js.map +1 -0
  81. package/mobile/out/src/monitor/tasks/TaskUnFail.d.ts +41 -0
  82. package/mobile/out/src/monitor/tasks/TaskUnFail.d.ts.map +1 -0
  83. package/mobile/out/src/monitor/tasks/TaskUnFail.js +144 -0
  84. package/mobile/out/src/monitor/tasks/TaskUnFail.js.map +1 -0
  85. package/mobile/out/src/monitor/tasks/WalletMonitorTask.d.ts +40 -0
  86. package/mobile/out/src/monitor/tasks/WalletMonitorTask.d.ts.map +1 -0
  87. package/mobile/out/src/monitor/tasks/WalletMonitorTask.js +37 -0
  88. package/mobile/out/src/monitor/tasks/WalletMonitorTask.js.map +1 -0
  89. package/mobile/out/src/sdk/CertOpsWallet.d.ts +7 -0
  90. package/mobile/out/src/sdk/CertOpsWallet.d.ts.map +1 -0
  91. package/mobile/out/src/sdk/CertOpsWallet.js +3 -0
  92. package/mobile/out/src/sdk/CertOpsWallet.js.map +1 -0
  93. package/mobile/out/src/sdk/PrivilegedKeyManager.d.ts +125 -0
  94. package/mobile/out/src/sdk/PrivilegedKeyManager.d.ts.map +1 -0
  95. package/mobile/out/src/sdk/PrivilegedKeyManager.js +293 -0
  96. package/mobile/out/src/sdk/PrivilegedKeyManager.js.map +1 -0
  97. package/mobile/out/src/sdk/WERR_errors.d.ts +115 -0
  98. package/mobile/out/src/sdk/WERR_errors.d.ts.map +1 -0
  99. package/mobile/out/src/sdk/WERR_errors.js +158 -0
  100. package/mobile/out/src/sdk/WERR_errors.js.map +1 -0
  101. package/mobile/out/src/sdk/WalletError.d.ts +44 -0
  102. package/mobile/out/src/sdk/WalletError.d.ts.map +1 -0
  103. package/mobile/out/src/sdk/WalletError.js +118 -0
  104. package/mobile/out/src/sdk/WalletError.js.map +1 -0
  105. package/mobile/out/src/sdk/WalletServices.interfaces.d.ts +430 -0
  106. package/mobile/out/src/sdk/WalletServices.interfaces.d.ts.map +1 -0
  107. package/mobile/out/src/sdk/WalletServices.interfaces.js +3 -0
  108. package/mobile/out/src/sdk/WalletServices.interfaces.js.map +1 -0
  109. package/mobile/out/src/sdk/WalletSigner.interfaces.d.ts +10 -0
  110. package/mobile/out/src/sdk/WalletSigner.interfaces.d.ts.map +1 -0
  111. package/mobile/out/src/sdk/WalletSigner.interfaces.js +3 -0
  112. package/mobile/out/src/sdk/WalletSigner.interfaces.js.map +1 -0
  113. package/mobile/out/src/sdk/WalletStorage.interfaces.d.ts +452 -0
  114. package/mobile/out/src/sdk/WalletStorage.interfaces.d.ts.map +1 -0
  115. package/mobile/out/src/sdk/WalletStorage.interfaces.js +3 -0
  116. package/mobile/out/src/sdk/WalletStorage.interfaces.js.map +1 -0
  117. package/mobile/out/src/sdk/index.d.ts +10 -0
  118. package/mobile/out/src/sdk/index.d.ts.map +1 -0
  119. package/mobile/out/src/sdk/index.js +26 -0
  120. package/mobile/out/src/sdk/index.js.map +1 -0
  121. package/mobile/out/src/sdk/types.d.ts +158 -0
  122. package/mobile/out/src/sdk/types.d.ts.map +1 -0
  123. package/mobile/out/src/sdk/types.js +90 -0
  124. package/mobile/out/src/sdk/types.js.map +1 -0
  125. package/mobile/out/src/sdk/validationHelpers.d.ts +301 -0
  126. package/mobile/out/src/sdk/validationHelpers.d.ts.map +1 -0
  127. package/mobile/out/src/sdk/validationHelpers.js +629 -0
  128. package/mobile/out/src/sdk/validationHelpers.js.map +1 -0
  129. package/mobile/out/src/services/ServiceCollection.d.ts +25 -0
  130. package/mobile/out/src/services/ServiceCollection.d.ts.map +1 -0
  131. package/mobile/out/src/services/ServiceCollection.js +43 -0
  132. package/mobile/out/src/services/ServiceCollection.js.map +1 -0
  133. package/mobile/out/src/services/Services.d.ts +67 -0
  134. package/mobile/out/src/services/Services.d.ts.map +1 -0
  135. package/mobile/out/src/services/Services.js +391 -0
  136. package/mobile/out/src/services/Services.js.map +1 -0
  137. package/mobile/out/src/services/chaintracker/ChaintracksChainTracker.d.ts +15 -0
  138. package/mobile/out/src/services/chaintracker/ChaintracksChainTracker.d.ts.map +1 -0
  139. package/mobile/out/src/services/chaintracker/ChaintracksChainTracker.js +51 -0
  140. package/mobile/out/src/services/chaintracker/ChaintracksChainTracker.js.map +1 -0
  141. package/mobile/out/src/services/chaintracker/chaintracks/BlockHeaderApi.d.ts +98 -0
  142. package/mobile/out/src/services/chaintracker/chaintracks/BlockHeaderApi.d.ts.map +1 -0
  143. package/mobile/out/src/services/chaintracker/chaintracks/BlockHeaderApi.js +38 -0
  144. package/mobile/out/src/services/chaintracker/chaintracks/BlockHeaderApi.js.map +1 -0
  145. package/mobile/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts +36 -0
  146. package/mobile/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts.map +1 -0
  147. package/mobile/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js +128 -0
  148. package/mobile/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js.map +1 -0
  149. package/mobile/out/src/services/chaintracker/chaintracks/index.d.ts +3 -0
  150. package/mobile/out/src/services/chaintracker/chaintracks/index.d.ts.map +1 -0
  151. package/mobile/out/src/services/chaintracker/chaintracks/index.js +19 -0
  152. package/mobile/out/src/services/chaintracker/chaintracks/index.js.map +1 -0
  153. package/mobile/out/src/services/chaintracker/index.d.ts +3 -0
  154. package/mobile/out/src/services/chaintracker/index.d.ts.map +1 -0
  155. package/mobile/out/src/services/chaintracker/index.js +19 -0
  156. package/mobile/out/src/services/chaintracker/index.js.map +1 -0
  157. package/mobile/out/src/services/createDefaultWalletServicesOptions.d.ts +4 -0
  158. package/mobile/out/src/services/createDefaultWalletServicesOptions.d.ts.map +1 -0
  159. package/mobile/out/src/services/createDefaultWalletServicesOptions.js +46 -0
  160. package/mobile/out/src/services/createDefaultWalletServicesOptions.js.map +1 -0
  161. package/mobile/out/src/services/index.d.ts +2 -0
  162. package/mobile/out/src/services/index.d.ts.map +1 -0
  163. package/mobile/out/src/services/index.js +18 -0
  164. package/mobile/out/src/services/index.js.map +1 -0
  165. package/mobile/out/src/services/providers/ARC.d.ts +91 -0
  166. package/mobile/out/src/services/providers/ARC.d.ts.map +1 -0
  167. package/mobile/out/src/services/providers/ARC.js +267 -0
  168. package/mobile/out/src/services/providers/ARC.js.map +1 -0
  169. package/mobile/out/src/services/providers/Bitails.d.ts +49 -0
  170. package/mobile/out/src/services/providers/Bitails.d.ts.map +1 -0
  171. package/mobile/out/src/services/providers/Bitails.js +222 -0
  172. package/mobile/out/src/services/providers/Bitails.js.map +1 -0
  173. package/mobile/out/src/services/providers/SdkWhatsOnChain.d.ts +21 -0
  174. package/mobile/out/src/services/providers/SdkWhatsOnChain.d.ts.map +1 -0
  175. package/mobile/out/src/services/providers/SdkWhatsOnChain.js +67 -0
  176. package/mobile/out/src/services/providers/SdkWhatsOnChain.js.map +1 -0
  177. package/mobile/out/src/services/providers/WhatsOnChain.d.ts +71 -0
  178. package/mobile/out/src/services/providers/WhatsOnChain.d.ts.map +1 -0
  179. package/mobile/out/src/services/providers/WhatsOnChain.js +582 -0
  180. package/mobile/out/src/services/providers/WhatsOnChain.js.map +1 -0
  181. package/mobile/out/src/services/providers/echangeRates.d.ts +12 -0
  182. package/mobile/out/src/services/providers/echangeRates.d.ts.map +1 -0
  183. package/mobile/out/src/services/providers/echangeRates.js +237 -0
  184. package/mobile/out/src/services/providers/echangeRates.js.map +1 -0
  185. package/mobile/out/src/services/providers/getBeefForTxid.d.ts +4 -0
  186. package/mobile/out/src/services/providers/getBeefForTxid.d.ts.map +1 -0
  187. package/mobile/out/src/services/providers/getBeefForTxid.js +286 -0
  188. package/mobile/out/src/services/providers/getBeefForTxid.js.map +1 -0
  189. package/mobile/out/src/signer/WalletSigner.d.ts +11 -0
  190. package/mobile/out/src/signer/WalletSigner.d.ts.map +1 -0
  191. package/mobile/out/src/signer/WalletSigner.js +13 -0
  192. package/mobile/out/src/signer/WalletSigner.js.map +1 -0
  193. package/mobile/out/src/signer/methods/acquireDirectCertificate.d.ts +4 -0
  194. package/mobile/out/src/signer/methods/acquireDirectCertificate.d.ts.map +1 -0
  195. package/mobile/out/src/signer/methods/acquireDirectCertificate.js +45 -0
  196. package/mobile/out/src/signer/methods/acquireDirectCertificate.js.map +1 -0
  197. package/mobile/out/src/signer/methods/buildSignableTransaction.d.ts +10 -0
  198. package/mobile/out/src/signer/methods/buildSignableTransaction.d.ts.map +1 -0
  199. package/mobile/out/src/signer/methods/buildSignableTransaction.js +126 -0
  200. package/mobile/out/src/signer/methods/buildSignableTransaction.js.map +1 -0
  201. package/mobile/out/src/signer/methods/createAction.d.ts +20 -0
  202. package/mobile/out/src/signer/methods/createAction.d.ts.map +1 -0
  203. package/mobile/out/src/signer/methods/createAction.js +160 -0
  204. package/mobile/out/src/signer/methods/createAction.js.map +1 -0
  205. package/mobile/out/src/signer/methods/internalizeAction.d.ts +31 -0
  206. package/mobile/out/src/signer/methods/internalizeAction.d.ts.map +1 -0
  207. package/mobile/out/src/signer/methods/internalizeAction.js +95 -0
  208. package/mobile/out/src/signer/methods/internalizeAction.js.map +1 -0
  209. package/mobile/out/src/signer/methods/proveCertificate.d.ts +4 -0
  210. package/mobile/out/src/signer/methods/proveCertificate.d.ts.map +1 -0
  211. package/mobile/out/src/signer/methods/proveCertificate.js +29 -0
  212. package/mobile/out/src/signer/methods/proveCertificate.js.map +1 -0
  213. package/mobile/out/src/signer/methods/signAction.d.ts +13 -0
  214. package/mobile/out/src/signer/methods/signAction.d.ts.map +1 -0
  215. package/mobile/out/src/signer/methods/signAction.js +89 -0
  216. package/mobile/out/src/signer/methods/signAction.js.map +1 -0
  217. package/mobile/out/src/storage/StorageIdb.d.ts +208 -0
  218. package/mobile/out/src/storage/StorageIdb.d.ts.map +1 -0
  219. package/mobile/out/src/storage/StorageIdb.js +2296 -0
  220. package/mobile/out/src/storage/StorageIdb.js.map +1 -0
  221. package/mobile/out/src/storage/StorageProvider.d.ts +209 -0
  222. package/mobile/out/src/storage/StorageProvider.d.ts.map +1 -0
  223. package/mobile/out/src/storage/StorageProvider.js +550 -0
  224. package/mobile/out/src/storage/StorageProvider.js.map +1 -0
  225. package/mobile/out/src/storage/StorageReader.d.ts +76 -0
  226. package/mobile/out/src/storage/StorageReader.d.ts.map +1 -0
  227. package/mobile/out/src/storage/StorageReader.js +129 -0
  228. package/mobile/out/src/storage/StorageReader.js.map +1 -0
  229. package/mobile/out/src/storage/StorageReaderWriter.d.ts +87 -0
  230. package/mobile/out/src/storage/StorageReaderWriter.d.ts.map +1 -0
  231. package/mobile/out/src/storage/StorageReaderWriter.js +338 -0
  232. package/mobile/out/src/storage/StorageReaderWriter.js.map +1 -0
  233. package/mobile/out/src/storage/StorageSyncReader.d.ts +17 -0
  234. package/mobile/out/src/storage/StorageSyncReader.d.ts.map +1 -0
  235. package/mobile/out/src/storage/StorageSyncReader.js +38 -0
  236. package/mobile/out/src/storage/StorageSyncReader.js.map +1 -0
  237. package/mobile/out/src/storage/WalletStorageManager.d.ts +184 -0
  238. package/mobile/out/src/storage/WalletStorageManager.d.ts.map +1 -0
  239. package/mobile/out/src/storage/WalletStorageManager.js +665 -0
  240. package/mobile/out/src/storage/WalletStorageManager.js.map +1 -0
  241. package/mobile/out/src/storage/index.client.d.ts +8 -0
  242. package/mobile/out/src/storage/index.client.d.ts.map +1 -0
  243. package/mobile/out/src/storage/index.client.js +24 -0
  244. package/mobile/out/src/storage/index.client.js.map +1 -0
  245. package/mobile/out/src/storage/index.mobile.d.ts +7 -0
  246. package/mobile/out/src/storage/index.mobile.d.ts.map +1 -0
  247. package/mobile/out/src/storage/index.mobile.js +23 -0
  248. package/mobile/out/src/storage/index.mobile.js.map +1 -0
  249. package/mobile/out/src/storage/methods/ListActionsSpecOp.d.ts +16 -0
  250. package/mobile/out/src/storage/methods/ListActionsSpecOp.d.ts.map +1 -0
  251. package/mobile/out/src/storage/methods/ListActionsSpecOp.js +40 -0
  252. package/mobile/out/src/storage/methods/ListActionsSpecOp.js.map +1 -0
  253. package/mobile/out/src/storage/methods/ListOutputsSpecOp.d.ts +26 -0
  254. package/mobile/out/src/storage/methods/ListOutputsSpecOp.d.ts.map +1 -0
  255. package/mobile/out/src/storage/methods/ListOutputsSpecOp.js +71 -0
  256. package/mobile/out/src/storage/methods/ListOutputsSpecOp.js.map +1 -0
  257. package/mobile/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts +41 -0
  258. package/mobile/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts.map +1 -0
  259. package/mobile/out/src/storage/methods/attemptToPostReqsToNetwork.js +320 -0
  260. package/mobile/out/src/storage/methods/attemptToPostReqsToNetwork.js.map +1 -0
  261. package/mobile/out/src/storage/methods/createAction.d.ts +24 -0
  262. package/mobile/out/src/storage/methods/createAction.d.ts.map +1 -0
  263. package/mobile/out/src/storage/methods/createAction.js +705 -0
  264. package/mobile/out/src/storage/methods/createAction.js.map +1 -0
  265. package/mobile/out/src/storage/methods/generateChange.d.ts +119 -0
  266. package/mobile/out/src/storage/methods/generateChange.d.ts.map +1 -0
  267. package/mobile/out/src/storage/methods/generateChange.js +448 -0
  268. package/mobile/out/src/storage/methods/generateChange.js.map +1 -0
  269. package/mobile/out/src/storage/methods/getBeefForTransaction.d.ts +22 -0
  270. package/mobile/out/src/storage/methods/getBeefForTransaction.d.ts.map +1 -0
  271. package/mobile/out/src/storage/methods/getBeefForTransaction.js +92 -0
  272. package/mobile/out/src/storage/methods/getBeefForTransaction.js.map +1 -0
  273. package/mobile/out/src/storage/methods/getSyncChunk.d.ts +10 -0
  274. package/mobile/out/src/storage/methods/getSyncChunk.d.ts.map +1 -0
  275. package/mobile/out/src/storage/methods/getSyncChunk.js +271 -0
  276. package/mobile/out/src/storage/methods/getSyncChunk.js.map +1 -0
  277. package/mobile/out/src/storage/methods/internalizeAction.d.ts +38 -0
  278. package/mobile/out/src/storage/methods/internalizeAction.d.ts.map +1 -0
  279. package/mobile/out/src/storage/methods/internalizeAction.js +371 -0
  280. package/mobile/out/src/storage/methods/internalizeAction.js.map +1 -0
  281. package/mobile/out/src/storage/methods/listActionsIdb.d.ts +5 -0
  282. package/mobile/out/src/storage/methods/listActionsIdb.d.ts.map +1 -0
  283. package/mobile/out/src/storage/methods/listActionsIdb.js +155 -0
  284. package/mobile/out/src/storage/methods/listActionsIdb.js.map +1 -0
  285. package/mobile/out/src/storage/methods/listCertificates.d.ts +5 -0
  286. package/mobile/out/src/storage/methods/listCertificates.d.ts.map +1 -0
  287. package/mobile/out/src/storage/methods/listCertificates.js +68 -0
  288. package/mobile/out/src/storage/methods/listCertificates.js.map +1 -0
  289. package/mobile/out/src/storage/methods/listOutputsIdb.d.ts +5 -0
  290. package/mobile/out/src/storage/methods/listOutputsIdb.d.ts.map +1 -0
  291. package/mobile/out/src/storage/methods/listOutputsIdb.js +181 -0
  292. package/mobile/out/src/storage/methods/listOutputsIdb.js.map +1 -0
  293. package/mobile/out/src/storage/methods/processAction.d.ts +35 -0
  294. package/mobile/out/src/storage/methods/processAction.d.ts.map +1 -0
  295. package/mobile/out/src/storage/methods/processAction.js +311 -0
  296. package/mobile/out/src/storage/methods/processAction.js.map +1 -0
  297. package/mobile/out/src/storage/methods/purgeDataIdb.d.ts +4 -0
  298. package/mobile/out/src/storage/methods/purgeDataIdb.d.ts.map +1 -0
  299. package/mobile/out/src/storage/methods/purgeDataIdb.js +9 -0
  300. package/mobile/out/src/storage/methods/purgeDataIdb.js.map +1 -0
  301. package/mobile/out/src/storage/methods/reviewStatusIdb.d.ts +20 -0
  302. package/mobile/out/src/storage/methods/reviewStatusIdb.d.ts.map +1 -0
  303. package/mobile/out/src/storage/methods/reviewStatusIdb.js +35 -0
  304. package/mobile/out/src/storage/methods/reviewStatusIdb.js.map +1 -0
  305. package/mobile/out/src/storage/remoting/StorageClient.d.ts +283 -0
  306. package/mobile/out/src/storage/remoting/StorageClient.d.ts.map +1 -0
  307. package/mobile/out/src/storage/remoting/StorageClient.js +477 -0
  308. package/mobile/out/src/storage/remoting/StorageClient.js.map +1 -0
  309. package/mobile/out/src/storage/schema/StorageIdbSchema.d.ts +133 -0
  310. package/mobile/out/src/storage/schema/StorageIdbSchema.d.ts.map +1 -0
  311. package/mobile/out/src/storage/schema/StorageIdbSchema.js +3 -0
  312. package/mobile/out/src/storage/schema/StorageIdbSchema.js.map +1 -0
  313. package/mobile/out/src/storage/schema/entities/EntityBase.d.ts +105 -0
  314. package/mobile/out/src/storage/schema/entities/EntityBase.d.ts.map +1 -0
  315. package/mobile/out/src/storage/schema/entities/EntityBase.js +100 -0
  316. package/mobile/out/src/storage/schema/entities/EntityBase.js.map +1 -0
  317. package/mobile/out/src/storage/schema/entities/EntityCertificate.d.ts +43 -0
  318. package/mobile/out/src/storage/schema/entities/EntityCertificate.d.ts.map +1 -0
  319. package/mobile/out/src/storage/schema/entities/EntityCertificate.js +162 -0
  320. package/mobile/out/src/storage/schema/entities/EntityCertificate.js.map +1 -0
  321. package/mobile/out/src/storage/schema/entities/EntityCertificateField.d.ts +32 -0
  322. package/mobile/out/src/storage/schema/entities/EntityCertificateField.d.ts.map +1 -0
  323. package/mobile/out/src/storage/schema/entities/EntityCertificateField.js +111 -0
  324. package/mobile/out/src/storage/schema/entities/EntityCertificateField.js.map +1 -0
  325. package/mobile/out/src/storage/schema/entities/EntityCommission.d.ts +37 -0
  326. package/mobile/out/src/storage/schema/entities/EntityCommission.d.ts.map +1 -0
  327. package/mobile/out/src/storage/schema/entities/EntityCommission.js +127 -0
  328. package/mobile/out/src/storage/schema/entities/EntityCommission.js.map +1 -0
  329. package/mobile/out/src/storage/schema/entities/EntityOutput.d.ts +67 -0
  330. package/mobile/out/src/storage/schema/entities/EntityOutput.d.ts.map +1 -0
  331. package/mobile/out/src/storage/schema/entities/EntityOutput.js +264 -0
  332. package/mobile/out/src/storage/schema/entities/EntityOutput.js.map +1 -0
  333. package/mobile/out/src/storage/schema/entities/EntityOutputBasket.d.ts +35 -0
  334. package/mobile/out/src/storage/schema/entities/EntityOutputBasket.d.ts.map +1 -0
  335. package/mobile/out/src/storage/schema/entities/EntityOutputBasket.js +133 -0
  336. package/mobile/out/src/storage/schema/entities/EntityOutputBasket.js.map +1 -0
  337. package/mobile/out/src/storage/schema/entities/EntityOutputTag.d.ts +31 -0
  338. package/mobile/out/src/storage/schema/entities/EntityOutputTag.d.ts.map +1 -0
  339. package/mobile/out/src/storage/schema/entities/EntityOutputTag.js +104 -0
  340. package/mobile/out/src/storage/schema/entities/EntityOutputTag.js.map +1 -0
  341. package/mobile/out/src/storage/schema/entities/EntityOutputTagMap.d.ts +28 -0
  342. package/mobile/out/src/storage/schema/entities/EntityOutputTagMap.d.ts.map +1 -0
  343. package/mobile/out/src/storage/schema/entities/EntityOutputTagMap.js +97 -0
  344. package/mobile/out/src/storage/schema/entities/EntityOutputTagMap.js.map +1 -0
  345. package/mobile/out/src/storage/schema/entities/EntityProvenTx.d.ts +84 -0
  346. package/mobile/out/src/storage/schema/entities/EntityProvenTx.d.ts.map +1 -0
  347. package/mobile/out/src/storage/schema/entities/EntityProvenTx.js +276 -0
  348. package/mobile/out/src/storage/schema/entities/EntityProvenTx.js.map +1 -0
  349. package/mobile/out/src/storage/schema/entities/EntityProvenTxReq.d.ts +135 -0
  350. package/mobile/out/src/storage/schema/entities/EntityProvenTxReq.d.ts.map +1 -0
  351. package/mobile/out/src/storage/schema/entities/EntityProvenTxReq.js +522 -0
  352. package/mobile/out/src/storage/schema/entities/EntityProvenTxReq.js.map +1 -0
  353. package/mobile/out/src/storage/schema/entities/EntitySyncState.d.ts +67 -0
  354. package/mobile/out/src/storage/schema/entities/EntitySyncState.d.ts.map +1 -0
  355. package/mobile/out/src/storage/schema/entities/EntitySyncState.js +319 -0
  356. package/mobile/out/src/storage/schema/entities/EntitySyncState.js.map +1 -0
  357. package/mobile/out/src/storage/schema/entities/EntityTransaction.d.ts +67 -0
  358. package/mobile/out/src/storage/schema/entities/EntityTransaction.d.ts.map +1 -0
  359. package/mobile/out/src/storage/schema/entities/EntityTransaction.js +255 -0
  360. package/mobile/out/src/storage/schema/entities/EntityTransaction.js.map +1 -0
  361. package/mobile/out/src/storage/schema/entities/EntityTxLabel.d.ts +31 -0
  362. package/mobile/out/src/storage/schema/entities/EntityTxLabel.d.ts.map +1 -0
  363. package/mobile/out/src/storage/schema/entities/EntityTxLabel.js +104 -0
  364. package/mobile/out/src/storage/schema/entities/EntityTxLabel.js.map +1 -0
  365. package/mobile/out/src/storage/schema/entities/EntityTxLabelMap.d.ts +28 -0
  366. package/mobile/out/src/storage/schema/entities/EntityTxLabelMap.d.ts.map +1 -0
  367. package/mobile/out/src/storage/schema/entities/EntityTxLabelMap.js +97 -0
  368. package/mobile/out/src/storage/schema/entities/EntityTxLabelMap.js.map +1 -0
  369. package/mobile/out/src/storage/schema/entities/EntityUser.d.ts +29 -0
  370. package/mobile/out/src/storage/schema/entities/EntityUser.d.ts.map +1 -0
  371. package/mobile/out/src/storage/schema/entities/EntityUser.js +98 -0
  372. package/mobile/out/src/storage/schema/entities/EntityUser.js.map +1 -0
  373. package/mobile/out/src/storage/schema/entities/MergeEntity.d.ts +33 -0
  374. package/mobile/out/src/storage/schema/entities/MergeEntity.d.ts.map +1 -0
  375. package/mobile/out/src/storage/schema/entities/MergeEntity.js +62 -0
  376. package/mobile/out/src/storage/schema/entities/MergeEntity.js.map +1 -0
  377. package/mobile/out/src/storage/schema/entities/index.d.ts +17 -0
  378. package/mobile/out/src/storage/schema/entities/index.d.ts.map +1 -0
  379. package/mobile/out/src/storage/schema/entities/index.js +33 -0
  380. package/mobile/out/src/storage/schema/entities/index.js.map +1 -0
  381. package/mobile/out/src/storage/schema/tables/TableCertificate.d.ts +20 -0
  382. package/mobile/out/src/storage/schema/tables/TableCertificate.d.ts.map +1 -0
  383. package/mobile/out/src/storage/schema/tables/TableCertificate.js +3 -0
  384. package/mobile/out/src/storage/schema/tables/TableCertificate.js.map +1 -0
  385. package/mobile/out/src/storage/schema/tables/TableCertificateField.d.ts +12 -0
  386. package/mobile/out/src/storage/schema/tables/TableCertificateField.d.ts.map +1 -0
  387. package/mobile/out/src/storage/schema/tables/TableCertificateField.js +3 -0
  388. package/mobile/out/src/storage/schema/tables/TableCertificateField.js.map +1 -0
  389. package/mobile/out/src/storage/schema/tables/TableCommission.d.ts +13 -0
  390. package/mobile/out/src/storage/schema/tables/TableCommission.d.ts.map +1 -0
  391. package/mobile/out/src/storage/schema/tables/TableCommission.js +3 -0
  392. package/mobile/out/src/storage/schema/tables/TableCommission.js.map +1 -0
  393. package/mobile/out/src/storage/schema/tables/TableMonitorEvent.d.ts +9 -0
  394. package/mobile/out/src/storage/schema/tables/TableMonitorEvent.d.ts.map +1 -0
  395. package/mobile/out/src/storage/schema/tables/TableMonitorEvent.js +3 -0
  396. package/mobile/out/src/storage/schema/tables/TableMonitorEvent.js.map +1 -0
  397. package/mobile/out/src/storage/schema/tables/TableOutput.d.ts +36 -0
  398. package/mobile/out/src/storage/schema/tables/TableOutput.d.ts.map +1 -0
  399. package/mobile/out/src/storage/schema/tables/TableOutput.js +31 -0
  400. package/mobile/out/src/storage/schema/tables/TableOutput.js.map +1 -0
  401. package/mobile/out/src/storage/schema/tables/TableOutputBasket.d.ts +12 -0
  402. package/mobile/out/src/storage/schema/tables/TableOutputBasket.d.ts.map +1 -0
  403. package/mobile/out/src/storage/schema/tables/TableOutputBasket.js +3 -0
  404. package/mobile/out/src/storage/schema/tables/TableOutputBasket.js.map +1 -0
  405. package/mobile/out/src/storage/schema/tables/TableOutputTag.d.ts +10 -0
  406. package/mobile/out/src/storage/schema/tables/TableOutputTag.d.ts.map +1 -0
  407. package/mobile/out/src/storage/schema/tables/TableOutputTag.js +3 -0
  408. package/mobile/out/src/storage/schema/tables/TableOutputTag.js.map +1 -0
  409. package/mobile/out/src/storage/schema/tables/TableOutputTagMap.d.ts +9 -0
  410. package/mobile/out/src/storage/schema/tables/TableOutputTagMap.d.ts.map +1 -0
  411. package/mobile/out/src/storage/schema/tables/TableOutputTagMap.js +3 -0
  412. package/mobile/out/src/storage/schema/tables/TableOutputTagMap.js.map +1 -0
  413. package/mobile/out/src/storage/schema/tables/TableProvenTx.d.ts +14 -0
  414. package/mobile/out/src/storage/schema/tables/TableProvenTx.d.ts.map +1 -0
  415. package/mobile/out/src/storage/schema/tables/TableProvenTx.js +3 -0
  416. package/mobile/out/src/storage/schema/tables/TableProvenTx.js.map +1 -0
  417. package/mobile/out/src/storage/schema/tables/TableProvenTxReq.d.ts +64 -0
  418. package/mobile/out/src/storage/schema/tables/TableProvenTxReq.d.ts.map +1 -0
  419. package/mobile/out/src/storage/schema/tables/TableProvenTxReq.js +3 -0
  420. package/mobile/out/src/storage/schema/tables/TableProvenTxReq.js.map +1 -0
  421. package/mobile/out/src/storage/schema/tables/TableSettings.d.ts +17 -0
  422. package/mobile/out/src/storage/schema/tables/TableSettings.d.ts.map +1 -0
  423. package/mobile/out/src/storage/schema/tables/TableSettings.js +3 -0
  424. package/mobile/out/src/storage/schema/tables/TableSettings.js.map +1 -0
  425. package/mobile/out/src/storage/schema/tables/TableSyncState.d.ts +18 -0
  426. package/mobile/out/src/storage/schema/tables/TableSyncState.d.ts.map +1 -0
  427. package/mobile/out/src/storage/schema/tables/TableSyncState.js +3 -0
  428. package/mobile/out/src/storage/schema/tables/TableSyncState.js.map +1 -0
  429. package/mobile/out/src/storage/schema/tables/TableTransaction.d.ts +37 -0
  430. package/mobile/out/src/storage/schema/tables/TableTransaction.d.ts.map +1 -0
  431. package/mobile/out/src/storage/schema/tables/TableTransaction.js +21 -0
  432. package/mobile/out/src/storage/schema/tables/TableTransaction.js.map +1 -0
  433. package/mobile/out/src/storage/schema/tables/TableTxLabel.d.ts +10 -0
  434. package/mobile/out/src/storage/schema/tables/TableTxLabel.d.ts.map +1 -0
  435. package/mobile/out/src/storage/schema/tables/TableTxLabel.js +3 -0
  436. package/mobile/out/src/storage/schema/tables/TableTxLabel.js.map +1 -0
  437. package/mobile/out/src/storage/schema/tables/TableTxLabelMap.d.ts +9 -0
  438. package/mobile/out/src/storage/schema/tables/TableTxLabelMap.d.ts.map +1 -0
  439. package/mobile/out/src/storage/schema/tables/TableTxLabelMap.js +3 -0
  440. package/mobile/out/src/storage/schema/tables/TableTxLabelMap.js.map +1 -0
  441. package/mobile/out/src/storage/schema/tables/TableUser.d.ts +16 -0
  442. package/mobile/out/src/storage/schema/tables/TableUser.d.ts.map +1 -0
  443. package/mobile/out/src/storage/schema/tables/TableUser.js +3 -0
  444. package/mobile/out/src/storage/schema/tables/TableUser.js.map +1 -0
  445. package/mobile/out/src/storage/schema/tables/index.d.ts +17 -0
  446. package/mobile/out/src/storage/schema/tables/index.d.ts.map +1 -0
  447. package/mobile/out/src/storage/schema/tables/index.js +33 -0
  448. package/mobile/out/src/storage/schema/tables/index.js.map +1 -0
  449. package/mobile/out/src/utility/ScriptTemplateBRC29.d.ts +25 -0
  450. package/mobile/out/src/utility/ScriptTemplateBRC29.d.ts.map +1 -0
  451. package/mobile/out/src/utility/ScriptTemplateBRC29.js +48 -0
  452. package/mobile/out/src/utility/ScriptTemplateBRC29.js.map +1 -0
  453. package/mobile/out/src/utility/identityUtils.d.ts +31 -0
  454. package/mobile/out/src/utility/identityUtils.d.ts.map +1 -0
  455. package/mobile/out/src/utility/identityUtils.js +116 -0
  456. package/mobile/out/src/utility/identityUtils.js.map +1 -0
  457. package/mobile/out/src/utility/index.client.d.ts +7 -0
  458. package/mobile/out/src/utility/index.client.d.ts.map +1 -0
  459. package/mobile/out/src/utility/index.client.js +23 -0
  460. package/mobile/out/src/utility/index.client.js.map +1 -0
  461. package/mobile/out/src/utility/parseTxScriptOffsets.d.ts +14 -0
  462. package/mobile/out/src/utility/parseTxScriptOffsets.d.ts.map +1 -0
  463. package/mobile/out/src/utility/parseTxScriptOffsets.js +26 -0
  464. package/mobile/out/src/utility/parseTxScriptOffsets.js.map +1 -0
  465. package/mobile/out/src/utility/stampLog.d.ts +18 -0
  466. package/mobile/out/src/utility/stampLog.d.ts.map +1 -0
  467. package/mobile/out/src/utility/stampLog.js +72 -0
  468. package/mobile/out/src/utility/stampLog.js.map +1 -0
  469. package/mobile/out/src/utility/tscProofToMerklePath.d.ts +8 -0
  470. package/mobile/out/src/utility/tscProofToMerklePath.d.ts.map +1 -0
  471. package/mobile/out/src/utility/tscProofToMerklePath.js +41 -0
  472. package/mobile/out/src/utility/tscProofToMerklePath.js.map +1 -0
  473. package/mobile/out/src/utility/utilityHelpers.d.ts +129 -0
  474. package/mobile/out/src/utility/utilityHelpers.d.ts.map +1 -0
  475. package/mobile/out/src/utility/utilityHelpers.js +266 -0
  476. package/mobile/out/src/utility/utilityHelpers.js.map +1 -0
  477. package/mobile/out/src/utility/utilityHelpers.noBuffer.d.ts +9 -0
  478. package/mobile/out/src/utility/utilityHelpers.noBuffer.d.ts.map +1 -0
  479. package/mobile/out/src/utility/utilityHelpers.noBuffer.js +23 -0
  480. package/mobile/out/src/utility/utilityHelpers.noBuffer.js.map +1 -0
  481. package/mobile/out/src/wab-client/WABClient.d.ts +49 -0
  482. package/mobile/out/src/wab-client/WABClient.d.ts.map +1 -0
  483. package/mobile/out/src/wab-client/WABClient.js +80 -0
  484. package/mobile/out/src/wab-client/WABClient.js.map +1 -0
  485. package/mobile/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.d.ts +34 -0
  486. package/mobile/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.d.ts.map +1 -0
  487. package/mobile/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js +16 -0
  488. package/mobile/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js.map +1 -0
  489. package/mobile/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.d.ts +7 -0
  490. package/mobile/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.d.ts.map +1 -0
  491. package/mobile/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.js +36 -0
  492. package/mobile/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.js.map +1 -0
  493. package/mobile/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.d.ts +28 -0
  494. package/mobile/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.d.ts.map +1 -0
  495. package/mobile/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.js +69 -0
  496. package/mobile/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.js.map +1 -0
  497. package/mobile/out/tsconfig.mobile.tsbuildinfo +1 -0
  498. package/mobile/package-lock.json +5 -12
  499. package/mobile/package.json +1 -1
  500. package/package.json +1 -1
  501. package/tsconfig.json +3 -0
  502. package/tsconfig.mobile.json +22 -0
@@ -0,0 +1,267 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ARC = void 0;
4
+ const sdk_1 = require("@bsv/sdk");
5
+ const index_client_1 = require("../../index.client");
6
+ function defaultDeploymentId() {
7
+ return `ts-sdk-${sdk_1.Utils.toHex((0, sdk_1.Random)(16))}`;
8
+ }
9
+ /**
10
+ * Represents an ARC transaction broadcaster.
11
+ */
12
+ class ARC {
13
+ constructor(URL, config) {
14
+ this.URL = URL;
15
+ if (typeof config === 'string') {
16
+ this.apiKey = config;
17
+ this.httpClient = (0, sdk_1.defaultHttpClient)();
18
+ this.deploymentId = defaultDeploymentId();
19
+ this.callbackToken = undefined;
20
+ this.callbackUrl = undefined;
21
+ }
22
+ else {
23
+ const configObj = config !== null && config !== void 0 ? config : {};
24
+ const { apiKey, deploymentId, httpClient, callbackToken, callbackUrl, headers } = configObj;
25
+ this.apiKey = apiKey;
26
+ this.httpClient = httpClient !== null && httpClient !== void 0 ? httpClient : (0, sdk_1.defaultHttpClient)();
27
+ this.deploymentId = deploymentId !== null && deploymentId !== void 0 ? deploymentId : defaultDeploymentId();
28
+ this.callbackToken = callbackToken;
29
+ this.callbackUrl = callbackUrl;
30
+ this.headers = headers;
31
+ }
32
+ }
33
+ /**
34
+ * Constructs a dictionary of the default & supplied request headers.
35
+ */
36
+ requestHeaders() {
37
+ const headers = {
38
+ 'Content-Type': 'application/json',
39
+ 'XDeployment-ID': this.deploymentId
40
+ };
41
+ if (this.apiKey != null && this.apiKey !== '') {
42
+ headers.Authorization = `Bearer ${this.apiKey}`;
43
+ }
44
+ if (this.callbackUrl != null && this.callbackUrl !== '') {
45
+ headers['X-CallbackUrl'] = this.callbackUrl;
46
+ }
47
+ if (this.callbackToken != null && this.callbackToken !== '') {
48
+ headers['X-CallbackToken'] = this.callbackToken;
49
+ }
50
+ if (this.headers != null) {
51
+ for (const key in this.headers) {
52
+ headers[key] = this.headers[key];
53
+ }
54
+ }
55
+ return headers;
56
+ }
57
+ /**
58
+ * The ARC '/v1/tx' endpoint, as of 2025-02-17 supports all of the following hex string formats:
59
+ * 1. Single serialized raw transaction.
60
+ * 2. Single EF serialized raw transaction (untested).
61
+ * 3. V1 serialized Beef (results returned reflect only the last transaction in the beef)
62
+ *
63
+ * The ARC '/v1/tx' endpoint, as of 2025-02-17 DOES NOT support the following hex string formats:
64
+ * 1. V2 serialized Beef
65
+ *
66
+ * @param rawTx
67
+ * @param txids
68
+ * @returns
69
+ */
70
+ async postRawTx(rawTx, txids) {
71
+ let txid = sdk_1.Utils.toHex((0, index_client_1.doubleSha256BE)(sdk_1.Utils.toArray(rawTx, 'hex')));
72
+ if (txids) {
73
+ txid = txids.slice(-1)[0];
74
+ }
75
+ else {
76
+ txids = [txid];
77
+ }
78
+ const requestOptions = {
79
+ method: 'POST',
80
+ headers: this.requestHeaders(),
81
+ data: { rawTx }
82
+ };
83
+ const r = {
84
+ txid,
85
+ status: 'success',
86
+ notes: []
87
+ };
88
+ const url = `${this.URL}/v1/tx`;
89
+ const nn = () => ({ name: 'ARCv1tx', when: new Date().toISOString() });
90
+ const nne = () => ({ ...nn(), rawTx, txids: txids.join(','), url });
91
+ try {
92
+ const response = await this.httpClient.request(url, requestOptions);
93
+ const { txid, extraInfo, txStatus, competingTxs } = response.data;
94
+ const nnr = () => ({
95
+ txid,
96
+ extraInfo,
97
+ txStatus,
98
+ competingTxs: competingTxs === null || competingTxs === void 0 ? void 0 : competingTxs.join(',')
99
+ });
100
+ if (response.ok) {
101
+ r.data = `${txStatus} ${extraInfo}`;
102
+ if (r.txid !== txid)
103
+ r.data += ` txid altered from ${r.txid} to ${txid}`;
104
+ r.txid = txid;
105
+ if (txStatus === 'DOUBLE_SPEND_ATTEMPTED' || txStatus === 'SEEN_IN_ORPHAN_MEMPOOL') {
106
+ r.status = 'error';
107
+ r.doubleSpend = true;
108
+ r.competingTxs = competingTxs;
109
+ r.notes.push({ ...nne(), ...nnr(), what: 'postRawTxDoubleSpend' });
110
+ }
111
+ else {
112
+ r.notes.push({ ...nn(), ...nnr(), what: 'postRawTxSuccess' });
113
+ }
114
+ }
115
+ else if (typeof response === 'string') {
116
+ r.notes.push({ ...nne(), what: 'postRawTxString', response });
117
+ r.status = 'error';
118
+ // response is not normally a string
119
+ r.serviceError = true;
120
+ }
121
+ else {
122
+ r.status = 'error';
123
+ // Treat unknown errors as service errors
124
+ r.serviceError = true;
125
+ const n = {
126
+ ...nn(),
127
+ ...nne(),
128
+ ...nnr(),
129
+ what: 'postRawTxError'
130
+ };
131
+ const ed = {};
132
+ r.data = ed;
133
+ const st = typeof response.status;
134
+ if (st === 'number' || st === 'string') {
135
+ n.status = response.status;
136
+ ed.status = response.status.toString();
137
+ }
138
+ else {
139
+ n.status = st;
140
+ ed.status = 'ERR_UNKNOWN';
141
+ }
142
+ let d = response.data;
143
+ if (d && typeof d === 'string') {
144
+ n.data = response.data.slice(0, 128);
145
+ try {
146
+ d = JSON.parse(d);
147
+ }
148
+ catch (_a) {
149
+ // Intentionally left empty
150
+ }
151
+ }
152
+ else if (d && typeof d === 'object') {
153
+ ed.more = d;
154
+ ed.detail = d['detail'];
155
+ if (typeof ed.detail !== 'string')
156
+ ed.detail = undefined;
157
+ if (ed.detail) {
158
+ n.detail = ed.detail;
159
+ }
160
+ }
161
+ r.notes.push(n);
162
+ }
163
+ }
164
+ catch (eu) {
165
+ const e = index_client_1.sdk.WalletError.fromUnknown(eu);
166
+ r.status = 'error';
167
+ r.serviceError = true;
168
+ r.data = `${e.code} ${e.message}`;
169
+ r.notes.push({
170
+ ...nne(),
171
+ what: 'postRawTxCatch',
172
+ code: e.code,
173
+ description: e.description
174
+ });
175
+ }
176
+ return r;
177
+ }
178
+ /**
179
+ * ARC does not natively support a postBeef end-point aware of multiple txids of interest in the Beef.
180
+ *
181
+ * It does process multiple new transactions, however, which allows results for all txids of interest
182
+ * to be collected by the `/v1/tx/${txid}` endpoint.
183
+ *
184
+ * @param beef
185
+ * @param txids
186
+ * @returns
187
+ */
188
+ async postBeef(beef, txids) {
189
+ const r = {
190
+ name: 'ARC',
191
+ status: 'success',
192
+ txidResults: [],
193
+ notes: []
194
+ };
195
+ const nn = () => ({ name: 'ARCpostBeef', when: new Date().toISOString() });
196
+ if (beef.version === sdk_1.BEEF_V2 && beef.txs.every(btx => !btx.isTxidOnly)) {
197
+ beef.version = sdk_1.BEEF_V1;
198
+ r.notes.push({ ...nn(), what: 'postBeefV2ToV1' });
199
+ }
200
+ const beefHex = beef.toHex();
201
+ const prtr = await this.postRawTx(beefHex, txids);
202
+ r.status = prtr.status;
203
+ r.txidResults = [prtr];
204
+ // Since postRawTx only returns results for a single txid,
205
+ // replicate the basic results any additional txids.
206
+ // TODO: Temporary hack...
207
+ for (const txid of txids) {
208
+ if (prtr.txid === txid)
209
+ continue;
210
+ const tr = {
211
+ txid,
212
+ status: 'success',
213
+ notes: []
214
+ };
215
+ // For the extra txids, go back to the service for confirmation...
216
+ const dr = await this.getTxData(txid);
217
+ if (dr.txid !== txid) {
218
+ tr.status = 'error';
219
+ tr.data = 'internal error';
220
+ tr.notes.push({
221
+ ...nn(),
222
+ what: 'postBeefGetTxDataInternal',
223
+ txid,
224
+ returnedTxid: dr.txid
225
+ });
226
+ }
227
+ else if (dr.txStatus === 'SEEN_ON_NETWORK' || dr.txStatus === 'STORED') {
228
+ tr.data = dr.txStatus;
229
+ tr.notes.push({
230
+ ...nn(),
231
+ what: 'postBeefGetTxDataSuccess',
232
+ txid,
233
+ txStatus: dr.txStatus
234
+ });
235
+ }
236
+ else {
237
+ tr.status = 'error';
238
+ tr.data = dr;
239
+ tr.notes.push({
240
+ ...nn(),
241
+ what: 'postBeefGetTxDataError',
242
+ txid,
243
+ txStatus: dr.txStatus
244
+ });
245
+ }
246
+ r.txidResults.push(tr);
247
+ if (r.status === 'success' && tr.status === 'error')
248
+ r.status = 'error';
249
+ }
250
+ return r;
251
+ }
252
+ /**
253
+ * This seems to only work for recently submitted txids...but that's all we need to complete postBeef!
254
+ * @param txid
255
+ * @returns
256
+ */
257
+ async getTxData(txid) {
258
+ const requestOptions = {
259
+ method: 'GET',
260
+ headers: this.requestHeaders()
261
+ };
262
+ const response = await this.httpClient.request(`${this.URL}/v1/tx/${txid}`, requestOptions);
263
+ return response.data;
264
+ }
265
+ }
266
+ exports.ARC = ARC;
267
+ //# sourceMappingURL=ARC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ARC.js","sourceRoot":"","sources":["../../../../../src/services/providers/ARC.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import { Beef, HexString, HttpClient } from '@bsv/sdk';
2
+ import { sdk } from '../../index.client';
3
+ export interface BitailsConfig {
4
+ /** Authentication token for BitTails API */
5
+ apiKey?: string;
6
+ /** The HTTP client used to make requests to the API. */
7
+ httpClient?: HttpClient;
8
+ }
9
+ /**
10
+ *
11
+ */
12
+ export declare class Bitails {
13
+ readonly chain: sdk.Chain;
14
+ readonly apiKey: string;
15
+ readonly URL: string;
16
+ readonly httpClient: HttpClient;
17
+ constructor(chain?: sdk.Chain, config?: BitailsConfig);
18
+ getHttpHeaders(): Record<string, string>;
19
+ /**
20
+ * Bitails does not natively support a postBeef end-point aware of multiple txids of interest in the Beef.
21
+ *
22
+ * Send rawTx in `txids` order from beef.
23
+ *
24
+ * @param beef
25
+ * @param txids
26
+ * @returns
27
+ */
28
+ postBeef(beef: Beef, txids: string[]): Promise<sdk.PostBeefResult>;
29
+ /**
30
+ * @param raws Array of raw transactions to broadcast as hex strings
31
+ * @param txids Array of txids for transactions in raws for which results are requested, remaining raws are supporting only.
32
+ * @returns
33
+ */
34
+ postRaws(raws: HexString[], txids?: string[]): Promise<sdk.PostBeefResult>;
35
+ /**
36
+ *
37
+ * @param txid
38
+ * @param services
39
+ * @returns
40
+ */
41
+ getMerklePath(txid: string, services: sdk.WalletServices): Promise<sdk.GetMerklePathResult>;
42
+ }
43
+ export interface BitailsMerkleProof {
44
+ index: number;
45
+ txOrId: string;
46
+ target: string;
47
+ nodes: string[];
48
+ }
49
+ //# sourceMappingURL=Bitails.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Bitails.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/Bitails.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAqB,SAAS,EAAE,UAAU,EAAS,MAAM,UAAU,CAAA;AAChF,OAAO,EAA4C,GAAG,EAAQ,MAAM,oBAAoB,CAAA;AAGxF,MAAM,WAAW,aAAa;IAC5B,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,wDAAwD;IACxD,UAAU,CAAC,EAAE,UAAU,CAAA;CACxB;AAED;;GAEG;AACH,qBAAa,OAAO;IAClB,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAA;gBAEnB,KAAK,GAAE,GAAG,CAAC,KAAc,EAAE,MAAM,GAAE,aAAkB;IAQjE,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAYxC;;;;;;;;OAQG;IACG,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAwBxE;;;;OAIG;IACG,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAgHhF;;;;;OAKG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;CAyClG;AAUD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,EAAE,CAAA;CAChB"}
@@ -0,0 +1,222 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Bitails = void 0;
4
+ const sdk_1 = require("@bsv/sdk");
5
+ const index_client_1 = require("../../index.client");
6
+ /**
7
+ *
8
+ */
9
+ class Bitails {
10
+ constructor(chain = 'main', config = {}) {
11
+ const { apiKey, httpClient } = config;
12
+ this.chain = chain;
13
+ this.URL = chain === 'main' ? `https://api.bitails.io/` : `https://test-api.bitails.io/`;
14
+ this.httpClient = httpClient !== null && httpClient !== void 0 ? httpClient : (0, sdk_1.defaultHttpClient)();
15
+ this.apiKey = apiKey !== null && apiKey !== void 0 ? apiKey : '';
16
+ }
17
+ getHttpHeaders() {
18
+ const headers = {
19
+ Accept: 'application/json'
20
+ };
21
+ if (typeof this.apiKey === 'string' && this.apiKey.trim() !== '') {
22
+ headers.Authorization = this.apiKey;
23
+ }
24
+ return headers;
25
+ }
26
+ /**
27
+ * Bitails does not natively support a postBeef end-point aware of multiple txids of interest in the Beef.
28
+ *
29
+ * Send rawTx in `txids` order from beef.
30
+ *
31
+ * @param beef
32
+ * @param txids
33
+ * @returns
34
+ */
35
+ async postBeef(beef, txids) {
36
+ const nn = () => ({
37
+ name: 'BitailsPostBeef',
38
+ when: new Date().toISOString()
39
+ });
40
+ const nne = () => ({ ...nn(), beef: beef.toHex(), txids: txids.join(',') });
41
+ const note = { ...nn(), what: 'postBeef' };
42
+ const raws = [];
43
+ for (const txid of txids) {
44
+ const rawTx = sdk_1.Utils.toHex(beef.findTxid(txid).rawTx);
45
+ raws.push(rawTx);
46
+ }
47
+ const r = await this.postRaws(raws, txids);
48
+ r.notes.unshift(note);
49
+ if (r.status !== 'success')
50
+ r.notes.push({ ...nne(), what: 'postBeefError' });
51
+ else
52
+ r.notes.push({ ...nn(), what: 'postBeefSuccess' });
53
+ return r;
54
+ }
55
+ /**
56
+ * @param raws Array of raw transactions to broadcast as hex strings
57
+ * @param txids Array of txids for transactions in raws for which results are requested, remaining raws are supporting only.
58
+ * @returns
59
+ */
60
+ async postRaws(raws, txids) {
61
+ const r = {
62
+ name: 'BitailsPostRaws',
63
+ status: 'success',
64
+ txidResults: [],
65
+ notes: []
66
+ };
67
+ const rawTxids = [];
68
+ for (const raw of raws) {
69
+ const txid = sdk_1.Utils.toHex((0, index_client_1.doubleSha256BE)(sdk_1.Utils.toArray(raw, 'hex')));
70
+ // Results aren't always identified by txid.
71
+ rawTxids.push(txid);
72
+ if (!txids || txids.indexOf(txid) >= 0) {
73
+ r.txidResults.push({
74
+ txid,
75
+ status: 'success',
76
+ notes: []
77
+ });
78
+ }
79
+ }
80
+ const headers = this.getHttpHeaders();
81
+ headers['Content-Type'] = 'application/json';
82
+ //headers['Accept'] = 'text/json'
83
+ const data = { raws: raws };
84
+ const requestOptions = {
85
+ method: 'POST',
86
+ headers,
87
+ data
88
+ };
89
+ const url = `${this.URL}tx/broadcast/multi`;
90
+ const nn = () => ({
91
+ name: 'BitailsPostRawTx',
92
+ when: new Date().toISOString()
93
+ });
94
+ const nne = () => ({
95
+ ...nn(),
96
+ raws: raws.join(','),
97
+ txids: r.txidResults.map(r => r.txid).join(','),
98
+ url
99
+ });
100
+ try {
101
+ const response = await this.httpClient.request(url, requestOptions);
102
+ if (response.ok) {
103
+ // status: 201, statusText: 'Created'
104
+ const btrs = response.data;
105
+ if (btrs.length !== raws.length) {
106
+ r.status = 'error';
107
+ r.notes.push({ ...nne(), what: 'postRawsErrorResultsCount' });
108
+ }
109
+ else {
110
+ // Check that each response result has a txid that matches corresponding rawTxids
111
+ let i = -1;
112
+ for (const btr of btrs) {
113
+ i++;
114
+ if (!btr.txid) {
115
+ btr.txid = rawTxids[i];
116
+ r.notes.push({ ...nn(), what: 'postRawsResultMissingTxids', i, rawsTxid: rawTxids[i] });
117
+ }
118
+ else if (btr.txid !== rawTxids[i]) {
119
+ r.status = 'error';
120
+ r.notes.push({ ...nn(), what: 'postRawsResultTxids', i, txid: btr.txid, rawsTxid: rawTxids[i] });
121
+ }
122
+ }
123
+ if (r.status === 'success') {
124
+ // btrs has correct number of results and each one has expected txid.
125
+ // focus on results for requested txids
126
+ for (const rt of r.txidResults) {
127
+ const btr = btrs.find(btr => btr.txid === rt.txid);
128
+ const txid = rt.txid;
129
+ if (btr.error) {
130
+ // code: -25, message: 'missing-inputs'
131
+ // code: -27, message: 'already-in-mempool'
132
+ const { code, message } = btr.error;
133
+ if (code === -27) {
134
+ rt.notes.push({ ...nne(), what: 'postRawsSuccessAlreadyInMempool' });
135
+ }
136
+ else {
137
+ rt.status = 'error';
138
+ if (code === -25) {
139
+ rt.doubleSpend = true; // this is a possible double spend attempt
140
+ rt.competingTxs = undefined; // not provided with any data for this.
141
+ rt.notes.push({ ...nne(), what: 'postRawsErrorMissingInputs' });
142
+ }
143
+ else if (btr['code'] === 'ECONNRESET') {
144
+ rt.notes.push({ ...nne(), what: 'postRawsErrorECONNRESET', txid, message });
145
+ }
146
+ else {
147
+ rt.notes.push({ ...nne(), what: 'postRawsError', txid, code, message });
148
+ }
149
+ }
150
+ }
151
+ else {
152
+ rt.notes.push({ ...nn(), what: 'postRawsSuccess' });
153
+ }
154
+ if (rt.status !== 'success' && r.status === 'success')
155
+ r.status = 'error';
156
+ }
157
+ }
158
+ }
159
+ }
160
+ else {
161
+ r.status = 'error';
162
+ const n = { ...nne(), what: 'postRawsError' };
163
+ r.notes.push(n);
164
+ }
165
+ }
166
+ catch (eu) {
167
+ r.status = 'error';
168
+ const e = index_client_1.sdk.WalletError.fromUnknown(eu);
169
+ const { code, description } = e;
170
+ r.notes.push({ ...nne(), what: 'postRawsCatch', code, description });
171
+ }
172
+ return r;
173
+ }
174
+ /**
175
+ *
176
+ * @param txid
177
+ * @param services
178
+ * @returns
179
+ */
180
+ async getMerklePath(txid, services) {
181
+ const r = { name: 'BitailsTsc', notes: [] };
182
+ const url = `${this.URL}tx/${txid}/proof/tsc`;
183
+ const nn = () => ({ name: 'BitailsProofTsc', when: new Date().toISOString(), txid, url });
184
+ const headers = this.getHttpHeaders();
185
+ const requestOptions = { method: 'GET', headers };
186
+ try {
187
+ const response = await this.httpClient.request(url, requestOptions);
188
+ const nne = () => ({ ...nn(), txid, url, status: response.status, statusText: response.statusText });
189
+ if (response.status === 404 && response.statusText === 'Not Found') {
190
+ r.notes.push({ ...nn(), what: 'getMerklePathNotFound' });
191
+ }
192
+ else if (!response.ok || response.status !== 200 || response.statusText !== 'OK') {
193
+ r.notes.push({ ...nne(), what: 'getMerklePathBadStatus' });
194
+ }
195
+ else if (!response.data) {
196
+ r.notes.push({ ...nne(), what: 'getMerklePathNoData' });
197
+ }
198
+ else {
199
+ const p = response.data;
200
+ const header = await services.hashToHeader(p.target);
201
+ if (header) {
202
+ const proof = { index: p.index, nodes: p.nodes, height: header.height };
203
+ r.merklePath = (0, index_client_1.convertProofToMerklePath)(txid, proof);
204
+ r.header = header;
205
+ r.notes.push({ ...nne(), what: 'getMerklePathSuccess' });
206
+ }
207
+ else {
208
+ r.notes.push({ ...nne(), what: 'getMerklePathNoHeader', target: p.target });
209
+ }
210
+ }
211
+ }
212
+ catch (eu) {
213
+ const e = index_client_1.sdk.WalletError.fromUnknown(eu);
214
+ const { code, description } = e;
215
+ r.notes.push({ ...nn(), what: 'getMerklePathCatch', code, description });
216
+ r.error = e;
217
+ }
218
+ return r;
219
+ }
220
+ }
221
+ exports.Bitails = Bitails;
222
+ //# sourceMappingURL=Bitails.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Bitails.js","sourceRoot":"","sources":["../../../../../src/services/providers/Bitails.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { ChainTracker, HttpClient, WhatsOnChainConfig } from '@bsv/sdk';
2
+ /**
3
+ * Represents a chain tracker based on What's On Chain .
4
+ */
5
+ export default class SdkWhatsOnChain implements ChainTracker {
6
+ readonly network: string;
7
+ readonly apiKey: string;
8
+ protected readonly URL: string;
9
+ protected readonly httpClient: HttpClient;
10
+ /**
11
+ * Constructs an instance of the WhatsOnChain ChainTracker.
12
+ *
13
+ * @param {'main' | 'test' | 'stn'} network - The BSV network to use when calling the WhatsOnChain API.
14
+ * @param {WhatsOnChainConfig} config - Configuration options for the WhatsOnChain ChainTracker.
15
+ */
16
+ constructor(network?: 'main' | 'test' | 'stn', config?: WhatsOnChainConfig);
17
+ isValidRootForHeight(root: string, height: number): Promise<boolean>;
18
+ currentHeight(): Promise<number>;
19
+ protected getHttpHeaders(): Record<string, string>;
20
+ }
21
+ //# sourceMappingURL=SdkWhatsOnChain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SdkWhatsOnChain.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/SdkWhatsOnChain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAqB,UAAU,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAM1F;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,eAAgB,YAAW,YAAY;IAC1D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IAC9B,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAA;IAEzC;;;;;OAKG;gBACS,OAAO,GAAE,MAAM,GAAG,MAAM,GAAG,KAAc,EAAE,MAAM,GAAE,kBAAuB;IAQhF,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAsBpE,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IAoBtC,SAAS,CAAC,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAWnD"}
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const sdk_1 = require("@bsv/sdk");
4
+ /**
5
+ * Represents a chain tracker based on What's On Chain .
6
+ */
7
+ class SdkWhatsOnChain {
8
+ /**
9
+ * Constructs an instance of the WhatsOnChain ChainTracker.
10
+ *
11
+ * @param {'main' | 'test' | 'stn'} network - The BSV network to use when calling the WhatsOnChain API.
12
+ * @param {WhatsOnChainConfig} config - Configuration options for the WhatsOnChain ChainTracker.
13
+ */
14
+ constructor(network = 'main', config = {}) {
15
+ const { apiKey, httpClient } = config;
16
+ this.network = network;
17
+ this.URL = `https://api.whatsonchain.com/v1/bsv/${network}`;
18
+ this.httpClient = httpClient !== null && httpClient !== void 0 ? httpClient : (0, sdk_1.defaultHttpClient)();
19
+ this.apiKey = apiKey !== null && apiKey !== void 0 ? apiKey : '';
20
+ }
21
+ async isValidRootForHeight(root, height) {
22
+ const requestOptions = {
23
+ method: 'GET',
24
+ headers: this.getHttpHeaders()
25
+ };
26
+ const response = await this.httpClient.request(`${this.URL}/block/${height}/header`, requestOptions);
27
+ if (response.ok) {
28
+ const { merkleroot } = response.data;
29
+ return merkleroot === root;
30
+ }
31
+ else if (response.status === 404) {
32
+ return false;
33
+ }
34
+ else {
35
+ throw new Error(`Failed to verify merkleroot for height ${height} because of an error: ${JSON.stringify(response.data)} `);
36
+ }
37
+ }
38
+ async currentHeight() {
39
+ try {
40
+ const requestOptions = {
41
+ method: 'GET',
42
+ headers: this.getHttpHeaders()
43
+ };
44
+ const response = await this.httpClient.request(`${this.URL}/block/headers`, requestOptions);
45
+ if (response.ok) {
46
+ return response.data[0].height;
47
+ }
48
+ else {
49
+ throw new Error(`Failed to get current height because of an error: ${JSON.stringify(response.data)} `);
50
+ }
51
+ }
52
+ catch (error) {
53
+ throw new Error(`Failed to get current height because of an error: ${error instanceof Error ? error.message : String(error)}`);
54
+ }
55
+ }
56
+ getHttpHeaders() {
57
+ const headers = {
58
+ Accept: 'application/json'
59
+ };
60
+ if (typeof this.apiKey === 'string' && this.apiKey.trim() !== '') {
61
+ headers.Authorization = this.apiKey;
62
+ }
63
+ return headers;
64
+ }
65
+ }
66
+ exports.default = SdkWhatsOnChain;
67
+ //# sourceMappingURL=SdkWhatsOnChain.js.map