@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
@@ -35,33 +35,15 @@ import {
35
35
  verifyTruthy
36
36
  } from '../index.client'
37
37
  import { getBeefForTransaction } from './methods/getBeefForTransaction'
38
- import {
39
- GetReqsAndBeefDetail,
40
- GetReqsAndBeefResult,
41
- processAction
42
- } from './methods/processAction'
43
- import {
44
- attemptToPostReqsToNetwork,
45
- PostReqsToNetworkResult
46
- } from './methods/attemptToPostReqsToNetwork'
38
+ import { GetReqsAndBeefDetail, GetReqsAndBeefResult, processAction } from './methods/processAction'
39
+ import { attemptToPostReqsToNetwork, PostReqsToNetworkResult } from './methods/attemptToPostReqsToNetwork'
47
40
  import { listCertificates } from './methods/listCertificates'
48
41
  import { createAction } from './methods/createAction'
49
42
  import { internalizeAction } from './methods/internalizeAction'
50
- import {
51
- StorageReaderWriter,
52
- StorageReaderWriterOptions
53
- } from './StorageReaderWriter'
54
- import {
55
- EntityProvenTx,
56
- EntityProvenTxReq,
57
- EntitySyncState,
58
- EntityTransaction
59
- } from './schema/entities'
60
-
61
- export abstract class StorageProvider
62
- extends StorageReaderWriter
63
- implements sdk.WalletStorageProvider
64
- {
43
+ import { StorageReaderWriter, StorageReaderWriterOptions } from './StorageReaderWriter'
44
+ import { EntityProvenTx, EntityProvenTxReq, EntitySyncState, EntityTransaction } from './schema/entities'
45
+
46
+ export abstract class StorageProvider extends StorageReaderWriter implements sdk.WalletStorageProvider {
65
47
  isDirty = false
66
48
  _services?: sdk.WalletServices
67
49
  feeModel: sdk.StorageFeeModel
@@ -92,15 +74,9 @@ export abstract class StorageProvider
92
74
  this.commissionSatoshis = options.commissionSatoshis
93
75
  }
94
76
 
95
- abstract reviewStatus(args: {
96
- agedLimit: Date
97
- trx?: sdk.TrxToken
98
- }): Promise<{ log: string }>
77
+ abstract reviewStatus(args: { agedLimit: Date; trx?: sdk.TrxToken }): Promise<{ log: string }>
99
78
 
100
- abstract purgeData(
101
- params: sdk.PurgeParams,
102
- trx?: sdk.TrxToken
103
- ): Promise<sdk.PurgeResults>
79
+ abstract purgeData(params: sdk.PurgeParams, trx?: sdk.TrxToken): Promise<sdk.PurgeResults>
104
80
 
105
81
  abstract allocateChangeInput(
106
82
  userId: number,
@@ -111,10 +87,7 @@ export abstract class StorageProvider
111
87
  transactionId: number
112
88
  ): Promise<TableOutput | undefined>
113
89
 
114
- abstract getProvenOrRawTx(
115
- txid: string,
116
- trx?: sdk.TrxToken
117
- ): Promise<sdk.ProvenOrRawTx>
90
+ abstract getProvenOrRawTx(txid: string, trx?: sdk.TrxToken): Promise<sdk.ProvenOrRawTx>
118
91
  abstract getRawTxOfKnownValidTransaction(
119
92
  txid?: string,
120
93
  offset?: number,
@@ -122,46 +95,18 @@ export abstract class StorageProvider
122
95
  trx?: sdk.TrxToken
123
96
  ): Promise<number[] | undefined>
124
97
 
125
- abstract getLabelsForTransactionId(
126
- transactionId?: number,
127
- trx?: sdk.TrxToken
128
- ): Promise<TableTxLabel[]>
129
- abstract getTagsForOutputId(
130
- outputId: number,
131
- trx?: sdk.TrxToken
132
- ): Promise<TableOutputTag[]>
133
-
134
- abstract listActions(
135
- auth: sdk.AuthId,
136
- args: sdk.ValidListActionsArgs
137
- ): Promise<ListActionsResult>
138
- abstract listOutputs(
139
- auth: sdk.AuthId,
140
- args: sdk.ValidListOutputsArgs
141
- ): Promise<ListOutputsResult>
142
-
143
- abstract countChangeInputs(
144
- userId: number,
145
- basketId: number,
146
- excludeSending: boolean
147
- ): Promise<number>
148
-
149
- abstract findCertificatesAuth(
150
- auth: sdk.AuthId,
151
- args: sdk.FindCertificatesArgs
152
- ): Promise<TableCertificateX[]>
153
- abstract findOutputBasketsAuth(
154
- auth: sdk.AuthId,
155
- args: sdk.FindOutputBasketsArgs
156
- ): Promise<TableOutputBasket[]>
157
- abstract findOutputsAuth(
158
- auth: sdk.AuthId,
159
- args: sdk.FindOutputsArgs
160
- ): Promise<TableOutput[]>
161
- abstract insertCertificateAuth(
162
- auth: sdk.AuthId,
163
- certificate: TableCertificateX
164
- ): Promise<number>
98
+ abstract getLabelsForTransactionId(transactionId?: number, trx?: sdk.TrxToken): Promise<TableTxLabel[]>
99
+ abstract getTagsForOutputId(outputId: number, trx?: sdk.TrxToken): Promise<TableOutputTag[]>
100
+
101
+ abstract listActions(auth: sdk.AuthId, args: sdk.ValidListActionsArgs): Promise<ListActionsResult>
102
+ abstract listOutputs(auth: sdk.AuthId, args: sdk.ValidListOutputsArgs): Promise<ListOutputsResult>
103
+
104
+ abstract countChangeInputs(userId: number, basketId: number, excludeSending: boolean): Promise<number>
105
+
106
+ abstract findCertificatesAuth(auth: sdk.AuthId, args: sdk.FindCertificatesArgs): Promise<TableCertificateX[]>
107
+ abstract findOutputBasketsAuth(auth: sdk.AuthId, args: sdk.FindOutputBasketsArgs): Promise<TableOutputBasket[]>
108
+ abstract findOutputsAuth(auth: sdk.AuthId, args: sdk.FindOutputsArgs): Promise<TableOutput[]>
109
+ abstract insertCertificateAuth(auth: sdk.AuthId, certificate: TableCertificateX): Promise<number>
165
110
 
166
111
  override isStorageProvider(): boolean {
167
112
  return true
@@ -171,17 +116,12 @@ export abstract class StorageProvider
171
116
  this._services = v
172
117
  }
173
118
  getServices(): sdk.WalletServices {
174
- if (!this._services)
175
- throw new sdk.WERR_INVALID_OPERATION('Must setServices first.')
119
+ if (!this._services) throw new sdk.WERR_INVALID_OPERATION('Must setServices first.')
176
120
  return this._services
177
121
  }
178
122
 
179
- async abortAction(
180
- auth: sdk.AuthId,
181
- args: AbortActionArgs
182
- ): Promise<AbortActionResult> {
183
- if (!auth.userId)
184
- throw new sdk.WERR_INVALID_PARAMETER('auth.userId', 'valid')
123
+ async abortAction(auth: sdk.AuthId, args: AbortActionArgs): Promise<AbortActionResult> {
124
+ if (!auth.userId) throw new sdk.WERR_INVALID_PARAMETER('auth.userId', 'valid')
185
125
 
186
126
  const userId = auth.userId
187
127
  let reference: string | undefined = args.reference
@@ -207,28 +147,13 @@ export abstract class StorageProvider
207
147
  })
208
148
  )
