@bsv/wallet-toolbox 1.1.60 → 1.1.61

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 (467) 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/bitrails.test.js.map +1 -1
  65. package/out/src/services/__tests/getMerklePath.test.js.map +1 -1
  66. package/out/src/services/__tests/getRawTx.test.js.map +1 -1
  67. package/out/src/services/__tests/verifyBeef.test.js +2 -1
  68. package/out/src/services/__tests/verifyBeef.test.js.map +1 -1
  69. package/out/src/services/chaintracker/ChaintracksChainTracker.d.ts.map +1 -1
  70. package/out/src/services/chaintracker/ChaintracksChainTracker.js.map +1 -1
  71. package/out/src/services/chaintracker/chaintracks/BlockHeaderApi.d.ts.map +1 -1
  72. package/out/src/services/chaintracker/chaintracks/BlockHeaderApi.js.map +1 -1
  73. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts.map +1 -1
  74. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js +1 -3
  75. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js.map +1 -1
  76. package/out/src/services/createDefaultWalletServicesOptions.d.ts.map +1 -1
  77. package/out/src/services/createDefaultWalletServicesOptions.js.map +1 -1
  78. package/out/src/services/providers/ARC.d.ts.map +1 -1
  79. package/out/src/services/providers/ARC.js +1 -2
  80. package/out/src/services/providers/ARC.js.map +1 -1
  81. package/out/src/services/providers/Bitails.d.ts.map +1 -1
  82. package/out/src/services/providers/Bitails.js +62 -134
  83. package/out/src/services/providers/Bitails.js.map +1 -1
  84. package/out/src/services/providers/SdkWhatsOnChain.d.ts.map +1 -1
  85. package/out/src/services/providers/SdkWhatsOnChain.js.map +1 -1
  86. package/out/src/services/providers/WhatsOnChain.d.ts.map +1 -1
  87. package/out/src/services/providers/WhatsOnChain.js +6 -21
  88. package/out/src/services/providers/WhatsOnChain.js.map +1 -1
  89. package/out/src/services/providers/__tests/WhatsOnChain.test.js +1 -2
  90. package/out/src/services/providers/__tests/WhatsOnChain.test.js.map +1 -1
  91. package/out/src/services/providers/echangeRates.d.ts.map +1 -1
  92. package/out/src/services/providers/echangeRates.js.map +1 -1
  93. package/out/src/signer/WalletSigner.d.ts.map +1 -1
  94. package/out/src/signer/WalletSigner.js.map +1 -1
  95. package/out/src/signer/methods/acquireDirectCertificate.d.ts.map +1 -1
  96. package/out/src/signer/methods/acquireDirectCertificate.js +1 -3
  97. package/out/src/signer/methods/acquireDirectCertificate.js.map +1 -1
  98. package/out/src/signer/methods/buildSignableTransaction.d.ts.map +1 -1
  99. package/out/src/signer/methods/buildSignableTransaction.js +3 -11
  100. package/out/src/signer/methods/buildSignableTransaction.js.map +1 -1
  101. package/out/src/signer/methods/createAction.d.ts.map +1 -1
  102. package/out/src/signer/methods/createAction.js +3 -10
  103. package/out/src/signer/methods/createAction.js.map +1 -1
  104. package/out/src/signer/methods/internalizeAction.d.ts.map +1 -1
  105. package/out/src/signer/methods/internalizeAction.js.map +1 -1
  106. package/out/src/signer/methods/proveCertificate.d.ts.map +1 -1
  107. package/out/src/signer/methods/proveCertificate.js.map +1 -1
  108. package/out/src/signer/methods/signAction.d.ts.map +1 -1
  109. package/out/src/signer/methods/signAction.js +2 -7
  110. package/out/src/signer/methods/signAction.js.map +1 -1
  111. package/out/src/storage/StorageKnex.d.ts.map +1 -1
  112. package/out/src/storage/StorageKnex.js +15 -44
  113. package/out/src/storage/StorageKnex.js.map +1 -1
  114. package/out/src/storage/StorageProvider.d.ts.map +1 -1
  115. package/out/src/storage/StorageProvider.js +9 -34
  116. package/out/src/storage/StorageProvider.js.map +1 -1
  117. package/out/src/storage/StorageReader.d.ts.map +1 -1
  118. package/out/src/storage/StorageReader.js.map +1 -1
  119. package/out/src/storage/StorageReaderWriter.d.ts.map +1 -1
  120. package/out/src/storage/StorageReaderWriter.js.map +1 -1
  121. package/out/src/storage/StorageSyncReader.d.ts.map +1 -1
  122. package/out/src/storage/StorageSyncReader.js.map +1 -1
  123. package/out/src/storage/WalletStorageManager.d.ts.map +1 -1
  124. package/out/src/storage/WalletStorageManager.js +5 -10
  125. package/out/src/storage/WalletStorageManager.js.map +1 -1
  126. package/out/src/storage/__test/WalletStorageManager.test.js +2 -8
  127. package/out/src/storage/__test/WalletStorageManager.test.js.map +1 -1
  128. package/out/src/storage/methods/__test/GenerateChange/generateChangeSdk.test.js +10 -30
  129. package/out/src/storage/methods/__test/GenerateChange/generateChangeSdk.test.js.map +1 -1
  130. package/out/src/storage/methods/__test/GenerateChange/randomValsUsed1.d.ts.map +1 -1
  131. package/out/src/storage/methods/__test/GenerateChange/randomValsUsed1.js +17 -28
  132. package/out/src/storage/methods/__test/GenerateChange/randomValsUsed1.js.map +1 -1
  133. package/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts.map +1 -1
  134. package/out/src/storage/methods/attemptToPostReqsToNetwork.js +6 -20
  135. package/out/src/storage/methods/attemptToPostReqsToNetwork.js.map +1 -1
  136. package/out/src/storage/methods/createAction.d.ts.map +1 -1
  137. package/out/src/storage/methods/createAction.js +4 -9
  138. package/out/src/storage/methods/createAction.js.map +1 -1
  139. package/out/src/storage/methods/generateChange.d.ts.map +1 -1
  140. package/out/src/storage/methods/generateChange.js +7 -18
  141. package/out/src/storage/methods/generateChange.js.map +1 -1
  142. package/out/src/storage/methods/getBeefForTransaction.d.ts.map +1 -1
  143. package/out/src/storage/methods/getBeefForTransaction.js +1 -3
  144. package/out/src/storage/methods/getBeefForTransaction.js.map +1 -1
  145. package/out/src/storage/methods/getSyncChunk.d.ts.map +1 -1
  146. package/out/src/storage/methods/getSyncChunk.js.map +1 -1
  147. package/out/src/storage/methods/internalizeAction.d.ts.map +1 -1
  148. package/out/src/storage/methods/internalizeAction.js +2 -9
  149. package/out/src/storage/methods/internalizeAction.js.map +1 -1
  150. package/out/src/storage/methods/listActions.d.ts.map +1 -1
  151. package/out/src/storage/methods/listActions.js +3 -15
  152. package/out/src/storage/methods/listActions.js.map +1 -1
  153. package/out/src/storage/methods/listCertificates.d.ts.map +1 -1
  154. package/out/src/storage/methods/listCertificates.js.map +1 -1
  155. package/out/src/storage/methods/listOutputs.d.ts.map +1 -1
  156. package/out/src/storage/methods/listOutputs.js +4 -11
  157. package/out/src/storage/methods/listOutputs.js.map +1 -1
  158. package/out/src/storage/methods/processAction.d.ts.map +1 -1
  159. package/out/src/storage/methods/processAction.js +4 -10
  160. package/out/src/storage/methods/processAction.js.map +1 -1
  161. package/out/src/storage/methods/purgeData.d.ts.map +1 -1
  162. package/out/src/storage/methods/purgeData.js +8 -32
  163. package/out/src/storage/methods/purgeData.js.map +1 -1
  164. package/out/src/storage/methods/reviewStatus.d.ts.map +1 -1
  165. package/out/src/storage/methods/reviewStatus.js +1 -3
  166. package/out/src/storage/methods/reviewStatus.js.map +1 -1
  167. package/out/src/storage/remoting/StorageClient.d.ts.map +1 -1
  168. package/out/src/storage/remoting/StorageClient.js +15 -41
  169. package/out/src/storage/remoting/StorageClient.js.map +1 -1
  170. package/out/src/storage/remoting/StorageServer.d.ts.map +1 -1
  171. package/out/src/storage/remoting/StorageServer.js +2 -5
  172. package/out/src/storage/remoting/StorageServer.js.map +1 -1
  173. package/out/src/storage/schema/KnexMigrations.d.ts.map +1 -1
  174. package/out/src/storage/schema/KnexMigrations.js +24 -130
  175. package/out/src/storage/schema/KnexMigrations.js.map +1 -1
  176. package/out/src/storage/schema/entities/Certificate.d.ts.map +1 -1
  177. package/out/src/storage/schema/entities/Certificate.js +1 -1
  178. package/out/src/storage/schema/entities/Certificate.js.map +1 -1
  179. package/out/src/storage/schema/entities/CertificateField.d.ts.map +1 -1
  180. package/out/src/storage/schema/entities/CertificateField.js +2 -5
  181. package/out/src/storage/schema/entities/CertificateField.js.map +1 -1
  182. package/out/src/storage/schema/entities/Commission.d.ts.map +1 -1
  183. package/out/src/storage/schema/entities/Commission.js +2 -5
  184. package/out/src/storage/schema/entities/Commission.js.map +1 -1
  185. package/out/src/storage/schema/entities/EntityBase.d.ts.map +1 -1
  186. package/out/src/storage/schema/entities/EntityBase.js.map +1 -1
  187. package/out/src/storage/schema/entities/MergeEntity.d.ts.map +1 -1
  188. package/out/src/storage/schema/entities/MergeEntity.js +14 -9
  189. package/out/src/storage/schema/entities/MergeEntity.js.map +1 -1
  190. package/out/src/storage/schema/entities/Output.d.ts.map +1 -1
  191. package/out/src/storage/schema/entities/Output.js +8 -25
  192. package/out/src/storage/schema/entities/Output.js.map +1 -1
  193. package/out/src/storage/schema/entities/OutputBasket.d.ts.map +1 -1
  194. package/out/src/storage/schema/entities/OutputBasket.js +1 -1
  195. package/out/src/storage/schema/entities/OutputBasket.js.map +1 -1
  196. package/out/src/storage/schema/entities/OutputTag.d.ts.map +1 -1
  197. package/out/src/storage/schema/entities/OutputTag.js +1 -1
  198. package/out/src/storage/schema/entities/OutputTag.js.map +1 -1
  199. package/out/src/storage/schema/entities/OutputTagMap.d.ts.map +1 -1
  200. package/out/src/storage/schema/entities/OutputTagMap.js +3 -7
  201. package/out/src/storage/schema/entities/OutputTagMap.js.map +1 -1
  202. package/out/src/storage/schema/entities/ProvenTx.d.ts.map +1 -1
  203. package/out/src/storage/schema/entities/ProvenTx.js +10 -20
  204. package/out/src/storage/schema/entities/ProvenTx.js.map +1 -1
  205. package/out/src/storage/schema/entities/ProvenTxReq.d.ts.map +1 -1
  206. package/out/src/storage/schema/entities/ProvenTxReq.js +8 -18
  207. package/out/src/storage/schema/entities/ProvenTxReq.js.map +1 -1
  208. package/out/src/storage/schema/entities/SyncState.d.ts +1 -0
  209. package/out/src/storage/schema/entities/SyncState.d.ts.map +1 -1
  210. package/out/src/storage/schema/entities/SyncState.js +41 -6
  211. package/out/src/storage/schema/entities/SyncState.js.map +1 -1
  212. package/out/src/storage/schema/entities/Transaction.d.ts.map +1 -1
  213. package/out/src/storage/schema/entities/Transaction.js +4 -13
  214. package/out/src/storage/schema/entities/Transaction.js.map +1 -1
  215. package/out/src/storage/schema/entities/TxLabel.d.ts.map +1 -1
  216. package/out/src/storage/schema/entities/TxLabel.js +1 -1
  217. package/out/src/storage/schema/entities/TxLabel.js.map +1 -1
  218. package/out/src/storage/schema/entities/TxLabelMap.d.ts.map +1 -1
  219. package/out/src/storage/schema/entities/TxLabelMap.js +3 -9
  220. package/out/src/storage/schema/entities/TxLabelMap.js.map +1 -1
  221. package/out/src/storage/schema/entities/User.d.ts.map +1 -1
  222. package/out/src/storage/schema/entities/User.js +3 -5
  223. package/out/src/storage/schema/entities/User.js.map +1 -1
  224. package/out/src/storage/schema/entities/__tests/CertificateFieldTests.test.js.map +1 -1
  225. package/out/src/storage/schema/entities/__tests/CertificateTests.test.js.map +1 -1
  226. package/out/src/storage/schema/entities/__tests/CommissionTests.test.js.map +1 -1
  227. package/out/src/storage/schema/entities/__tests/OutputBasketTests.test.js.map +1 -1
  228. package/out/src/storage/schema/entities/__tests/OutputTagMapTests.test.js.map +1 -1
  229. package/out/src/storage/schema/entities/__tests/OutputTagTests.test.js.map +1 -1
  230. package/out/src/storage/schema/entities/__tests/OutputTests.test.js.map +1 -1
  231. package/out/src/storage/schema/entities/__tests/ProvenTxReqTests.test.js.map +1 -1
  232. package/out/src/storage/schema/entities/__tests/ProvenTxTests.test.js +1 -2
  233. package/out/src/storage/schema/entities/__tests/ProvenTxTests.test.js.map +1 -1
  234. package/out/src/storage/schema/entities/__tests/SyncStateTests.test.js.map +1 -1
  235. package/out/src/storage/schema/entities/__tests/TransactionTests.test.js +2 -2
  236. package/out/src/storage/schema/entities/__tests/TransactionTests.test.js.map +1 -1
  237. package/out/src/storage/schema/entities/__tests/TxLabelMapTests.test.js.map +1 -1
  238. package/out/src/storage/schema/entities/__tests/TxLabelTests.test.js.map +1 -1
  239. package/out/src/storage/schema/entities/__tests/stampLogTests.test.js.map +1 -1
  240. package/out/src/storage/schema/entities/__tests/usersTests.test.js.map +1 -1
  241. package/out/src/storage/schema/tables/TableSettings.d.ts.map +1 -1
  242. package/out/src/storage/sync/StorageMySQLDojoReader.d.ts.map +1 -1
  243. package/out/src/storage/sync/StorageMySQLDojoReader.js +1 -3
  244. package/out/src/storage/sync/StorageMySQLDojoReader.js.map +1 -1
  245. package/out/src/utility/ScriptTemplateBRC29.d.ts.map +1 -1
  246. package/out/src/utility/ScriptTemplateBRC29.js +1 -2
  247. package/out/src/utility/ScriptTemplateBRC29.js.map +1 -1
  248. package/out/src/utility/stampLog.d.ts.map +1 -1
  249. package/out/src/utility/stampLog.js.map +1 -1
  250. package/out/src/utility/tscProofToMerklePath.d.ts.map +1 -1
  251. package/out/src/utility/tscProofToMerklePath.js.map +1 -1
  252. package/out/src/utility/utilityHelpers.buffer.d.ts.map +1 -1
  253. package/out/src/utility/utilityHelpers.buffer.js.map +1 -1
  254. package/out/src/utility/utilityHelpers.d.ts.map +1 -1
  255. package/out/src/utility/utilityHelpers.js +1 -3
  256. package/out/src/utility/utilityHelpers.js.map +1 -1
  257. package/out/test/Wallet/StorageClient/storageClient.man.test.js.map +1 -1
  258. package/out/test/Wallet/action/internalizeAction.a.test.js.map +1 -1
  259. package/out/test/Wallet/certificate/acquireCertificate.test.js.map +1 -1
  260. package/out/test/Wallet/certificate/listCertificates.test.js.map +1 -1
  261. package/out/test/Wallet/get/getHeaderForHeight.test.js +2 -6
  262. package/out/test/Wallet/get/getHeaderForHeight.test.js.map +1 -1
  263. package/out/test/Wallet/get/getHeight.test.js.map +1 -1
  264. package/out/test/Wallet/get/getKnownTxids.test.js.map +1 -1
  265. package/out/test/Wallet/get/getNetwork.test.js.map +1 -1
  266. package/out/test/Wallet/get/getVersion.test.js.map +1 -1
  267. package/out/test/Wallet/live/walletLive.man.test.d.ts.map +1 -1
  268. package/out/test/Wallet/live/walletLive.man.test.js +3 -9
  269. package/out/test/Wallet/live/walletLive.man.test.js.map +1 -1
  270. package/out/test/Wallet/local/localWallet.man.test.d.ts.map +1 -1
  271. package/out/test/Wallet/local/localWallet.man.test.js +15 -22
  272. package/out/test/Wallet/local/localWallet.man.test.js.map +1 -1
  273. package/out/test/Wallet/specOps/specOps.man.test.js +1 -4
  274. package/out/test/Wallet/specOps/specOps.man.test.js.map +1 -1
  275. package/out/test/Wallet/support/janitor.man.test.js.map +1 -1
  276. package/out/test/Wallet/sync/Wallet.updateWalletLegacyTestData.man.test.js.map +1 -1
  277. package/out/test/Wallet/sync/setActive.test.js +73 -50
  278. package/out/test/Wallet/sync/setActive.test.js.map +1 -1
  279. package/out/test/checkDB.d.ts.map +1 -1
  280. package/out/test/checkDB.js.map +1 -1
  281. package/out/test/examples/backup.man.test.d.ts.map +1 -1
  282. package/out/test/examples/backup.man.test.js.map +1 -1
  283. package/out/test/examples/pushdrop.test.d.ts.map +1 -1
  284. package/out/test/examples/pushdrop.test.js +5 -4
  285. package/out/test/examples/pushdrop.test.js.map +1 -1
  286. package/out/test/monitor/Monitor.test.js.map +1 -1
  287. package/out/test/services/Services.test.js.map +1 -1
  288. package/out/test/storage/KnexMigrations.test.js.map +1 -1
  289. package/out/test/storage/StorageMySQLDojoReader.man.test.js +1 -3
  290. package/out/test/storage/StorageMySQLDojoReader.man.test.js.map +1 -1
  291. package/out/test/storage/count.test.js.map +1 -1
  292. package/out/test/storage/find.test.js +5 -10
  293. package/out/test/storage/find.test.js.map +1 -1
  294. package/out/test/storage/findLegacy.test.js.map +1 -1
  295. package/out/test/storage/insert.test.js.map +1 -1
  296. package/out/test/storage/update.test.js +7 -19
  297. package/out/test/storage/update.test.js.map +1 -1
  298. package/out/test/storage/update2.test.js +22 -24
  299. package/out/test/storage/update2.test.js.map +1 -1
  300. package/out/test/utils/TestUtilsWalletStorage.d.ts +3 -1
  301. package/out/test/utils/TestUtilsWalletStorage.d.ts.map +1 -1
  302. package/out/test/utils/TestUtilsWalletStorage.js +52 -76
  303. package/out/test/utils/TestUtilsWalletStorage.js.map +1 -1
  304. package/out/test/wallet/action/abortAction.test.js.map +1 -1
  305. package/out/test/wallet/action/createAction.test.js +1 -2
  306. package/out/test/wallet/action/createAction.test.js.map +1 -1
  307. package/out/test/wallet/action/createAction2.test.d.ts.map +1 -1
  308. package/out/test/wallet/action/createAction2.test.js +6 -16
  309. package/out/test/wallet/action/createAction2.test.js.map +1 -1
  310. package/out/test/wallet/action/createActionToGenerateBeefs.man.test.js.map +1 -1
  311. package/out/test/wallet/action/internalizeAction.test.js.map +1 -1
  312. package/out/test/wallet/action/relinquishOutput.test.js.map +1 -1
  313. package/out/test/wallet/list/listActions.test.js.map +1 -1
  314. package/out/test/wallet/list/listActions2.test.js.map +1 -1
  315. package/out/test/wallet/list/listCertificates.test.js +2 -6
  316. package/out/test/wallet/list/listCertificates.test.js.map +1 -1
  317. package/out/test/wallet/list/listOutputs.test.js +2 -10
  318. package/out/test/wallet/list/listOutputs.test.js.map +1 -1
  319. package/out/test/wallet/sync/Wallet.sync.test.js +4 -6
  320. package/out/test/wallet/sync/Wallet.sync.test.js.map +1 -1
  321. package/out/tsconfig.all.tsbuildinfo +1 -1
  322. package/package.json +3 -3
  323. package/src/Setup.ts +15 -52
  324. package/src/Wallet.ts +58 -161
  325. package/src/monitor/Monitor.ts +7 -22
  326. package/src/monitor/MonitorDaemon.ts +6 -23
  327. package/src/monitor/tasks/TaskCheckForProofs.ts +4 -23
  328. package/src/monitor/tasks/TaskClock.ts +1 -3
  329. package/src/monitor/tasks/TaskFailAbandoned.ts +1 -3
  330. package/src/monitor/tasks/TaskNewHeader.ts +1 -4
  331. package/src/monitor/tasks/TaskPurge.ts +1 -2
  332. package/src/monitor/tasks/TaskReviewStatus.ts +1 -3
  333. package/src/monitor/tasks/TaskSendWaiting.ts +3 -10
  334. package/src/sdk/CertOps.ts +31 -103
  335. package/src/sdk/PrivilegedKeyManager.ts +18 -48
  336. package/src/sdk/WERR_errors.ts +6 -25
  337. package/src/sdk/WalletError.ts +5 -21
  338. package/src/sdk/WalletServices.interfaces.ts +11 -33
  339. package/src/sdk/WalletStorage.interfaces.ts +25 -91
  340. package/src/sdk/__test/CertificateLifeCycle.test.ts +9 -27
  341. package/src/sdk/__test/PrivilegedKeyManager.test.ts +29 -66
  342. package/src/sdk/types.ts +6 -26
  343. package/src/sdk/validationHelpers.ts +111 -402
  344. package/src/services/Services.ts +51 -114
  345. package/src/services/__tests/bitrails.test.ts +4 -15
  346. package/src/services/__tests/getMerklePath.test.ts +1 -2
  347. package/src/services/__tests/getRawTx.test.ts +1 -3
  348. package/src/services/__tests/verifyBeef.test.ts +2 -1
  349. package/src/services/chaintracker/ChaintracksChainTracker.ts +3 -13
  350. package/src/services/chaintracker/chaintracks/BlockHeaderApi.ts +4 -12
  351. package/src/services/chaintracker/chaintracks/ChaintracksServiceClient.ts +9 -27
  352. package/src/services/createDefaultWalletServicesOptions.ts +2 -5
  353. package/src/services/providers/ARC.ts +5 -24
  354. package/src/services/providers/Bitails.ts +61 -159
  355. package/src/services/providers/SdkWhatsOnChain.ts +4 -17
  356. package/src/services/providers/WhatsOnChain.ts +31 -100
  357. package/src/services/providers/__tests/WhatsOnChain.test.ts +5 -15
  358. package/src/services/providers/echangeRates.ts +7 -22
  359. package/src/signer/WalletSigner.ts +1 -5
  360. package/src/signer/methods/acquireDirectCertificate.ts +1 -4
  361. package/src/signer/methods/buildSignableTransaction.ts +5 -20
  362. package/src/signer/methods/createAction.ts +15 -54
  363. package/src/signer/methods/internalizeAction.ts +10 -39
  364. package/src/signer/methods/proveCertificate.ts +2 -5
  365. package/src/signer/methods/signAction.ts +9 -39
  366. package/src/storage/StorageKnex.ts +166 -499
  367. package/src/storage/StorageProvider.ts +75 -291
  368. package/src/storage/StorageReader.ts +20 -65
  369. package/src/storage/StorageReaderWriter.ts +67 -264
  370. package/src/storage/StorageSyncReader.ts +2 -5
  371. package/src/storage/WalletStorageManager.ts +33 -108
  372. package/src/storage/__test/WalletStorageManager.test.ts +6 -23
  373. package/src/storage/methods/__test/GenerateChange/generateChangeSdk.test.ts +53 -171
  374. package/src/storage/methods/__test/GenerateChange/randomValsUsed1.ts +17 -28
  375. package/src/storage/methods/attemptToPostReqsToNetwork.ts +9 -37
  376. package/src/storage/methods/createAction.ts +45 -181
  377. package/src/storage/methods/generateChange.ts +33 -114
  378. package/src/storage/methods/getBeefForTransaction.ts +7 -37
  379. package/src/storage/methods/getSyncChunk.ts +18 -69
  380. package/src/storage/methods/internalizeAction.ts +18 -70
  381. package/src/storage/methods/listActions.ts +6 -23
  382. package/src/storage/methods/listCertificates.ts +5 -14
  383. package/src/storage/methods/listOutputs.ts +14 -68
  384. package/src/storage/methods/processAction.ts +29 -104
  385. package/src/storage/methods/purgeData.ts +11 -45
  386. package/src/storage/methods/reviewStatus.ts +3 -9
  387. package/src/storage/remoting/StorageClient.ts +43 -146
  388. package/src/storage/remoting/StorageServer.ts +21 -59
  389. package/src/storage/schema/KnexMigrations.ts +34 -165
  390. package/src/storage/schema/entities/Certificate.ts +3 -14
  391. package/src/storage/schema/entities/CertificateField.ts +6 -28
  392. package/src/storage/schema/entities/Commission.ts +6 -23
  393. package/src/storage/schema/entities/EntityBase.ts +1 -6
  394. package/src/storage/schema/entities/MergeEntity.ts +14 -21
  395. package/src/storage/schema/entities/Output.ts +10 -39
  396. package/src/storage/schema/entities/OutputBasket.ts +4 -16
  397. package/src/storage/schema/entities/OutputTag.ts +4 -17
  398. package/src/storage/schema/entities/OutputTagMap.ts +7 -30
  399. package/src/storage/schema/entities/ProvenTx.ts +16 -57
  400. package/src/storage/schema/entities/ProvenTxReq.ts +29 -93
  401. package/src/storage/schema/entities/SyncState.ts +64 -116
  402. package/src/storage/schema/entities/Transaction.ts +10 -35
  403. package/src/storage/schema/entities/TxLabel.ts +4 -17
  404. package/src/storage/schema/entities/TxLabelMap.ts +6 -28
  405. package/src/storage/schema/entities/User.ts +8 -31
  406. package/src/storage/schema/entities/__tests/CertificateFieldTests.test.ts +23 -54
  407. package/src/storage/schema/entities/__tests/CertificateTests.test.ts +26 -59
  408. package/src/storage/schema/entities/__tests/CommissionTests.test.ts +2 -11
  409. package/src/storage/schema/entities/__tests/OutputBasketTests.test.ts +2 -10
  410. package/src/storage/schema/entities/__tests/OutputTagMapTests.test.ts +2 -10
  411. package/src/storage/schema/entities/__tests/OutputTagTests.test.ts +1 -4
  412. package/src/storage/schema/entities/__tests/OutputTests.test.ts +3 -14
  413. package/src/storage/schema/entities/__tests/ProvenTxReqTests.test.ts +4 -16
  414. package/src/storage/schema/entities/__tests/ProvenTxTests.test.ts +5 -18
  415. package/src/storage/schema/entities/__tests/SyncStateTests.test.ts +5 -26
  416. package/src/storage/schema/entities/__tests/TransactionTests.test.ts +12 -48
  417. package/src/storage/schema/entities/__tests/TxLabelMapTests.test.ts +4 -22
  418. package/src/storage/schema/entities/__tests/TxLabelTests.test.ts +2 -10
  419. package/src/storage/schema/entities/__tests/stampLogTests.test.ts +3 -10
  420. package/src/storage/schema/entities/__tests/usersTests.test.ts +4 -7
  421. package/src/storage/schema/tables/TableSettings.ts +1 -3
  422. package/src/storage/sync/StorageMySQLDojoReader.ts +47 -148
  423. package/src/utility/ScriptTemplateBRC29.ts +2 -11
  424. package/src/utility/stampLog.ts +2 -6
  425. package/src/utility/tscProofToMerklePath.ts +1 -4
  426. package/src/utility/utilityHelpers.buffer.ts +3 -12
  427. package/src/utility/utilityHelpers.ts +14 -49
  428. package/test/Wallet/StorageClient/storageClient.man.test.ts +2 -8
  429. package/test/Wallet/action/internalizeAction.a.test.ts +8 -23
  430. package/test/Wallet/certificate/acquireCertificate.test.ts +10 -24
  431. package/test/Wallet/certificate/listCertificates.test.ts +8 -18
  432. package/test/Wallet/get/getHeaderForHeight.test.ts +4 -15
  433. package/test/Wallet/get/getHeight.test.ts +2 -6
  434. package/test/Wallet/get/getKnownTxids.test.ts +1 -5
  435. package/test/Wallet/get/getNetwork.test.ts +1 -2
  436. package/test/Wallet/get/getVersion.test.ts +1 -2
  437. package/test/Wallet/live/walletLive.man.test.ts +14 -41
  438. package/test/Wallet/local/localWallet.man.test.ts +26 -99
  439. package/test/Wallet/specOps/specOps.man.test.ts +4 -13
  440. package/test/Wallet/support/janitor.man.test.ts +2 -7
  441. package/test/Wallet/sync/Wallet.updateWalletLegacyTestData.man.test.ts +11 -34
  442. package/test/Wallet/sync/setActive.test.ts +75 -61
  443. package/test/checkDB.ts +2 -8
  444. package/test/examples/backup.man.test.ts +2 -9
  445. package/test/examples/pushdrop.test.ts +7 -20
  446. package/test/monitor/Monitor.test.ts +33 -87
  447. package/test/services/Services.test.ts +8 -19
  448. package/test/storage/KnexMigrations.test.ts +3 -18
  449. package/test/storage/StorageMySQLDojoReader.man.test.ts +4 -15
  450. package/test/storage/count.test.ts +7 -24
  451. package/test/storage/find.test.ts +7 -29
  452. package/test/storage/findLegacy.test.ts +2 -5
  453. package/test/storage/insert.test.ts +3 -19
  454. package/test/storage/update.test.ts +47 -179
  455. package/test/storage/update2.test.ts +54 -176
  456. package/test/utils/TestUtilsWalletStorage.ts +139 -372
  457. package/test/wallet/action/abortAction.test.ts +4 -12
  458. package/test/wallet/action/createAction.test.ts +4 -14
  459. package/test/wallet/action/createAction2.test.ts +74 -208
  460. package/test/wallet/action/createActionToGenerateBeefs.man.test.ts +8 -11
  461. package/test/wallet/action/internalizeAction.test.ts +20 -72
  462. package/test/wallet/action/relinquishOutput.test.ts +3 -9
  463. package/test/wallet/list/listActions.test.ts +2 -9
  464. package/test/wallet/list/listActions2.test.ts +8 -34
  465. package/test/wallet/list/listCertificates.test.ts +5 -16
  466. package/test/wallet/list/listOutputs.test.ts +15 -54
  467. package/test/wallet/sync/Wallet.sync.test.ts +18 -49
