@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,8 +1,4 @@
1
- import {
2
- ErrorCodeString10To40Bytes,
3
- ErrorDescriptionString20To200Bytes,
4
- WalletErrorObject
5
- } from '@bsv/sdk'
1
+ import { ErrorCodeString10To40Bytes, ErrorDescriptionString20To200Bytes, WalletErrorObject } from '@bsv/sdk'
6
2
 
7
3
  /**
8
4
  * Derived class constructors should use the derived class name as the value for `name`,
@@ -64,8 +60,7 @@ export class WalletError extends Error implements WalletErrorObject {
64
60
  let stack: string | undefined
65
61
  const details: Record<string, string> = {}
66
62
  if (err !== null && typeof err === 'object') {
67
- if (err['name'] === 'Error' || err['name'] === 'FetchError')
68
- name = err['code'] || err['status'] || 'WERR_UNKNOWN'
63
+ if (err['name'] === 'Error' || err['name'] === 'FetchError') name = err['code'] || err['status'] || 'WERR_UNKNOWN'
69
64
  else name = err['name'] || err['code'] || err['status'] || 'WERR_UNKNOWN'
70
65
  if (typeof name !== 'string') name = 'WERR_UNKNOWN'
71
66
 
@@ -75,23 +70,12 @@ export class WalletError extends Error implements WalletErrorObject {
75
70
  if (typeof err['stack'] === 'string') stack = err['stack']
76
71
 
77
72
  if (typeof err['sql'] === 'string') details.sql = err['sql']
78
- if (typeof err['sqlMessage'] === 'string')
79
- details.sqlMessage = err['sqlMessage']
73
+ if (typeof err['sqlMessage'] === 'string') details.sqlMessage = err['sqlMessage']
80
74
  }
81
- const e = new WalletError(
82
- name,
83
- message,
84
- stack,
85
- Object.keys(details).length > 0 ? details : undefined
86
- )
75
+ const e = new WalletError(name, message, stack, Object.keys(details).length > 0 ? details : undefined)
87
76
  if (err !== null && typeof err === 'object') {
88
77
  for (const [key, value] of Object.entries(err)) {
89
- if (
90
- key !== 'walletError' &&
91
- typeof value !== 'string' &&
92
- typeof value !== 'number' &&
93
- !Array.isArray(value)
94
- )
78
+ if (key !== 'walletError' && typeof value !== 'string' && typeof value !== 'number' && !Array.isArray(value))
95
79
  continue
96
80
  switch (key) {
97
81
  case 'walletError':
@@ -1,10 +1,4 @@
1
- import {
2
- ArcConfig,
3
- Beef,
4
- Transaction as BsvTransaction,
5
- ChainTracker,
6
- MerklePath
7
- } from '@bsv/sdk'
1
+ import { ArcConfig, Beef, Transaction as BsvTransaction, ChainTracker, MerklePath } from '@bsv/sdk'
8
2
  import { sdk } from '../index.client'
9
3
  import { ChaintracksServiceClient } from '../services/chaintracker'
10
4
  /**
@@ -42,10 +36,7 @@ export interface WalletServices {
42
36
  /**
43
37
  * Approximate exchange rate currency per base.
44
38
  */
45
- getFiatExchangeRate(
46
- currency: 'USD' | 'GBP' | 'EUR',
47
- base?: 'USD' | 'GBP' | 'EUR'
48
- ): Promise<number>
39
+ getFiatExchangeRate(currency: 'USD' | 'GBP' | 'EUR', base?: 'USD' | 'GBP' | 'EUR'): Promise<number>
49
40
 
50
41
  /**
51
42
  * Attempts to obtain the raw transaction bytes associated with a 32 byte transaction hash (txid).
@@ -130,9 +121,7 @@ export interface WalletServices {
130
121
  * @returns whether the locktime value allows the transaction to be mined at the current chain height
131
122
  * @param txOrLockTime either a bitcoin locktime value or hex, binary, un-encoded Transaction
132
123
  */
133
- nLockTimeIsFinal(
134
- txOrLockTime: string | number[] | BsvTransaction | number
135
- ): Promise<boolean>
124
+ nLockTimeIsFinal(txOrLockTime: string | number[] | BsvTransaction | number): Promise<boolean>
136
125
  }
137
126
 
138
127
  export type GetUtxoStatusOutputFormat = 'hashLE' | 'hashBE' | 'script'
