@bsv/wallet-toolbox 1.1.60 → 1.1.62

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 (471) hide show
  1. package/.prettierrc +1 -1
  2. package/docs/client.md +39 -5
  3. package/docs/services.md +1 -0
  4. package/docs/setup.md +9 -26
  5. package/docs/storage.md +35 -0
  6. package/docs/wallet.md +39 -5
  7. package/out/src/Setup.d.ts.map +1 -1
  8. package/out/src/Setup.js +6 -16
  9. package/out/src/Setup.js.map +1 -1
  10. package/out/src/Wallet.d.ts.map +1 -1
  11. package/out/src/Wallet.js +4 -11
  12. package/out/src/Wallet.js.map +1 -1
  13. package/out/src/monitor/Monitor.d.ts.map +1 -1
  14. package/out/src/monitor/Monitor.js.map +1 -1
  15. package/out/src/monitor/MonitorDaemon.d.ts.map +1 -1
  16. package/out/src/monitor/MonitorDaemon.js +1 -3
  17. package/out/src/monitor/MonitorDaemon.js.map +1 -1
  18. package/out/src/monitor/tasks/TaskCheckForProofs.d.ts.map +1 -1
  19. package/out/src/monitor/tasks/TaskCheckForProofs.js +2 -10
  20. package/out/src/monitor/tasks/TaskCheckForProofs.js.map +1 -1
  21. package/out/src/monitor/tasks/TaskClock.d.ts.map +1 -1
  22. package/out/src/monitor/tasks/TaskClock.js +1 -1
  23. package/out/src/monitor/tasks/TaskClock.js.map +1 -1
  24. package/out/src/monitor/tasks/TaskFailAbandoned.d.ts.map +1 -1
  25. package/out/src/monitor/tasks/TaskFailAbandoned.js.map +1 -1
  26. package/out/src/monitor/tasks/TaskNewHeader.d.ts.map +1 -1
  27. package/out/src/monitor/tasks/TaskNewHeader.js +1 -2
  28. package/out/src/monitor/tasks/TaskNewHeader.js.map +1 -1
  29. package/out/src/monitor/tasks/TaskPurge.d.ts.map +1 -1
  30. package/out/src/monitor/tasks/TaskPurge.js +1 -2
  31. package/out/src/monitor/tasks/TaskPurge.js.map +1 -1
  32. package/out/src/monitor/tasks/TaskReviewStatus.d.ts.map +1 -1
  33. package/out/src/monitor/tasks/TaskReviewStatus.js +1 -2
  34. package/out/src/monitor/tasks/TaskReviewStatus.js.map +1 -1
  35. package/out/src/monitor/tasks/TaskSendWaiting.d.ts.map +1 -1
  36. package/out/src/monitor/tasks/TaskSendWaiting.js.map +1 -1
  37. package/out/src/sdk/CertOps.d.ts.map +1 -1
  38. package/out/src/sdk/CertOps.js +4 -12
  39. package/out/src/sdk/CertOps.js.map +1 -1
  40. package/out/src/sdk/PrivilegedKeyManager.d.ts.map +1 -1
  41. package/out/src/sdk/PrivilegedKeyManager.js.map +1 -1
  42. package/out/src/sdk/WERR_errors.d.ts.map +1 -1
  43. package/out/src/sdk/WERR_errors.js.map +1 -1
  44. package/out/src/sdk/WalletError.d.ts.map +1 -1
  45. package/out/src/sdk/WalletError.js +1 -4
  46. package/out/src/sdk/WalletError.js.map +1 -1
  47. package/out/src/sdk/WalletServices.interfaces.d.ts +2 -0
  48. package/out/src/sdk/WalletServices.interfaces.d.ts.map +1 -1
  49. package/out/src/sdk/WalletStorage.interfaces.d.ts.map +1 -1
  50. package/out/src/sdk/__test/CertificateLifeCycle.test.js +1 -3
  51. package/out/src/sdk/__test/CertificateLifeCycle.test.js.map +1 -1
  52. package/out/src/sdk/__test/PrivilegedKeyManager.test.js +13 -26
  53. package/out/src/sdk/__test/PrivilegedKeyManager.test.js.map +1 -1
  54. package/out/src/sdk/types.d.ts.map +1 -1
  55. package/out/src/sdk/types.js +2 -10
  56. package/out/src/sdk/types.js.map +1 -1
  57. package/out/src/sdk/validationHelpers.d.ts.map +1 -1
  58. package/out/src/sdk/validationHelpers.js +5 -12
  59. package/out/src/sdk/validationHelpers.js.map +1 -1
  60. package/out/src/services/Services.d.ts +1 -0
  61. package/out/src/services/Services.d.ts.map +1 -1
  62. package/out/src/services/Services.js +29 -38
  63. package/out/src/services/Services.js.map +1 -1
  64. package/out/src/services/__tests/ARC.test.js +9 -0
  65. package/out/src/services/__tests/ARC.test.js.map +1 -1
  66. package/out/src/services/__tests/bitrails.test.js.map +1 -1
  67. package/out/src/services/__tests/getMerklePath.test.js.map +1 -1
  68. package/out/src/services/__tests/getRawTx.test.js.map +1 -1
  69. package/out/src/services/__tests/verifyBeef.test.js +2 -1
  70. package/out/src/services/__tests/verifyBeef.test.js.map +1 -1
  71. package/out/src/services/chaintracker/ChaintracksChainTracker.d.ts.map +1 -1
  72. package/out/src/services/chaintracker/ChaintracksChainTracker.js.map +1 -1
  73. package/out/src/services/chaintracker/chaintracks/BlockHeaderApi.d.ts.map +1 -1
  74. package/out/src/services/chaintracker/chaintracks/BlockHeaderApi.js.map +1 -1
  75. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts.map +1 -1
  76. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js +1 -3
  77. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js.map +1 -1
  78. package/out/src/services/createDefaultWalletServicesOptions.d.ts.map +1 -1
  79. package/out/src/services/createDefaultWalletServicesOptions.js.map +1 -1
  80. package/out/src/services/providers/ARC.d.ts.map +1 -1
  81. package/out/src/services/providers/ARC.js +2 -3
  82. package/out/src/services/providers/ARC.js.map +1 -1
  83. package/out/src/services/providers/Bitails.d.ts.map +1 -1
  84. package/out/src/services/providers/Bitails.js +62 -134
  85. package/out/src/services/providers/Bitails.js.map +1 -1
  86. package/out/src/services/providers/SdkWhatsOnChain.d.ts.map +1 -1
  87. package/out/src/services/providers/SdkWhatsOnChain.js.map +1 -1
  88. package/out/src/services/providers/WhatsOnChain.d.ts.map +1 -1
  89. package/out/src/services/providers/WhatsOnChain.js +6 -21
  90. package/out/src/services/providers/WhatsOnChain.js.map +1 -1
  91. package/out/src/services/providers/__tests/WhatsOnChain.test.js +1 -2
  92. package/out/src/services/providers/__tests/WhatsOnChain.test.js.map +1 -1
  93. package/out/src/services/providers/echangeRates.d.ts.map +1 -1
  94. package/out/src/services/providers/echangeRates.js.map +1 -1
  95. package/out/src/signer/WalletSigner.d.ts.map +1 -1
  96. package/out/src/signer/WalletSigner.js.map +1 -1
  97. package/out/src/signer/methods/acquireDirectCertificate.d.ts.map +1 -1
  98. package/out/src/signer/methods/acquireDirectCertificate.js +1 -3
  99. package/out/src/signer/methods/acquireDirectCertificate.js.map +1 -1
  100. package/out/src/signer/methods/buildSignableTransaction.d.ts.map +1 -1
  101. package/out/src/signer/methods/buildSignableTransaction.js +3 -11
  102. package/out/src/signer/methods/buildSignableTransaction.js.map +1 -1
  103. package/out/src/signer/methods/createAction.d.ts.map +1 -1
  104. package/out/src/signer/methods/createAction.js +3 -10
  105. package/out/src/signer/methods/createAction.js.map +1 -1
  106. package/out/src/signer/methods/internalizeAction.d.ts.map +1 -1
  107. package/out/src/signer/methods/internalizeAction.js.map +1 -1
  108. package/out/src/signer/methods/proveCertificate.d.ts.map +1 -1
  109. package/out/src/signer/methods/proveCertificate.js.map +1 -1
  110. package/out/src/signer/methods/signAction.d.ts.map +1 -1
  111. package/out/src/signer/methods/signAction.js +2 -7
  112. package/out/src/signer/methods/signAction.js.map +1 -1
  113. package/out/src/storage/StorageKnex.d.ts.map +1 -1
  114. package/out/src/storage/StorageKnex.js +15 -44
  115. package/out/src/storage/StorageKnex.js.map +1 -1
  116. package/out/src/storage/StorageProvider.d.ts.map +1 -1
  117. package/out/src/storage/StorageProvider.js +9 -34
  118. package/out/src/storage/StorageProvider.js.map +1 -1
  119. package/out/src/storage/StorageReader.d.ts.map +1 -1
  120. package/out/src/storage/StorageReader.js.map +1 -1
  121. package/out/src/storage/StorageReaderWriter.d.ts.map +1 -1
  122. package/out/src/storage/StorageReaderWriter.js.map +1 -1
  123. package/out/src/storage/StorageSyncReader.d.ts.map +1 -1
  124. package/out/src/storage/StorageSyncReader.js.map +1 -1
  125. package/out/src/storage/WalletStorageManager.d.ts.map +1 -1
  126. package/out/src/storage/WalletStorageManager.js +5 -10
  127. package/out/src/storage/WalletStorageManager.js.map +1 -1
  128. package/out/src/storage/__test/WalletStorageManager.test.js +2 -8
  129. package/out/src/storage/__test/WalletStorageManager.test.js.map +1 -1
  130. package/out/src/storage/methods/__test/GenerateChange/generateChangeSdk.test.js +10 -30
  131. package/out/src/storage/methods/__test/GenerateChange/generateChangeSdk.test.js.map +1 -1
  132. package/out/src/storage/methods/__test/GenerateChange/randomValsUsed1.d.ts.map +1 -1
  133. package/out/src/storage/methods/__test/GenerateChange/randomValsUsed1.js +17 -28
  134. package/out/src/storage/methods/__test/GenerateChange/randomValsUsed1.js.map +1 -1
  135. package/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts.map +1 -1
  136. package/out/src/storage/methods/attemptToPostReqsToNetwork.js +6 -20
  137. package/out/src/storage/methods/attemptToPostReqsToNetwork.js.map +1 -1
  138. package/out/src/storage/methods/createAction.d.ts.map +1 -1
  139. package/out/src/storage/methods/createAction.js +4 -9
  140. package/out/src/storage/methods/createAction.js.map +1 -1
  141. package/out/src/storage/methods/generateChange.d.ts.map +1 -1
  142. package/out/src/storage/methods/generateChange.js +7 -18
  143. package/out/src/storage/methods/generateChange.js.map +1 -1
  144. package/out/src/storage/methods/getBeefForTransaction.d.ts.map +1 -1
  145. package/out/src/storage/methods/getBeefForTransaction.js +1 -3
  146. package/out/src/storage/methods/getBeefForTransaction.js.map +1 -1
  147. package/out/src/storage/methods/getSyncChunk.d.ts.map +1 -1
  148. package/out/src/storage/methods/getSyncChunk.js.map +1 -1
  149. package/out/src/storage/methods/internalizeAction.d.ts.map +1 -1
  150. package/out/src/storage/methods/internalizeAction.js +2 -9
  151. package/out/src/storage/methods/internalizeAction.js.map +1 -1
  152. package/out/src/storage/methods/listActions.d.ts.map +1 -1
  153. package/out/src/storage/methods/listActions.js +3 -15
  154. package/out/src/storage/methods/listActions.js.map +1 -1
  155. package/out/src/storage/methods/listCertificates.d.ts.map +1 -1
  156. package/out/src/storage/methods/listCertificates.js.map +1 -1
  157. package/out/src/storage/methods/listOutputs.d.ts.map +1 -1
  158. package/out/src/storage/methods/listOutputs.js +5 -12
  159. package/out/src/storage/methods/listOutputs.js.map +1 -1
  160. package/out/src/storage/methods/processAction.d.ts.map +1 -1
  161. package/out/src/storage/methods/processAction.js +4 -10
  162. package/out/src/storage/methods/processAction.js.map +1 -1
  163. package/out/src/storage/methods/purgeData.d.ts.map +1 -1
  164. package/out/src/storage/methods/purgeData.js +8 -32
  165. package/out/src/storage/methods/purgeData.js.map +1 -1
  166. package/out/src/storage/methods/reviewStatus.d.ts.map +1 -1
  167. package/out/src/storage/methods/reviewStatus.js +1 -3
  168. package/out/src/storage/methods/reviewStatus.js.map +1 -1
  169. package/out/src/storage/remoting/StorageClient.d.ts.map +1 -1
  170. package/out/src/storage/remoting/StorageClient.js +15 -41
  171. package/out/src/storage/remoting/StorageClient.js.map +1 -1
  172. package/out/src/storage/remoting/StorageServer.d.ts.map +1 -1
  173. package/out/src/storage/remoting/StorageServer.js +2 -5
  174. package/out/src/storage/remoting/StorageServer.js.map +1 -1
  175. package/out/src/storage/schema/KnexMigrations.d.ts.map +1 -1
  176. package/out/src/storage/schema/KnexMigrations.js +24 -130
  177. package/out/src/storage/schema/KnexMigrations.js.map +1 -1
  178. package/out/src/storage/schema/entities/Certificate.d.ts.map +1 -1
  179. package/out/src/storage/schema/entities/Certificate.js +1 -1
  180. package/out/src/storage/schema/entities/Certificate.js.map +1 -1
  181. package/out/src/storage/schema/entities/CertificateField.d.ts.map +1 -1
  182. package/out/src/storage/schema/entities/CertificateField.js +2 -5
  183. package/out/src/storage/schema/entities/CertificateField.js.map +1 -1
  184. package/out/src/storage/schema/entities/Commission.d.ts.map +1 -1
  185. package/out/src/storage/schema/entities/Commission.js +2 -5
  186. package/out/src/storage/schema/entities/Commission.js.map +1 -1
  187. package/out/src/storage/schema/entities/EntityBase.d.ts.map +1 -1
  188. package/out/src/storage/schema/entities/EntityBase.js.map +1 -1
  189. package/out/src/storage/schema/entities/MergeEntity.d.ts.map +1 -1
  190. package/out/src/storage/schema/entities/MergeEntity.js +14 -9
  191. package/out/src/storage/schema/entities/MergeEntity.js.map +1 -1
  192. package/out/src/storage/schema/entities/Output.d.ts.map +1 -1
  193. package/out/src/storage/schema/entities/Output.js +8 -25
  194. package/out/src/storage/schema/entities/Output.js.map +1 -1
  195. package/out/src/storage/schema/entities/OutputBasket.d.ts.map +1 -1
  196. package/out/src/storage/schema/entities/OutputBasket.js +1 -1
  197. package/out/src/storage/schema/entities/OutputBasket.js.map +1 -1
  198. package/out/src/storage/schema/entities/OutputTag.d.ts.map +1 -1
  199. package/out/src/storage/schema/entities/OutputTag.js +1 -1
  200. package/out/src/storage/schema/entities/OutputTag.js.map +1 -1
  201. package/out/src/storage/schema/entities/OutputTagMap.d.ts.map +1 -1
  202. package/out/src/storage/schema/entities/OutputTagMap.js +3 -7
  203. package/out/src/storage/schema/entities/OutputTagMap.js.map +1 -1
  204. package/out/src/storage/schema/entities/ProvenTx.d.ts.map +1 -1
  205. package/out/src/storage/schema/entities/ProvenTx.js +10 -20
  206. package/out/src/storage/schema/entities/ProvenTx.js.map +1 -1
  207. package/out/src/storage/schema/entities/ProvenTxReq.d.ts.map +1 -1
  208. package/out/src/storage/schema/entities/ProvenTxReq.js +8 -18
  209. package/out/src/storage/schema/entities/ProvenTxReq.js.map +1 -1
  210. package/out/src/storage/schema/entities/SyncState.d.ts +1 -0
  211. package/out/src/storage/schema/entities/SyncState.d.ts.map +1 -1
  212. package/out/src/storage/schema/entities/SyncState.js +41 -6
  213. package/out/src/storage/schema/entities/SyncState.js.map +1 -1
  214. package/out/src/storage/schema/entities/Transaction.d.ts.map +1 -1
  215. package/out/src/storage/schema/entities/Transaction.js +4 -13
  216. package/out/src/storage/schema/entities/Transaction.js.map +1 -1
  217. package/out/src/storage/schema/entities/TxLabel.d.ts.map +1 -1
  218. package/out/src/storage/schema/entities/TxLabel.js +1 -1
  219. package/out/src/storage/schema/entities/TxLabel.js.map +1 -1
  220. package/out/src/storage/schema/entities/TxLabelMap.d.ts.map +1 -1
  221. package/out/src/storage/schema/entities/TxLabelMap.js +3 -9
  222. package/out/src/storage/schema/entities/TxLabelMap.js.map +1 -1
  223. package/out/src/storage/schema/entities/User.d.ts.map +1 -1
  224. package/out/src/storage/schema/entities/User.js +3 -5
  225. package/out/src/storage/schema/entities/User.js.map +1 -1
  226. package/out/src/storage/schema/entities/__tests/CertificateFieldTests.test.js.map +1 -1
  227. package/out/src/storage/schema/entities/__tests/CertificateTests.test.js.map +1 -1
  228. package/out/src/storage/schema/entities/__tests/CommissionTests.test.js.map +1 -1
  229. package/out/src/storage/schema/entities/__tests/OutputBasketTests.test.js.map +1 -1
  230. package/out/src/storage/schema/entities/__tests/OutputTagMapTests.test.js.map +1 -1
  231. package/out/src/storage/schema/entities/__tests/OutputTagTests.test.js.map +1 -1
  232. package/out/src/storage/schema/entities/__tests/OutputTests.test.js.map +1 -1
  233. package/out/src/storage/schema/entities/__tests/ProvenTxReqTests.test.js.map +1 -1
  234. package/out/src/storage/schema/entities/__tests/ProvenTxTests.test.js +1 -2
  235. package/out/src/storage/schema/entities/__tests/ProvenTxTests.test.js.map +1 -1
  236. package/out/src/storage/schema/entities/__tests/SyncStateTests.test.js.map +1 -1
  237. package/out/src/storage/schema/entities/__tests/TransactionTests.test.js +2 -2
  238. package/out/src/storage/schema/entities/__tests/TransactionTests.test.js.map +1 -1
  239. package/out/src/storage/schema/entities/__tests/TxLabelMapTests.test.js.map +1 -1
  240. package/out/src/storage/schema/entities/__tests/TxLabelTests.test.js.map +1 -1
  241. package/out/src/storage/schema/entities/__tests/stampLogTests.test.js.map +1 -1
  242. package/out/src/storage/schema/entities/__tests/usersTests.test.js.map +1 -1
  243. package/out/src/storage/schema/tables/TableSettings.d.ts.map +1 -1
  244. package/out/src/storage/sync/StorageMySQLDojoReader.d.ts.map +1 -1
  245. package/out/src/storage/sync/StorageMySQLDojoReader.js +1 -3
  246. package/out/src/storage/sync/StorageMySQLDojoReader.js.map +1 -1
  247. package/out/src/utility/ScriptTemplateBRC29.d.ts.map +1 -1
  248. package/out/src/utility/ScriptTemplateBRC29.js +1 -2
  249. package/out/src/utility/ScriptTemplateBRC29.js.map +1 -1
  250. package/out/src/utility/stampLog.d.ts.map +1 -1
  251. package/out/src/utility/stampLog.js.map +1 -1
  252. package/out/src/utility/tscProofToMerklePath.d.ts.map +1 -1
  253. package/out/src/utility/tscProofToMerklePath.js.map +1 -1
  254. package/out/src/utility/utilityHelpers.buffer.d.ts.map +1 -1
  255. package/out/src/utility/utilityHelpers.buffer.js.map +1 -1
  256. package/out/src/utility/utilityHelpers.d.ts.map +1 -1
  257. package/out/src/utility/utilityHelpers.js +1 -3
  258. package/out/src/utility/utilityHelpers.js.map +1 -1
  259. package/out/test/Wallet/StorageClient/storageClient.man.test.js.map +1 -1
  260. package/out/test/Wallet/action/internalizeAction.a.test.js.map +1 -1
  261. package/out/test/Wallet/certificate/acquireCertificate.test.js.map +1 -1
  262. package/out/test/Wallet/certificate/listCertificates.test.js.map +1 -1
  263. package/out/test/Wallet/get/getHeaderForHeight.test.js +2 -6
  264. package/out/test/Wallet/get/getHeaderForHeight.test.js.map +1 -1
  265. package/out/test/Wallet/get/getHeight.test.js.map +1 -1
  266. package/out/test/Wallet/get/getKnownTxids.test.js.map +1 -1
  267. package/out/test/Wallet/get/getNetwork.test.js.map +1 -1
  268. package/out/test/Wallet/get/getVersion.test.js.map +1 -1
  269. package/out/test/Wallet/live/walletLive.man.test.d.ts.map +1 -1
  270. package/out/test/Wallet/live/walletLive.man.test.js +3 -9
  271. package/out/test/Wallet/live/walletLive.man.test.js.map +1 -1
  272. package/out/test/Wallet/local/localWallet.man.test.d.ts.map +1 -1
  273. package/out/test/Wallet/local/localWallet.man.test.js +39 -31
  274. package/out/test/Wallet/local/localWallet.man.test.js.map +1 -1
  275. package/out/test/Wallet/specOps/specOps.man.test.js +1 -4
  276. package/out/test/Wallet/specOps/specOps.man.test.js.map +1 -1
  277. package/out/test/Wallet/support/janitor.man.test.js.map +1 -1
  278. package/out/test/Wallet/sync/Wallet.updateWalletLegacyTestData.man.test.js.map +1 -1
  279. package/out/test/Wallet/sync/setActive.test.js +73 -50
  280. package/out/test/Wallet/sync/setActive.test.js.map +1 -1
  281. package/out/test/checkDB.d.ts.map +1 -1
  282. package/out/test/checkDB.js.map +1 -1
  283. package/out/test/examples/backup.man.test.d.ts.map +1 -1
  284. package/out/test/examples/backup.man.test.js.map +1 -1
  285. package/out/test/examples/pushdrop.test.d.ts.map +1 -1
  286. package/out/test/examples/pushdrop.test.js +5 -4
  287. package/out/test/examples/pushdrop.test.js.map +1 -1
  288. package/out/test/monitor/Monitor.test.js.map +1 -1
  289. package/out/test/services/Services.test.js.map +1 -1
  290. package/out/test/storage/KnexMigrations.test.js.map +1 -1
  291. package/out/test/storage/StorageMySQLDojoReader.man.test.js +1 -3
  292. package/out/test/storage/StorageMySQLDojoReader.man.test.js.map +1 -1
  293. package/out/test/storage/count.test.js.map +1 -1
  294. package/out/test/storage/find.test.js +5 -10
  295. package/out/test/storage/find.test.js.map +1 -1
  296. package/out/test/storage/findLegacy.test.js.map +1 -1
  297. package/out/test/storage/insert.test.js.map +1 -1
  298. package/out/test/storage/update.test.js +7 -19
  299. package/out/test/storage/update.test.js.map +1 -1
  300. package/out/test/storage/update2.test.js +22 -24
  301. package/out/test/storage/update2.test.js.map +1 -1
  302. package/out/test/utils/TestUtilsWalletStorage.d.ts +3 -1
  303. package/out/test/utils/TestUtilsWalletStorage.d.ts.map +1 -1
  304. package/out/test/utils/TestUtilsWalletStorage.js +52 -76
  305. package/out/test/utils/TestUtilsWalletStorage.js.map +1 -1
  306. package/out/test/wallet/action/abortAction.test.js.map +1 -1
  307. package/out/test/wallet/action/createAction.test.js +1 -2
  308. package/out/test/wallet/action/createAction.test.js.map +1 -1
  309. package/out/test/wallet/action/createAction2.test.d.ts.map +1 -1
  310. package/out/test/wallet/action/createAction2.test.js +6 -16
  311. package/out/test/wallet/action/createAction2.test.js.map +1 -1
  312. package/out/test/wallet/action/createActionToGenerateBeefs.man.test.js.map +1 -1
  313. package/out/test/wallet/action/internalizeAction.test.js.map +1 -1
  314. package/out/test/wallet/action/relinquishOutput.test.js.map +1 -1
  315. package/out/test/wallet/list/listActions.test.js.map +1 -1
  316. package/out/test/wallet/list/listActions2.test.js.map +1 -1
  317. package/out/test/wallet/list/listCertificates.test.js +2 -6
  318. package/out/test/wallet/list/listCertificates.test.js.map +1 -1
  319. package/out/test/wallet/list/listOutputs.test.js +2 -10
  320. package/out/test/wallet/list/listOutputs.test.js.map +1 -1
  321. package/out/test/wallet/sync/Wallet.sync.test.js +4 -6
  322. package/out/test/wallet/sync/Wallet.sync.test.js.map +1 -1
  323. package/out/tsconfig.all.tsbuildinfo +1 -1
  324. package/package.json +3 -3
  325. package/src/Setup.ts +15 -52
  326. package/src/Wallet.ts +58 -161
  327. package/src/monitor/Monitor.ts +7 -22
  328. package/src/monitor/MonitorDaemon.ts +6 -23
  329. package/src/monitor/tasks/TaskCheckForProofs.ts +4 -23
  330. package/src/monitor/tasks/TaskClock.ts +1 -3
  331. package/src/monitor/tasks/TaskFailAbandoned.ts +1 -3
  332. package/src/monitor/tasks/TaskNewHeader.ts +1 -4
  333. package/src/monitor/tasks/TaskPurge.ts +1 -2
  334. package/src/monitor/tasks/TaskReviewStatus.ts +1 -3
  335. package/src/monitor/tasks/TaskSendWaiting.ts +3 -10
  336. package/src/sdk/CertOps.ts +31 -103
  337. package/src/sdk/PrivilegedKeyManager.ts +18 -48
  338. package/src/sdk/WERR_errors.ts +6 -25
  339. package/src/sdk/WalletError.ts +5 -21
  340. package/src/sdk/WalletServices.interfaces.ts +11 -33
  341. package/src/sdk/WalletStorage.interfaces.ts +25 -91
  342. package/src/sdk/__test/CertificateLifeCycle.test.ts +9 -27
  343. package/src/sdk/__test/PrivilegedKeyManager.test.ts +29 -66
  344. package/src/sdk/types.ts +6 -26
  345. package/src/sdk/validationHelpers.ts +111 -402
  346. package/src/services/Services.ts +51 -114
  347. package/src/services/__tests/ARC.test.ts +14 -1
  348. package/src/services/__tests/bitrails.test.ts +4 -15
  349. package/src/services/__tests/getMerklePath.test.ts +1 -2
  350. package/src/services/__tests/getRawTx.test.ts +1 -3
  351. package/src/services/__tests/verifyBeef.test.ts +2 -1
  352. package/src/services/chaintracker/ChaintracksChainTracker.ts +3 -13
  353. package/src/services/chaintracker/chaintracks/BlockHeaderApi.ts +4 -12
  354. package/src/services/chaintracker/chaintracks/ChaintracksServiceClient.ts +9 -27
  355. package/src/services/createDefaultWalletServicesOptions.ts +2 -5
  356. package/src/services/processingErrors/arcSuccessError.json +76 -0
  357. package/src/services/providers/ARC.ts +6 -25
  358. package/src/services/providers/Bitails.ts +61 -159
  359. package/src/services/providers/SdkWhatsOnChain.ts +4 -17
  360. package/src/services/providers/WhatsOnChain.ts +31 -100
  361. package/src/services/providers/__tests/WhatsOnChain.test.ts +5 -15
  362. package/src/services/providers/echangeRates.ts +7 -22
  363. package/src/signer/WalletSigner.ts +1 -5
  364. package/src/signer/methods/acquireDirectCertificate.ts +1 -4
  365. package/src/signer/methods/buildSignableTransaction.ts +5 -20
  366. package/src/signer/methods/createAction.ts +15 -54
  367. package/src/signer/methods/internalizeAction.ts +10 -39
  368. package/src/signer/methods/proveCertificate.ts +2 -5
  369. package/src/signer/methods/signAction.ts +9 -39
  370. package/src/storage/StorageKnex.ts +166 -499
  371. package/src/storage/StorageProvider.ts +75 -291
  372. package/src/storage/StorageReader.ts +20 -65
  373. package/src/storage/StorageReaderWriter.ts +67 -264
  374. package/src/storage/StorageSyncReader.ts +2 -5
  375. package/src/storage/WalletStorageManager.ts +33 -108
  376. package/src/storage/__test/WalletStorageManager.test.ts +6 -23
  377. package/src/storage/methods/__test/GenerateChange/generateChangeSdk.test.ts +53 -171
  378. package/src/storage/methods/__test/GenerateChange/randomValsUsed1.ts +17 -28
  379. package/src/storage/methods/attemptToPostReqsToNetwork.ts +9 -37
  380. package/src/storage/methods/createAction.ts +45 -181
  381. package/src/storage/methods/generateChange.ts +33 -114
  382. package/src/storage/methods/getBeefForTransaction.ts +7 -37
  383. package/src/storage/methods/getSyncChunk.ts +18 -69
  384. package/src/storage/methods/internalizeAction.ts +18 -70
  385. package/src/storage/methods/listActions.ts +6 -23
  386. package/src/storage/methods/listCertificates.ts +5 -14
  387. package/src/storage/methods/listOutputs.ts +15 -69
  388. package/src/storage/methods/processAction.ts +29 -104
  389. package/src/storage/methods/purgeData.ts +11 -45
  390. package/src/storage/methods/reviewStatus.ts +3 -9
  391. package/src/storage/remoting/StorageClient.ts +43 -146
  392. package/src/storage/remoting/StorageServer.ts +21 -59
  393. package/src/storage/schema/KnexMigrations.ts +34 -165
  394. package/src/storage/schema/entities/Certificate.ts +3 -14
  395. package/src/storage/schema/entities/CertificateField.ts +6 -28
  396. package/src/storage/schema/entities/Commission.ts +6 -23
  397. package/src/storage/schema/entities/EntityBase.ts +1 -6
  398. package/src/storage/schema/entities/MergeEntity.ts +14 -21
  399. package/src/storage/schema/entities/Output.ts +10 -39
  400. package/src/storage/schema/entities/OutputBasket.ts +4 -16
  401. package/src/storage/schema/entities/OutputTag.ts +4 -17
  402. package/src/storage/schema/entities/OutputTagMap.ts +7 -30
  403. package/src/storage/schema/entities/ProvenTx.ts +16 -57
  404. package/src/storage/schema/entities/ProvenTxReq.ts +29 -93
  405. package/src/storage/schema/entities/SyncState.ts +64 -116
  406. package/src/storage/schema/entities/Transaction.ts +10 -35
  407. package/src/storage/schema/entities/TxLabel.ts +4 -17
  408. package/src/storage/schema/entities/TxLabelMap.ts +6 -28
  409. package/src/storage/schema/entities/User.ts +8 -31
  410. package/src/storage/schema/entities/__tests/CertificateFieldTests.test.ts +23 -54
  411. package/src/storage/schema/entities/__tests/CertificateTests.test.ts +26 -59
  412. package/src/storage/schema/entities/__tests/CommissionTests.test.ts +2 -11
  413. package/src/storage/schema/entities/__tests/OutputBasketTests.test.ts +2 -10
  414. package/src/storage/schema/entities/__tests/OutputTagMapTests.test.ts +2 -10
  415. package/src/storage/schema/entities/__tests/OutputTagTests.test.ts +1 -4
  416. package/src/storage/schema/entities/__tests/OutputTests.test.ts +3 -14
  417. package/src/storage/schema/entities/__tests/ProvenTxReqTests.test.ts +4 -16
  418. package/src/storage/schema/entities/__tests/ProvenTxTests.test.ts +5 -18
  419. package/src/storage/schema/entities/__tests/SyncStateTests.test.ts +5 -26
  420. package/src/storage/schema/entities/__tests/TransactionTests.test.ts +12 -48
  421. package/src/storage/schema/entities/__tests/TxLabelMapTests.test.ts +4 -22
  422. package/src/storage/schema/entities/__tests/TxLabelTests.test.ts +2 -10
  423. package/src/storage/schema/entities/__tests/stampLogTests.test.ts +3 -10
  424. package/src/storage/schema/entities/__tests/usersTests.test.ts +4 -7
  425. package/src/storage/schema/tables/TableSettings.ts +1 -3
  426. package/src/storage/sync/StorageMySQLDojoReader.ts +47 -148
  427. package/src/utility/ScriptTemplateBRC29.ts +2 -11
  428. package/src/utility/stampLog.ts +2 -6
  429. package/src/utility/tscProofToMerklePath.ts +1 -4
  430. package/src/utility/utilityHelpers.buffer.ts +3 -12
  431. package/src/utility/utilityHelpers.ts +14 -49
  432. package/test/Wallet/StorageClient/storageClient.man.test.ts +2 -8
  433. package/test/Wallet/action/internalizeAction.a.test.ts +8 -23
  434. package/test/Wallet/certificate/acquireCertificate.test.ts +10 -24
  435. package/test/Wallet/certificate/listCertificates.test.ts +8 -18
  436. package/test/Wallet/get/getHeaderForHeight.test.ts +4 -15
  437. package/test/Wallet/get/getHeight.test.ts +2 -6
  438. package/test/Wallet/get/getKnownTxids.test.ts +1 -5
  439. package/test/Wallet/get/getNetwork.test.ts +1 -2
  440. package/test/Wallet/get/getVersion.test.ts +1 -2
  441. package/test/Wallet/live/walletLive.man.test.ts +14 -41
  442. package/test/Wallet/local/localWallet.man.test.ts +45 -102
  443. package/test/Wallet/specOps/specOps.man.test.ts +4 -13
  444. package/test/Wallet/support/janitor.man.test.ts +2 -7
  445. package/test/Wallet/sync/Wallet.updateWalletLegacyTestData.man.test.ts +11 -34
  446. package/test/Wallet/sync/setActive.test.ts +75 -61
  447. package/test/checkDB.ts +2 -8
  448. package/test/examples/backup.man.test.ts +2 -9
  449. package/test/examples/pushdrop.test.ts +7 -20
  450. package/test/monitor/Monitor.test.ts +33 -87
  451. package/test/services/Services.test.ts +8 -19
  452. package/test/storage/KnexMigrations.test.ts +3 -18
  453. package/test/storage/StorageMySQLDojoReader.man.test.ts +4 -15
  454. package/test/storage/count.test.ts +7 -24
  455. package/test/storage/find.test.ts +7 -29
  456. package/test/storage/findLegacy.test.ts +2 -5
  457. package/test/storage/insert.test.ts +3 -19
  458. package/test/storage/update.test.ts +47 -179
  459. package/test/storage/update2.test.ts +54 -176
  460. package/test/utils/TestUtilsWalletStorage.ts +139 -372
  461. package/test/wallet/action/abortAction.test.ts +4 -12
  462. package/test/wallet/action/createAction.test.ts +4 -14
  463. package/test/wallet/action/createAction2.test.ts +74 -208
  464. package/test/wallet/action/createActionToGenerateBeefs.man.test.ts +8 -11
  465. package/test/wallet/action/internalizeAction.test.ts +20 -72
  466. package/test/wallet/action/relinquishOutput.test.ts +3 -9
  467. package/test/wallet/list/listActions.test.ts +2 -9
  468. package/test/wallet/list/listActions2.test.ts +8 -34
  469. package/test/wallet/list/listCertificates.test.ts +5 -16
  470. package/test/wallet/list/listOutputs.test.ts +15 -54
  471. package/test/wallet/sync/Wallet.sync.test.ts +18 -49
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bsv/wallet-toolbox",
3
- "version": "1.1.60",
3
+ "version": "1.1.62",
4
4
  "description": "BRC100 conforming wallet, wallet storage and wallet signer components",