@@ -1,10 +1,5 @@
1
1
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
2
- import {
3
- Beef,
4
- Transaction as BsvTransaction,
5
- SendWithResult,
6
- SendWithResultStatus
7
- } from '@bsv/sdk'
2
+ import { Beef, Transaction as BsvTransaction, SendWithResult, SendWithResultStatus } from '@bsv/sdk'
8
3
  import {
9
4
  asArray,
10
5
  asString,
@@ -49,30 +44,17 @@ export async function processAction(
49
44
 
50
45
  if (args.isNewTx) {
51
46
  const vargs = await validateCommitNewTxToStorageArgs(storage, userId, args)
52
- ;({ req, log: args.log } = await commitNewTxToStorage(
53
- storage,
54
- userId,
55
- vargs
56
- ))
47
+ ;({ req, log: args.log } = await commitNewTxToStorage(storage, userId, vargs))
57
48
  if (!req) throw new sdk.WERR_INTERNAL()
58
49
  // Add the new txid to sendWith unless there are no others to send and the noSend option is set.
59
- if (args.isNoSend && !args.isSendWith)
60
- stampLog(args.log, `... storage processActionSdk newTx committed noSend`)
50
+ if (args.isNoSend && !args.isSendWith) stampLog(args.log, `... storage processActionSdk newTx committed noSend`)
61
51
  else {
62
52
  txidsOfReqsToShareWithWorld.push(req.txid)
63
- stampLog(
64
- args.log,
65
- `... storage processActionSdk newTx committed sendWith ${req.txid}`
66
- )
53
+ stampLog(args.log, `... storage processActionSdk newTx committed sendWith ${req.txid}`)
67
54
  }
68
55
  }
69
56
 
70
- const swr = await shareReqsWithWorld(
71
- storage,
72
- userId,
73
- txidsOfReqsToShareWithWorld,
74
- args.isDelayed
75
- )
57
+ const swr = await shareReqsWithWorld(storage, userId, txidsOfReqsToShareWithWorld, args.isDelayed)
76
58
 
77
59
  r.sendWithResults = swr
78
60
 
@@ -111,22 +93,15 @@ async function shareReqsWithWorld(
111
93
  for (const getReq of r.details) ars.push({ txid: getReq.txid, getReq })
112
94
 
113
95
  // Filter original txids down to reqIds that are available and need sending
114
- const readyToSendReqs = r.details
115
- .filter(d => d.status === 'readyToSend')
116
- .map(d => new EntityProvenTxReq(d.req!))
96
+ const readyToSendReqs = r.details.filter(d => d.status === 'readyToSend').map(d => new EntityProvenTxReq(d.req!))
117
97
  const readyToSendReqIds = readyToSendReqs.map(r => r.id)
118
- const transactionIds = readyToSendReqs
119
- .map(r => r.notify.transactionIds || [])
120
- .flat()
98
+ const transactionIds = readyToSendReqs.map(r => r.notify.transactionIds || []).flat()
121
99
 
122
100
  // If there are reqs to send, verify that we have a valid aggregate beef for them.
123
101
  // If isDelayed, this (or a different beef) will have to be rebuilt at the time of sending.
124
102
  if (readyToSendReqs.length > 0) {
125
- const beefIsValid = await r.beef.verify(
126
- await storage.getServices().getChainTracker()
127
- )
128
- if (!beefIsValid)
129
- throw new sdk.WERR_INTERNAL(`merged Beef failed validation.`)
103
+ const beefIsValid = await r.beef.verify(await storage.getServices().getChainTracker())
104
+ if (!beefIsValid) throw new sdk.WERR_INTERNAL(`merged Beef failed validation.`)
130
105
  }
131
106
 
132
107
  // Set req batch property for the reqs being sent
@@ -136,16 +111,8 @@ async function shareReqsWithWorld(
136
111
  // Just bump the req status to 'unsent' to enable background sending...
137
112
  if (readyToSendReqIds.length > 0) {
138
113
  await storage.transaction(async trx => {
139
- await storage.updateProvenTxReq(
140
- readyToSendReqIds,
141
- { status: 'unsent', batch },
142
- trx
143
- )
144
- await storage.updateTransaction(
145
- transactionIds,
146
- { status: 'sending' },
147
- trx
148
- )
114
+ await storage.updateProvenTxReq(readyToSendReqIds, { status: 'unsent', batch }, trx)
115
+ await storage.updateTransaction(transactionIds, { status: 'sending' }, trx)
149
116
  })
150
117
  }
151
118
  return createSendWithResults()
@@ -174,10 +141,7 @@ async function shareReqsWithWorld(
174
141
  // If the immediate (un-delayed) broadcast attempt APPEARS to fail,
175
142
  // fall back to delayed sending and tracking to make sure transaction
176
143
  // gets tracked if it is valid and floating around the network...
177
- const req = await EntityProvenTxReq.fromStorageId(
178
- storage,
179
- ar.getReq.req.provenTxReqId
180
- )
144
+ const req = await EntityProvenTxReq.fromStorageId(storage, ar.getReq.req.provenTxReqId)
181
145
  if (req.status === 'unprocessed') {
182
146
  req.status = 'unsent'
183
147
  await req.updateStorageDynamicProperties(storage)
@@ -195,10 +159,7 @@ async function shareReqsWithWorld(
195
159
  for (const ar of ars) {
196
160
  let status: SendWithResultStatus = 'failed'
197
161
  if (ar.getReq.status === 'alreadySent') status = 'unproven'
198
- else if (
199
- ar.getReq.status === 'readyToSend' &&
200
- (isDelayed || ar.postBeef?.status === 'success')
201
- )
162
+ else if (ar.getReq.status === 'readyToSend' && (isDelayed || ar.postBeef?.status === 'success'))
202
163
  status = 'sending'
203
164
  rs.push({
204
165
  txid: ar.txid,
@@ -248,21 +209,15 @@ async function validateCommitNewTxToStorageArgs(
248
209
  params: sdk.StorageProcessActionArgs
249
210
  ): Promise<ValidCommitNewTxToStorageArgs> {
250
211
  if (!params.reference || !params.txid || !params.rawTx)
251
- throw new sdk.WERR_INVALID_OPERATION(
252
- 'One or more expected params are undefined.'
253
- )
212
+ throw new sdk.WERR_INVALID_OPERATION('One or more expected params are undefined.')
254
213
  let tx: BsvTransaction
255
214
  try {
256
215
  tx = BsvTransaction.fromBinary(params.rawTx)
257
216
  } catch (e: unknown) {
258
- throw new sdk.WERR_INVALID_OPERATION(
259
- 'Parsing serialized transaction failed.'
260
- )
217
+ throw new sdk.WERR_INVALID_OPERATION('Parsing serialized transaction failed.')
261
218
  }
262
219
  if (params.txid !== tx.id('hex'))
263
- throw new sdk.WERR_INVALID_OPERATION(
264
- `Hash of serialized transaction doesn't match expected txid`
265
- )
220
+ throw new sdk.WERR_INVALID_OPERATION(`Hash of serialized transaction doesn't match expected txid`)
266
221
  if (!(await storage.getServices()).nLockTimeIsFinal(tx)) {
267
222
  throw new sdk.WERR_INVALID_OPERATION(`This transaction is not final.
268
223
  Ensure that the transaction meets the rules for being a finalized
@@ -274,16 +229,13 @@ async function validateCommitNewTxToStorageArgs(
274
229
  partial: { userId, reference: params.reference }
275
230
  })
276
231
  )
277
- if (!transaction.isOutgoing)
278
- throw new sdk.WERR_INVALID_OPERATION('isOutgoing is not true')
232
+ if (!transaction.isOutgoing) throw new sdk.WERR_INVALID_OPERATION('isOutgoing is not true')
279
233
  if (!transaction.inputBEEF) throw new sdk.WERR_INVALID_OPERATION()
280
234
  const beef = Beef.fromBinary(asArray(transaction.inputBEEF))
281
235
  // TODO: Could check beef validates transaction inputs...
282
236
  // Transaction must have unsigned or unprocessed status
283
237
  if (transaction.status !== 'unsigned' && transaction.status !== 'unprocessed')
284
- throw new sdk.WERR_INVALID_OPERATION(
285
- `invalid transaction status ${transaction.status}`
286
- )
238
+ throw new sdk.WERR_INVALID_OPERATION(`invalid transaction status ${transaction.status}`)
287
239
  const transactionId = verifyId(transaction.transactionId)
288
240
  const outputOutputs = await storage.findOutputs({
289
241
  partial: { userId, transactionId }
@@ -292,28 +244,18 @@ async function validateCommitNewTxToStorageArgs(
292
244
  partial: { userId, spentBy: transactionId }
293
245
  })
294
246
 
295
- const commission = verifyOneOrNone(
296
- await storage.findCommissions({ partial: { transactionId, userId } })
297
- )
247
+ const commission = verifyOneOrNone(await storage.findCommissions({ partial: { transactionId, userId } }))
298
248
  if (storage.commissionSatoshis > 0) {
299
249
  // A commission is required...
300
250
  if (!commission) throw new sdk.WERR_INTERNAL()
301
251
  const commissionValid = tx.outputs.some(
302
- x =>
303
- x.satoshis === commission.satoshis &&
304
- x.lockingScript.toHex() === asString(commission.lockingScript!)
252
+ x => x.satoshis === commission.satoshis && x.lockingScript.toHex() === asString(commission.lockingScript!)
305
253
  )
306
254
  if (!commissionValid)
307
- throw new sdk.WERR_INVALID_OPERATION(
308
- 'Transaction did not include an output to cover service fee.'
309
- )
255
+ throw new sdk.WERR_INVALID_OPERATION('Transaction did not include an output to cover service fee.')
310
256
  }
311
257
 
312
- const req = EntityProvenTxReq.fromTxid(
313
- params.txid,
314
- params.rawTx,
315
- transaction.inputBEEF
316
- )
258
+ const req = EntityProvenTxReq.fromTxid(params.txid, params.rawTx, transaction.inputBEEF)
317
259
  req.addNotifyTransactionId(transactionId)
318
260
 
319
261
  // "Processing" a transaction is the final step of creating a new one.
@@ -330,10 +272,8 @@ async function validateCommitNewTxToStorageArgs(
330
272
  // !isNoSend && !isDelayed unprocessed unprocessed sending/unmined sending/unproven This is the only case that sends immediately.
331
273
  let postStatus: ReqTxStatus | undefined = undefined
332
274
  let status: ReqTxStatus
333
- if (params.isNoSend && !params.isSendWith)
334
- status = { req: 'nosend', tx: 'nosend' }
335
- else if (!params.isNoSend && params.isDelayed)
336
- status = { req: 'unsent', tx: 'unprocessed' }
275
+ if (params.isNoSend && !params.isSendWith) status = { req: 'nosend', tx: 'nosend' }
276
+ else if (!params.isNoSend && params.isDelayed) status = { req: 'unsent', tx: 'unprocessed' }
337
277
  else if (!params.isNoSend && !params.isDelayed) {
338
278
  status = { req: 'unprocessed', tx: 'unprocessed' }
339
279
  postStatus = { req: 'unmined', tx: 'unproven' }
@@ -374,9 +314,7 @@ async function validateCommitNewTxToStorageArgs(
374
314
  for (const o of vargs.outputOutputs) {
375
315
  const vout = verifyInteger(o.vout)
376
316
  const offset = vargs.txScriptOffsets.outputs[vout]
377
- const rawTxScript = asString(
378
- vargs.rawTx.slice(offset.offset, offset.offset + offset.length)
379
- )
317
+ const rawTxScript = asString(vargs.rawTx.slice(offset.offset, offset.offset + offset.length))
380
318
  if (o.lockingScript && rawTxScript !== asString(o.lockingScript))
381
319
  throw new sdk.WERR_INVALID_OPERATION(
382
320
  `rawTx output locking script for vout ${vout} not equal to expected output script.`
@@ -417,10 +355,7 @@ async function commitNewTxToStorage(
417
355
  let req: EntityProvenTxReq | undefined
418
356
 
419
357
  await storage.transaction(async trx => {
420
- log = stampLog(
421
- log,
422
- `... storage commitNewTxToStorage storage transaction start`
423
- )
358
+ log = stampLog(log, `... storage commitNewTxToStorage storage transaction start`)
424
359
 
425
360
  // Create initial 'nosend' proven_tx_req record to store signed, valid rawTx and input beef
426
361
  req = await vargs.req.insertOrMerge(storage, trx)
@@ -433,22 +368,12 @@ async function commitNewTxToStorage(
433
368
 
434
369
  log = stampLog(log, `... storage commitNewTxToStorage outputs updated`)
435
370
 
436
- await storage.updateTransaction(
437
- vargs.transactionId,
438
- vargs.transactionUpdate,
439
- trx
440
- )
371
+ await storage.updateTransaction(vargs.transactionId, vargs.transactionUpdate, trx)
441
372
 
442
- log = stampLog(
443
- log,
444
- `... storage commitNewTxToStorage storage transaction end`
445
- )
373
+ log = stampLog(log, `... storage commitNewTxToStorage storage transaction end`)
446
374
  })
447
375
 
448
- log = stampLog(
449
- log,
450
- `... storage commitNewTxToStorage storage transaction await done`
451
- )
376
+ log = stampLog(log, `... storage commitNewTxToStorage storage transaction await done`)
452
377
 
453
378
  const r: CommitNewTxResults = {
454
379
  req: verifyTruthy(req),
@@ -1,12 +1,6 @@
1
1
  import { Beef } from '@bsv/sdk'
2
2
  import { Knex } from 'knex'
3
- import {
4
- TableCommission,
5
- TableOutput,
6
- TableOutputTagMap,
7
- TableTransaction,
8
- TableTxLabelMap
9
- } from '../index.client'
3
+ import { TableCommission, TableOutput, TableOutputTagMap, TableTransaction, TableTxLabelMap } from '../index.client'
10
4
  import { sdk } from '../../index.client'
11
5
  import { StorageKnex } from '../StorageKnex'
12
6
 
@@ -18,9 +12,7 @@ export async function purgeData(
18
12
  const r: sdk.PurgeResults = { count: 0, log: '' }
19
13
  const defaultAge = 1000 * 60 * 60 * 24 * 14
20
14
 
21
- const runPurgeQuery = async <T extends object>(
22
- pq: PurgeQuery
23
- ): Promise<void> => {
15
+ const runPurgeQuery = async <T extends object>(pq: PurgeQuery): Promise<void> => {
24
16
  try {
25
17
  pq.sql = pq.q.toString()
26
18
  const count = await pq.q
@@ -72,10 +64,7 @@ export async function purgeData(
72
64
  if (completedReqIds.length > 0) {
73
65
  qs.push({
74
66
  log: 'completed proven_tx_reqs deleted',
75
- q: storage
76
- .toDb(trx)('proven_tx_reqs')
77
- .whereIn('provenTxReqId', completedReqIds)
78
- .delete()
67
+ q: storage.toDb(trx)('proven_tx_reqs').whereIn('provenTxReqId', completedReqIds).delete()
79
68
  })
80
69
  }
81
70
 
@@ -107,10 +96,7 @@ export async function purgeData(
107
96
  if (invalidReqIds.length > 0)
108
97
  qs.push({
109
98
  log: 'invalid proven_tx_reqs deleted',
110
- q: storage
111
- .toDb(trx)('proven_tx_reqs')
112
- .whereIn('provenTxReqId', invalidReqIds)
113
- .delete()
99
+ q: storage.toDb(trx)('proven_tx_reqs').whereIn('provenTxReqId', invalidReqIds).delete()
114
100
  })
115
101
 
116
102
  const doubleSpendReqs = await storage
@@ -122,10 +108,7 @@ export async function purgeData(
122
108
  if (doubleSpendReqIds.length > 0)
123
109
  qs.push({
124
110
  log: 'doubleSpend proven_tx_reqs deleted',
125
- q: storage
126
- .toDb(trx)('proven_tx_reqs')
127
- .whereIn('provenTxReqId', doubleSpendReqIds)
128
- .delete()
111
+ q: storage.toDb(trx)('proven_tx_reqs').whereIn('provenTxReqId', doubleSpendReqIds).delete()
129
112
  })
130
113
 
131
114
  for (const q of qs) await runPurgeQuery(q)
@@ -173,9 +156,7 @@ export async function purgeData(
173
156
  log: 'spent outputs no longer tracked by spentBy',
174
157
  q: storage
175
158
  .toDb(trx)<TableOutput>('outputs')
176
- .update(
177
- storage.validatePartialForUpdate(update, undefined, ['spendable'])
178
- )
159
+ .update(storage.validatePartialForUpdate(update, undefined, ['spendable']))
179
160
  .where('spendable', false)
180
161
  .whereIn('spentBy', spentTxIds)
181
162
  })
@@ -219,34 +200,22 @@ export async function purgeData(
219
200
  if (outputIds.length > 0) {
220
201
  qs.push({
221
202
  log: `${reason} output_tags_map deleted`,
222
- q: storage
223
- .toDb(trx)<TableOutputTagMap>('output_tags_map')
224
- .whereIn('outputId', outputIds)
225
- .delete()
203
+ q: storage.toDb(trx)<TableOutputTagMap>('output_tags_map').whereIn('outputId', outputIds).delete()
226
204
  })
227
205
  qs.push({
228
206
  log: `${reason} outputs deleted`,
229
- q: storage
230
- .toDb(trx)<TableOutput>('outputs')
231
- .whereIn('outputId', outputIds)
232
- .delete()
207
+ q: storage.toDb(trx)<TableOutput>('outputs').whereIn('outputId', outputIds).delete()
233
208
  })
234
209
  }
235
210
 
236
211
  qs.push({
237
212
  log: `${reason} tx_labels_map deleted`,
238
- q: storage
239
- .toDb(trx)<TableTxLabelMap>('tx_labels_map')
240
- .whereIn('transactionId', transactionIds)
241
- .delete()
213
+ q: storage.toDb(trx)<TableTxLabelMap>('tx_labels_map').whereIn('transactionId', transactionIds).delete()
242
214
  })
243
215
 
244
216
  qs.push({
245
217
  log: `${reason} commissions deleted`,
246
- q: storage
247
- .toDb(trx)<TableCommission>('commissions')
248
- .whereIn('transactionId', transactionIds)
249
- .delete()
218
+ q: storage.toDb(trx)<TableCommission>('commissions').whereIn('transactionId', transactionIds).delete()
250
219
  })
251
220
 
252
221
  if (markNotSpentBy) {
@@ -261,10 +230,7 @@ export async function purgeData(
261
230
 
262
231
  qs.push({
263
232
  log: `${reason} transactions deleted`,
264
- q: storage
265
- .toDb(trx)<TableTransaction>('transactions')
266
- .whereIn('transactionId', transactionIds)
267
- .delete()
233
+ q: storage.toDb(trx)<TableTransaction>('transactions').whereIn('transactionId', transactionIds).delete()
268
234
  })
269
235
  }
270
236
  }
@@ -10,9 +10,7 @@ export async function reviewStatus(
10
10
  ): Promise<{ log: string }> {
11
11
  const r: { log: string } = { log: '' }
12
12
 
13
- const runReviewStatusQuery = async <T extends object>(
14
- pq: ReviewStatusQuery
15
- ): Promise<void> => {
13
+ const runReviewStatusQuery = async <T extends object>(pq: ReviewStatusQuery): Promise<void> => {
16
14
  try {
17
15
  pq.sql = pq.q.toString()
18
16
  const count = await pq.q
@@ -71,15 +69,11 @@ export async function reviewStatus(
71
69
  q: k<TableTransaction>('transactions')
72
70
  .update({
73
71
  status: 'completed',
74
- provenTxId: k.raw(
75
- '(SELECT provenTxId FROM proven_txs AS p WHERE transactions.txid = p.txid)'
76
- )
72
+ provenTxId: k.raw('(SELECT provenTxId FROM proven_txs AS p WHERE transactions.txid = p.txid)')
77
73
  })
78
74
  .whereNull('provenTxId')
79
75
  .whereExists(function () {
80
- this.select(k.raw(1))
81
- .from('proven_txs as p')
82
- .whereRaw('transactions.txid = p.txid')
76
+ this.select(k.raw(1)).from('proven_txs as p').whereRaw('transactions.txid = p.txid')
83
77
  })
84
78
  })
85
79