@@ -152,6 +141,8 @@ export interface FiatExchangeRates {
152
141
  export interface WalletServicesOptions {
153
142
  chain: sdk.Chain
154
143
  taalApiKey?: string
144
+ bitailsApiKey?: string
145
+ whatsOnChainApiKey?: string
155
146
  bsvExchangeRate: BsvExchangeRate
156
147
  bsvUpdateMsecs: number
157
148
  fiatExchangeRates: FiatExchangeRates
@@ -383,26 +374,13 @@ export type GetUtxoStatusService = (
383
374
  outputFormat?: GetUtxoStatusOutputFormat
384
375
  ) => Promise<GetUtxoStatusResult>
385
376
 
386
- export type GetMerklePathService = (
387
- txid: string,
388
- services: WalletServices
389
- ) => Promise<GetMerklePathResult>
377
+ export type GetMerklePathService = (txid: string, services: WalletServices) => Promise<GetMerklePathResult>
390
378
 
391
- export type GetRawTxService = (
392
- txid: string,
393
- chain: sdk.Chain
394
- ) => Promise<GetRawTxResult>
395
-
396
- export type PostTxsService = (
397
- beef: Beef,
398
- txids: string[],
399
- services: WalletServices
400
- ) => Promise<PostTxsResult>
401
-
402
- export type PostBeefService = (
403
- beef: Beef,
404
- txids: string[]
405
- ) => Promise<PostBeefResult>
379
+ export type GetRawTxService = (txid: string, chain: sdk.Chain) => Promise<GetRawTxResult>
380
+
381
+ export type PostTxsService = (beef: Beef, txids: string[], services: WalletServices) => Promise<PostTxsResult>
382
+
383
+ export type PostBeefService = (beef: Beef, txids: string[]) => Promise<PostBeefResult>
406
384
 
407
385
  export type UpdateFiatExchangeRateService = (
408
386
  targetCurrencies: string[],
@@ -58,32 +58,20 @@ export interface WalletStorage {
58
58
 
59
59
  getAuth(): Promise<sdk.AuthId>
60
60
 
61
- findOrInsertUser(
62
- identityKey: string
63
- ): Promise<{ user: TableUser; isNew: boolean }>
61
+ findOrInsertUser(identityKey: string): Promise<{ user: TableUser; isNew: boolean }>
64
62
 
65
63
  abortAction(args: AbortActionArgs): Promise<AbortActionResult>
66
- createAction(
67
- args: sdk.ValidCreateActionArgs
68
- ): Promise<sdk.StorageCreateActionResult>
69
- processAction(
70
- args: sdk.StorageProcessActionArgs
71
- ): Promise<sdk.StorageProcessActionResults>
72
- internalizeAction(
73
- args: InternalizeActionArgs
74
- ): Promise<InternalizeActionResult>
64
+ createAction(args: sdk.ValidCreateActionArgs): Promise<sdk.StorageCreateActionResult>
65
+ processAction(args: sdk.StorageProcessActionArgs): Promise<sdk.StorageProcessActionResults>
66
+ internalizeAction(args: InternalizeActionArgs): Promise<InternalizeActionResult>
75
67
 
76
68
  findCertificates(args: sdk.FindCertificatesArgs): Promise<TableCertificateX[]>
77
- findOutputBaskets(
78
- args: sdk.FindOutputBasketsArgs
79
- ): Promise<TableOutputBasket[]>
69
+ findOutputBaskets(args: sdk.FindOutputBasketsArgs): Promise<TableOutputBasket[]>
80
70
  findOutputs(args: sdk.FindOutputsArgs): Promise<TableOutput[]>
81
71
  findProvenTxReqs(args: sdk.FindProvenTxReqsArgs): Promise<TableProvenTxReq[]>
82
72
 
83
73
  listActions(args: ListActionsArgs): Promise<ListActionsResult>
84
- listCertificates(
85
- args: sdk.ValidListCertificatesArgs
86
- ): Promise<ListCertificatesResult>
74
+ listCertificates(args: sdk.ValidListCertificatesArgs): Promise<ListCertificatesResult>
87
75
  listOutputs(args: ListOutputsArgs): Promise<ListOutputsResult>
88
76
 
89
77
  insertCertificate(certificate: TableCertificateX): Promise<number>
@@ -116,16 +104,10 @@ export interface WalletStorageSync extends WalletStorageWriter {
116
104
  * @param auth
117
105
  * @param newActiveStorageIdentityKey
118
106
  */
119
- setActive(
120
- auth: sdk.AuthId,
121
- newActiveStorageIdentityKey: string
122
- ): Promise<number>
107
+ setActive(auth: sdk.AuthId, newActiveStorageIdentityKey: string): Promise<number>
123
108
 
124
109
  getSyncChunk(args: sdk.RequestSyncChunkArgs): Promise<sdk.SyncChunk>
125
- processSyncChunk(
126
- args: sdk.RequestSyncChunkArgs,
127
- chunk: sdk.SyncChunk
128
- ): Promise<sdk.ProcessSyncChunkResult>
110
+ processSyncChunk(args: sdk.RequestSyncChunkArgs, chunk: sdk.SyncChunk): Promise<sdk.ProcessSyncChunkResult>
129
111
  }
130
112
 
131
113
  /**
@@ -141,40 +123,17 @@ export interface WalletStorageWriter extends WalletStorageReader {
141
123
  migrate(storageName: string, storageIdentityKey: string): Promise<string>
142
124
  destroy(): Promise<void>
143
125
 
144
- findOrInsertUser(
145
- identityKey: string
146
- ): Promise<{ user: TableUser; isNew: boolean }>
126
+ findOrInsertUser(identityKey: string): Promise<{ user: TableUser; isNew: boolean }>
147
127
 
148
- abortAction(
149
- auth: sdk.AuthId,
150
- args: AbortActionArgs
151
- ): Promise<AbortActionResult>
152
- createAction(
153
- auth: sdk.AuthId,
154
- args: sdk.ValidCreateActionArgs
155
- ): Promise<sdk.StorageCreateActionResult>
156
- processAction(
157
- auth: sdk.AuthId,
158
- args: sdk.StorageProcessActionArgs
159
- ): Promise<sdk.StorageProcessActionResults>
160
- internalizeAction(
161
- auth: sdk.AuthId,
162
- args: InternalizeActionArgs
163
- ): Promise<InternalizeActionResult>
128
+ abortAction(auth: sdk.AuthId, args: AbortActionArgs): Promise<AbortActionResult>
129
+ createAction(auth: sdk.AuthId, args: sdk.ValidCreateActionArgs): Promise<sdk.StorageCreateActionResult>
130
+ processAction(auth: sdk.AuthId, args: sdk.StorageProcessActionArgs): Promise<sdk.StorageProcessActionResults>
131
+ internalizeAction(auth: sdk.AuthId, args: InternalizeActionArgs): Promise<InternalizeActionResult>
164
132
 
165
- insertCertificateAuth(
166
- auth: sdk.AuthId,
167
- certificate: TableCertificateX
168
- ): Promise<number>
133
+ insertCertificateAuth(auth: sdk.AuthId, certificate: TableCertificateX): Promise<number>
169
134
 
170
- relinquishCertificate(
171
- auth: sdk.AuthId,
172
- args: RelinquishCertificateArgs
173
- ): Promise<number>
174
- relinquishOutput(
175
- auth: sdk.AuthId,
176
- args: RelinquishOutputArgs
177
- ): Promise<number>
135
+ relinquishCertificate(auth: sdk.AuthId, args: RelinquishCertificateArgs): Promise<number>
136
+ relinquishOutput(auth: sdk.AuthId, args: RelinquishOutputArgs): Promise<number>
178
137
  }
179
138
 
180
139
  export interface WalletStorageReader {
@@ -183,32 +142,14 @@ export interface WalletStorageReader {
183
142
  getServices(): sdk.WalletServices
184
143
  getSettings(): TableSettings
185
144
 
186
- findCertificatesAuth(
187
- auth: sdk.AuthId,
188
- args: sdk.FindCertificatesArgs
189
- ): Promise<TableCertificateX[]>
190
- findOutputBasketsAuth(
191
- auth: sdk.AuthId,
192
- args: sdk.FindOutputBasketsArgs
193
- ): Promise<TableOutputBasket[]>
194
- findOutputsAuth(
195
- auth: sdk.AuthId,
196
- args: sdk.FindOutputsArgs
197
- ): Promise<TableOutput[]>
145
+ findCertificatesAuth(auth: sdk.AuthId, args: sdk.FindCertificatesArgs): Promise<TableCertificateX[]>
146
+ findOutputBasketsAuth(auth: sdk.AuthId, args: sdk.FindOutputBasketsArgs): Promise<TableOutputBasket[]>
147
+ findOutputsAuth(auth: sdk.AuthId, args: sdk.FindOutputsArgs): Promise<TableOutput[]>
198
148
  findProvenTxReqs(args: sdk.FindProvenTxReqsArgs): Promise<TableProvenTxReq[]>
199
149
 
200
- listActions(
201
- auth: sdk.AuthId,
202
- vargs: sdk.ValidListActionsArgs
203
- ): Promise<ListActionsResult>
204
- listCertificates(
205
- auth: sdk.AuthId,
206
- vargs: sdk.ValidListCertificatesArgs
207
- ): Promise<ListCertificatesResult>
208
- listOutputs(
209
- auth: sdk.AuthId,
210
- vargs: sdk.ValidListOutputsArgs
211
- ): Promise<ListOutputsResult>
150
+ listActions(auth: sdk.AuthId, vargs: sdk.ValidListActionsArgs): Promise<ListActionsResult>
151
+ listCertificates(auth: sdk.AuthId, vargs: sdk.ValidListCertificatesArgs): Promise<ListCertificatesResult>
152
+ listOutputs(auth: sdk.AuthId, vargs: sdk.ValidListOutputsArgs): Promise<ListOutputsResult>
212
153
  }
213
154
 
214
155
  export interface AuthId {
@@ -227,8 +168,7 @@ export interface FindForUserSincePagedArgs extends FindSincePagedArgs {
227
168
  userId: number
228
169
  }
229
170
 
230
- export interface FindPartialSincePagedArgs<T extends object>
231
- extends FindSincePagedArgs {
171
+ export interface FindPartialSincePagedArgs<T extends object> extends FindSincePagedArgs {
232
172
  partial: Partial<T>
233
173
  }
234
174
 
@@ -270,8 +210,7 @@ export interface StorageCreateTransactionSdkInput {
270
210
  senderIdentityKey?: string
271
211
  }
272
212
 
273
- export interface StorageCreateTransactionSdkOutput
274
- extends sdk.ValidCreateActionOutput {
213
+ export interface StorageCreateTransactionSdkOutput extends sdk.ValidCreateActionOutput {
275
214
  vout: number
276
215
  providedBy: StorageProvidedBy
277
216
  purpose?: string
@@ -460,12 +399,7 @@ export interface UpdateProvenTxReqWithNewProvenTxResult {
460
399
  *
461
400
  * unknown: Sync protocol state is unknown.
462
401
  */
463
- export type SyncStatus =
464
- | 'success'
465
- | 'error'
466
- | 'identified'
467
- | 'updated'
468
- | 'unknown'
402
+ export type SyncStatus = 'success' | 'error' | 'identified' | 'updated' | 'unknown'
469
403
 
470
404
  export type SyncProtocolVersion = '0.1.0'
471
405
 
@@ -14,11 +14,8 @@ describe('CertificateLifeCycle tests', () => {
14
14
 
15
15
  test('0 encrypt decrypt sign verify', async () => {
16
16
  const subjectWallet = new ProtoWallet(PrivateKey.fromRandom())
17
- if (!subjectWallet.keyDeriver)
18
- throw new sdk.WERR_INVALID_OPERATION('keyDeriver must be valid')
19
- const { cert, certifier, subject } = makeSampleCert(
20
- subjectWallet.keyDeriver.rootKey.toString()
21
- )
17
+ if (!subjectWallet.keyDeriver) throw new sdk.WERR_INVALID_OPERATION('keyDeriver must be valid')
18
+ const { cert, certifier, subject } = makeSampleCert(subjectWallet.keyDeriver.rootKey.toString())
22
19
 
23
20
  const c = new BsvCertificate(
24
21
  cert.type,
@@ -39,9 +36,7 @@ describe('CertificateLifeCycle tests', () => {
39
36
  async () => c.revocationOutpoint
40
37
  )
41
38
  const imcSignature = imc.signature
42
- await expect(imc.sign(certifierWallet)).rejects.toThrow(
43
- 'Certificate has already been signed'
44
- )
39
+ await expect(imc.sign(certifierWallet)).rejects.toThrow('Certificate has already been signed')
45
40
  expect(imcSignature).toBeTruthy()
46
41
  expect(imcSignature).toBe(imc.signature)
47
42
  const imcVerified = await imc.verify()
@@ -66,9 +61,7 @@ describe('CertificateLifeCycle tests', () => {
66
61
  const co = new sdk.CertOps(certifierWallet, cert)
67
62
 
68
63
  expect(co.signature).toBe('')
69
- await expect(co.verify()).rejects.toThrow(
70
- 'Signature DER must start with 0x30'
71
- )
64
+ await expect(co.verify()).rejects.toThrow('Signature DER must start with 0x30')
72
65
  await co.sign(new ProtoWallet(new KeyDeriver(certifier)))
73
66
  expect(await co.verify()).toBe(true)
74
67
 
@@ -87,9 +80,7 @@ describe('CertificateLifeCycle tests', () => {
87
80
 
88
81
  {
89
82
  await co.encryptFields()
90
- const crypto2 = new ProtoWallet(
91
- new KeyDeriver(PrivateKey.fromHex('2'.repeat(64)))
92
- )
83
+ const crypto2 = new ProtoWallet(new KeyDeriver(PrivateKey.fromHex('2'.repeat(64))))
93
84
  const co2 = new sdk.CertOps(crypto2, co.toWalletCertificate())
94
85
  // even with the keyring, without the right crypto root key decryption will fail.
95
86
  co2._keyring = co._keyring
@@ -143,17 +134,11 @@ describe('CertificateLifeCycle tests', () => {
143
134
  // And then use a keyRing that their public key will work to reveal decrypted values for 'name' and 'email' only.
144
135
  const verifier = PrivateKey.fromRandom()
145
136
  // subject makes a keyring for the verifier
146
- const exportForVerifier = await cs.exportForCounterparty(
147
- verifier.toPublicKey().toString(),
148
- ['name', 'email']
149
- )
137
+ const exportForVerifier = await cs.exportForCounterparty(verifier.toPublicKey().toString(), ['name', 'email'])
150
138
 
151
139
  // The verifier uses their own wallet to import the certificate, verify it, and decrypt their designated fields.
152
140
  const verifierWallet = new ProtoWallet(verifier)
153
- const cv = await sdk.CertOps.fromCounterparty(
154
- verifierWallet,
155
- exportForVerifier
156
- )
141
+ const cv = await sdk.CertOps.fromCounterparty(verifierWallet, exportForVerifier)
157
142
 
158
143
  // verifier must check that the certifier's public key generates a matching signature over all the encrypted
159
144
  // certificate field values before using their keyring to decrypt the fields they've been authorized to see.
@@ -173,16 +158,13 @@ function makeSampleCert(subjectRootKeyHex?: string): {
173
158
  subject: PrivateKey
174
159
  certifier: PrivateKey
175
160
  } {
176
- const subject = subjectRootKeyHex
177
- ? PrivateKey.fromString(subjectRootKeyHex)
178
- : PrivateKey.fromRandom()
161
+ const subject = subjectRootKeyHex ? PrivateKey.fromString(subjectRootKeyHex) : PrivateKey.fromRandom()
179
162
  const certifier = PrivateKey.fromRandom()
180
163
  const verifier = PrivateKey.fromRandom()
181
164
  const cert: WalletCertificate = {
182
165
  type: Utils.toBase64(new Array(32).fill(1)),
183
166
  serialNumber: Utils.toBase64(new Array(32).fill(2)),
184
- revocationOutpoint:
185
- 'deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef.1',
167
+ revocationOutpoint: 'deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef.1',
186
168
  subject: subject.toPublicKey().toString(),
187
169
  certifier: certifier.toPublicKey().toString(),
188
170
  fields: {
@@ -15,67 +15,50 @@ describe('PrivilegedKeyManager', () => {
15
15
  const { valid } = await wallet.verifySignature({
16
16
  data: Utils.toArray('BRC-3 Compliance Validated!', 'utf8'),
17
17
  signature: [
18
- 48, 68, 2, 32, 43, 34, 58, 156, 219, 32, 50, 70, 29, 240, 155, 137, 88,
19
- 60, 200, 95, 243, 198, 201, 21, 56, 82, 141, 112, 69, 196, 170, 73, 156,
20
- 6, 44, 48, 2, 32, 118, 125, 254, 201, 44, 87, 177, 170, 93, 11, 193,
21
- 134, 18, 70, 9, 31, 234, 27, 170, 177, 54, 96, 181, 140, 166, 196, 144,
22
- 14, 230, 118, 106, 105
18
+ 48, 68, 2, 32, 43, 34, 58, 156, 219, 32, 50, 70, 29, 240, 155, 137, 88, 60, 200, 95, 243, 198, 201, 21, 56, 82,
19
+ 141, 112, 69, 196, 170, 73, 156, 6, 44, 48, 2, 32, 118, 125, 254, 201, 44, 87, 177, 170, 93, 11, 193, 134, 18,
20
+ 70, 9, 31, 234, 27, 170, 177, 54, 96, 181, 140, 166, 196, 144, 14, 230, 118, 106, 105
23
21
  ],
24
22
  protocolID: [2, 'BRC3 Test'],
25
23
  keyID: '42',
26
- counterparty:
27
- '0294c479f762f6baa97fbcd4393564c1d7bd8336ebd15928135bbcf575cd1a71a1'
24
+ counterparty: '0294c479f762f6baa97fbcd4393564c1d7bd8336ebd15928135bbcf575cd1a71a1'
28
25
  })
29
26
  expect(valid).toBe(true)
30
27
  await wallet.destroyKey()
31
28
  })
32
29
  it('Validates the BRC-2 HMAC compliance vector', async () => {
33
30
  const wallet = new PrivilegedKeyManager(
34
- async () =>
35
- new PrivateKey(
36
- '6a2991c9de20e38b31d7ea147bf55f5039e4bbc073160f5e0d541d1f17e321b8',
37
- 'hex'
38
- )
31
+ async () => new PrivateKey('6a2991c9de20e38b31d7ea147bf55f5039e4bbc073160f5e0d541d1f17e321b8', 'hex')
39
32
  )
40
33
  const { valid } = await wallet.verifyHmac({
41
34
  data: Utils.toArray('BRC-2 HMAC Compliance Validated!', 'utf8'),
42
35
  hmac: [
43
- 81, 240, 18, 153, 163, 45, 174, 85, 9, 246, 142, 125, 209, 133, 82, 76,
44
- 254, 103, 46, 182, 86, 59, 219, 61, 126, 30, 176, 232, 233, 100, 234, 14
36
+ 81, 240, 18, 153, 163, 45, 174, 85, 9, 246, 142, 125, 209, 133, 82, 76, 254, 103, 46, 182, 86, 59, 219, 61, 126,
37
+ 30, 176, 232, 233, 100, 234, 14
45
38
  ],
46
39
  protocolID: [2, 'BRC2 Test'],
47
40
  keyID: '42',
48
- counterparty:
49
- '0294c479f762f6baa97fbcd4393564c1d7bd8336ebd15928135bbcf575cd1a71a1'
41
+ counterparty: '0294c479f762f6baa97fbcd4393564c1d7bd8336ebd15928135bbcf575cd1a71a1'
50
42
  })
51
43
  expect(valid).toBe(true)
52
44
  await wallet.destroyKey()
53
45
  })
54
46
  it('Validates the BRC-2 Encryption compliance vector', async () => {
55
47
  const wallet = new PrivilegedKeyManager(
56
- async () =>
57
- new PrivateKey(
58
- '6a2991c9de20e38b31d7ea147bf55f5039e4bbc073160f5e0d541d1f17e321b8',
59
- 'hex'
60
- )
48
+ async () => new PrivateKey('6a2991c9de20e38b31d7ea147bf55f5039e4bbc073160f5e0d541d1f17e321b8', 'hex')
61
49
  )
62
50
  const { plaintext } = await wallet.decrypt({
63
51
  ciphertext: [
64
- 252, 203, 216, 184, 29, 161, 223, 212, 16, 193, 94, 99, 31, 140, 99, 43,
65
- 61, 236, 184, 67, 54, 105, 199, 47, 11, 19, 184, 127, 2, 165, 125, 9,
66
- 188, 195, 196, 39, 120, 130, 213, 95, 186, 89, 64, 28, 1, 80, 20, 213,
67
- 159, 133, 98, 253, 128, 105, 113, 247, 197, 152, 236, 64, 166, 207, 113,
68
- 134, 65, 38, 58, 24, 127, 145, 140, 206, 47, 70, 146, 84, 186, 72, 95,
69
- 35, 154, 112, 178, 55, 72, 124
52
+ 252, 203, 216, 184, 29, 161, 223, 212, 16, 193, 94, 99, 31, 140, 99, 43, 61, 236, 184, 67, 54, 105, 199, 47, 11,
53
+ 19, 184, 127, 2, 165, 125, 9, 188, 195, 196, 39, 120, 130, 213, 95, 186, 89, 64, 28, 1, 80, 20, 213, 159, 133,
54
+ 98, 253, 128, 105, 113, 247, 197, 152, 236, 64, 166, 207, 113, 134, 65, 38, 58, 24, 127, 145, 140, 206, 47, 70,
55
+ 146, 84, 186, 72, 95, 35, 154, 112, 178, 55, 72, 124
70
56
  ],
71
57
  protocolID: [2, 'BRC2 Test'],
72
58
  keyID: '42',
73
- counterparty:
74
- '0294c479f762f6baa97fbcd4393564c1d7bd8336ebd15928135bbcf575cd1a71a1'
59
+ counterparty: '0294c479f762f6baa97fbcd4393564c1d7bd8336ebd15928135bbcf575cd1a71a1'
75
60
  })
76
- expect(Utils.toUTF8(plaintext)).toEqual(
77
- 'BRC-2 Encryption Compliance Validated!'
78
- )
61
+ expect(Utils.toUTF8(plaintext)).toEqual('BRC-2 Encryption Compliance Validated!')
79
62
  await wallet.destroyKey()
80
63
  })
81
64
  it('Encrypts messages decryptable by the counterparty', async () => {
@@ -155,13 +138,12 @@ describe('PrivilegedKeyManager', () => {
155
138
  keyID: '4',
156
139
  counterparty: counterpartyKey.toPublicKey().toString()
157
140
  })
158
- const { publicKey: derivedByCounterparty } =
159
- await counterparty.getPublicKey({
160
- protocolID: [2, 'tests'],
161
- keyID: '4',
162
- counterparty: userKey.toPublicKey().toString(),
163
- forSelf: true
164
- })
141
+ const { publicKey: derivedByCounterparty } = await counterparty.getPublicKey({
142
+ protocolID: [2, 'tests'],
143
+ keyID: '4',
144
+ counterparty: userKey.toPublicKey().toString(),
145
+ forSelf: true
146
+ })
165
147
  expect(derivedForCounterparty).toEqual(derivedByCounterparty)
166
148
  await user.destroyKey()
167
149
  await counterparty.destroyKey()
@@ -469,9 +451,7 @@ describe('PrivilegedKeyManager', () => {
469
451
  })
470
452
 
471
453
  // Compute expected linkage
472
- const expectedLinkage = proverKey
473
- .deriveSharedSecret(counterpartyKey.toPublicKey())
474
- .encode(true)
454
+ const expectedLinkage = proverKey.deriveSharedSecret(counterpartyKey.toPublicKey()).encode(true)
475
455
 
476
456
  // Compare linkage and expectedLinkage
477
457
  expect(linkage).toEqual(expectedLinkage)
@@ -503,27 +483,18 @@ describe('PrivilegedKeyManager', () => {
503
483
  // Verifier decrypts the encrypted linkage
504
484
  const { plaintext: linkage } = await verifierWallet.decrypt({
505
485
  ciphertext: revelation.encryptedLinkage,
506
- protocolID: [
507
- 2,
508
- `specific linkage revelation ${protocolID[0]} ${protocolID[1]}`
509
- ],
486
+ protocolID: [2, `specific linkage revelation ${protocolID[0]} ${protocolID[1]}`],
510
487
  keyID,
511
488
  counterparty: proverKey.toPublicKey().toString()
512
489
  })
513
490
 
514
491
  // Compute expected linkage
515
- const sharedSecret = proverKey
516
- .deriveSharedSecret(counterpartyKey.toPublicKey())
517
- .encode(true)
492
+ const sharedSecret = proverKey.deriveSharedSecret(counterpartyKey.toPublicKey()).encode(true)
518
493
 
519
494
  // Function to compute the invoice number
520
495
  const computeInvoiceNumber = function (protocolID, keyID) {
521
496
  const securityLevel = protocolID[0]
522
- if (
523
- !Number.isInteger(securityLevel) ||
524
- securityLevel < 0 ||
525
- securityLevel > 2
526
- ) {
497
+ if (!Number.isInteger(securityLevel) || securityLevel < 0 || securityLevel > 2) {
527
498
  throw new Error('Protocol security level must be 0, 1, or 2')
528
499
  }
529
500
  const protocolName = protocolID[1].toLowerCase().trim()
@@ -540,14 +511,10 @@ describe('PrivilegedKeyManager', () => {
540
511
  throw new Error('Protocol names must be 5 characters or more')
541
512
  }
542
513
  if (protocolName.includes(' ')) {
543
- throw new Error(
544
- 'Protocol names cannot contain multiple consecutive spaces (" ")'
545
- )
514
+ throw new Error('Protocol names cannot contain multiple consecutive spaces (" ")')
546
515
  }
547
516
  if (!/^[a-z0-9 ]+$/g.test(protocolName)) {
548
- throw new Error(
549
- 'Protocol names can only contain letters, numbers and spaces'
550
- )
517
+ throw new Error('Protocol names can only contain letters, numbers and spaces')
551
518
  }
552
519
  if (protocolName.endsWith(' protocol')) {
553
520
  throw new Error('No need to end your protocol name with " protocol"')
@@ -695,12 +662,8 @@ describe('PrivilegedKeyManager', () => {
695
662
  // store them, reassemble, etc.
696
663
 
697
664
  // For demonstration, we can do a quick test:
698
- const pad = chunks.map((c: Uint8Array) =>
699
- Uint8Array.from(Random(c.length))
700
- )
701
- const obfuscated = chunks.map((c: Uint8Array, i: number) =>
702
- (km as any).xorBytes(c, pad[i])
703
- )
665
+ const pad = chunks.map((c: Uint8Array) => Uint8Array.from(Random(c.length)))
666
+ const obfuscated = chunks.map((c: Uint8Array, i: number) => (km as any).xorBytes(c, pad[i]))
704
667
 
705
668
  // Then "store" and reassemble
706
669
  ;(km as any).chunkPropNames = []
package/src/sdk/types.ts CHANGED
@@ -63,11 +63,7 @@ export type ProvenTxReqStatus =
63
63
  | 'invalid'
64
64
  | 'doubleSpend'
65
65
 
66
- export const ProvenTxReqTerminalStatus: ProvenTxReqStatus[] = [
67
- 'completed',
68
- 'invalid',
69
- 'doubleSpend'
70
- ]
66
+ export const ProvenTxReqTerminalStatus: ProvenTxReqStatus[] = ['completed', 'invalid', 'doubleSpend']
71
67
 
72
68
  export const ProvenTxReqNonTerminalStatus: ProvenTxReqStatus[] = [
73
69
  'sending',
@@ -81,14 +77,7 @@ export const ProvenTxReqNonTerminalStatus: ProvenTxReqStatus[] = [
81
77
  'unconfirmed'
82
78
  ]
83
79
 
84
- export type TransactionStatus =
85
- | 'completed'
86
- | 'failed'
87
- | 'unprocessed'
88
- | 'sending'
89
- | 'unproven'
90
- | 'unsigned'
91
- | 'nosend'
80
+ export type TransactionStatus = 'completed' | 'failed' | 'unprocessed' | 'sending' | 'unproven' | 'unsigned' | 'nosend'
92
81
 
93
82
  export interface Paged {
94
83
  limit: number
@@ -138,8 +127,7 @@ export type ReqHistoryNote = {
138
127
  * Returns wallet's current change balance in the `totalOutputs` result property.
139
128
  * The `outputs` result property will always be an empty array.
140
129
  */
141
- export const specOpWalletBalance =
142
- '893b7646de0e1c9f741bd6e9169b76a8847ae34adef7bef1e6a285371206d2e8'
130
+ export const specOpWalletBalance = '893b7646de0e1c9f741bd6e9169b76a8847ae34adef7bef1e6a285371206d2e8'
143
131
 
144
132
  /**
145
133
  * `listOutputs` special operation basket name value.
@@ -148,8 +136,7 @@ export const specOpWalletBalance =
148
136
  *
149
137
  * Optional tag value 'release'. If present, updates invalid change outputs to not spendable.
150
138
  */
151
- export const specOpInvalidChange =
152
- '5a76fd430a311f8bc0553859061710a4475c19fed46e2ff95969aa918e612e57'
139
+ export const specOpInvalidChange = '5a76fd430a311f8bc0553859061710a4475c19fed46e2ff95969aa918e612e57'
153
140
 
154
141
  /**
155
142
  * `listOutputs` special operation basket name value.
@@ -160,19 +147,12 @@ export const specOpInvalidChange =
160
147
  *
161
148
  * Tag at index 1 is the new target for minimum satoshis when creating new change outputs.
162
149
  */
163
- export const specOpSetWalletChangeParams =
164
- 'a4979d28ced8581e9c1c92f1001cc7cb3aabf8ea32e10888ad898f0a509a3929'
150
+ export const specOpSetWalletChangeParams = 'a4979d28ced8581e9c1c92f1001cc7cb3aabf8ea32e10888ad898f0a509a3929'
165
151
 
166
152
  /**
167
153
  * @param basket Output basket name value.
168
154
  * @returns true iff the `basket` name is a reserved `listOutputs` special operation identifier.
169
155
  */
170
156
  export function isSpecOp(basket: string): boolean {
171
- return (
172
- [
173
- specOpWalletBalance,
174
- specOpInvalidChange,
175
- specOpSetWalletChangeParams
176
- ].indexOf(basket) >= 0
177
- )
157
+ return [specOpWalletBalance, specOpInvalidChange, specOpSetWalletChangeParams].indexOf(basket) >= 0
178
158
  }