5
5
  "main": "./out/src/index.js",
6
6
  "types": "./out/src/index.d.ts",
@@ -30,9 +30,9 @@
30
30
  },
31
31
  "homepage": "https://github.com/bitcoin-sv/wallet-toolbox#readme",
32
32
  "dependencies": {
33
- "@bsv/auth-express-middleware": "^1.0.9",
33
+ "@bsv/auth-express-middleware": "^1.0.12",
34
34
  "@bsv/payment-express-middleware": "^1.0.3",
35
- "@bsv/sdk": "^1.3.30",
35
+ "@bsv/sdk": "^1.3.35",
36
36
  "axios": "^0.29.0",
37
37
  "express": "^4.21.2",
38
38
  "knex": "^3.1.0",
package/src/Setup.ts CHANGED
@@ -102,31 +102,18 @@ DEV_KEYS = '{
102
102
  */
103
103
  static getEnv(chain: sdk.Chain): SetupEnv {
104
104
  // Identity keys of the lead maintainer of this repo...
105
- const identityKey =
106
- chain === 'main'
107
- ? process.env.MY_MAIN_IDENTITY
108
- : process.env.MY_TEST_IDENTITY
109
- const identityKey2 =
110
- chain === 'main'
111
- ? process.env.MY_MAIN_IDENTITY2
112
- : process.env.MY_TEST_IDENTITY2
113
- const filePath =
114
- chain === 'main'
115
- ? process.env.MY_MAIN_FILEPATH
116
- : process.env.MY_TEST_FILEPATH
105
+ const identityKey = chain === 'main' ? process.env.MY_MAIN_IDENTITY : process.env.MY_TEST_IDENTITY
106
+ const identityKey2 = chain === 'main' ? process.env.MY_MAIN_IDENTITY2 : process.env.MY_TEST_IDENTITY2
107
+ const filePath = chain === 'main' ? process.env.MY_MAIN_FILEPATH : process.env.MY_TEST_FILEPATH
117
108
  const DEV_KEYS = process.env.DEV_KEYS || '{}'
118
109
  const mySQLConnection = process.env.MYSQL_CONNECTION || '{}'
119
110
  const taalApiKey = verifyTruthy(
120
- chain === 'main'
121
- ? process.env.MAIN_TAAL_API_KEY
122
- : process.env.TEST_TAAL_API_KEY,
111
+ chain === 'main' ? process.env.MAIN_TAAL_API_KEY : process.env.TEST_TAAL_API_KEY,
123
112
  `.env value for '${chain.toUpperCase()}_TAAL_API_KEY' is required.`
124
113
  )
125
114
 
126
115
  if (!identityKey || !identityKey2)
127
- throw new sdk.WERR_INVALID_OPERATION(
128
- '.env is not a valid SetupEnv configuration.'
129
- )
116
+ throw new sdk.WERR_INVALID_OPERATION('.env is not a valid SetupEnv configuration.')
130
117
 
131
118
  return {
132
119
  chain,
@@ -153,20 +140,12 @@ DEV_KEYS = '{
153
140
  const rootKey = PrivateKey.fromHex(args.rootKeyHex)
154
141
  const identityKey = rootKey.toPublicKey().toString()
155
142
  const keyDeriver = new KeyDeriver(rootKey)
156
- const storage = new WalletStorageManager(
157
- identityKey,
158
- args.active,
159
- args.backups
160
- )
143
+ const storage = new WalletStorageManager(identityKey, args.active, args.backups)
161
144
  if (storage.canMakeAvailable()) await storage.makeAvailable()
162
145
  const serviceOptions = Services.createDefaultOptions(chain)
163
146
  serviceOptions.taalApiKey = args.env.taalApiKey
164
147
  const services = new Services(serviceOptions)
165
- const monopts = Monitor.createDefaultWalletMonitorOptions(
166
- chain,
167
- storage,
168
- services
169
- )
148
+ const monopts = Monitor.createDefaultWalletMonitorOptions(chain, storage, services)
170
149
  const monitor = new Monitor(monopts)
171
150
  monitor.addDefaultTasks()
172
151
  const privilegedKeyManager = args.privilegedKeyGetter
@@ -208,9 +187,7 @@ DEV_KEYS = '{
208
187
  privilegedKeyGetter?: () => Promise<PrivateKey>
209
188
  }): Promise<Wallet> {
210
189
  const chain = args.chain
211
- const endpointUrl =
212
- args.storageUrl ||
213
- `https://${args.chain !== 'main' ? 'staging-' : ''}storage.babbage.systems`
190
+ const endpointUrl = args.storageUrl || `https://${args.chain !== 'main' ? 'staging-' : ''}storage.babbage.systems`
214
191
  const rootKey = PrivateKey.fromHex(args.rootKeyHex)
215
192
  const keyDeriver = new KeyDeriver(rootKey)
216
193
  const storage = new WalletStorageManager(keyDeriver.identityKey)
@@ -234,14 +211,11 @@ DEV_KEYS = '{
234
211
  /**
235
212
  * @publicbody
236
213
  */
237
- static async createWalletClient(
238
- args: SetupWalletClientArgs
239
- ): Promise<SetupWalletClient> {
214
+ static async createWalletClient(args: SetupWalletClientArgs): Promise<SetupWalletClient> {
240
215
  const wo = await Setup.createWallet(args)
241
216
 
242
217
  const endpointUrl =
243
- args.endpointUrl ||
244
- `https://${args.env.chain !== 'main' ? 'staging-' : ''}storage.babbage.systems`
218
+ args.endpointUrl || `https://${args.env.chain !== 'main' ? 'staging-' : ''}storage.babbage.systems`
245
219
 
246
220
  const client = new StorageClient(wo.wallet, endpointUrl)
247
221
  await wo.storage.addWalletStorageProvider(client)
@@ -276,10 +250,7 @@ DEV_KEYS = '{
276
250
  /**
277
251
  * @publicbody
278
252
  */
279
- static getUnlockP2PKH(
280
- priv: PrivateKey,
281
- satoshis: number
282
- ): sdk.ScriptTemplateUnlock {
253
+ static getUnlockP2PKH(priv: PrivateKey, satoshis: number): sdk.ScriptTemplateUnlock {
283
254
  const p2pkh = new P2PKH()
284
255
  const lock = Setup.getLockP2PKH(Setup.getKeyPair(priv).address)
285
256
  // Prepare to pay with SIGHASH_ALL and without ANYONE_CAN_PAY.
@@ -381,9 +352,7 @@ DEV_KEYS = '{
381
352
  *
382
353
  * @publicbody
383
354
  */
384
- static async createWalletKnex(
385
- args: SetupWalletKnexArgs
386
- ): Promise<SetupWalletKnex> {
355
+ static async createWalletKnex(args: SetupWalletKnexArgs): Promise<SetupWalletKnex> {
387
356
  const wo = await Setup.createWallet(args)
388
357
  const activeStorage = await Setup.createStorageKnex(args)
389
358
  await wo.storage.addWalletStorageProvider(activeStorage)
@@ -400,9 +369,7 @@ DEV_KEYS = '{
400
369
  /**
401
370
  * @returns {StorageKnex} - `Knex` based storage provider for a wallet. May be used for either active storage or backup storage.
402
371
  */
403
- static async createStorageKnex(
404
- args: SetupWalletKnexArgs
405
- ): Promise<StorageKnex> {
372
+ static async createStorageKnex(args: SetupWalletKnexArgs): Promise<StorageKnex> {
406
373
  // Create a temporary wallet setup to consistently resolve optional args.
407
374
  const wo = await Setup.createWallet(args)
408
375
  const storage = new StorageKnex({
@@ -452,9 +419,7 @@ DEV_KEYS = '{
452
419
  /**
453
420
  * @publicbody
454
421
  */
455
- static async createWalletMySQL(
456
- args: SetupWalletMySQLArgs
457
- ): Promise<SetupWalletKnex> {
422
+ static async createWalletMySQL(args: SetupWalletMySQLArgs): Promise<SetupWalletKnex> {
458
423
  return await this.createWalletKnex({
459
424
  ...args,
460
425
  knex: Setup.createMySQLKnex(args.env.mySQLConnection, args.databaseName)
@@ -464,9 +429,7 @@ DEV_KEYS = '{
464
429
  /**
465
430
  * @publicbody
466
431
  */
467
- static async createWalletSQLite(
468
- args: SetupWalletSQLiteArgs
469
- ): Promise<SetupWalletKnex> {
432
+ static async createWalletSQLite(args: SetupWalletSQLiteArgs): Promise<SetupWalletKnex> {
470
433
  return await this.createWalletKnex({
471
434
  ...args,
472
435
  knex: Setup.createSQLiteKnex(args.filePath)
package/src/Wallet.ts CHANGED
@@ -205,9 +205,7 @@ export class Wallet implements WalletInterface, ProtoWallet {
205
205
  ): Promise<GetPublicKeyResult> {
206
206
  if (args.privileged) {
207
207
  if (!this.privilegedKeyManager) {
208
- throw new Error(
209
- 'Privileged operations require the Wallet to be configured with a privileged key manager.'
210
- )
208
+ throw new Error('Privileged operations require the Wallet to be configured with a privileged key manager.')
211
209
  }
212
210
  return this.privilegedKeyManager.getPublicKey(args)
213
211
  }
@@ -219,9 +217,7 @@ export class Wallet implements WalletInterface, ProtoWallet {
219
217
  ): Promise<RevealCounterpartyKeyLinkageResult> {
220
218
  if (args.privileged) {
221
219
  if (!this.privilegedKeyManager) {
222
- throw new Error(
223
- 'Privileged operations require the Wallet to be configured with a privileged key manager.'
224
- )
220
+ throw new Error('Privileged operations require the Wallet to be configured with a privileged key manager.')
225
221
  }
226
222
  return this.privilegedKeyManager.revealCounterpartyKeyLinkage(args)
227
223
  }
@@ -233,65 +229,43 @@ export class Wallet implements WalletInterface, ProtoWallet {
233
229
  ): Promise<RevealSpecificKeyLinkageResult> {
234
230
  if (args.privileged) {
235
231
  if (!this.privilegedKeyManager) {
236
- throw new Error(
237
- 'Privileged operations require the Wallet to be configured with a privileged key manager.'
238
- )
232
+ throw new Error('Privileged operations require the Wallet to be configured with a privileged key manager.')
239
233
  }
240
234
  return this.privilegedKeyManager.revealSpecificKeyLinkage(args)
241
235
  }
242
236
  return this.proto.revealSpecificKeyLinkage(args)
243
237
  }
244
- encrypt(
245
- args: WalletEncryptArgs,
246
- originator?: OriginatorDomainNameStringUnder250Bytes
247
- ): Promise<WalletEncryptResult> {
238
+ encrypt(args: WalletEncryptArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<WalletEncryptResult> {
248
239
  if (args.privileged) {
249
240
  if (!this.privilegedKeyManager) {
250
- throw new Error(
251
- 'Privileged operations require the Wallet to be configured with a privileged key manager.'
252
- )
241
+ throw new Error('Privileged operations require the Wallet to be configured with a privileged key manager.')
253
242
  }
254
243
  return this.privilegedKeyManager.encrypt(args)
255
244
  }
256
245
  return this.proto.encrypt(args)
257
246
  }
258
- decrypt(
259
- args: WalletDecryptArgs,
260
- originator?: OriginatorDomainNameStringUnder250Bytes
261
- ): Promise<WalletDecryptResult> {
247
+ decrypt(args: WalletDecryptArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<WalletDecryptResult> {
262
248
  if (args.privileged) {
263
249
  if (!this.privilegedKeyManager) {
264
- throw new Error(
265
- 'Privileged operations require the Wallet to be configured with a privileged key manager.'
266
- )
250
+ throw new Error('Privileged operations require the Wallet to be configured with a privileged key manager.')
267
251
  }
268
252
  return this.privilegedKeyManager.decrypt(args)
269
253
  }
270
254
  return this.proto.decrypt(args)
271
255
  }
272
- createHmac(
273
- args: CreateHmacArgs,
274
- originator?: OriginatorDomainNameStringUnder250Bytes
275
- ): Promise<CreateHmacResult> {
256
+ createHmac(args: CreateHmacArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<CreateHmacResult> {
276
257
  if (args.privileged) {
277
258
  if (!this.privilegedKeyManager) {
278
- throw new Error(
279
- 'Privileged operations require the Wallet to be configured with a privileged key manager.'
280
- )
259
+ throw new Error('Privileged operations require the Wallet to be configured with a privileged key manager.')
281
260
  }
282
261
  return this.privilegedKeyManager.createHmac(args)
283
262
  }
284
263
  return this.proto.createHmac(args)
285
264
  }
286
- verifyHmac(
287
- args: VerifyHmacArgs,
288
- originator?: OriginatorDomainNameStringUnder250Bytes
289
- ): Promise<VerifyHmacResult> {
265
+ verifyHmac(args: VerifyHmacArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<VerifyHmacResult> {
290
266
  if (args.privileged) {
291
267
  if (!this.privilegedKeyManager) {
292
- throw new Error(
293
- 'Privileged operations require the Wallet to be configured with a privileged key manager.'
294
- )
268
+ throw new Error('Privileged operations require the Wallet to be configured with a privileged key manager.')
295
269
  }
296
270
  return this.privilegedKeyManager.verifyHmac(args)
297
271
  }
@@ -303,9 +277,7 @@ export class Wallet implements WalletInterface, ProtoWallet {
303
277
  ): Promise<CreateSignatureResult> {
304
278
  if (args.privileged) {
305
279
  if (!this.privilegedKeyManager) {
306
- throw new Error(
307
- 'Privileged operations require the Wallet to be configured with a privileged key manager.'
308
- )
280
+ throw new Error('Privileged operations require the Wallet to be configured with a privileged key manager.')
309
281
  }
310
282
  return this.privilegedKeyManager.createSignature(args)
311
283
  }
@@ -317,9 +289,7 @@ export class Wallet implements WalletInterface, ProtoWallet {
317
289
  ): Promise<VerifySignatureResult> {
318
290
  if (args.privileged) {
319
291
  if (!this.privilegedKeyManager) {
320
- throw new Error(
321
- 'Privileged operations require the Wallet to be configured with a privileged key manager.'
322
- )
292
+ throw new Error('Privileged operations require the Wallet to be configured with a privileged key manager.')
323
293
  }
324
294
  return this.privilegedKeyManager.verifySignature(args)
325
295
  }
@@ -328,10 +298,7 @@ export class Wallet implements WalletInterface, ProtoWallet {
328
298
 
329
299
  getServices(): sdk.WalletServices {
330
300
  if (!this.services)
331
- throw new sdk.WERR_INVALID_PARAMETER(
332
- 'services',
333
- 'valid in constructor arguments to be retreived here.'
334
- )
301
+ throw new sdk.WERR_INVALID_PARAMETER('services', 'valid in constructor arguments to be retreived here.')
335
302
  return this.services
336
303
  }
337
304
 
@@ -375,10 +342,7 @@ export class Wallet implements WalletInterface, ProtoWallet {
375
342
  originator?: OriginatorDomainNameStringUnder250Bytes
376
343
  ): Promise<ListActionsResult> {
377
344
  sdk.validateOriginator(originator)
378
- const { vargs } = this.validateAuthAndArgs(
379
- args,
380
- sdk.validateListActionsArgs
381
- )
345
+ const { vargs } = this.validateAuthAndArgs(args, sdk.validateListActionsArgs)
382
346
  const r = await this.storage.listActions(vargs)
383
347
  return r
384
348
  }
@@ -392,10 +356,7 @@ export class Wallet implements WalletInterface, ProtoWallet {
392
356
  originator?: OriginatorDomainNameStringUnder250Bytes
393
357
  ): Promise<ListOutputsResult> {
394
358
  sdk.validateOriginator(originator)
395
- const { vargs } = this.validateAuthAndArgs(
396
- args,
397
- sdk.validateListOutputsArgs
398
- )
359
+ const { vargs } = this.validateAuthAndArgs(args, sdk.validateListOutputsArgs)
399
360
  vargs.knownTxids = this.getKnownTxids()
400
361
  const r = await this.storage.listOutputs(vargs)
401
362
  if (r.BEEF) {
@@ -410,10 +371,7 @@ export class Wallet implements WalletInterface, ProtoWallet {
410
371
  originator?: OriginatorDomainNameStringUnder250Bytes
411
372
  ): Promise<ListCertificatesResult> {
412
373
  sdk.validateOriginator(originator)
413
- const { vargs } = this.validateAuthAndArgs(
414
- args,
415
- sdk.validateListCertificatesArgs
416
- )
374
+ const { vargs } = this.validateAuthAndArgs(args, sdk.validateListCertificatesArgs)
417
375
  const r = await this.storage.listCertificates(vargs)
418
376
  return r
419
377
  }
@@ -428,10 +386,7 @@ export class Wallet implements WalletInterface, ProtoWallet {
428
386
  ): Promise<AcquireCertificateResult> {
429
387
  sdk.validateOriginator(originator)
430
388
  if (args.acquisitionProtocol === 'direct') {
431
- const { auth, vargs } = this.validateAuthAndArgs(
432
- args,
433
- sdk.validateAcquireDirectCertificateArgs
434
- )
389
+ const { auth, vargs } = this.validateAuthAndArgs(args, sdk.validateAcquireDirectCertificateArgs)
435
390
  vargs.subject = (
436
391
  await this.getPublicKey({
437
392
  identityKey: true,
@@ -441,17 +396,11 @@ export class Wallet implements WalletInterface, ProtoWallet {
441
396
  ).publicKey
442
397
  try {
443
398
  // Confirm that the information received adds up to a usable certificate...
444
- await sdk.CertOps.fromCounterparty(
445
- vargs.privileged ? this.privilegedKeyManager! : this,
446
- {
447
- certificate: { ...vargs },
448
- keyring: vargs.keyringForSubject,
449
- counterparty:
450
- vargs.keyringRevealer === 'certifier'
451
- ? vargs.certifier
452
- : vargs.keyringRevealer
453
- }
454
- )
399
+ await sdk.CertOps.fromCounterparty(vargs.privileged ? this.privilegedKeyManager! : this, {
400
+ certificate: { ...vargs },
401
+ keyring: vargs.keyringForSubject,
402
+ counterparty: vargs.keyringRevealer === 'certifier' ? vargs.certifier : vargs.keyringRevealer
403
+ })
455
404
  } catch (eu: unknown) {
456
405
  const e = sdk.WalletError.fromUnknown(eu)
457
406
  throw new sdk.WERR_INVALID_PARAMETER(
@@ -465,10 +414,7 @@ export class Wallet implements WalletInterface, ProtoWallet {
465
414
  }
466
415
 
467
416
  if (args.acquisitionProtocol === 'issuance') {
468
- const { auth, vargs } = this.validateAuthAndArgs(
469
- args,
470
- sdk.validateAcquireIssuanceCertificateArgs
471
- )
417
+ const { auth, vargs } = this.validateAuthAndArgs(args, sdk.validateAcquireIssuanceCertificateArgs)
472
418
  // Create a random nonce that the server can verify
473
419
  const clientNonce = await createNonce(this, vargs.certifier)
474
420
  // TODO: Consider adding support to request certificates from a certifier before acquiring a certificate.
@@ -476,29 +422,25 @@ export class Wallet implements WalletInterface, ProtoWallet {
476
422
 
477
423
  // Create a certificate master keyring
478
424
  // The certifier is able to decrypt these fields as they are the counterparty
479
- const { certificateFields, masterKeyring } =
480
- await MasterCertificate.createCertificateFields(
481
- this,
482
- vargs.certifier,
483
- vargs.fields
484
- )
425
+ const { certificateFields, masterKeyring } = await MasterCertificate.createCertificateFields(
426
+ this,
427
+ vargs.certifier,
428
+ vargs.fields
429
+ )
485
430
 
486
431
  // Make a Certificate Signing Request (CSR) to the certifier
487
- const response = await authClient.fetch(
488
- `${vargs.certifierUrl}/signCertificate`,
489
- {
490
- method: 'POST',
491
- headers: {
492
- 'Content-Type': 'application/json'
493
- },
494
- body: JSON.stringify({
495
- clientNonce,
496
- type: vargs.type,
497
- fields: certificateFields,
498
- masterKeyring
499
- })
500
- }
501
- )
432
+ const response = await authClient.fetch(`${vargs.certifierUrl}/signCertificate`, {
433
+ method: 'POST',
434
+ headers: {
435
+ 'Content-Type': 'application/json'
436
+ },
437
+ body: JSON.stringify({
438
+ clientNonce,
439
+ type: vargs.type,
440
+ fields: certificateFields,
441
+ masterKeyring
442
+ })
443
+ })
502
444
 
503
445
  if (response.headers.get('x-bsv-auth-identity-key') !== vargs.certifier) {
504
446
  throw new Error(
@@ -540,9 +482,7 @@ export class Wallet implements WalletInterface, ProtoWallet {
540
482
 
541
483
  // Validate the certificate received
542
484
  if (signedCertificate.type !== vargs.type) {
543
- throw new Error(
544
- `Invalid certificate type! Expected: ${vargs.type}, Received: ${signedCertificate.type}`
545
- )
485
+ throw new Error(`Invalid certificate type! Expected: ${vargs.type}, Received: ${signedCertificate.type}`)
546
486
  }
547
487
  if (signedCertificate.subject !== this.identityKey) {
548
488
  throw new Error(
@@ -550,20 +490,13 @@ export class Wallet implements WalletInterface, ProtoWallet {
550
490
  )
551
491
  }
552
492
  if (signedCertificate.certifier !== vargs.certifier) {
553
- throw new Error(
554
- `Invalid certifier! Expected: ${vargs.certifier}, Received: ${signedCertificate.certifier}`
555
- )
493
+ throw new Error(`Invalid certifier! Expected: ${vargs.certifier}, Received: ${signedCertificate.certifier}`)
556
494
  }
557
495
  if (!signedCertificate.revocationOutpoint) {
558
496
  throw new Error(`Invalid revocationOutpoint!`)
559
497
  }
560
- if (
561
- Object.keys(signedCertificate.fields).length !==
562
- Object.keys(certificateFields).length
563
- ) {
564
- throw new Error(
565
- `Fields mismatch! Objects have different numbers of keys.`
566
- )
498
+ if (Object.keys(signedCertificate.fields).length !== Object.keys(certificateFields).length) {
499
+ throw new Error(`Fields mismatch! Objects have different numbers of keys.`)
567
500
  }
568
501
  for (const field of Object.keys(certificateFields)) {
569
502
  if (!(field in signedCertificate.fields)) {
@@ -587,10 +520,7 @@ export class Wallet implements WalletInterface, ProtoWallet {
587
520
  })
588
521
  }
589
522
 
590
- throw new sdk.WERR_INVALID_PARAMETER(
591
- 'acquisitionProtocol',
592
- `valid.${args.acquisitionProtocol} is unrecognized.`
593
- )
523
+ throw new sdk.WERR_INVALID_PARAMETER('acquisitionProtocol', `valid.${args.acquisitionProtocol} is unrecognized.`)
594
524
  }
595
525
 
596
526
  async relinquishCertificate(
@@ -608,10 +538,7 @@ export class Wallet implements WalletInterface, ProtoWallet {
608
538
  originator?: OriginatorDomainNameStringUnder250Bytes
609
539
  ): Promise<ProveCertificateResult> {
610
540
  originator = sdk.validateOriginator(originator)
611
- const { auth, vargs } = this.validateAuthAndArgs(
612
- args,
613
- sdk.validateProveCertificateArgs
614
- )
541
+ const { auth, vargs } = this.validateAuthAndArgs(args, sdk.validateProveCertificateArgs)
615
542
  const r = await proveCertificate(this, auth, vargs)
616
543
  return r
617
544
  }
@@ -636,9 +563,7 @@ export class Wallet implements WalletInterface, ProtoWallet {
636
563
 
637
564
  verifyReturnedTxidOnly(beef: Beef): Beef {
638
565
  if (this.returnTxidOnly) return beef
639
- const onlyTxids = beef.txs
640
- .filter(btx => btx.isTxidOnly)
641
- .map(btx => btx.txid)
566
+ const onlyTxids = beef.txs.filter(btx => btx.isTxidOnly).map(btx => btx.txid)
642
567
  for (const txid of onlyTxids) {
643
568
  const btx = beef.findTxid(txid)
644
569
  const tx = this.beef.findAtomicTransaction(txid)
@@ -678,10 +603,7 @@ export class Wallet implements WalletInterface, ProtoWallet {
678
603
  args.options.trustSelf ||= this.trustSelf
679
604
  args.options.knownTxids = this.getKnownTxids(args.options.knownTxids)
680
605
 
681
- const { auth, vargs } = this.validateAuthAndArgs(
682
- args,
683
- sdk.validateCreateActionArgs
684
- )
606
+ const { auth, vargs } = this.validateAuthAndArgs(args, sdk.validateCreateActionArgs)
685
607
  vargs.includeAllSourceTransactions = this.includeAllSourceTransactions
686
608
  if (this.randomVals && this.randomVals.length > 1) {
687
609
  vargs.randomVals = [...this.randomVals]
@@ -712,10 +634,7 @@ export class Wallet implements WalletInterface, ProtoWallet {
712
634
  ): Promise<SignActionResult> {
713
635
  sdk.validateOriginator(originator)
714
636
 
715
- const { auth, vargs } = this.validateAuthAndArgs(
716
- args,
717
- sdk.validateSignActionArgs
718
- )
637
+ const { auth, vargs } = this.validateAuthAndArgs(args, sdk.validateSignActionArgs)
719
638
  const r = await signAction(this, auth, vargs)
720
639
 
721
640
  if (
@@ -747,10 +666,7 @@ export class Wallet implements WalletInterface, ProtoWallet {
747
666
  originator?: OriginatorDomainNameStringUnder250Bytes
748
667
  ): Promise<InternalizeActionResult> {
749
668
  sdk.validateOriginator(originator)
750
- const { auth, vargs } = this.validateAuthAndArgs(
751
- args,
752
- sdk.validateInternalizeActionArgs
753
- )
669
+ const { auth, vargs } = this.validateAuthAndArgs(args, sdk.validateInternalizeActionArgs)
754
670
  const r = await internalizeAction(this, auth, args)
755
671
  return r
756
672
  }
@@ -760,18 +676,12 @@ export class Wallet implements WalletInterface, ProtoWallet {
760
676
  originator?: OriginatorDomainNameStringUnder250Bytes
761
677
  ): Promise<RelinquishOutputResult> {
762
678
  sdk.validateOriginator(originator)
763
- const { vargs } = this.validateAuthAndArgs(
764
- args,
765
- sdk.validateRelinquishOutputArgs
766
- )
679
+ const { vargs } = this.validateAuthAndArgs(args, sdk.validateRelinquishOutputArgs)
767
680
  const r = await this.storage.relinquishOutput(args)
768
681
  return { relinquished: true }
769
682
  }
770
683
 
771
- async isAuthenticated(
772
- args: {},
773
- originator?: OriginatorDomainNameStringUnder250Bytes
774
- ): Promise<AuthenticatedResult> {
684
+ async isAuthenticated(args: {}, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<AuthenticatedResult> {
775
685
  sdk.validateOriginator(originator)
776
686
  const r: { authenticated: true } = {
777
687
  authenticated: true
@@ -787,10 +697,7 @@ export class Wallet implements WalletInterface, ProtoWallet {
787
697
  return { authenticated: true }
788
698
  }
789
699
 
790
- async getHeight(
791
- args: {},
792
- originator?: OriginatorDomainNameStringUnder250Bytes
793
- ): Promise<GetHeightResult> {
700
+ async getHeight(args: {}, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<GetHeightResult> {
794
701
  sdk.validateOriginator(originator)
795
702
  const height = await this.getServices().getHeight()
796
703
  return { height }
@@ -801,24 +708,16 @@ export class Wallet implements WalletInterface, ProtoWallet {
801
708
  originator?: OriginatorDomainNameStringUnder250Bytes
802
709
  ): Promise<GetHeaderResult> {
803
710
  sdk.validateOriginator(originator)
804
- const serializedHeader = await this.getServices().getHeaderForHeight(
805
- args.height
806
- )
711
+ const serializedHeader = await this.getServices().getHeaderForHeight(args.height)
807
712
  return { header: Utils.toHex(serializedHeader) }
808
713
  }
809
714
 
810
- async getNetwork(
811
- args: {},
812
- originator?: OriginatorDomainNameStringUnder250Bytes
813
- ): Promise<GetNetworkResult> {
715
+ async getNetwork(args: {}, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<GetNetworkResult> {
814
716
  sdk.validateOriginator(originator)
815
717
  return { network: toWalletNetwork(this.chain) }
816
718
  }
817
719
 
818
- async getVersion(
819
- args: {},
820
- originator?: OriginatorDomainNameStringUnder250Bytes
821
- ): Promise<GetVersionResult> {
720
+ async getVersion(args: {}, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<GetVersionResult> {
822
721
  sdk.validateOriginator(originator)
823
722
  return { version: 'wallet-brc100-1.0.0' }
824
723
  }
@@ -846,9 +745,7 @@ export class Wallet implements WalletInterface, ProtoWallet {
846
745
  const car = await this.createAction({
847
746
  outputs: [
848
747
  {
849
- lockingScript: t
850
- .lock(keyDeriver.rootKey.toString(), toWallet.identityKey)
851
- .toHex(),
748
+ lockingScript: t.lock(keyDeriver.rootKey.toString(), toWallet.identityKey).toHex(),
852
749
  satoshis,
853
750
  outputDescription: label,
854
751
  tags: ['relinquish'],
@@ -48,11 +48,7 @@ export class Monitor {
48
48
  services?: Services
49
49
  ): MonitorOptions {
50
50
  services ||= new Services(chain)
51
- if (!services.options.chaintracks)
52
- throw new sdk.WERR_INVALID_PARAMETER(
53
- 'services.options.chaintracks',
54
- 'valid'
55
- )
51
+ if (!services.options.chaintracks) throw new sdk.WERR_INVALID_PARAMETER('services.options.chaintracks', 'valid')
56
52
  const o: MonitorOptions = {
57
53
  chain,
58
54
  services,
@@ -124,14 +120,10 @@ export class Monitor {
124
120
  addDefaultTasks(): void {
125
121
  this._tasks.push(new TaskClock(this))
126
122
  this._tasks.push(new TaskNewHeader(this))
127
- this._tasks.push(
128
- new TaskSendWaiting(this, 8 * this.oneSecond, 7 * this.oneSecond)
129
- ) // Check every 8 seconds but must be 7 seconds old
123
+ this._tasks.push(new TaskSendWaiting(this, 8 * this.oneSecond, 7 * this.oneSecond)) // Check every 8 seconds but must be 7 seconds old
130
124
  this._tasks.push(new TaskCheckForProofs(this, 2 * this.oneHour)) // Every two hours if no block found
131
125
  this._tasks.push(new TaskFailAbandoned(this, 8 * this.oneMinute))
132
- this._tasks.push(
133
- new TaskPurge(this, this.defaultPurgeParams, 6 * this.oneHour)
134
- )
126
+ this._tasks.push(new TaskPurge(this, this.defaultPurgeParams, 6 * this.oneHour))
135
127
  this._tasks.push(new TaskReviewStatus(this))
136
128
  }
137
129
 
@@ -142,22 +134,16 @@ export class Monitor {
142
134
  addMultiUserTasks(): void {
143
135
  this._tasks.push(new TaskClock(this))
144
136
  this._tasks.push(new TaskNewHeader(this))
145
- this._tasks.push(
146
- new TaskSendWaiting(this, 8 * this.oneSecond, 7 * this.oneSecond)
147
- ) // Check every 8 seconds but must be 7 seconds old
137
+ this._tasks.push(new TaskSendWaiting(this, 8 * this.oneSecond, 7 * this.oneSecond)) // Check every 8 seconds but must be 7 seconds old
148
138
  this._tasks.push(new TaskCheckForProofs(this, 2 * this.oneHour)) // Every two hours if no block found
149
139
  this._tasks.push(new TaskFailAbandoned(this, 8 * this.oneMinute))
150
- this._tasks.push(
151
- new TaskPurge(this, this.defaultPurgeParams, 6 * this.oneHour)
152
- )
140
+ this._tasks.push(new TaskPurge(this, this.defaultPurgeParams, 6 * this.oneHour))
153
141
  this._tasks.push(new TaskReviewStatus(this))
154
142
  }
155
143
 
156
144
  addTask(task: WalletMonitorTask): void {
157
145
  if (this._tasks.some(t => t.name === task.name))
158
- throw new sdk.WERR_BAD_REQUEST(
159
- `task ${task.name} has already been added.`
160
- )
146
+ throw new sdk.WERR_BAD_REQUEST(`task ${task.name} has already been added.`)
161
147
  this._tasks.push(task)
162
148
  }
163
149
 
@@ -238,8 +224,7 @@ export class Monitor {
238
224
  _runAsyncSetup: boolean = true
239
225
 
240
226
  async startTasks(): Promise<void> {
241
- if (this._tasksRunning)
242
- throw new sdk.WERR_BAD_REQUEST('monitor tasks are already runnining.')
227
+ if (this._tasksRunning) throw new sdk.WERR_BAD_REQUEST('monitor tasks are already runnining.')
243
228
 
244
229
  this._tasksRunning = true
245
230
  for (; this._tasksRunning; ) {