209
149
  }
210
- const unAbortableStatus: sdk.TransactionStatus[] = [
211
- 'completed',
212
- 'failed',
213
- 'sending',
214
- 'unproven'
215
- ]
216
- if (
217
- !tx ||
218
- !tx.isOutgoing ||
219
- -1 < unAbortableStatus.findIndex(s => s === tx.status)
220
- )
150
+ const unAbortableStatus: sdk.TransactionStatus[] = ['completed', 'failed', 'sending', 'unproven']
151
+ if (!tx || !tx.isOutgoing || -1 < unAbortableStatus.findIndex(s => s === tx.status))
221
152
  throw new sdk.WERR_INVALID_PARAMETER(
222
153
  'reference',
223
154
  'an inprocess, outgoing action that has not been signed and shared to the network.'
224
155
  )
225
- await this.updateTransactionStatus(
226
- 'failed',
227
- tx.transactionId,
228
- userId,
229
- reference,
230
- trx
231
- )
156
+ await this.updateTransactionStatus('failed', tx.transactionId, userId, reference, trx)
232
157
  if (tx.txid) {
233
158
  const req = await EntityProvenTxReq.fromStorageTxid(this, tx.txid, trx)
234
159
  if (req) {
@@ -245,10 +170,7 @@ export abstract class StorageProvider
245
170
  return r
246
171
  }
247
172
 
248
- async internalizeAction(
249
- auth: sdk.AuthId,
250
- args: InternalizeActionArgs
251
- ): Promise<InternalizeActionResult> {
173
+ async internalizeAction(auth: sdk.AuthId, args: InternalizeActionArgs): Promise<InternalizeActionResult> {
252
174
  return await internalizeAction(this, auth, args)
253
175
  }
254
176
 
@@ -278,28 +200,14 @@ export abstract class StorageProvider
278
200
  }
279
201
  r.details.push(d)
280
202
  try {
281
- d.proven = verifyOneOrNone(
282
- await this.findProvenTxs({ partial: { txid }, trx })
283
- )
203
+ d.proven = verifyOneOrNone(await this.findProvenTxs({ partial: { txid }, trx }))
284
204
  if (d.proven) d.status = 'alreadySent'
285
205
  else {
286
- const alreadySentStatus = [
287
- 'unmined',
288
- 'callback',
289
- 'unconfirmed',
290
- 'completed'
291
- ]
292
- const readyToSendStatus = [
293
- 'sending',
294
- 'unsent',
295
- 'nosend',
296
- 'unprocessed'
297
- ]
206
+ const alreadySentStatus = ['unmined', 'callback', 'unconfirmed', 'completed']
207
+ const readyToSendStatus = ['sending', 'unsent', 'nosend', 'unprocessed']
298
208
  const errorStatus = ['unknown', 'nonfinal', 'invalid', 'doubleSpend']
299
209
 
300
- d.req = verifyOneOrNone(
301
- await this.findProvenTxReqs({ partial: { txid }, trx })
302
- )
210
+ d.req = verifyOneOrNone(await this.findProvenTxReqs({ partial: { txid }, trx }))
303
211
  if (!d.req) {
304
212
  d.status = 'error'
305
213
  d.error = `ERR_UNKNOWN_TXID: ${txid} was not found.`
@@ -319,12 +227,7 @@ export abstract class StorageProvider
319
227
  }
320
228
 
321
229
  if (d.status === 'readyToSend') {
322
- await this.mergeReqToBeefToShareExternally(
323
- d.req!,
324
- r.beef,
325
- knownTxids,
326
- trx
327
- )
230
+ await this.mergeReqToBeefToShareExternally(d.req!, r.beef, knownTxids, trx)
328
231
  }
329
232
  }
330
233
  } catch (eu: unknown) {
@@ -342,29 +245,17 @@ export abstract class StorageProvider
342
245
  trx?: sdk.TrxToken
343
246
  ): Promise<void> {
344
247
  const { rawTx, inputBEEF: beef } = req
345
- if (!rawTx || !beef)
346
- throw new sdk.WERR_INTERNAL(`req rawTx and beef must be valid.`)
248
+ if (!rawTx || !beef) throw new sdk.WERR_INTERNAL(`req rawTx and beef must be valid.`)
347
249
  mergeToBeef.mergeRawTx(asArray(rawTx))
348
250
  mergeToBeef.mergeBeef(asArray(beef))
349
251
  const tx = BsvTransaction.fromBinary(asArray(rawTx))
350
252
  for (const input of tx.inputs) {
351
- if (!input.sourceTXID)
352
- throw new sdk.WERR_INTERNAL(
353
- `req all transaction inputs must have valid sourceTXID`
354
- )
253
+ if (!input.sourceTXID) throw new sdk.WERR_INTERNAL(`req all transaction inputs must have valid sourceTXID`)
355
254
  const txid = input.sourceTXID
356
255
  const btx = mergeToBeef.findTxid(txid)
357
256
  if (!btx) {
358
- if (knownTxids && knownTxids.indexOf(txid) > -1)
359
- mergeToBeef.mergeTxidOnly(txid)
360
- else
361
- await this.getValidBeefForKnownTxid(
362
- txid,
363
- mergeToBeef,
364
- undefined,
365
- knownTxids,
366
- trx
367
- )
257
+ if (knownTxids && knownTxids.indexOf(txid) > -1) mergeToBeef.mergeTxidOnly(txid)
258
+ else await this.getValidBeefForKnownTxid(txid, mergeToBeef, undefined, knownTxids, trx)
368
259
  }
369
260
  }
370
261
  }
@@ -383,26 +274,17 @@ export abstract class StorageProvider
383
274
  * @param trx
384
275
  * @returns
385
276
  */
386
- async getProvenOrReq(
387
- txid: string,
388
- newReq?: TableProvenTxReq,
389
- trx?: sdk.TrxToken
390
- ): Promise<sdk.StorageProvenOrReq> {
391
- if (newReq && txid !== newReq.txid)
392
- throw new sdk.WERR_INVALID_PARAMETER('newReq', `same txid`)
277
+ async getProvenOrReq(txid: string, newReq?: TableProvenTxReq, trx?: sdk.TrxToken): Promise<sdk.StorageProvenOrReq> {
278
+ if (newReq && txid !== newReq.txid) throw new sdk.WERR_INVALID_PARAMETER('newReq', `same txid`)
393
279
 
394
280
  const r: sdk.StorageProvenOrReq = { proven: undefined, req: undefined }
395
281
 
396
- r.proven = verifyOneOrNone(
397
- await this.findProvenTxs({ partial: { txid }, trx })
398
- )
282
+ r.proven = verifyOneOrNone(await this.findProvenTxs({ partial: { txid }, trx }))
399
283
  if (r.proven) return r
400
284
 
401
285
  for (let retry = 0; ; retry++) {
402
286
  try {
403
- r.req = verifyOneOrNone(
404
- await this.findProvenTxReqs({ partial: { txid }, trx })
405
- )
287
+ r.req = verifyOneOrNone(await this.findProvenTxReqs({ partial: { txid }, trx }))
406
288
  if (!r.req && !newReq) break
407
289
  if (!r.req && newReq) {
408
290
  await this.insertProvenTxReq(newReq, trx)
@@ -423,19 +305,10 @@ export abstract class StorageProvider
423
305
  return r
424
306
  }
425
307
 
426
- async updateTransactionsStatus(
427
- transactionIds: number[],
428
- status: sdk.TransactionStatus
429
- ): Promise<void> {
308
+ async updateTransactionsStatus(transactionIds: number[], status: sdk.TransactionStatus): Promise<void> {
430
309
  await this.transaction(async trx => {
431
310
  for (const id of transactionIds) {
432
- await this.updateTransactionStatus(
433
- status,
434
- id,
435
- undefined,
436
- undefined,
437
- trx
438
- )
311
+ await this.updateTransactionStatus(status, id, undefined, undefined, trx)
439
312
  }
440
313
  })
441
314
  }
@@ -459,9 +332,7 @@ export abstract class StorageProvider
459
332
  trx?: sdk.TrxToken
460
333
  ): Promise<void> {
461
334
  if (!transactionId && !(userId && reference))
462
- throw new sdk.WERR_MISSING_PARAMETER(
463
- 'either transactionId or userId and reference'
464
- )
335
+ throw new sdk.WERR_MISSING_PARAMETER('either transactionId or userId and reference')
465
336
 
466
337
  await this.transaction(async trx => {
467
338
  const where: Partial<TableTransaction> = {}
@@ -469,27 +340,18 @@ export abstract class StorageProvider
469
340
  if (userId) where.userId = userId
470
341
  if (reference) where.reference = reference
471
342
 
472
- const tx = verifyOne(
473
- await this.findTransactions({ partial: where, noRawTx: true, trx })
474
- )
343
+ const tx = verifyOne(await this.findTransactions({ partial: where, noRawTx: true, trx }))
475
344
 
476
345
  //if (tx.status === status)
477
346
  // no change required. Assume inputs and outputs spendable and spentBy are valid for status.
478
347
  //return
479
348
 
480
349
  // Once completed, this method cannot be used to "uncomplete" transaction.
481
- if (
482
- (status !== 'completed' && tx.status === 'completed') ||
483
- tx.provenTxId
484
- )
485
- throw new sdk.WERR_INVALID_OPERATION(
486
- 'The status of a "completed" transaction cannot be changed.'
487
- )
350
+ if ((status !== 'completed' && tx.status === 'completed') || tx.provenTxId)
351
+ throw new sdk.WERR_INVALID_OPERATION('The status of a "completed" transaction cannot be changed.')
488
352
  // It is not possible to un-fail a transaction. Information is lost and not recoverable.
489
353
  if (status !== 'failed' && tx.status === 'failed')
490
- throw new sdk.WERR_INVALID_OPERATION(
491
- `A "failed" transaction may not be un-failed by this method.`
492
- )
354
+ throw new sdk.WERR_INVALID_OPERATION(`A "failed" transaction may not be un-failed by this method.`)
493
355
 
494
356
  switch (status) {
495
357
  case 'failed':
@@ -501,11 +363,7 @@ export abstract class StorageProvider
501
363
  for (const input of inputs) {
502
364
  // input is a prior output belonging to userId that reference this transaction either by `spentBy`
503
365
  // or by txid and vout.
504
- await this.updateOutput(
505
- verifyId(input.outputId),
506
- { spendable: true, spentBy: undefined },
507
- trx
508
- )
366
+ await this.updateOutput(verifyId(input.outputId), { spendable: true, spentBy: undefined }, trx)
509
367
  }
510
368
  }
511
369
  break
@@ -524,39 +382,24 @@ export abstract class StorageProvider
524
382
  }, trx)
525
383
  }
526
384
 
527
- async createAction(
528
- auth: sdk.AuthId,
529
- args: sdk.ValidCreateActionArgs
530
- ): Promise<sdk.StorageCreateActionResult> {
385
+ async createAction(auth: sdk.AuthId, args: sdk.ValidCreateActionArgs): Promise<sdk.StorageCreateActionResult> {
531
386
  if (!auth.userId) throw new sdk.WERR_UNAUTHORIZED()
532
387
  return await createAction(this, auth, args)
533
388
  }
534
- async processAction(
535
- auth: sdk.AuthId,
536
- args: sdk.StorageProcessActionArgs
537
- ): Promise<sdk.StorageProcessActionResults> {
389
+ async processAction(auth: sdk.AuthId, args: sdk.StorageProcessActionArgs): Promise<sdk.StorageProcessActionResults> {
538
390
  if (!auth.userId) throw new sdk.WERR_UNAUTHORIZED()
539
391
  return await processAction(this, auth, args)
540
392
  }
541
393
 
542
- async attemptToPostReqsToNetwork(
543
- reqs: EntityProvenTxReq[],
544
- trx?: sdk.TrxToken
545
- ): Promise<PostReqsToNetworkResult> {
394
+ async attemptToPostReqsToNetwork(reqs: EntityProvenTxReq[], trx?: sdk.TrxToken): Promise<PostReqsToNetworkResult> {
546
395
  return await attemptToPostReqsToNetwork(this, reqs, trx)
547
396
  }
548
397
 
549
- async listCertificates(
550
- auth: sdk.AuthId,
551
- args: sdk.ValidListCertificatesArgs
552
- ): Promise<ListCertificatesResult> {
398
+ async listCertificates(auth: sdk.AuthId, args: sdk.ValidListCertificatesArgs): Promise<ListCertificatesResult> {
553
399
  return await listCertificates(this, auth, args)
554
400
  }
555
401
 
556
- async verifyKnownValidTransaction(
557
- txid: string,
558
- trx?: sdk.TrxToken
559
- ): Promise<boolean> {
402
+ async verifyKnownValidTransaction(txid: string, trx?: sdk.TrxToken): Promise<boolean> {
560
403
  const { proven, rawTx } = await this.getProvenOrRawTx(txid, trx)
561
404
  return proven != undefined || rawTx != undefined
562
405
  }
@@ -568,18 +411,8 @@ export abstract class StorageProvider
568
411
  knownTxids?: string[],
569
412
  trx?: sdk.TrxToken
570
413
  ): Promise<Beef> {
571
- const beef = await this.getValidBeefForTxid(
572
- txid,
573
- mergeToBeef,
574
- trustSelf,
575
- knownTxids,
576
- trx
577
- )
578
- if (!beef)
579
- throw new sdk.WERR_INVALID_PARAMETER(
580
- 'txid',
581
- `${txid} is not known to storage.`
582
- )
414
+ const beef = await this.getValidBeefForTxid(txid, mergeToBeef, trustSelf, knownTxids, trx)
415
+ if (!beef) throw new sdk.WERR_INVALID_PARAMETER('txid', `${txid} is not known to storage.`)
583
416
  return beef
584
417
  }
585
418
 
@@ -612,16 +445,8 @@ export abstract class StorageProvider
612
445
  for (const input of tx.inputs) {
613
446
  const btx = beef.findTxid(input.sourceTXID!)
614
447
  if (!btx) {
615
- if (knownTxids && knownTxids.indexOf(input.sourceTXID!) > -1)
616
- beef.mergeTxidOnly(input.sourceTXID!)
617
- else
618
- await this.getValidBeefForKnownTxid(
619
- input.sourceTXID!,
620
- beef,
621
- trustSelf,
622
- knownTxids,
623
- trx
624
- )
448
+ if (knownTxids && knownTxids.indexOf(input.sourceTXID!) > -1) beef.mergeTxidOnly(input.sourceTXID!)
449
+ else await this.getValidBeefForKnownTxid(input.sourceTXID!, beef, trustSelf, knownTxids, trx)
625
450
  }
626
451
  }
627
452
  return beef
@@ -631,26 +456,15 @@ export abstract class StorageProvider
631
456
  return undefined
632
457
  }
633
458
 
634
- async getBeefForTransaction(
635
- txid: string,
636
- options: sdk.StorageGetBeefOptions
637
- ): Promise<Beef> {
459
+ async getBeefForTransaction(txid: string, options: sdk.StorageGetBeefOptions): Promise<Beef> {
638
460
  return await getBeefForTransaction(this, txid, options)
639
461
  }
640
462
 
641
- async findMonitorEventById(
642
- id: number,
643
- trx?: sdk.TrxToken
644
- ): Promise<TableMonitorEvent | undefined> {
645
- return verifyOneOrNone(
646
- await this.findMonitorEvents({ partial: { id }, trx })
647
- )
463
+ async findMonitorEventById(id: number, trx?: sdk.TrxToken): Promise<TableMonitorEvent | undefined> {
464
+ return verifyOneOrNone(await this.findMonitorEvents({ partial: { id }, trx }))
648
465
  }
649
466
 
650
- async relinquishCertificate(
651
- auth: sdk.AuthId,
652
- args: RelinquishCertificateArgs
653
- ): Promise<number> {
467
+ async relinquishCertificate(auth: sdk.AuthId, args: RelinquishCertificateArgs): Promise<number> {
654
468
  const vargs = sdk.validateRelinquishCertificateArgs(args)
655
469
  const cert = verifyOne(
656
470
  await this.findCertificates({
@@ -666,25 +480,15 @@ export abstract class StorageProvider
666
480
  })
667
481
  }
668
482
 
669
- async relinquishOutput(
670
- auth: sdk.AuthId,
671
- args: RelinquishOutputArgs
672
- ): Promise<number> {
483
+ async relinquishOutput(auth: sdk.AuthId, args: RelinquishOutputArgs): Promise<number> {
673
484
  const vargs = sdk.validateRelinquishOutputArgs(args)
674
485
  const { txid, vout } = sdk.parseWalletOutpoint(vargs.output)
675
- const output = verifyOne(
676
- await this.findOutputs({ partial: { txid, vout } })
677
- )
486
+ const output = verifyOne(await this.findOutputs({ partial: { txid, vout } }))
678
487
  return await this.updateOutput(output.outputId, { basketId: undefined })
679
488
  }
680
489
 
681
- async processSyncChunk(
682
- args: sdk.RequestSyncChunkArgs,
683
- chunk: sdk.SyncChunk
684
- ): Promise<sdk.ProcessSyncChunkResult> {
685
- const user = verifyTruthy(
686
- await this.findUserByIdentityKey(args.identityKey)
687
- )
490
+ async processSyncChunk(args: sdk.RequestSyncChunkArgs, chunk: sdk.SyncChunk): Promise<sdk.ProcessSyncChunkResult> {
491
+ const user = verifyTruthy(await this.findUserByIdentityKey(args.identityKey))
688
492
  const ss = new EntitySyncState(
689
493
  verifyOne(
690
494
  await this.findSyncStates({
@@ -719,9 +523,7 @@ export abstract class StorageProvider
719
523
  let proven: EntityProvenTx
720
524
  if (req.provenTxId) {
721
525
  // Someone beat us to it, grab what we need for results...
722
- proven = new EntityProvenTx(
723
- verifyOne(await this.findProvenTxs({ partial: { txid: args.txid } }))
724
- )
526
+ proven = new EntityProvenTx(verifyOne(await this.findProvenTxs({ partial: { txid: args.txid } })))
725
527
  } else {
726
528
  let isNew: boolean
727
529
  ;({ proven, isNew } = await this.transaction(async trx => {
@@ -760,14 +562,9 @@ export abstract class StorageProvider
760
562
  })
761
563
  req.addHistoryNote({ what: 'notifyTxOfProof', transactionId: id })
762
564
  } catch (eu: unknown) {
763
- const e = sdk.WalletError.fromUnknown(eu)
764
- req.addHistoryNote({
765
- what: 'notifyTxOfProofError',
766
- transactionId: id,
767
- provenTxId: proven.provenTxId,
768
- code: e.code,
769
- description: e.description
770
- })
565
+ const { code, description } = sdk.WalletError.fromUnknown(eu)
566
+ const { provenTxId } = proven
567
+ req.addHistoryNote({ what: 'notifyTxOfProofError', id, provenTxId, code, description })
771
568
  }
772
569
  }
773
570
  await req.updateStorageDynamicProperties(this)
@@ -795,9 +592,7 @@ export abstract class StorageProvider
795
592
  const invalidSpendableOutputs: TableOutput[] = []
796
593
  const users = await this.findUsers({ partial: {} })
797
594
  for (const { userId } of users) {
798
- const defaultBasket = verifyOne(
799
- await this.findOutputBaskets({ partial: { userId, name: 'default' } })
800
- )
595
+ const defaultBasket = verifyOne(await this.findOutputBaskets({ partial: { userId, name: 'default' } }))
801
596
  const where: Partial<TableOutput> = {
802
597
  userId,
803
598
  basketId: defaultBasket.basketId,
@@ -810,21 +605,13 @@ export abstract class StorageProvider
810
605
  if (o.spendable) {
811
606
  let ok = false
812
607
  if (o.lockingScript && o.lockingScript.length > 0) {
813
- const r = await this.getServices().getUtxoStatus(
814
- asString(o.lockingScript),
815
- 'script'
816
- )
608
+ const r = await this.getServices().getUtxoStatus(asString(o.lockingScript), 'script')
817
609
  if (r.status === 'success' && r.isUtxo && r.details?.length > 0) {
818
610
  const tx = await this.findTransactionById(o.transactionId)
819
611
  if (
820
612
  tx &&
821
613
  tx.txid &&
822
- r.details.some(
823
- d =>
824
- d.txid === tx.txid &&
825
- d.satoshis === o.satoshis &&
826
- d.index === o.vout
827
- )
614
+ r.details.some(d => d.txid === tx.txid && d.satoshis === o.satoshis && d.index === o.vout)
828
615
  ) {
829
616
  ok = true
830
617
  }
@@ -872,16 +659,13 @@ export interface StorageProviderOptions extends StorageReaderWriterOptions {
872
659
  commissionPubKeyHex?: PubKeyHex
873
660
  }
874
661
 
875
- export function validateStorageFeeModel(
876
- v?: sdk.StorageFeeModel
877
- ): sdk.StorageFeeModel {
662
+ export function validateStorageFeeModel(v?: sdk.StorageFeeModel): sdk.StorageFeeModel {
878
663
  const r: sdk.StorageFeeModel = {
879
664
  model: 'sat/kb',
880
665
  value: 1
881
666
  }
882
667
  if (typeof v === 'object') {
883
- if (v.model !== 'sat/kb')
884
- throw new sdk.WERR_INVALID_PARAMETER('StorageFeeModel.model', `"sat/kb"`)
668
+ if (v.model !== 'sat/kb') throw new sdk.WERR_INVALID_PARAMETER('StorageFeeModel.model', `"sat/kb"`)
885
669
  if (typeof v.value === 'number') {
886
670
  r.value = v.value
887
671
  }