@bsv/wallet-toolbox-client 2.1.24 → 3.0.0-alpha.0

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 (588) hide show
  1. package/out/src/CWIStyleWalletManager.d.ts +33 -7
  2. package/out/src/CWIStyleWalletManager.d.ts.map +1 -1
  3. package/out/src/CWIStyleWalletManager.js +281 -313
  4. package/out/src/CWIStyleWalletManager.js.map +1 -1
  5. package/out/src/SetupClient.d.ts +6 -6
  6. package/out/src/SetupClient.d.ts.map +1 -1
  7. package/out/src/SetupClient.js +5 -5
  8. package/out/src/SetupClient.js.map +1 -1
  9. package/out/src/SetupWallet.d.ts.map +1 -1
  10. package/out/src/SimpleWalletManager.d.ts +12 -2
  11. package/out/src/SimpleWalletManager.d.ts.map +1 -1
  12. package/out/src/SimpleWalletManager.js +46 -30
  13. package/out/src/SimpleWalletManager.js.map +1 -1
  14. package/out/src/Wallet.d.ts +1 -1
  15. package/out/src/Wallet.d.ts.map +1 -1
  16. package/out/src/Wallet.js +102 -100
  17. package/out/src/Wallet.js.map +1 -1
  18. package/out/src/WalletAuthenticationManager.d.ts +1 -1
  19. package/out/src/WalletAuthenticationManager.d.ts.map +1 -1
  20. package/out/src/WalletAuthenticationManager.js +3 -3
  21. package/out/src/WalletAuthenticationManager.js.map +1 -1
  22. package/out/src/WalletLogger.d.ts.map +1 -1
  23. package/out/src/WalletLogger.js +16 -8
  24. package/out/src/WalletLogger.js.map +1 -1
  25. package/out/src/WalletPermissionsManager.d.ts +89 -18
  26. package/out/src/WalletPermissionsManager.d.ts.map +1 -1
  27. package/out/src/WalletPermissionsManager.js +656 -870
  28. package/out/src/WalletPermissionsManager.js.map +1 -1
  29. package/out/src/WalletSettingsManager.d.ts +2 -2
  30. package/out/src/WalletSettingsManager.d.ts.map +1 -1
  31. package/out/src/WalletSettingsManager.js.map +1 -1
  32. package/out/src/fundWalletP2PKH.d.ts +2 -2
  33. package/out/src/fundWalletP2PKH.d.ts.map +1 -1
  34. package/out/src/fundWalletP2PKH.js +11 -10
  35. package/out/src/fundWalletP2PKH.js.map +1 -1
  36. package/out/src/mockchain/MockChainMigrations.d.ts +3 -3
  37. package/out/src/mockchain/MockChainMigrations.d.ts.map +1 -1
  38. package/out/src/mockchain/MockChainMigrations.js.map +1 -1
  39. package/out/src/mockchain/MockChainStorage.d.ts.map +1 -1
  40. package/out/src/mockchain/MockChainStorage.js +5 -5
  41. package/out/src/mockchain/MockChainStorage.js.map +1 -1
  42. package/out/src/mockchain/MockChainTracker.d.ts.map +1 -1
  43. package/out/src/mockchain/MockChainTracker.js +10 -10
  44. package/out/src/mockchain/MockChainTracker.js.map +1 -1
  45. package/out/src/mockchain/MockMiner.d.ts.map +1 -1
  46. package/out/src/mockchain/MockMiner.js +3 -3
  47. package/out/src/mockchain/MockMiner.js.map +1 -1
  48. package/out/src/mockchain/MockServices.d.ts +9 -0
  49. package/out/src/mockchain/MockServices.d.ts.map +1 -1
  50. package/out/src/mockchain/MockServices.js +195 -238
  51. package/out/src/mockchain/MockServices.js.map +1 -1
  52. package/out/src/mockchain/merkleTree.d.ts.map +1 -1
  53. package/out/src/mockchain/merkleTree.js +21 -12
  54. package/out/src/mockchain/merkleTree.js.map +1 -1
  55. package/out/src/monitor/LeasedMonitorTask.d.ts +43 -0
  56. package/out/src/monitor/LeasedMonitorTask.d.ts.map +1 -0
  57. package/out/src/monitor/LeasedMonitorTask.js +89 -0
  58. package/out/src/monitor/LeasedMonitorTask.js.map +1 -0
  59. package/out/src/monitor/Monitor.d.ts +24 -0
  60. package/out/src/monitor/Monitor.d.ts.map +1 -1
  61. package/out/src/monitor/Monitor.js +63 -75
  62. package/out/src/monitor/Monitor.js.map +1 -1
  63. package/out/src/monitor/V7LeasedTask.d.ts +43 -0
  64. package/out/src/monitor/V7LeasedTask.d.ts.map +1 -0
  65. package/out/src/monitor/V7LeasedTask.js +89 -0
  66. package/out/src/monitor/V7LeasedTask.js.map +1 -0
  67. package/out/src/monitor/tasks/TaskArcSSE.d.ts +2 -2
  68. package/out/src/monitor/tasks/TaskArcSSE.d.ts.map +1 -1
  69. package/out/src/monitor/tasks/TaskArcSSE.js +10 -23
  70. package/out/src/monitor/tasks/TaskArcSSE.js.map +1 -1
  71. package/out/src/monitor/tasks/TaskCheckForProofs.d.ts +4 -2
  72. package/out/src/monitor/tasks/TaskCheckForProofs.d.ts.map +1 -1
  73. package/out/src/monitor/tasks/TaskCheckForProofs.js +83 -16
  74. package/out/src/monitor/tasks/TaskCheckForProofs.js.map +1 -1
  75. package/out/src/monitor/tasks/TaskCheckNoSends.d.ts +1 -1
  76. package/out/src/monitor/tasks/TaskCheckNoSends.d.ts.map +1 -1
  77. package/out/src/monitor/tasks/TaskCheckNoSends.js +1 -2
  78. package/out/src/monitor/tasks/TaskCheckNoSends.js.map +1 -1
  79. package/out/src/monitor/tasks/TaskClock.d.ts +1 -1
  80. package/out/src/monitor/tasks/TaskClock.d.ts.map +1 -1
  81. package/out/src/monitor/tasks/TaskClock.js +0 -1
  82. package/out/src/monitor/tasks/TaskClock.js.map +1 -1
  83. package/out/src/monitor/tasks/TaskFailAbandoned.d.ts +1 -1
  84. package/out/src/monitor/tasks/TaskFailAbandoned.d.ts.map +1 -1
  85. package/out/src/monitor/tasks/TaskFailAbandoned.js.map +1 -1
  86. package/out/src/monitor/tasks/TaskMineBlock.d.ts +1 -1
  87. package/out/src/monitor/tasks/TaskMineBlock.d.ts.map +1 -1
  88. package/out/src/monitor/tasks/TaskMineBlock.js.map +1 -1
  89. package/out/src/monitor/tasks/TaskMonitorCallHistory.d.ts +1 -1
  90. package/out/src/monitor/tasks/TaskMonitorCallHistory.d.ts.map +1 -1
  91. package/out/src/monitor/tasks/TaskMonitorCallHistory.js +1 -1
  92. package/out/src/monitor/tasks/TaskMonitorCallHistory.js.map +1 -1
  93. package/out/src/monitor/tasks/TaskNewHeader.d.ts +2 -2
  94. package/out/src/monitor/tasks/TaskNewHeader.d.ts.map +1 -1
  95. package/out/src/monitor/tasks/TaskNewHeader.js +7 -5
  96. package/out/src/monitor/tasks/TaskNewHeader.js.map +1 -1
  97. package/out/src/monitor/tasks/TaskPurge.d.ts +1 -1
  98. package/out/src/monitor/tasks/TaskPurge.d.ts.map +1 -1
  99. package/out/src/monitor/tasks/TaskPurge.js.map +1 -1
  100. package/out/src/monitor/tasks/TaskReorg.d.ts +1 -1
  101. package/out/src/monitor/tasks/TaskReorg.d.ts.map +1 -1
  102. package/out/src/monitor/tasks/TaskReorg.js +2 -2
  103. package/out/src/monitor/tasks/TaskReorg.js.map +1 -1
  104. package/out/src/monitor/tasks/TaskReviewDoubleSpends.d.ts +1 -1
  105. package/out/src/monitor/tasks/TaskReviewDoubleSpends.d.ts.map +1 -1
  106. package/out/src/monitor/tasks/TaskReviewDoubleSpends.js +10 -10
  107. package/out/src/monitor/tasks/TaskReviewDoubleSpends.js.map +1 -1
  108. package/out/src/monitor/tasks/TaskReviewProvenTxs.d.ts +1 -1
  109. package/out/src/monitor/tasks/TaskReviewProvenTxs.d.ts.map +1 -1
  110. package/out/src/monitor/tasks/TaskReviewProvenTxs.js +2 -2
  111. package/out/src/monitor/tasks/TaskReviewProvenTxs.js.map +1 -1
  112. package/out/src/monitor/tasks/TaskReviewStatus.d.ts +1 -1
  113. package/out/src/monitor/tasks/TaskReviewStatus.d.ts.map +1 -1
  114. package/out/src/monitor/tasks/TaskReviewStatus.js.map +1 -1
  115. package/out/src/monitor/tasks/TaskReviewUtxos.d.ts +1 -1
  116. package/out/src/monitor/tasks/TaskReviewUtxos.d.ts.map +1 -1
  117. package/out/src/monitor/tasks/TaskReviewUtxos.js.map +1 -1
  118. package/out/src/monitor/tasks/TaskSendWaiting.d.ts +1 -1
  119. package/out/src/monitor/tasks/TaskSendWaiting.d.ts.map +1 -1
  120. package/out/src/monitor/tasks/TaskSendWaiting.js +4 -5
  121. package/out/src/monitor/tasks/TaskSendWaiting.js.map +1 -1
  122. package/out/src/monitor/tasks/TaskUnFail.d.ts +1 -1
  123. package/out/src/monitor/tasks/TaskUnFail.d.ts.map +1 -1
  124. package/out/src/monitor/tasks/TaskUnFail.js +13 -15
  125. package/out/src/monitor/tasks/TaskUnFail.js.map +1 -1
  126. package/out/src/monitor/tasks/WalletMonitorTask.d.ts.map +1 -1
  127. package/out/src/monitor/tasks/WalletMonitorTask.js +3 -1
  128. package/out/src/monitor/tasks/WalletMonitorTask.js.map +1 -1
  129. package/out/src/sdk/CertOpsWallet.d.ts +3 -3
  130. package/out/src/sdk/CertOpsWallet.d.ts.map +1 -1
  131. package/out/src/sdk/PrivilegedKeyManager.d.ts +3 -3
  132. package/out/src/sdk/PrivilegedKeyManager.d.ts.map +1 -1
  133. package/out/src/sdk/PrivilegedKeyManager.js +26 -21
  134. package/out/src/sdk/PrivilegedKeyManager.js.map +1 -1
  135. package/out/src/sdk/WERR_errors.d.ts.map +1 -1
  136. package/out/src/sdk/WERR_errors.js +5 -5
  137. package/out/src/sdk/WERR_errors.js.map +1 -1
  138. package/out/src/sdk/WalletError.d.ts +1 -1
  139. package/out/src/sdk/WalletError.d.ts.map +1 -1
  140. package/out/src/sdk/WalletError.js +10 -3
  141. package/out/src/sdk/WalletError.js.map +1 -1
  142. package/out/src/sdk/WalletErrorFromJson.d.ts.map +1 -1
  143. package/out/src/sdk/WalletErrorFromJson.js +1 -3
  144. package/out/src/sdk/WalletErrorFromJson.js.map +1 -1
  145. package/out/src/sdk/WalletServices.interfaces.d.ts +19 -19
  146. package/out/src/sdk/WalletServices.interfaces.d.ts.map +1 -1
  147. package/out/src/sdk/WalletStorage.interfaces.d.ts +59 -59
  148. package/out/src/sdk/WalletStorage.interfaces.d.ts.map +1 -1
  149. package/out/src/sdk/types.d.ts +36 -4
  150. package/out/src/sdk/types.d.ts.map +1 -1
  151. package/out/src/sdk/types.js +53 -4
  152. package/out/src/sdk/types.js.map +1 -1
  153. package/out/src/services/ServiceCollection.d.ts +6 -6
  154. package/out/src/services/ServiceCollection.d.ts.map +1 -1
  155. package/out/src/services/ServiceCollection.js +3 -4
  156. package/out/src/services/ServiceCollection.js.map +1 -1
  157. package/out/src/services/Services.d.ts +5 -0
  158. package/out/src/services/Services.d.ts.map +1 -1
  159. package/out/src/services/Services.js +174 -182
  160. package/out/src/services/Services.js.map +1 -1
  161. package/out/src/services/chaintracker/BHServiceClient.d.ts.map +1 -1
  162. package/out/src/services/chaintracker/BHServiceClient.js +7 -7
  163. package/out/src/services/chaintracker/BHServiceClient.js.map +1 -1
  164. package/out/src/services/chaintracker/ChaintracksChainTracker.d.ts.map +1 -1
  165. package/out/src/services/chaintracker/ChaintracksChainTracker.js +5 -5
  166. package/out/src/services/chaintracker/ChaintracksChainTracker.js.map +1 -1
  167. package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.d.ts +5 -3
  168. package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.d.ts.map +1 -1
  169. package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.js.map +1 -1
  170. package/out/src/services/chaintracker/chaintracks/Api/BulkStorageApi.d.ts.map +1 -1
  171. package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts +20 -10
  172. package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts.map +1 -1
  173. package/out/src/services/chaintracker/chaintracks/Chaintracks.js +228 -221
  174. package/out/src/services/chaintracker/chaintracks/Chaintracks.js.map +1 -1
  175. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts.map +1 -1
  176. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js +9 -10
  177. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js.map +1 -1
  178. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.d.ts.map +1 -1
  179. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.js +1 -1
  180. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.js.map +1 -1
  181. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.d.ts +1 -2
  182. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.d.ts.map +1 -1
  183. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js +3 -3
  184. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js.map +1 -1
  185. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDNBabbage.d.ts.map +1 -1
  186. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDNBabbage.js.map +1 -1
  187. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.d.ts.map +1 -1
  188. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js +3 -3
  189. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js.map +1 -1
  190. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.d.ts.map +1 -1
  191. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.js +1 -1
  192. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.js.map +1 -1
  193. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.d.ts.map +1 -1
  194. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js +2 -2
  195. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js.map +1 -1
  196. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts +2 -2
  197. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts.map +1 -1
  198. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js +6 -39
  199. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js.map +1 -1
  200. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.d.ts +3 -3
  201. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.d.ts.map +1 -1
  202. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.js +8 -6
  203. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.js.map +1 -1
  204. package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.d.ts.map +1 -1
  205. package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.js +9 -16
  206. package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.js.map +1 -1
  207. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.d.ts.map +1 -1
  208. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js +34 -22
  209. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js.map +1 -1
  210. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.d.ts.map +1 -1
  211. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js +31 -30
  212. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js.map +1 -1
  213. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts +2 -2
  214. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts.map +1 -1
  215. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js +11 -10
  216. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js.map +1 -1
  217. package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.d.ts.map +1 -1
  218. package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.js.map +1 -1
  219. package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.d.ts.map +1 -1
  220. package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js.map +1 -1
  221. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.d.ts.map +1 -1
  222. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js.map +1 -1
  223. package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.d.ts.map +1 -1
  224. package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js.map +1 -1
  225. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts +6 -1
  226. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts.map +1 -1
  227. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js +247 -227
  228. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js.map +1 -1
  229. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.d.ts.map +1 -1
  230. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.js +8 -7
  231. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.js.map +1 -1
  232. package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.d.ts.map +1 -1
  233. package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js +35 -25
  234. package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js.map +1 -1
  235. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.d.ts +5 -5
  236. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.d.ts.map +1 -1
  237. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js +13 -11
  238. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js.map +1 -1
  239. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts +0 -1
  240. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts.map +1 -1
  241. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js.map +1 -1
  242. package/out/src/services/chaintracker/chaintracks/util/HeightRange.d.ts.map +1 -1
  243. package/out/src/services/chaintracker/chaintracks/util/HeightRange.js +21 -13
  244. package/out/src/services/chaintracker/chaintracks/util/HeightRange.js.map +1 -1
  245. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.d.ts +2 -2
  246. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.d.ts.map +1 -1
  247. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.js.map +1 -1
  248. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts +1 -1
  249. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts.map +1 -1
  250. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js +28 -24
  251. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js.map +1 -1
  252. package/out/src/services/chaintracker/chaintracks/util/dirtyHashes.d.ts.map +1 -1
  253. package/out/src/services/chaintracker/chaintracks/util/dirtyHashes.js.map +1 -1
  254. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.d.ts.map +1 -1
  255. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js +9 -10
  256. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js.map +1 -1
  257. package/out/src/services/createDefaultWalletServicesOptions.d.ts.map +1 -1
  258. package/out/src/services/createDefaultWalletServicesOptions.js +3 -3
  259. package/out/src/services/createDefaultWalletServicesOptions.js.map +1 -1
  260. package/out/src/services/providers/ARC.d.ts.map +1 -1
  261. package/out/src/services/providers/ARC.js +7 -14
  262. package/out/src/services/providers/ARC.js.map +1 -1
  263. package/out/src/services/providers/ArcSSEClient.d.ts.map +1 -1
  264. package/out/src/services/providers/ArcSSEClient.js +1 -1
  265. package/out/src/services/providers/ArcSSEClient.js.map +1 -1
  266. package/out/src/services/providers/Bitails.d.ts.map +1 -1
  267. package/out/src/services/providers/Bitails.js +17 -17
  268. package/out/src/services/providers/Bitails.js.map +1 -1
  269. package/out/src/services/providers/SdkWhatsOnChain.d.ts.map +1 -1
  270. package/out/src/services/providers/SdkWhatsOnChain.js.map +1 -1
  271. package/out/src/services/providers/WhatsOnChain.d.ts +2 -0
  272. package/out/src/services/providers/WhatsOnChain.d.ts.map +1 -1
  273. package/out/src/services/providers/WhatsOnChain.js +109 -233
  274. package/out/src/services/providers/WhatsOnChain.js.map +1 -1
  275. package/out/src/services/providers/exchangeRates.d.ts.map +1 -1
  276. package/out/src/services/providers/exchangeRates.js +3 -3
  277. package/out/src/services/providers/exchangeRates.js.map +1 -1
  278. package/out/src/services/providers/getBeefForTxid.d.ts +1 -1
  279. package/out/src/services/providers/getBeefForTxid.d.ts.map +1 -1
  280. package/out/src/services/providers/getBeefForTxid.js.map +1 -1
  281. package/out/src/services/providers/whatsOnChainHelpers.d.ts +68 -0
  282. package/out/src/services/providers/whatsOnChainHelpers.d.ts.map +1 -0
  283. package/out/src/services/providers/whatsOnChainHelpers.js +147 -0
  284. package/out/src/services/providers/whatsOnChainHelpers.js.map +1 -0
  285. package/out/src/signer/WalletSigner.d.ts.map +1 -1
  286. package/out/src/signer/WalletSigner.js.map +1 -1
  287. package/out/src/signer/methods/acquireDirectCertificate.js +1 -1
  288. package/out/src/signer/methods/acquireDirectCertificate.js.map +1 -1
  289. package/out/src/signer/methods/buildSignableTransaction.d.ts.map +1 -1
  290. package/out/src/signer/methods/buildSignableTransaction.js +21 -13
  291. package/out/src/signer/methods/buildSignableTransaction.js.map +1 -1
  292. package/out/src/signer/methods/completeSignedTransaction.d.ts.map +1 -1
  293. package/out/src/signer/methods/completeSignedTransaction.js +20 -21
  294. package/out/src/signer/methods/completeSignedTransaction.js.map +1 -1
  295. package/out/src/signer/methods/createAction.d.ts.map +1 -1
  296. package/out/src/signer/methods/createAction.js +8 -7
  297. package/out/src/signer/methods/createAction.js.map +1 -1
  298. package/out/src/signer/methods/internalizeAction.d.ts.map +1 -1
  299. package/out/src/signer/methods/internalizeAction.js +8 -6
  300. package/out/src/signer/methods/internalizeAction.js.map +1 -1
  301. package/out/src/signer/methods/proveCertificate.js +1 -1
  302. package/out/src/signer/methods/signAction.d.ts.map +1 -1
  303. package/out/src/signer/methods/signAction.js +8 -10
  304. package/out/src/signer/methods/signAction.js.map +1 -1
  305. package/out/src/storage/StorageIdb.d.ts +16 -1
  306. package/out/src/storage/StorageIdb.d.ts.map +1 -1
  307. package/out/src/storage/StorageIdb.js +544 -1224
  308. package/out/src/storage/StorageIdb.js.map +1 -1
  309. package/out/src/storage/StorageProvider.d.ts +124 -1
  310. package/out/src/storage/StorageProvider.d.ts.map +1 -1
  311. package/out/src/storage/StorageProvider.js +316 -186
  312. package/out/src/storage/StorageProvider.js.map +1 -1
  313. package/out/src/storage/StorageReader.d.ts.map +1 -1
  314. package/out/src/storage/StorageReader.js +8 -7
  315. package/out/src/storage/StorageReader.js.map +1 -1
  316. package/out/src/storage/StorageReaderWriter.d.ts.map +1 -1
  317. package/out/src/storage/StorageReaderWriter.js +32 -32
  318. package/out/src/storage/StorageReaderWriter.js.map +1 -1
  319. package/out/src/storage/StorageSyncReader.d.ts.map +1 -1
  320. package/out/src/storage/StorageSyncReader.js +3 -3
  321. package/out/src/storage/StorageSyncReader.js.map +1 -1
  322. package/out/src/storage/WalletStorageManager.d.ts +3 -0
  323. package/out/src/storage/WalletStorageManager.d.ts.map +1 -1
  324. package/out/src/storage/WalletStorageManager.js +83 -73
  325. package/out/src/storage/WalletStorageManager.js.map +1 -1
  326. package/out/src/storage/idbHelpers.d.ts +47 -0
  327. package/out/src/storage/idbHelpers.d.ts.map +1 -0
  328. package/out/src/storage/idbHelpers.js +417 -0
  329. package/out/src/storage/idbHelpers.js.map +1 -0
  330. package/out/src/storage/methods/ListActionsSpecOp.d.ts +6 -1
  331. package/out/src/storage/methods/ListActionsSpecOp.d.ts.map +1 -1
  332. package/out/src/storage/methods/ListActionsSpecOp.js +28 -2
  333. package/out/src/storage/methods/ListActionsSpecOp.js.map +1 -1
  334. package/out/src/storage/methods/ListOutputsSpecOp.d.ts.map +1 -1
  335. package/out/src/storage/methods/ListOutputsSpecOp.js +8 -11
  336. package/out/src/storage/methods/ListOutputsSpecOp.js.map +1 -1
  337. package/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts +83 -0
  338. package/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts.map +1 -1
  339. package/out/src/storage/methods/attemptToPostReqsToNetwork.js +338 -63
  340. package/out/src/storage/methods/attemptToPostReqsToNetwork.js.map +1 -1
  341. package/out/src/storage/methods/createAction.d.ts.map +1 -1
  342. package/out/src/storage/methods/createAction.js +251 -274
  343. package/out/src/storage/methods/createAction.js.map +1 -1
  344. package/out/src/storage/methods/generateChange.d.ts.map +1 -1
  345. package/out/src/storage/methods/generateChange.js +99 -80
  346. package/out/src/storage/methods/generateChange.js.map +1 -1
  347. package/out/src/storage/methods/getBeefForTransaction.js +15 -13
  348. package/out/src/storage/methods/getBeefForTransaction.js.map +1 -1
  349. package/out/src/storage/methods/getSyncChunk.d.ts.map +1 -1
  350. package/out/src/storage/methods/getSyncChunk.js +4 -3
  351. package/out/src/storage/methods/getSyncChunk.js.map +1 -1
  352. package/out/src/storage/methods/internalizeAction.d.ts.map +1 -1
  353. package/out/src/storage/methods/internalizeAction.js +213 -56
  354. package/out/src/storage/methods/internalizeAction.js.map +1 -1
  355. package/out/src/storage/methods/listActionsIdb.d.ts.map +1 -1
  356. package/out/src/storage/methods/listActionsIdb.js +85 -110
  357. package/out/src/storage/methods/listActionsIdb.js.map +1 -1
  358. package/out/src/storage/methods/listCertificates.d.ts +1 -1
  359. package/out/src/storage/methods/listCertificates.d.ts.map +1 -1
  360. package/out/src/storage/methods/listCertificates.js +7 -7
  361. package/out/src/storage/methods/listCertificates.js.map +1 -1
  362. package/out/src/storage/methods/listOutputsIdb.d.ts.map +1 -1
  363. package/out/src/storage/methods/listOutputsIdb.js +24 -27
  364. package/out/src/storage/methods/listOutputsIdb.js.map +1 -1
  365. package/out/src/storage/methods/offsetKey.d.ts +1 -1
  366. package/out/src/storage/methods/offsetKey.d.ts.map +1 -1
  367. package/out/src/storage/methods/offsetKey.js +3 -5
  368. package/out/src/storage/methods/offsetKey.js.map +1 -1
  369. package/out/src/storage/methods/processAction.d.ts +0 -11
  370. package/out/src/storage/methods/processAction.d.ts.map +1 -1
  371. package/out/src/storage/methods/processAction.js +168 -93
  372. package/out/src/storage/methods/processAction.js.map +1 -1
  373. package/out/src/storage/methods/purgeDataIdb.d.ts.map +1 -1
  374. package/out/src/storage/methods/purgeDataIdb.js +1 -1
  375. package/out/src/storage/methods/purgeDataIdb.js.map +1 -1
  376. package/out/src/storage/methods/reviewStatusIdb.d.ts +1 -1
  377. package/out/src/storage/methods/reviewStatusIdb.d.ts.map +1 -1
  378. package/out/src/storage/methods/reviewStatusIdb.js.map +1 -1
  379. package/out/src/storage/methods/utils.d.ts.map +1 -1
  380. package/out/src/storage/methods/utils.js +7 -1
  381. package/out/src/storage/methods/utils.js.map +1 -1
  382. package/out/src/storage/remoting/StorageClient.d.ts +4 -270
  383. package/out/src/storage/remoting/StorageClient.d.ts.map +1 -1
  384. package/out/src/storage/remoting/StorageClient.js +16 -423
  385. package/out/src/storage/remoting/StorageClient.js.map +1 -1
  386. package/out/src/storage/remoting/StorageClientBase.d.ts +289 -0
  387. package/out/src/storage/remoting/StorageClientBase.d.ts.map +1 -0
  388. package/out/src/storage/remoting/StorageClientBase.js +375 -0
  389. package/out/src/storage/remoting/StorageClientBase.js.map +1 -0
  390. package/out/src/storage/remoting/entityValidationHelpers.d.ts +29 -0
  391. package/out/src/storage/remoting/entityValidationHelpers.d.ts.map +1 -0
  392. package/out/src/storage/remoting/entityValidationHelpers.js +91 -0
  393. package/out/src/storage/remoting/entityValidationHelpers.js.map +1 -0
  394. package/out/src/storage/schema/StorageIdbSchema.d.ts +43 -2
  395. package/out/src/storage/schema/StorageIdbSchema.d.ts.map +1 -1
  396. package/out/src/storage/schema/entities/EntityBase.d.ts.map +1 -1
  397. package/out/src/storage/schema/entities/EntityBase.js.map +1 -1
  398. package/out/src/storage/schema/entities/EntityCertificate.d.ts.map +1 -1
  399. package/out/src/storage/schema/entities/EntityCertificate.js +5 -4
  400. package/out/src/storage/schema/entities/EntityCertificate.js.map +1 -1
  401. package/out/src/storage/schema/entities/EntityCertificateField.d.ts.map +1 -1
  402. package/out/src/storage/schema/entities/EntityCertificateField.js +5 -7
  403. package/out/src/storage/schema/entities/EntityCertificateField.js.map +1 -1
  404. package/out/src/storage/schema/entities/EntityCommission.d.ts.map +1 -1
  405. package/out/src/storage/schema/entities/EntityCommission.js +6 -8
  406. package/out/src/storage/schema/entities/EntityCommission.js.map +1 -1
  407. package/out/src/storage/schema/entities/EntityOutput.d.ts.map +1 -1
  408. package/out/src/storage/schema/entities/EntityOutput.js +21 -24
  409. package/out/src/storage/schema/entities/EntityOutput.js.map +1 -1
  410. package/out/src/storage/schema/entities/EntityOutputBasket.d.ts.map +1 -1
  411. package/out/src/storage/schema/entities/EntityOutputBasket.js +6 -6
  412. package/out/src/storage/schema/entities/EntityOutputBasket.js.map +1 -1
  413. package/out/src/storage/schema/entities/EntityOutputTag.d.ts.map +1 -1
  414. package/out/src/storage/schema/entities/EntityOutputTag.js +2 -2
  415. package/out/src/storage/schema/entities/EntityOutputTag.js.map +1 -1
  416. package/out/src/storage/schema/entities/EntityOutputTagMap.d.ts.map +1 -1
  417. package/out/src/storage/schema/entities/EntityOutputTagMap.js +4 -6
  418. package/out/src/storage/schema/entities/EntityOutputTagMap.js.map +1 -1
  419. package/out/src/storage/schema/entities/EntityProvenTx.d.ts +3 -3
  420. package/out/src/storage/schema/entities/EntityProvenTx.d.ts.map +1 -1
  421. package/out/src/storage/schema/entities/EntityProvenTx.js +22 -23
  422. package/out/src/storage/schema/entities/EntityProvenTx.js.map +1 -1
  423. package/out/src/storage/schema/entities/EntityProvenTxReq.d.ts +9 -0
  424. package/out/src/storage/schema/entities/EntityProvenTxReq.d.ts.map +1 -1
  425. package/out/src/storage/schema/entities/EntityProvenTxReq.js +116 -68
  426. package/out/src/storage/schema/entities/EntityProvenTxReq.js.map +1 -1
  427. package/out/src/storage/schema/entities/EntitySyncState.d.ts.map +1 -1
  428. package/out/src/storage/schema/entities/EntitySyncState.js +19 -18
  429. package/out/src/storage/schema/entities/EntitySyncState.js.map +1 -1
  430. package/out/src/storage/schema/entities/EntityTransaction.d.ts.map +1 -1
  431. package/out/src/storage/schema/entities/EntityTransaction.js +25 -26
  432. package/out/src/storage/schema/entities/EntityTransaction.js.map +1 -1
  433. package/out/src/storage/schema/entities/EntityTxLabel.d.ts.map +1 -1
  434. package/out/src/storage/schema/entities/EntityTxLabel.js +2 -2
  435. package/out/src/storage/schema/entities/EntityTxLabel.js.map +1 -1
  436. package/out/src/storage/schema/entities/EntityTxLabelMap.d.ts.map +1 -1
  437. package/out/src/storage/schema/entities/EntityTxLabelMap.js +4 -6
  438. package/out/src/storage/schema/entities/EntityTxLabelMap.js.map +1 -1
  439. package/out/src/storage/schema/entities/EntityUser.d.ts.map +1 -1
  440. package/out/src/storage/schema/entities/EntityUser.js +3 -3
  441. package/out/src/storage/schema/entities/EntityUser.js.map +1 -1
  442. package/out/src/storage/schema/entities/MergeEntity.d.ts.map +1 -1
  443. package/out/src/storage/schema/entities/MergeEntity.js +6 -6
  444. package/out/src/storage/schema/entities/MergeEntity.js.map +1 -1
  445. package/out/src/storage/schema/monitorLease.d.ts +57 -0
  446. package/out/src/storage/schema/monitorLease.d.ts.map +1 -0
  447. package/out/src/storage/schema/monitorLease.js +101 -0
  448. package/out/src/storage/schema/monitorLease.js.map +1 -0
  449. package/out/src/storage/schema/processingFsm.d.ts +27 -0
  450. package/out/src/storage/schema/processingFsm.d.ts.map +1 -0
  451. package/out/src/storage/schema/processingFsm.js +132 -0
  452. package/out/src/storage/schema/processingFsm.js.map +1 -0
  453. package/out/src/storage/schema/tables/TableAction.d.ts +38 -0
  454. package/out/src/storage/schema/tables/TableAction.d.ts.map +1 -0
  455. package/out/src/storage/schema/tables/TableAction.js +3 -0
  456. package/out/src/storage/schema/tables/TableAction.js.map +1 -0
  457. package/out/src/storage/schema/tables/TableCertificate.d.ts +2 -1
  458. package/out/src/storage/schema/tables/TableCertificate.d.ts.map +1 -1
  459. package/out/src/storage/schema/tables/TableCertificateField.d.ts +1 -1
  460. package/out/src/storage/schema/tables/TableCertificateField.d.ts.map +1 -1
  461. package/out/src/storage/schema/tables/TableChainTip.d.ts +17 -0
  462. package/out/src/storage/schema/tables/TableChainTip.d.ts.map +1 -0
  463. package/out/src/storage/schema/tables/TableChainTip.js +3 -0
  464. package/out/src/storage/schema/tables/TableChainTip.js.map +1 -0
  465. package/out/src/storage/schema/tables/TableCommission.d.ts +1 -1
  466. package/out/src/storage/schema/tables/TableCommission.d.ts.map +1 -1
  467. package/out/src/storage/schema/tables/TableMonitorEvent.d.ts +1 -1
  468. package/out/src/storage/schema/tables/TableMonitorEvent.d.ts.map +1 -1
  469. package/out/src/storage/schema/tables/TableMonitorLease.d.ts +23 -0
  470. package/out/src/storage/schema/tables/TableMonitorLease.d.ts.map +1 -0
  471. package/out/src/storage/schema/tables/TableMonitorLease.js +3 -0
  472. package/out/src/storage/schema/tables/TableMonitorLease.js.map +1 -0
  473. package/out/src/storage/schema/tables/TableOutput.d.ts +10 -2
  474. package/out/src/storage/schema/tables/TableOutput.d.ts.map +1 -1
  475. package/out/src/storage/schema/tables/TableOutput.js +1 -1
  476. package/out/src/storage/schema/tables/TableOutput.js.map +1 -1
  477. package/out/src/storage/schema/tables/TableOutputBasket.d.ts +1 -1
  478. package/out/src/storage/schema/tables/TableOutputBasket.d.ts.map +1 -1
  479. package/out/src/storage/schema/tables/TableOutputTag.d.ts +1 -1
  480. package/out/src/storage/schema/tables/TableOutputTag.d.ts.map +1 -1
  481. package/out/src/storage/schema/tables/TableOutputTagMap.d.ts +1 -1
  482. package/out/src/storage/schema/tables/TableOutputTagMap.d.ts.map +1 -1
  483. package/out/src/storage/schema/tables/TableProvenTx.d.ts +1 -1
  484. package/out/src/storage/schema/tables/TableProvenTx.d.ts.map +1 -1
  485. package/out/src/storage/schema/tables/TableProvenTxReq.d.ts +24 -1
  486. package/out/src/storage/schema/tables/TableProvenTxReq.d.ts.map +1 -1
  487. package/out/src/storage/schema/tables/TableSettings.d.ts +1 -1
  488. package/out/src/storage/schema/tables/TableSettings.d.ts.map +1 -1
  489. package/out/src/storage/schema/tables/TableSyncState.d.ts +1 -1
  490. package/out/src/storage/schema/tables/TableSyncState.d.ts.map +1 -1
  491. package/out/src/storage/schema/tables/TableTransaction.d.ts +1 -1
  492. package/out/src/storage/schema/tables/TableTransaction.d.ts.map +1 -1
  493. package/out/src/storage/schema/tables/TableTransactionNew.d.ts +50 -0
  494. package/out/src/storage/schema/tables/TableTransactionNew.d.ts.map +1 -0
  495. package/out/src/storage/schema/tables/TableTransactionNew.js +3 -0
  496. package/out/src/storage/schema/tables/TableTransactionNew.js.map +1 -0
  497. package/out/src/storage/schema/tables/TableTransactionV7.d.ts +50 -0
  498. package/out/src/storage/schema/tables/TableTransactionV7.d.ts.map +1 -0
  499. package/out/src/storage/schema/tables/TableTransactionV7.js +3 -0
  500. package/out/src/storage/schema/tables/TableTransactionV7.js.map +1 -0
  501. package/out/src/storage/schema/tables/TableTxAudit.d.ts +26 -0
  502. package/out/src/storage/schema/tables/TableTxAudit.d.ts.map +1 -0
  503. package/out/src/storage/schema/tables/TableTxAudit.js +3 -0
  504. package/out/src/storage/schema/tables/TableTxAudit.js.map +1 -0
  505. package/out/src/storage/schema/tables/TableTxLabel.d.ts +1 -1
  506. package/out/src/storage/schema/tables/TableTxLabel.d.ts.map +1 -1
  507. package/out/src/storage/schema/tables/TableTxLabelMap.d.ts +1 -1
  508. package/out/src/storage/schema/tables/TableTxLabelMap.d.ts.map +1 -1
  509. package/out/src/storage/schema/tables/TableUser.d.ts +1 -1
  510. package/out/src/storage/schema/tables/TableUser.d.ts.map +1 -1
  511. package/out/src/storage/schema/tables/index.d.ts +5 -0
  512. package/out/src/storage/schema/tables/index.d.ts.map +1 -1
  513. package/out/src/storage/schema/tables/index.js +5 -0
  514. package/out/src/storage/schema/tables/index.js.map +1 -1
  515. package/out/src/storage/schema/transactionCrud.d.ts +41 -0
  516. package/out/src/storage/schema/transactionCrud.d.ts.map +1 -0
  517. package/out/src/storage/schema/transactionCrud.js +205 -0
  518. package/out/src/storage/schema/transactionCrud.js.map +1 -0
  519. package/out/src/storage/schema/transactionService.d.ts +315 -0
  520. package/out/src/storage/schema/transactionService.d.ts.map +1 -0
  521. package/out/src/storage/schema/transactionService.js +783 -0
  522. package/out/src/storage/schema/transactionService.js.map +1 -0
  523. package/out/src/storage/schema/txAudit.d.ts +33 -0
  524. package/out/src/storage/schema/txAudit.d.ts.map +1 -0
  525. package/out/src/storage/schema/txAudit.js +64 -0
  526. package/out/src/storage/schema/txAudit.js.map +1 -0
  527. package/out/src/storage/schema/v7Crud.d.ts +41 -0
  528. package/out/src/storage/schema/v7Crud.d.ts.map +1 -0
  529. package/out/src/storage/schema/v7Crud.js +205 -0
  530. package/out/src/storage/schema/v7Crud.js.map +1 -0
  531. package/out/src/storage/schema/v7Fsm.d.ts +27 -0
  532. package/out/src/storage/schema/v7Fsm.d.ts.map +1 -0
  533. package/out/src/storage/schema/v7Fsm.js +124 -0
  534. package/out/src/storage/schema/v7Fsm.js.map +1 -0
  535. package/out/src/storage/schema/v7MonitorLease.d.ts +57 -0
  536. package/out/src/storage/schema/v7MonitorLease.d.ts.map +1 -0
  537. package/out/src/storage/schema/v7MonitorLease.js +101 -0
  538. package/out/src/storage/schema/v7MonitorLease.js.map +1 -0
  539. package/out/src/storage/schema/v7Service.d.ts +305 -0
  540. package/out/src/storage/schema/v7Service.d.ts.map +1 -0
  541. package/out/src/storage/schema/v7Service.js +757 -0
  542. package/out/src/storage/schema/v7Service.js.map +1 -0
  543. package/out/src/storage/schema/v7TxAudit.d.ts +33 -0
  544. package/out/src/storage/schema/v7TxAudit.d.ts.map +1 -0
  545. package/out/src/storage/schema/v7TxAudit.js +64 -0
  546. package/out/src/storage/schema/v7TxAudit.js.map +1 -0
  547. package/out/src/storage/storageProviderHelpers.d.ts +34 -0
  548. package/out/src/storage/storageProviderHelpers.d.ts.map +1 -0
  549. package/out/src/storage/storageProviderHelpers.js +100 -0
  550. package/out/src/storage/storageProviderHelpers.js.map +1 -0
  551. package/out/src/utility/ScriptTemplateBRC29.d.ts.map +1 -1
  552. package/out/src/utility/ScriptTemplateBRC29.js +2 -1
  553. package/out/src/utility/ScriptTemplateBRC29.js.map +1 -1
  554. package/out/src/utility/aggregateResults.d.ts +1 -1
  555. package/out/src/utility/aggregateResults.d.ts.map +1 -1
  556. package/out/src/utility/aggregateResults.js +2 -2
  557. package/out/src/utility/aggregateResults.js.map +1 -1
  558. package/out/src/utility/brc114ActionTimeLabels.d.ts +2 -2
  559. package/out/src/utility/brc114ActionTimeLabels.d.ts.map +1 -1
  560. package/out/src/utility/brc114ActionTimeLabels.js +16 -9
  561. package/out/src/utility/brc114ActionTimeLabels.js.map +1 -1
  562. package/out/src/utility/identityUtils.js +1 -1
  563. package/out/src/utility/identityUtils.js.map +1 -1
  564. package/out/src/utility/parseTxScriptOffsets.d.ts +4 -4
  565. package/out/src/utility/parseTxScriptOffsets.d.ts.map +1 -1
  566. package/out/src/utility/parseTxScriptOffsets.js.map +1 -1
  567. package/out/src/utility/stampLog.d.ts.map +1 -1
  568. package/out/src/utility/stampLog.js +7 -5
  569. package/out/src/utility/stampLog.js.map +1 -1
  570. package/out/src/utility/tscProofToMerklePath.d.ts.map +1 -1
  571. package/out/src/utility/tscProofToMerklePath.js +1 -1
  572. package/out/src/utility/tscProofToMerklePath.js.map +1 -1
  573. package/out/src/utility/utilityHelpers.d.ts +1 -2
  574. package/out/src/utility/utilityHelpers.d.ts.map +1 -1
  575. package/out/src/utility/utilityHelpers.js +10 -10
  576. package/out/src/utility/utilityHelpers.js.map +1 -1
  577. package/out/src/utility/utilityHelpers.noBuffer.d.ts +7 -3
  578. package/out/src/utility/utilityHelpers.noBuffer.d.ts.map +1 -1
  579. package/out/src/utility/utilityHelpers.noBuffer.js +3 -3
  580. package/out/src/utility/utilityHelpers.noBuffer.js.map +1 -1
  581. package/out/src/wab-client/WABClient.d.ts +1 -1
  582. package/out/src/wab-client/WABClient.d.ts.map +1 -1
  583. package/out/src/wab-client/WABClient.js +12 -12
  584. package/out/src/wab-client/WABClient.js.map +1 -1
  585. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.d.ts.map +1 -1
  586. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js +3 -3
  587. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js.map +1 -1
  588. package/package.json +7 -6
@@ -18,14 +18,16 @@ function setDisableDoubleSpendCheckForTest(v) {
18
18
  }
19
19
  async function createAction(storage, auth, vargs, originator) {
20
20
  const logger = vargs.logger;
21
- logger === null || logger === void 0 ? void 0 : logger.group(`storage createAction`);
22
- //stampLog(vargs, `start storage createTransactionSdk`)
21
+ logger === null || logger === void 0 ? void 0 : logger.group('storage createAction');
22
+ // stampLog(vargs, `start storage createTransactionSdk`)
23
23
  if (vargs.isTestWerrReviewActions)
24
24
  (0, Wallet_1.throwDummyReviewActions)();
25
- if (!vargs.isNewTx)
26
- // The purpose of this function is to create the initial storage records associated
27
- // with a new transaction. It's an error if we have no new inputs or outputs...
25
+ if (!vargs.isNewTx)
26
+ // The purpose of this function is to create the initial storage records associated
27
+ // with a new transaction. It's an error if we have no new inputs or outputs...
28
+ {
28
29
  throw new WERR_errors_1.WERR_INTERNAL();
30
+ }
29
31
  /**
30
32
  * Steps to create a transaction:
31
33
  * - Verify that all inputs either have proof in vargs.inputBEEF or that options.trustSelf === 'known' and input txid.vout are known valid to storage.
@@ -59,7 +61,7 @@ async function createAction(storage, auth, vargs, originator) {
59
61
  await preflightInsufficientFundsFastPath(vargs, xinputs, xoutputs, noSendChangeIn, availableChangeCount, feeModel);
60
62
  logger === null || logger === void 0 ? void 0 : logger.log('passed insufficient-funds preflight');
61
63
  const newTx = await createNewTxRecord(storage, userId, vargs, storageBeef);
62
- logger === null || logger === void 0 ? void 0 : logger.log(`created new transaction record`);
64
+ logger === null || logger === void 0 ? void 0 : logger.log('created new transaction record');
63
65
  const ctx = {
64
66
  xinputs,
65
67
  xoutputs,
@@ -70,23 +72,26 @@ async function createAction(storage, auth, vargs, originator) {
70
72
  transactionId: newTx.transactionId
71
73
  };
72
74
  const { allocatedChange, changeOutputs, derivationPrefix, maxPossibleSatoshisAdjustment } = await fundNewTransactionSdk(storage, userId, vargs, ctx);
73
- logger === null || logger === void 0 ? void 0 : logger.log(`funded new transaction`);
74
- if (maxPossibleSatoshisAdjustment) {
75
+ logger === null || logger === void 0 ? void 0 : logger.log('funded new transaction');
76
+ if (maxPossibleSatoshisAdjustment != null) {
75
77
  const a = maxPossibleSatoshisAdjustment;
76
78
  if (ctx.xoutputs[a.fixedOutputIndex].satoshis !== generateChange_1.maxPossibleSatoshis)
77
79
  throw new WERR_errors_1.WERR_INTERNAL();
78
80
  ctx.xoutputs[a.fixedOutputIndex].satoshis = a.satoshis;
79
- logger === null || logger === void 0 ? void 0 : logger.log(`adjusted change outputs to max possible`);
81
+ logger === null || logger === void 0 ? void 0 : logger.log('adjusted change outputs to max possible');
80
82
  }
81
83
  // The satoshis of the transaction is the satoshis we get back in change minus the satoshis we spend.
82
84
  const satoshis = changeOutputs.reduce((a, e) => a + e.satoshis, 0) - allocatedChange.reduce((a, e) => a + e.satoshis, 0);
83
- await storage.updateTransaction(newTx.transactionId, { satoshis });
85
+ // new-schema additive wiring: newTx lives in transactions_legacy post-cutover.
86
+ // updateLegacyTransaction routes to transactions_legacy when it exists,
87
+ // otherwise falls through to updateTransaction (pre-cutover behaviour).
88
+ await storage.updateLegacyTransaction(newTx.transactionId, { satoshis });
84
89
  const { outputs, changeVouts } = await createNewOutputs(storage, userId, vargs, ctx, changeOutputs);
85
- logger === null || logger === void 0 ? void 0 : logger.log(`created new output records`);
90
+ logger === null || logger === void 0 ? void 0 : logger.log('created new output records');
86
91
  const inputBeef = await mergeAllocatedChangeBeefs(storage, userId, vargs, allocatedChange, beef);
87
- logger === null || logger === void 0 ? void 0 : logger.log(`merged allocated change beefs`);
92
+ logger === null || logger === void 0 ? void 0 : logger.log('merged allocated change beefs');
88
93
  const inputs = await createNewInputs(storage, userId, vargs, ctx, allocatedChange);
89
- logger === null || logger === void 0 ? void 0 : logger.log(`created new inputs`);
94
+ logger === null || logger === void 0 ? void 0 : logger.log('created new inputs');
90
95
  const r = {
91
96
  reference: newTx.reference,
92
97
  version: newTx.version,
@@ -108,7 +113,7 @@ function makeDefaultOutput(userId, transactionId, satoshis, vout) {
108
113
  outputId: 0,
109
114
  userId,
110
115
  transactionId,
111
- satoshis: satoshis,
116
+ satoshis,
112
117
  vout,
113
118
  basketId: undefined,
114
119
  change: false,
@@ -128,115 +133,165 @@ function makeDefaultOutput(userId, transactionId, satoshis, vout) {
128
133
  };
129
134
  return output;
130
135
  }
136
+ /** Check known outputs for double-spend, mark them spent, return competing txid if found. */
137
+ async function markKnownInputsSpent(storage, knownInputRows, transactionId) {
138
+ let doubleSpendTxid;
139
+ await storage.transaction(async (trx) => {
140
+ const outputIds = knownInputRows.map(ni => (0, utilityHelpers_1.verifyId)(ni.o.outputId));
141
+ const knownOutputsById = await storage.findOutputsByIds(outputIds, trx);
142
+ for (const ni of knownInputRows) {
143
+ const { i, o } = ni;
144
+ const o2 = knownOutputsById[(0, utilityHelpers_1.verifyId)(o.outputId)];
145
+ if (!o2)
146
+ throw new WERR_errors_1.WERR_INTERNAL(`missing outputId ${o.outputId}`);
147
+ if (o2.spentBy !== undefined) {
148
+ const spendingTx = await storage.findTransactionById((0, utilityHelpers_1.verifyId)(o2.spentBy), trx);
149
+ if (spendingTx === null || spendingTx === void 0 ? void 0 : spendingTx.txid) {
150
+ doubleSpendTxid = spendingTx.txid;
151
+ return;
152
+ }
153
+ }
154
+ if (!o2.spendable) {
155
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER(`inputs[${i.vin}]`, `spendable output. output ${o.txid}:${o.vout} appears to have been spent (spendable=${o2.spendable}).`);
156
+ }
157
+ // Post-cutover: outputs.spentBy FK → new transactions. transactionId is
158
+ // from transactions_legacy (new unsigned tx). Use markOutputAsSpentBy to
159
+ // disable FK temporarily on SQLite. Mapping §2: bridge-period spentBy.
160
+ await storage.markOutputAsSpentBy((0, utilityHelpers_1.verifyId)(o.outputId), { spendable: false, spentBy: transactionId, spendingDescription: i.inputDescription }, trx);
161
+ o.spendable = false;
162
+ o.spentBy = transactionId;
163
+ o.spendingDescription = i.inputDescription;
164
+ }
165
+ });
166
+ return doubleSpendTxid;
167
+ }
168
+ /** Build an SDK input record for a new-input row that has a backing output. */
169
+ async function buildSdkInputFromOutput(storage, vargs, vin, i, o, unlockLen) {
170
+ if ((i == null) && !unlockLen)
171
+ throw new WERR_errors_1.WERR_INTERNAL(`vin ${vin} non-fixedInput without unlockLen`);
172
+ const sourceTransaction = vargs.includeAllSourceTransactions && vargs.isSignAction
173
+ ? await storage.getRawTxOfKnownValidTransaction(o.txid)
174
+ : undefined;
175
+ return {
176
+ vin,
177
+ sourceTxid: o.txid,
178
+ sourceVout: o.vout,
179
+ sourceSatoshis: o.satoshis,
180
+ sourceLockingScript: (0, utilityHelpers_noBuffer_1.asString)(o.lockingScript),
181
+ sourceTransaction,
182
+ unlockingScriptLength: unlockLen || i.unlockingScriptLength,
183
+ providedBy: (i != null) && o.providedBy === 'storage' ? 'you-and-storage' : o.providedBy,
184
+ type: o.type,
185
+ spendingDescription: o.spendingDescription || undefined,
186
+ derivationPrefix: o.derivationPrefix || undefined,
187
+ derivationSuffix: o.derivationSuffix || undefined,
188
+ senderIdentityKey: o.senderIdentityKey || undefined
189
+ };
190
+ }
191
+ /** Build an SDK input record for a user-specified input with no corresponding stored output. */
192
+ function buildSdkInputFromXInput(vin, i) {
193
+ return {
194
+ vin,
195
+ sourceTxid: i.outpoint.txid,
196
+ sourceVout: i.outpoint.vout,
197
+ sourceSatoshis: i.satoshis,
198
+ sourceLockingScript: i.lockingScript.toHex(),
199
+ unlockingScriptLength: i.unlockingScriptLength,
200
+ providedBy: 'you',
201
+ type: 'custom',
202
+ spendingDescription: undefined,
203
+ derivationPrefix: undefined,
204
+ derivationSuffix: undefined,
205
+ senderIdentityKey: undefined
206
+ };
207
+ }
131
208
  async function createNewInputs(storage, userId, vargs, ctx, allocatedChange) {
132
209
  const r = [];
133
210
  const newInputs = [];
134
- for (const i of ctx.xinputs) {
135
- const o = i.output;
136
- newInputs.push({ i, o });
137
- }
138
- const knownInputRows = newInputs.filter((ni) => !!ni.i && !!ni.o);
211
+ for (const i of ctx.xinputs)
212
+ newInputs.push({ i, o: i.output });
213
+ const knownInputRows = newInputs.filter((ni) => ni.i != null && ni.o != null);
139
214
  if (knownInputRows.length > 0) {
140
- let doubleSpendTxid;
141
- await storage.transaction(async (trx) => {
142
- const outputIds = knownInputRows.map(ni => (0, utilityHelpers_1.verifyId)(ni.o.outputId));
143
- const knownOutputsById = await storage.findOutputsByIds(outputIds, trx);
144
- for (const ni of knownInputRows) {
145
- const { i, o } = ni;
146
- const o2 = knownOutputsById[(0, utilityHelpers_1.verifyId)(o.outputId)];
147
- if (!o2)
148
- throw new WERR_errors_1.WERR_INTERNAL(`missing outputId ${o.outputId}`);
149
- if (o2.spentBy !== undefined) {
150
- const spendingTx = await storage.findTransactionById((0, utilityHelpers_1.verifyId)(o2.spentBy), trx);
151
- if (spendingTx === null || spendingTx === void 0 ? void 0 : spendingTx.txid) {
152
- doubleSpendTxid = spendingTx.txid;
153
- return;
154
- }
155
- }
156
- if (o2.spendable != true) {
157
- throw new WERR_errors_1.WERR_INVALID_PARAMETER(`inputs[${i.vin}]`, `spendable output. output ${o.txid}:${o.vout} appears to have been spent (spendable=${o2.spendable}).`);
158
- }
159
- await storage.updateOutput((0, utilityHelpers_1.verifyId)(o.outputId), {
160
- spendable: false,
161
- spentBy: ctx.transactionId,
162
- spendingDescription: i.inputDescription
163
- }, trx);
164
- o.spendable = false;
165
- o.spentBy = ctx.transactionId;
166
- o.spendingDescription = i.inputDescription;
167
- }
168
- });
215
+ const doubleSpendTxid = await markKnownInputsSpent(storage, knownInputRows, ctx.transactionId);
169
216
  if (doubleSpendTxid) {
170
217
  const beef = await storage.getBeefForTransaction(doubleSpendTxid, {});
171
- const rar = {
172
- txid: '',
173
- status: 'doubleSpend',
174
- competingTxs: [doubleSpendTxid],
175
- competingBeef: beef.toBinary()
176
- };
177
- throw new WERR_errors_1.WERR_REVIEW_ACTIONS([rar], []);
218
+ throw new WERR_errors_1.WERR_REVIEW_ACTIONS([{ txid: '', status: 'doubleSpend', competingTxs: [doubleSpendTxid], competingBeef: beef.toBinary() }], []);
178
219
  }
179
220
  }
180
- for (const o of allocatedChange) {
221
+ for (const o of allocatedChange)
181
222
  newInputs.push({ o, unlockLen: 107 });
182
- }
183
223
  let vin = -1;
184
224
  for (const { i, o, unlockLen } of newInputs) {
185
225
  vin++;
186
- if (o) {
187
- if (!i && !unlockLen)
188
- throw new WERR_errors_1.WERR_INTERNAL(`vin ${vin} non-fixedInput without unlockLen`);
189
- const sourceTransaction = vargs.includeAllSourceTransactions && vargs.isSignAction
190
- ? await storage.getRawTxOfKnownValidTransaction(o.txid)
191
- : undefined;
192
- const ri = {
193
- vin,
194
- sourceTxid: o.txid,
195
- sourceVout: o.vout,
196
- sourceSatoshis: o.satoshis,
197
- sourceLockingScript: (0, utilityHelpers_noBuffer_1.asString)(o.lockingScript),
198
- sourceTransaction,
199
- unlockingScriptLength: unlockLen ? unlockLen : i.unlockingScriptLength,
200
- providedBy: i && o.providedBy === 'storage' ? 'you-and-storage' : o.providedBy,
201
- type: o.type,
202
- spendingDescription: o.spendingDescription || undefined,
203
- derivationPrefix: o.derivationPrefix || undefined,
204
- derivationSuffix: o.derivationSuffix || undefined,
205
- senderIdentityKey: o.senderIdentityKey || undefined
206
- };
207
- r.push(ri);
226
+ if (o != null) {
227
+ r.push(await buildSdkInputFromOutput(storage, vargs, vin, i, o, unlockLen));
208
228
  }
209
229
  else {
210
- if (!i)
230
+ if (i == null)
211
231
  throw new WERR_errors_1.WERR_INTERNAL(`vin ${vin} without output or xinput`);
212
- // user specified input with no corresponding output being spent.
213
- const ri = {
214
- vin,
215
- sourceTxid: i.outpoint.txid,
216
- sourceVout: i.outpoint.vout,
217
- sourceSatoshis: i.satoshis,
218
- sourceLockingScript: i.lockingScript.toHex(),
219
- unlockingScriptLength: i.unlockingScriptLength,
220
- providedBy: 'you',
221
- type: 'custom',
222
- spendingDescription: undefined,
223
- derivationPrefix: undefined,
224
- derivationSuffix: undefined,
225
- senderIdentityKey: undefined
226
- };
227
- r.push(ri);
232
+ r.push(buildSdkInputFromXInput(vin, i));
228
233
  }
229
234
  }
230
235
  return r;
231
236
  }
232
- async function createNewOutputs(storage, userId, vargs, ctx, changeOutputs) {
237
+ /** Randomly reassign vout values across newOutputs using either the provided randomVals or crypto-random bytes. */
238
+ function randomizeOutputVouts(newOutputs, randomVals) {
239
+ const vals = [...(randomVals || [])];
240
+ const nextRandom = () => {
241
+ if (vals.length > 0) {
242
+ const v = vals.shift();
243
+ vals.push(v);
244
+ return v;
245
+ }
246
+ const bytes = (0, sdk_1.Random)(4);
247
+ return (((bytes[0] << 24) | (bytes[1] << 16) | (bytes[2] << 8) | bytes[3]) >>> 0) / 0x100000000;
248
+ };
249
+ const newVouts = Array.from({ length: newOutputs.length }, (_, i) => i);
250
+ for (let cur = newVouts.length; cur > 0; cur--) {
251
+ const rnd = Math.floor(nextRandom() * cur);
252
+ [newVouts[cur - 1], newVouts[rnd]] = [newVouts[rnd], newVouts[cur - 1]];
253
+ }
254
+ let vout = -1;
255
+ for (const no of newOutputs) {
256
+ vout++;
257
+ if (no.o.vout !== vout)
258
+ throw new WERR_errors_1.WERR_INTERNAL(`new output ${vout} has out of order vout ${no.o.vout}`);
259
+ no.o.vout = newVouts[vout];
260
+ }
261
+ }
262
+ /** Insert the output and attach its tags; return the SDK output descriptor. */
263
+ async function persistNewOutput(storage, o, tags, txTags, txBaskets) {
233
264
  var _a;
234
- const outputs = [];
235
- // Lookup output baskets
265
+ o.outputId = await storage.insertOutput(o);
266
+ const changeVout = (o.change && o.purpose === 'change' && o.providedBy === 'storage') ? o.vout : undefined;
267
+ for (const tagName of new Set(tags)) {
268
+ const tag = txTags[tagName];
269
+ await storage.insertOutputTagMap({
270
+ outputId: (0, utilityHelpers_1.verifyId)(o.outputId),
271
+ outputTagId: (0, utilityHelpers_1.verifyId)(tag.outputTagId),
272
+ created_at: new Date(),
273
+ updated_at: new Date(),
274
+ isDeleted: false
275
+ });
276
+ }
277
+ const ro = {
278
+ vout: (0, utilityHelpers_1.verifyInteger)(o.vout),
279
+ satoshis: sdk_1.Validation.validateSatoshis(o.satoshis, 'o.satoshis'),
280
+ lockingScript: (o.lockingScript == null) ? '' : (0, utilityHelpers_noBuffer_1.asString)(o.lockingScript),
281
+ providedBy: (0, utilityHelpers_1.verifyTruthy)(o.providedBy),
282
+ purpose: o.purpose || undefined,
283
+ basket: (_a = Object.values(txBaskets).find(b => b.basketId === o.basketId)) === null || _a === void 0 ? void 0 : _a.name,
284
+ tags,
285
+ outputDescription: o.outputDescription,
286
+ derivationSuffix: o.derivationSuffix,
287
+ customInstructions: o.customInstructions
288
+ };
289
+ return { changeVout, ro };
290
+ }
291
+ async function createNewOutputs(storage, userId, vargs, ctx, changeOutputs) {
236
292
  const txBaskets = {};
237
293
  const basketNames = [...new Set(ctx.xoutputs.map(x => x.basket).filter((v) => !!v))];
238
294
  Object.assign(txBaskets, await storage.findOrInsertOutputBasketsBulk(userId, basketNames));
239
- // Lookup output tags
240
295
  const txTags = {};
241
296
  const tagNames = [...new Set(ctx.xoutputs.flatMap(x => x.tags))];
242
297
  Object.assign(txTags, await storage.findOrInsertOutputTagsBulk(userId, tagNames));
@@ -245,17 +300,7 @@ async function createNewOutputs(storage, userId, vargs, ctx, changeOutputs) {
245
300
  const lockingScript = (0, utilityHelpers_noBuffer_1.asArray)(xo.lockingScript);
246
301
  if (xo.purpose === 'service-charge') {
247
302
  const now = new Date();
248
- await storage.insertCommission({
249
- userId,
250
- transactionId: ctx.transactionId,
251
- lockingScript,
252
- satoshis: xo.satoshis,
253
- isRedeemed: false,
254
- keyOffset: (0, utilityHelpers_1.verifyTruthy)(xo.keyOffset),
255
- created_at: now,
256
- updated_at: now,
257
- commissionId: 0
258
- });
303
+ await storage.insertCommission({ userId, transactionId: ctx.transactionId, lockingScript, satoshis: xo.satoshis, isRedeemed: false, keyOffset: (0, utilityHelpers_1.verifyTruthy)(xo.keyOffset), created_at: now, updated_at: now, commissionId: 0 });
259
304
  const o = makeDefaultOutput(userId, ctx.transactionId, xo.satoshis, xo.vout);
260
305
  o.lockingScript = lockingScript;
261
306
  o.providedBy = 'storage';
@@ -265,11 +310,9 @@ async function createNewOutputs(storage, userId, vargs, ctx, changeOutputs) {
265
310
  newOutputs.push({ o, tags: [] });
266
311
  }
267
312
  else {
268
- // The user wants tracking if they put their output in a basket
269
- const basketId = !xo.basket ? undefined : txBaskets[xo.basket].basketId;
270
313
  const o = makeDefaultOutput(userId, ctx.transactionId, xo.satoshis, xo.vout);
271
314
  o.lockingScript = lockingScript;
272
- o.basketId = basketId;
315
+ o.basketId = xo.basket ? txBaskets[xo.basket].basketId : undefined;
273
316
  o.customInstructions = xo.customInstructions;
274
317
  o.outputDescription = xo.outputDescription;
275
318
  o.providedBy = xo.providedBy;
@@ -282,74 +325,14 @@ async function createNewOutputs(storage, userId, vargs, ctx, changeOutputs) {
282
325
  o.spendable = true;
283
326
  newOutputs.push({ o, tags: [] });
284
327
  }
285
- if (vargs.options.randomizeOutputs) {
286
- const randomVals = [];
287
- const nextRandomVal = () => {
288
- let val = 0;
289
- if (!randomVals || randomVals.length === 0) {
290
- const bytes = (0, sdk_1.Random)(4);
291
- val = (((bytes[0] << 24) | (bytes[1] << 16) | (bytes[2] << 8) | bytes[3]) >>> 0) / 0x100000000;
292
- }
293
- else {
294
- val = randomVals.shift() || 0;
295
- randomVals.push(val);
296
- }
297
- return val;
298
- };
299
- /** In-place array shuffle */
300
- const shuffleArray = (array) => {
301
- let currentIndex = array.length;
302
- let temporaryValue;
303
- let randomIndex;
304
- while (currentIndex !== 0) {
305
- randomIndex = Math.floor(nextRandomVal() * currentIndex);
306
- currentIndex -= 1;
307
- temporaryValue = array[currentIndex];
308
- array[currentIndex] = array[randomIndex];
309
- array[randomIndex] = temporaryValue;
310
- }
311
- return array;
312
- };
313
- let vout = -1;
314
- const newVouts = Array(newOutputs.length);
315
- for (let i = 0; i < newVouts.length; i++)
316
- newVouts[i] = i;
317
- shuffleArray(newVouts);
318
- for (const no of newOutputs) {
319
- vout++;
320
- if (no.o.vout !== vout)
321
- throw new WERR_errors_1.WERR_INTERNAL(`new output ${vout} has out of order vout ${no.o.vout}`);
322
- no.o.vout = newVouts[vout];
323
- }
324
- }
328
+ if (vargs.options.randomizeOutputs)
329
+ randomizeOutputVouts(newOutputs, vargs.randomVals);
330
+ const outputs = [];
325
331
  const changeVouts = [];
326
332
  for (const { o, tags } of newOutputs) {
327
- o.outputId = await storage.insertOutput(o);
328
- if (o.change && o.purpose === 'change' && o.providedBy === 'storage')
329
- changeVouts.push(o.vout);
330
- // Add tags to the output
331
- for (const tagName of [...new Set(tags)]) {
332
- const tag = txTags[tagName];
333
- await storage.insertOutputTagMap({
334
- outputId: (0, utilityHelpers_1.verifyId)(o.outputId),
335
- outputTagId: (0, utilityHelpers_1.verifyId)(tag.outputTagId),
336
- created_at: new Date(),
337
- updated_at: new Date(),
338
- isDeleted: false
339
- });
340
- }
341
- const ro = {
342
- vout: (0, utilityHelpers_1.verifyInteger)(o.vout),
343
- satoshis: sdk_1.Validation.validateSatoshis(o.satoshis, 'o.satoshis'),
344
- lockingScript: !o.lockingScript ? '' : (0, utilityHelpers_noBuffer_1.asString)(o.lockingScript),
345
- providedBy: (0, utilityHelpers_1.verifyTruthy)(o.providedBy),
346
- purpose: o.purpose || undefined,
347
- basket: (_a = Object.values(txBaskets).find(b => b.basketId === o.basketId)) === null || _a === void 0 ? void 0 : _a.name,
348
- tags: tags,
349
- outputDescription: o.outputDescription,
350
- derivationSuffix: o.derivationSuffix,
351
- customInstructions: o.customInstructions
352
- };
333
+ const { changeVout, ro } = await persistNewOutput(storage, o, tags, txTags, txBaskets);
334
+ if (changeVout !== undefined)
335
+ changeVouts.push(changeVout);
353
336
  outputs.push(ro);
354
337
  }
355
338
  return { outputs, changeVouts };
@@ -372,10 +355,19 @@ async function createNewTxRecord(storage, userId, vargs, storageBeef) {
372
355
  txid: undefined,
373
356
  rawTx: undefined
374
357
  };
375
- newTx.transactionId = await storage.insertTransaction(newTx);
358
+ // new-schema additive wiring: use insertLegacyTransaction so that post-cutover
359
+ // this row lands in `transactions_legacy` (not the new `transactions` table,
360
+ // which requires a non-null txid that is unknown until signing).
361
+ // Pre-cutover this falls through to the standard `transactions` table.
362
+ // See docs/CREATEACTION_BLOCKERS.md §3 Option B (wiring session).
363
+ newTx.transactionId = await storage.insertLegacyTransaction(newTx);
376
364
  for (const label of vargs.labels) {
377
365
  const txLabel = await storage.findOrInsertTxLabel(userId, label);
378
- await storage.findOrInsertTxLabelMap((0, utilityHelpers_1.verifyId)(newTx.transactionId), (0, utilityHelpers_1.verifyId)(txLabel.txLabelId));
366
+ // new-schema additive wiring: post-cutover the tx_labels_map.transactionId FK points
367
+ // to actions.actionId, but we only have the legacyTransactionId here. Use the
368
+ // legacy-safe shim which bypasses FK constraints temporarily. processAction
369
+ // rewrites these rows to the new actionId via repointLabelsToActionId.
370
+ await storage.findOrInsertLegacyTxLabelMap((0, utilityHelpers_1.verifyId)(newTx.transactionId), (0, utilityHelpers_1.verifyId)(txLabel.txLabelId));
379
371
  }
380
372
  return newTx;
381
373
  }
@@ -455,11 +447,11 @@ function validateRequiredOutputs(storage, userId, vargs) {
455
447
  * @returns {xinputs} extended validated required inputs.
456
448
  */
457
449
  async function validateRequiredInputs(storage, userId, vargs) {
458
- //stampLog(vargs, `start storage verifyInputBeef`)
450
+ // stampLog(vargs, `start storage verifyInputBeef`)
459
451
  const beef = new sdk_1.Beef();
460
452
  if (vargs.inputs.length === 0)
461
453
  return { storageBeef: beef, beef, xinputs: [] };
462
- if (vargs.inputBEEF)
454
+ if (vargs.inputBEEF != null)
463
455
  beef.mergeBeef(vargs.inputBEEF);
464
456
  const xinputs = vargs.inputs.map((input, vin) => ({
465
457
  ...input,
@@ -472,98 +464,78 @@ async function validateRequiredInputs(storage, userId, vargs) {
472
464
  const inputTxids = {};
473
465
  for (const input of xinputs)
474
466
  inputTxids[input.outpoint.txid] = true;
475
- // Check beef from user that either there are no txidOnly entries,
476
- // or that we can trust storage data and it does indeed vouch
477
- // for any txidOnly entries
467
+ await validateBeefTxidOnlyEntries(beef, inputTxids, trustSelf, storage);
468
+ await ensureBeefContainsAllInputTxids(beef, inputTxids, trustSelf, storage);
469
+ if (!(await beef.verify(await storage.getServices().getChainTracker(), true))) {
470
+ console.log(`verifyInputBeef failed, inputBEEF failed to verify.\n${beef.toLogString()}\n`);
471
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER('inputBEEF', 'valid Beef when factoring options.trustSelf');
472
+ }
473
+ const storageBeef = beef.clone();
474
+ const preloadedOutputsByOutpoint = await storage.findOutputsByOutpoints(userId, xinputs.map(i => ({ txid: i.outpoint.txid, vout: i.outpoint.vout })));
475
+ for (const input of xinputs) {
476
+ await resolveInputScript(storage, userId, vargs, input, beef, preloadedOutputsByOutpoint);
477
+ }
478
+ return { beef, storageBeef, xinputs };
479
+ }
480
+ /** Check all txidOnly entries in beef: require either trustSelf vouch or throw. */
481
+ async function validateBeefTxidOnlyEntries(beef, inputTxids, trustSelf, storage) {
478
482
  for (const btx of beef.txs) {
479
- if (btx.isTxidOnly) {
480
- if (!trustSelf)
481
- throw new WERR_errors_1.WERR_INVALID_PARAMETER('inputBEEF', `valid and contain complete proof data for ${btx.txid}`);
482
- if (!inputTxids[btx.txid]) {
483
- // inputTxids are checked next
484
- const isKnown = await storage.verifyKnownValidTransaction(btx.txid);
485
- if (!isKnown)
486
- throw new WERR_errors_1.WERR_INVALID_PARAMETER('inputBEEF', `valid and contain complete proof data for unknown ${btx.txid}`);
487
- }
483
+ if (!btx.isTxidOnly)
484
+ continue;
485
+ if (!trustSelf)
486
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER('inputBEEF', `valid and contain complete proof data for ${btx.txid}`);
487
+ if (!inputTxids[btx.txid]) {
488
+ const isKnown = await storage.verifyKnownValidTransaction(btx.txid);
489
+ if (!isKnown)
490
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER('inputBEEF', `valid and contain complete proof data for unknown ${btx.txid}`);
488
491
  }
489
492
  }
490
- // Make sure that there's an entry for all inputs txid values:
493
+ }
494
+ /** Ensure beef has an entry (or txidOnly) for every input txid. */
495
+ async function ensureBeefContainsAllInputTxids(beef, inputTxids, trustSelf, storage) {
491
496
  for (const txid of Object.keys(inputTxids)) {
492
497
  let btx = beef.findTxid(txid);
493
- if (!btx && trustSelf) {
498
+ if (btx == null && trustSelf) {
494
499
  if (await storage.verifyKnownValidTransaction(txid))
495
500
  btx = beef.mergeTxidOnly(txid);
496
501
  }
497
- if (!btx) {
502
+ if (btx == null) {
498
503
  throw new WERR_errors_1.WERR_INVALID_PARAMETER('inputBEEF', `valid and contain proof data for possibly known ${txid}, beef ${beef.toLogString()}`);
499
504
  }
500
505
  }
501
- if (!(await beef.verify(await storage.getServices().getChainTracker(), true))) {
502
- console.log(`verifyInputBeef failed, inputBEEF failed to verify.\n${beef.toLogString()}\n`);
503
- //console.log(`verifyInputBeef failed, inputBEEF failed to verify.\n${stampLogFormat(vargs.log)}\n${beef.toLogString()}\n`)
504
- throw new WERR_errors_1.WERR_INVALID_PARAMETER('inputBEEF', 'valid Beef when factoring options.trustSelf');
505
- }
506
- // beef may now be trusted and has a BeefTx for every input txid.
507
- const storageBeef = beef.clone();
508
- const preloadedOutputsByOutpoint = await storage.findOutputsByOutpoints(userId, xinputs.map(i => ({ txid: i.outpoint.txid, vout: i.outpoint.vout })));
509
- for (const input of xinputs) {
510
- const { txid, vout } = input.outpoint;
511
- let output = preloadedOutputsByOutpoint[`${txid}.${vout}`];
512
- if (!output)
513
- output = (0, utilityHelpers_1.verifyOneOrNone)(await storage.findOutputs({ partial: { userId, txid, vout } }));
514
- if (output) {
515
- if (output.change) {
516
- throw new WERR_errors_1.WERR_INVALID_PARAMETER(`inputs[${input.vin}]`, 'an unmanaged input. Change outputs are managed by your wallet.');
517
- }
518
- input.output = output;
519
- if (!Array.isArray(output.lockingScript) || !Number.isInteger(output.satoshis))
520
- throw new WERR_errors_1.WERR_INVALID_PARAMETER(`${txid}.${vout}`, 'output with valid lockingScript and satoshis');
521
- if (!disableDoubleSpendCheckForTest && !output.spendable && !vargs.isNoSend)
522
- throw new WERR_errors_1.WERR_INVALID_PARAMETER(`${txid}.${vout}`, 'spendable output unless noSend is true');
523
- // input is spending an existing user output which has an lockingScript
524
- input.satoshis = sdk_1.Validation.validateSatoshis(output.satoshis, 'output.satoshis');
525
- input.lockingScript = sdk_1.Script.fromBinary((0, utilityHelpers_noBuffer_1.asArray)(output.lockingScript));
526
- }
527
- else {
528
- let btx = beef.findTxid(txid);
529
- if (btx.isTxidOnly) {
530
- const { rawTx, proven } = await storage.getProvenOrRawTx(txid);
531
- //stampLog(vargs, `... storage verifyInputBeef getProvenOrRawTx ${txid} ${proven ? 'proven' : rawTx ? 'rawTx' : 'unknown'}`)
532
- if (!rawTx)
533
- throw new WERR_errors_1.WERR_INVALID_PARAMETER('inputBEEF', `valid and contain proof data for ${txid}`);
534
- btx = beef.mergeRawTx((0, utilityHelpers_noBuffer_1.asArray)(rawTx));
535
- if (proven)
536
- beef.mergeBump(new EntityProvenTx_1.EntityProvenTx(proven).getMerklePath());
537
- }
538
- // btx is valid has parsed transaction data.
539
- if (vout >= btx.tx.outputs.length)
540
- throw new WERR_errors_1.WERR_INVALID_PARAMETER(`${txid}.${vout}`, 'valid outpoint');
541
- const so = btx.tx.outputs[vout];
542
- input.satoshis = sdk_1.Validation.validateSatoshis(so.satoshis, 'so.satoshis');
543
- input.lockingScript = so.lockingScript;
544
- }
545
- }
546
- return { beef, storageBeef, xinputs };
547
506
  }
548
- async function verifyBeefFixOrhpans(beef, storage) {
549
- const r = beef.verifyValid();
550
- if (!r.valid) {
551
- // Beef is structurally invalid.
552
- return false;
507
+ /** Resolve satoshis and lockingScript for one xinput from either storage or the beef. */
508
+ async function resolveInputScript(storage, userId, vargs, input, beef, preloadedOutputsByOutpoint) {
509
+ const { txid, vout } = input.outpoint;
510
+ let output = preloadedOutputsByOutpoint[`${txid}.${vout}`];
511
+ output !== null && output !== void 0 ? output : (output = (0, utilityHelpers_1.verifyOneOrNone)(await storage.findOutputs({ partial: { userId, txid, vout } })));
512
+ if (output != null) {
513
+ if (output.change)
514
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER(`inputs[${input.vin}]`, 'an unmanaged input. Change outputs are managed by your wallet.');
515
+ input.output = output;
516
+ if (!Array.isArray(output.lockingScript) || !Number.isInteger(output.satoshis))
517
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER(`${txid}.${vout}`, 'output with valid lockingScript and satoshis');
518
+ if (!disableDoubleSpendCheckForTest && !output.spendable && !vargs.isNoSend)
519
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER(`${txid}.${vout}`, 'spendable output unless noSend is true');
520
+ input.satoshis = sdk_1.Validation.validateSatoshis(output.satoshis, 'output.satoshis');
521
+ input.lockingScript = sdk_1.Script.fromBinary((0, utilityHelpers_noBuffer_1.asArray)(output.lockingScript));
553
522
  }
554
- const heights = Object.keys(r.roots);
555
- const services = storage.getServices();
556
- const chainTracker = await services.getChainTracker();
557
- let rootsAreValid = true;
558
- for (const height of heights) {
559
- const isValid = await chainTracker.isValidRootForHeight(r.roots[height], Number(height));
560
- if (isValid)
561
- continue;
562
- // The original block may have been orphaned, check for a new proof.
563
- const mp = beef.bumps.find(b => b.blockHeight === Number(height));
564
- //const p = await services.getMerklePath()
523
+ else {
524
+ let btx = beef.findTxid(txid);
525
+ if (btx.isTxidOnly) {
526
+ const { rawTx, proven } = await storage.getProvenOrRawTx(txid);
527
+ if (rawTx == null)
528
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER('inputBEEF', `valid and contain proof data for ${txid}`);
529
+ btx = beef.mergeRawTx((0, utilityHelpers_noBuffer_1.asArray)(rawTx));
530
+ if (proven != null)
531
+ beef.mergeBump(new EntityProvenTx_1.EntityProvenTx(proven).getMerklePath());
532
+ }
533
+ if (vout >= btx.tx.outputs.length)
534
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER(`${txid}.${vout}`, 'valid outpoint');
535
+ const so = btx.tx.outputs[vout];
536
+ input.satoshis = sdk_1.Validation.validateSatoshis(so.satoshis, 'so.satoshis');
537
+ input.lockingScript = so.lockingScript;
565
538
  }
566
- return false;
567
539
  }
568
540
  async function validateNoSendChange(storage, userId, vargs, changeBasket) {
569
541
  const r = [];
@@ -576,17 +548,19 @@ async function validateNoSendChange(storage, userId, vargs, changeBasket) {
576
548
  partial: { userId, txid: op.txid, vout: op.vout }
577
549
  }));
578
550
  // noSendChange is not marked spendable until sent, may not already be spent, and must have a valid greater than zero satoshis
579
- if (!output ||
580
- output.providedBy !== 'storage' ||
551
+ if ((output === null || output === void 0 ? void 0 : output.providedBy) !== 'storage' ||
581
552
  output.purpose !== 'change' ||
582
- output.spendable === false ||
553
+ !output.spendable ||
583
554
  Number.isInteger(output.spentBy) ||
584
555
  !(0, utilityHelpers_1.verifyNumber)(output.satoshis) ||
585
- output.basketId !== changeBasket.basketId)
556
+ output.basketId !== changeBasket.basketId) {
586
557
  throw new WERR_errors_1.WERR_INVALID_PARAMETER('noSendChange outpoint', 'valid');
587
- if (-1 < r.findIndex(o => o.outputId === output.outputId))
588
- // noSendChange duplicate OutPoints are not allowed.
558
+ }
559
+ if (r.some(o => o.outputId === output.outputId))
560
+ // noSendChange duplicate OutPoints are not allowed.
561
+ {
589
562
  throw new WERR_errors_1.WERR_INVALID_PARAMETER('noSendChange outpoint', 'unique. Duplicates are not allowed.');
563
+ }
590
564
  r.push(output);
591
565
  }
592
566
  }
@@ -638,7 +612,9 @@ async function fundNewTransactionSdk(storage, userId, vargs, ctx) {
638
612
  const o = noSendChange.pop();
639
613
  outputs[o.outputId] = o;
640
614
  // allocate the output in storage, noSendChange is by definition spendable false and part of noSpend transaction batch.
641
- await storage.updateOutput(o.outputId, {
615
+ // Post-cutover: outputs.spentBy FK → new transactions; ctx.transactionId is from
616
+ // transactions_legacy. Use markOutputAsSpentBy for FK bypass. Mapping §2: bridge-period.
617
+ await storage.markOutputAsSpentBy(o.outputId, {
642
618
  spendable: false,
643
619
  spentBy: ctx.transactionId
644
620
  });
@@ -652,7 +628,7 @@ async function fundNewTransactionSdk(storage, userId, vargs, ctx) {
652
628
  }
653
629
  const basketId = ctx.changeBasket.basketId;
654
630
  const o = await storage.allocateChangeInput(userId, basketId, targetSatoshis, exactSatoshis, !vargs.isDelayed, ctx.transactionId);
655
- if (!o)
631
+ if (o == null)
656
632
  return undefined;
657
633
  outputs[o.outputId] = o;
658
634
  const r = {
@@ -663,7 +639,7 @@ async function fundNewTransactionSdk(storage, userId, vargs, ctx) {
663
639
  };
664
640
  const releaseChangeInput = async (outputId) => {
665
641
  const nsco = ctx.noSendChangeIn.find(o => o.outputId === outputId);
666
- if (nsco) {
642
+ if (nsco != null) {
667
643
  noSendChange.push(nsco);
668
644
  return;
669
645
  }
@@ -675,7 +651,7 @@ async function fundNewTransactionSdk(storage, userId, vargs, ctx) {
675
651
  const gcr = await (0, generateChange_1.generateChangeSdk)(params, allocateChangeInput, releaseChangeInput, vargs.logger);
676
652
  const nextRandomVal = () => {
677
653
  let val = 0;
678
- if (!vargs.randomVals || vargs.randomVals.length === 0) {
654
+ if ((vargs.randomVals == null) || vargs.randomVals.length === 0) {
679
655
  const bytes = (0, sdk_1.Random)(4);
680
656
  val = (((bytes[0] << 24) | (bytes[1] << 16) | (bytes[2] << 8) | bytes[3]) >>> 0) / 0x100000000;
681
657
  }
@@ -695,7 +671,7 @@ async function fundNewTransactionSdk(storage, userId, vargs, ctx) {
695
671
  };
696
672
  const randomDerivation = (count) => {
697
673
  let val = [];
698
- if (!vargs.randomVals || vargs.randomVals.length === 0) {
674
+ if ((vargs.randomVals == null) || vargs.randomVals.length === 0) {
699
675
  val = (0, sdk_1.Random)(count);
700
676
  }
701
677
  else {
@@ -757,6 +733,7 @@ function trimInputBeef(beef, vargs) {
757
733
  return beef.toBinary();
758
734
  }
759
735
  async function mergeAllocatedChangeBeefs(storage, userId, vargs, allocatedChange, beef) {
736
+ var _a;
760
737
  const options = {
761
738
  trustSelf: undefined,
762
739
  knownTxids: vargs.options.knownTxids,
@@ -769,7 +746,7 @@ async function mergeAllocatedChangeBeefs(storage, userId, vargs, allocatedChange
769
746
  if (vargs.options.returnTXIDOnly)
770
747
  return undefined;
771
748
  for (const o of allocatedChange) {
772
- if (!beef.findTxid(o.txid) && !(vargs.options.knownTxids || []).find(txid => txid === o.txid)) {
749
+ if ((beef.findTxid(o.txid) == null) && !((_a = vargs.options.knownTxids) !== null && _a !== void 0 ? _a : []).some(txid => txid === o.txid)) {
773
750
  await storage.getBeefForTransaction(o.txid, options);
774
751
  }
775
752
  }