@bsv/wallet-toolbox 1.1.60 → 1.1.62

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (471) hide show
  1. package/.prettierrc +1 -1
  2. package/docs/client.md +39 -5
  3. package/docs/services.md +1 -0
  4. package/docs/setup.md +9 -26
  5. package/docs/storage.md +35 -0
  6. package/docs/wallet.md +39 -5
  7. package/out/src/Setup.d.ts.map +1 -1
  8. package/out/src/Setup.js +6 -16
  9. package/out/src/Setup.js.map +1 -1
  10. package/out/src/Wallet.d.ts.map +1 -1
  11. package/out/src/Wallet.js +4 -11
  12. package/out/src/Wallet.js.map +1 -1
  13. package/out/src/monitor/Monitor.d.ts.map +1 -1
  14. package/out/src/monitor/Monitor.js.map +1 -1
  15. package/out/src/monitor/MonitorDaemon.d.ts.map +1 -1
  16. package/out/src/monitor/MonitorDaemon.js +1 -3
  17. package/out/src/monitor/MonitorDaemon.js.map +1 -1
  18. package/out/src/monitor/tasks/TaskCheckForProofs.d.ts.map +1 -1
  19. package/out/src/monitor/tasks/TaskCheckForProofs.js +2 -10
  20. package/out/src/monitor/tasks/TaskCheckForProofs.js.map +1 -1
  21. package/out/src/monitor/tasks/TaskClock.d.ts.map +1 -1
  22. package/out/src/monitor/tasks/TaskClock.js +1 -1
  23. package/out/src/monitor/tasks/TaskClock.js.map +1 -1
  24. package/out/src/monitor/tasks/TaskFailAbandoned.d.ts.map +1 -1
  25. package/out/src/monitor/tasks/TaskFailAbandoned.js.map +1 -1
  26. package/out/src/monitor/tasks/TaskNewHeader.d.ts.map +1 -1
  27. package/out/src/monitor/tasks/TaskNewHeader.js +1 -2
  28. package/out/src/monitor/tasks/TaskNewHeader.js.map +1 -1
  29. package/out/src/monitor/tasks/TaskPurge.d.ts.map +1 -1
  30. package/out/src/monitor/tasks/TaskPurge.js +1 -2
  31. package/out/src/monitor/tasks/TaskPurge.js.map +1 -1
  32. package/out/src/monitor/tasks/TaskReviewStatus.d.ts.map +1 -1
  33. package/out/src/monitor/tasks/TaskReviewStatus.js +1 -2
  34. package/out/src/monitor/tasks/TaskReviewStatus.js.map +1 -1
  35. package/out/src/monitor/tasks/TaskSendWaiting.d.ts.map +1 -1
  36. package/out/src/monitor/tasks/TaskSendWaiting.js.map +1 -1
  37. package/out/src/sdk/CertOps.d.ts.map +1 -1
  38. package/out/src/sdk/CertOps.js +4 -12
  39. package/out/src/sdk/CertOps.js.map +1 -1
  40. package/out/src/sdk/PrivilegedKeyManager.d.ts.map +1 -1
  41. package/out/src/sdk/PrivilegedKeyManager.js.map +1 -1
  42. package/out/src/sdk/WERR_errors.d.ts.map +1 -1
  43. package/out/src/sdk/WERR_errors.js.map +1 -1
  44. package/out/src/sdk/WalletError.d.ts.map +1 -1
  45. package/out/src/sdk/WalletError.js +1 -4
  46. package/out/src/sdk/WalletError.js.map +1 -1
  47. package/out/src/sdk/WalletServices.interfaces.d.ts +2 -0
  48. package/out/src/sdk/WalletServices.interfaces.d.ts.map +1 -1
  49. package/out/src/sdk/WalletStorage.interfaces.d.ts.map +1 -1
  50. package/out/src/sdk/__test/CertificateLifeCycle.test.js +1 -3
  51. package/out/src/sdk/__test/CertificateLifeCycle.test.js.map +1 -1
  52. package/out/src/sdk/__test/PrivilegedKeyManager.test.js +13 -26
  53. package/out/src/sdk/__test/PrivilegedKeyManager.test.js.map +1 -1
  54. package/out/src/sdk/types.d.ts.map +1 -1
  55. package/out/src/sdk/types.js +2 -10
  56. package/out/src/sdk/types.js.map +1 -1
  57. package/out/src/sdk/validationHelpers.d.ts.map +1 -1
  58. package/out/src/sdk/validationHelpers.js +5 -12
  59. package/out/src/sdk/validationHelpers.js.map +1 -1
  60. package/out/src/services/Services.d.ts +1 -0
  61. package/out/src/services/Services.d.ts.map +1 -1
  62. package/out/src/services/Services.js +29 -38
  63. package/out/src/services/Services.js.map +1 -1
  64. package/out/src/services/__tests/ARC.test.js +9 -0
  65. package/out/src/services/__tests/ARC.test.js.map +1 -1
  66. package/out/src/services/__tests/bitrails.test.js.map +1 -1
  67. package/out/src/services/__tests/getMerklePath.test.js.map +1 -1
  68. package/out/src/services/__tests/getRawTx.test.js.map +1 -1
  69. package/out/src/services/__tests/verifyBeef.test.js +2 -1
  70. package/out/src/services/__tests/verifyBeef.test.js.map +1 -1
  71. package/out/src/services/chaintracker/ChaintracksChainTracker.d.ts.map +1 -1
  72. package/out/src/services/chaintracker/ChaintracksChainTracker.js.map +1 -1
  73. package/out/src/services/chaintracker/chaintracks/BlockHeaderApi.d.ts.map +1 -1
  74. package/out/src/services/chaintracker/chaintracks/BlockHeaderApi.js.map +1 -1
  75. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts.map +1 -1
  76. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js +1 -3
  77. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js.map +1 -1
  78. package/out/src/services/createDefaultWalletServicesOptions.d.ts.map +1 -1
  79. package/out/src/services/createDefaultWalletServicesOptions.js.map +1 -1
  80. package/out/src/services/providers/ARC.d.ts.map +1 -1
  81. package/out/src/services/providers/ARC.js +2 -3
  82. package/out/src/services/providers/ARC.js.map +1 -1
  83. package/out/src/services/providers/Bitails.d.ts.map +1 -1
  84. package/out/src/services/providers/Bitails.js +62 -134
  85. package/out/src/services/providers/Bitails.js.map +1 -1
  86. package/out/src/services/providers/SdkWhatsOnChain.d.ts.map +1 -1
  87. package/out/src/services/providers/SdkWhatsOnChain.js.map +1 -1
  88. package/out/src/services/providers/WhatsOnChain.d.ts.map +1 -1
  89. package/out/src/services/providers/WhatsOnChain.js +6 -21
  90. package/out/src/services/providers/WhatsOnChain.js.map +1 -1
  91. package/out/src/services/providers/__tests/WhatsOnChain.test.js +1 -2
  92. package/out/src/services/providers/__tests/WhatsOnChain.test.js.map +1 -1
  93. package/out/src/services/providers/echangeRates.d.ts.map +1 -1
  94. package/out/src/services/providers/echangeRates.js.map +1 -1
  95. package/out/src/signer/WalletSigner.d.ts.map +1 -1
  96. package/out/src/signer/WalletSigner.js.map +1 -1
  97. package/out/src/signer/methods/acquireDirectCertificate.d.ts.map +1 -1
  98. package/out/src/signer/methods/acquireDirectCertificate.js +1 -3
  99. package/out/src/signer/methods/acquireDirectCertificate.js.map +1 -1
  100. package/out/src/signer/methods/buildSignableTransaction.d.ts.map +1 -1
  101. package/out/src/signer/methods/buildSignableTransaction.js +3 -11
  102. package/out/src/signer/methods/buildSignableTransaction.js.map +1 -1
  103. package/out/src/signer/methods/createAction.d.ts.map +1 -1
  104. package/out/src/signer/methods/createAction.js +3 -10
  105. package/out/src/signer/methods/createAction.js.map +1 -1
  106. package/out/src/signer/methods/internalizeAction.d.ts.map +1 -1
  107. package/out/src/signer/methods/internalizeAction.js.map +1 -1
  108. package/out/src/signer/methods/proveCertificate.d.ts.map +1 -1
  109. package/out/src/signer/methods/proveCertificate.js.map +1 -1
  110. package/out/src/signer/methods/signAction.d.ts.map +1 -1
  111. package/out/src/signer/methods/signAction.js +2 -7
  112. package/out/src/signer/methods/signAction.js.map +1 -1
  113. package/out/src/storage/StorageKnex.d.ts.map +1 -1
  114. package/out/src/storage/StorageKnex.js +15 -44
  115. package/out/src/storage/StorageKnex.js.map +1 -1
  116. package/out/src/storage/StorageProvider.d.ts.map +1 -1
  117. package/out/src/storage/StorageProvider.js +9 -34
  118. package/out/src/storage/StorageProvider.js.map +1 -1
  119. package/out/src/storage/StorageReader.d.ts.map +1 -1
  120. package/out/src/storage/StorageReader.js.map +1 -1
  121. package/out/src/storage/StorageReaderWriter.d.ts.map +1 -1
  122. package/out/src/storage/StorageReaderWriter.js.map +1 -1
  123. package/out/src/storage/StorageSyncReader.d.ts.map +1 -1
  124. package/out/src/storage/StorageSyncReader.js.map +1 -1
  125. package/out/src/storage/WalletStorageManager.d.ts.map +1 -1
  126. package/out/src/storage/WalletStorageManager.js +5 -10
  127. package/out/src/storage/WalletStorageManager.js.map +1 -1
  128. package/out/src/storage/__test/WalletStorageManager.test.js +2 -8
  129. package/out/src/storage/__test/WalletStorageManager.test.js.map +1 -1
  130. package/out/src/storage/methods/__test/GenerateChange/generateChangeSdk.test.js +10 -30
  131. package/out/src/storage/methods/__test/GenerateChange/generateChangeSdk.test.js.map +1 -1
  132. package/out/src/storage/methods/__test/GenerateChange/randomValsUsed1.d.ts.map +1 -1
  133. package/out/src/storage/methods/__test/GenerateChange/randomValsUsed1.js +17 -28
  134. package/out/src/storage/methods/__test/GenerateChange/randomValsUsed1.js.map +1 -1
  135. package/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts.map +1 -1
  136. package/out/src/storage/methods/attemptToPostReqsToNetwork.js +6 -20
  137. package/out/src/storage/methods/attemptToPostReqsToNetwork.js.map +1 -1
  138. package/out/src/storage/methods/createAction.d.ts.map +1 -1
  139. package/out/src/storage/methods/createAction.js +4 -9
  140. package/out/src/storage/methods/createAction.js.map +1 -1
  141. package/out/src/storage/methods/generateChange.d.ts.map +1 -1
  142. package/out/src/storage/methods/generateChange.js +7 -18
  143. package/out/src/storage/methods/generateChange.js.map +1 -1
  144. package/out/src/storage/methods/getBeefForTransaction.d.ts.map +1 -1
  145. package/out/src/storage/methods/getBeefForTransaction.js +1 -3
  146. package/out/src/storage/methods/getBeefForTransaction.js.map +1 -1
  147. package/out/src/storage/methods/getSyncChunk.d.ts.map +1 -1
  148. package/out/src/storage/methods/getSyncChunk.js.map +1 -1
  149. package/out/src/storage/methods/internalizeAction.d.ts.map +1 -1
  150. package/out/src/storage/methods/internalizeAction.js +2 -9
  151. package/out/src/storage/methods/internalizeAction.js.map +1 -1
  152. package/out/src/storage/methods/listActions.d.ts.map +1 -1
  153. package/out/src/storage/methods/listActions.js +3 -15
  154. package/out/src/storage/methods/listActions.js.map +1 -1
  155. package/out/src/storage/methods/listCertificates.d.ts.map +1 -1
  156. package/out/src/storage/methods/listCertificates.js.map +1 -1
  157. package/out/src/storage/methods/listOutputs.d.ts.map +1 -1
  158. package/out/src/storage/methods/listOutputs.js +5 -12
  159. package/out/src/storage/methods/listOutputs.js.map +1 -1
  160. package/out/src/storage/methods/processAction.d.ts.map +1 -1
  161. package/out/src/storage/methods/processAction.js +4 -10
  162. package/out/src/storage/methods/processAction.js.map +1 -1
  163. package/out/src/storage/methods/purgeData.d.ts.map +1 -1
  164. package/out/src/storage/methods/purgeData.js +8 -32
  165. package/out/src/storage/methods/purgeData.js.map +1 -1
  166. package/out/src/storage/methods/reviewStatus.d.ts.map +1 -1
  167. package/out/src/storage/methods/reviewStatus.js +1 -3
  168. package/out/src/storage/methods/reviewStatus.js.map +1 -1
  169. package/out/src/storage/remoting/StorageClient.d.ts.map +1 -1
  170. package/out/src/storage/remoting/StorageClient.js +15 -41
  171. package/out/src/storage/remoting/StorageClient.js.map +1 -1
  172. package/out/src/storage/remoting/StorageServer.d.ts.map +1 -1
  173. package/out/src/storage/remoting/StorageServer.js +2 -5
  174. package/out/src/storage/remoting/StorageServer.js.map +1 -1
  175. package/out/src/storage/schema/KnexMigrations.d.ts.map +1 -1
  176. package/out/src/storage/schema/KnexMigrations.js +24 -130
  177. package/out/src/storage/schema/KnexMigrations.js.map +1 -1
  178. package/out/src/storage/schema/entities/Certificate.d.ts.map +1 -1
  179. package/out/src/storage/schema/entities/Certificate.js +1 -1
  180. package/out/src/storage/schema/entities/Certificate.js.map +1 -1
  181. package/out/src/storage/schema/entities/CertificateField.d.ts.map +1 -1
  182. package/out/src/storage/schema/entities/CertificateField.js +2 -5
  183. package/out/src/storage/schema/entities/CertificateField.js.map +1 -1
  184. package/out/src/storage/schema/entities/Commission.d.ts.map +1 -1
  185. package/out/src/storage/schema/entities/Commission.js +2 -5
  186. package/out/src/storage/schema/entities/Commission.js.map +1 -1
  187. package/out/src/storage/schema/entities/EntityBase.d.ts.map +1 -1
  188. package/out/src/storage/schema/entities/EntityBase.js.map +1 -1
  189. package/out/src/storage/schema/entities/MergeEntity.d.ts.map +1 -1
  190. package/out/src/storage/schema/entities/MergeEntity.js +14 -9
  191. package/out/src/storage/schema/entities/MergeEntity.js.map +1 -1
  192. package/out/src/storage/schema/entities/Output.d.ts.map +1 -1
  193. package/out/src/storage/schema/entities/Output.js +8 -25
  194. package/out/src/storage/schema/entities/Output.js.map +1 -1
  195. package/out/src/storage/schema/entities/OutputBasket.d.ts.map +1 -1
  196. package/out/src/storage/schema/entities/OutputBasket.js +1 -1
  197. package/out/src/storage/schema/entities/OutputBasket.js.map +1 -1
  198. package/out/src/storage/schema/entities/OutputTag.d.ts.map +1 -1
  199. package/out/src/storage/schema/entities/OutputTag.js +1 -1
  200. package/out/src/storage/schema/entities/OutputTag.js.map +1 -1
  201. package/out/src/storage/schema/entities/OutputTagMap.d.ts.map +1 -1
  202. package/out/src/storage/schema/entities/OutputTagMap.js +3 -7
  203. package/out/src/storage/schema/entities/OutputTagMap.js.map +1 -1
  204. package/out/src/storage/schema/entities/ProvenTx.d.ts.map +1 -1
  205. package/out/src/storage/schema/entities/ProvenTx.js +10 -20
  206. package/out/src/storage/schema/entities/ProvenTx.js.map +1 -1
  207. package/out/src/storage/schema/entities/ProvenTxReq.d.ts.map +1 -1
  208. package/out/src/storage/schema/entities/ProvenTxReq.js +8 -18
  209. package/out/src/storage/schema/entities/ProvenTxReq.js.map +1 -1
  210. package/out/src/storage/schema/entities/SyncState.d.ts +1 -0
  211. package/out/src/storage/schema/entities/SyncState.d.ts.map +1 -1
  212. package/out/src/storage/schema/entities/SyncState.js +41 -6
  213. package/out/src/storage/schema/entities/SyncState.js.map +1 -1
  214. package/out/src/storage/schema/entities/Transaction.d.ts.map +1 -1
  215. package/out/src/storage/schema/entities/Transaction.js +4 -13
  216. package/out/src/storage/schema/entities/Transaction.js.map +1 -1
  217. package/out/src/storage/schema/entities/TxLabel.d.ts.map +1 -1
  218. package/out/src/storage/schema/entities/TxLabel.js +1 -1
  219. package/out/src/storage/schema/entities/TxLabel.js.map +1 -1
  220. package/out/src/storage/schema/entities/TxLabelMap.d.ts.map +1 -1
  221. package/out/src/storage/schema/entities/TxLabelMap.js +3 -9
  222. package/out/src/storage/schema/entities/TxLabelMap.js.map +1 -1
  223. package/out/src/storage/schema/entities/User.d.ts.map +1 -1
  224. package/out/src/storage/schema/entities/User.js +3 -5
  225. package/out/src/storage/schema/entities/User.js.map +1 -1
  226. package/out/src/storage/schema/entities/__tests/CertificateFieldTests.test.js.map +1 -1
  227. package/out/src/storage/schema/entities/__tests/CertificateTests.test.js.map +1 -1
  228. package/out/src/storage/schema/entities/__tests/CommissionTests.test.js.map +1 -1
  229. package/out/src/storage/schema/entities/__tests/OutputBasketTests.test.js.map +1 -1
  230. package/out/src/storage/schema/entities/__tests/OutputTagMapTests.test.js.map +1 -1
  231. package/out/src/storage/schema/entities/__tests/OutputTagTests.test.js.map +1 -1
  232. package/out/src/storage/schema/entities/__tests/OutputTests.test.js.map +1 -1
  233. package/out/src/storage/schema/entities/__tests/ProvenTxReqTests.test.js.map +1 -1
  234. package/out/src/storage/schema/entities/__tests/ProvenTxTests.test.js +1 -2
  235. package/out/src/storage/schema/entities/__tests/ProvenTxTests.test.js.map +1 -1
  236. package/out/src/storage/schema/entities/__tests/SyncStateTests.test.js.map +1 -1
  237. package/out/src/storage/schema/entities/__tests/TransactionTests.test.js +2 -2
  238. package/out/src/storage/schema/entities/__tests/TransactionTests.test.js.map +1 -1
  239. package/out/src/storage/schema/entities/__tests/TxLabelMapTests.test.js.map +1 -1
  240. package/out/src/storage/schema/entities/__tests/TxLabelTests.test.js.map +1 -1
  241. package/out/src/storage/schema/entities/__tests/stampLogTests.test.js.map +1 -1
  242. package/out/src/storage/schema/entities/__tests/usersTests.test.js.map +1 -1
  243. package/out/src/storage/schema/tables/TableSettings.d.ts.map +1 -1
  244. package/out/src/storage/sync/StorageMySQLDojoReader.d.ts.map +1 -1
  245. package/out/src/storage/sync/StorageMySQLDojoReader.js +1 -3
  246. package/out/src/storage/sync/StorageMySQLDojoReader.js.map +1 -1
  247. package/out/src/utility/ScriptTemplateBRC29.d.ts.map +1 -1
  248. package/out/src/utility/ScriptTemplateBRC29.js +1 -2
  249. package/out/src/utility/ScriptTemplateBRC29.js.map +1 -1
  250. package/out/src/utility/stampLog.d.ts.map +1 -1
  251. package/out/src/utility/stampLog.js.map +1 -1
  252. package/out/src/utility/tscProofToMerklePath.d.ts.map +1 -1
  253. package/out/src/utility/tscProofToMerklePath.js.map +1 -1
  254. package/out/src/utility/utilityHelpers.buffer.d.ts.map +1 -1
  255. package/out/src/utility/utilityHelpers.buffer.js.map +1 -1
  256. package/out/src/utility/utilityHelpers.d.ts.map +1 -1
  257. package/out/src/utility/utilityHelpers.js +1 -3
  258. package/out/src/utility/utilityHelpers.js.map +1 -1
  259. package/out/test/Wallet/StorageClient/storageClient.man.test.js.map +1 -1
  260. package/out/test/Wallet/action/internalizeAction.a.test.js.map +1 -1
  261. package/out/test/Wallet/certificate/acquireCertificate.test.js.map +1 -1
  262. package/out/test/Wallet/certificate/listCertificates.test.js.map +1 -1
  263. package/out/test/Wallet/get/getHeaderForHeight.test.js +2 -6
  264. package/out/test/Wallet/get/getHeaderForHeight.test.js.map +1 -1
  265. package/out/test/Wallet/get/getHeight.test.js.map +1 -1
  266. package/out/test/Wallet/get/getKnownTxids.test.js.map +1 -1
  267. package/out/test/Wallet/get/getNetwork.test.js.map +1 -1
  268. package/out/test/Wallet/get/getVersion.test.js.map +1 -1
  269. package/out/test/Wallet/live/walletLive.man.test.d.ts.map +1 -1
  270. package/out/test/Wallet/live/walletLive.man.test.js +3 -9
  271. package/out/test/Wallet/live/walletLive.man.test.js.map +1 -1
  272. package/out/test/Wallet/local/localWallet.man.test.d.ts.map +1 -1
  273. package/out/test/Wallet/local/localWallet.man.test.js +39 -31
  274. package/out/test/Wallet/local/localWallet.man.test.js.map +1 -1
  275. package/out/test/Wallet/specOps/specOps.man.test.js +1 -4
  276. package/out/test/Wallet/specOps/specOps.man.test.js.map +1 -1
  277. package/out/test/Wallet/support/janitor.man.test.js.map +1 -1
  278. package/out/test/Wallet/sync/Wallet.updateWalletLegacyTestData.man.test.js.map +1 -1
  279. package/out/test/Wallet/sync/setActive.test.js +73 -50
  280. package/out/test/Wallet/sync/setActive.test.js.map +1 -1
  281. package/out/test/checkDB.d.ts.map +1 -1
  282. package/out/test/checkDB.js.map +1 -1
  283. package/out/test/examples/backup.man.test.d.ts.map +1 -1
  284. package/out/test/examples/backup.man.test.js.map +1 -1
  285. package/out/test/examples/pushdrop.test.d.ts.map +1 -1
  286. package/out/test/examples/pushdrop.test.js +5 -4
  287. package/out/test/examples/pushdrop.test.js.map +1 -1
  288. package/out/test/monitor/Monitor.test.js.map +1 -1
  289. package/out/test/services/Services.test.js.map +1 -1
  290. package/out/test/storage/KnexMigrations.test.js.map +1 -1
  291. package/out/test/storage/StorageMySQLDojoReader.man.test.js +1 -3
  292. package/out/test/storage/StorageMySQLDojoReader.man.test.js.map +1 -1
  293. package/out/test/storage/count.test.js.map +1 -1
  294. package/out/test/storage/find.test.js +5 -10
  295. package/out/test/storage/find.test.js.map +1 -1
  296. package/out/test/storage/findLegacy.test.js.map +1 -1
  297. package/out/test/storage/insert.test.js.map +1 -1
  298. package/out/test/storage/update.test.js +7 -19
  299. package/out/test/storage/update.test.js.map +1 -1
  300. package/out/test/storage/update2.test.js +22 -24
  301. package/out/test/storage/update2.test.js.map +1 -1
  302. package/out/test/utils/TestUtilsWalletStorage.d.ts +3 -1
  303. package/out/test/utils/TestUtilsWalletStorage.d.ts.map +1 -1
  304. package/out/test/utils/TestUtilsWalletStorage.js +52 -76
  305. package/out/test/utils/TestUtilsWalletStorage.js.map +1 -1
  306. package/out/test/wallet/action/abortAction.test.js.map +1 -1
  307. package/out/test/wallet/action/createAction.test.js +1 -2
  308. package/out/test/wallet/action/createAction.test.js.map +1 -1
  309. package/out/test/wallet/action/createAction2.test.d.ts.map +1 -1
  310. package/out/test/wallet/action/createAction2.test.js +6 -16
  311. package/out/test/wallet/action/createAction2.test.js.map +1 -1
  312. package/out/test/wallet/action/createActionToGenerateBeefs.man.test.js.map +1 -1
  313. package/out/test/wallet/action/internalizeAction.test.js.map +1 -1
  314. package/out/test/wallet/action/relinquishOutput.test.js.map +1 -1
  315. package/out/test/wallet/list/listActions.test.js.map +1 -1
  316. package/out/test/wallet/list/listActions2.test.js.map +1 -1
  317. package/out/test/wallet/list/listCertificates.test.js +2 -6
  318. package/out/test/wallet/list/listCertificates.test.js.map +1 -1
  319. package/out/test/wallet/list/listOutputs.test.js +2 -10
  320. package/out/test/wallet/list/listOutputs.test.js.map +1 -1
  321. package/out/test/wallet/sync/Wallet.sync.test.js +4 -6
  322. package/out/test/wallet/sync/Wallet.sync.test.js.map +1 -1
  323. package/out/tsconfig.all.tsbuildinfo +1 -1
  324. package/package.json +3 -3
  325. package/src/Setup.ts +15 -52
  326. package/src/Wallet.ts +58 -161
  327. package/src/monitor/Monitor.ts +7 -22
  328. package/src/monitor/MonitorDaemon.ts +6 -23
  329. package/src/monitor/tasks/TaskCheckForProofs.ts +4 -23
  330. package/src/monitor/tasks/TaskClock.ts +1 -3
  331. package/src/monitor/tasks/TaskFailAbandoned.ts +1 -3
  332. package/src/monitor/tasks/TaskNewHeader.ts +1 -4
  333. package/src/monitor/tasks/TaskPurge.ts +1 -2
  334. package/src/monitor/tasks/TaskReviewStatus.ts +1 -3
  335. package/src/monitor/tasks/TaskSendWaiting.ts +3 -10
  336. package/src/sdk/CertOps.ts +31 -103
  337. package/src/sdk/PrivilegedKeyManager.ts +18 -48
  338. package/src/sdk/WERR_errors.ts +6 -25
  339. package/src/sdk/WalletError.ts +5 -21
  340. package/src/sdk/WalletServices.interfaces.ts +11 -33
  341. package/src/sdk/WalletStorage.interfaces.ts +25 -91
  342. package/src/sdk/__test/CertificateLifeCycle.test.ts +9 -27
  343. package/src/sdk/__test/PrivilegedKeyManager.test.ts +29 -66
  344. package/src/sdk/types.ts +6 -26
  345. package/src/sdk/validationHelpers.ts +111 -402
  346. package/src/services/Services.ts +51 -114
  347. package/src/services/__tests/ARC.test.ts +14 -1
  348. package/src/services/__tests/bitrails.test.ts +4 -15
  349. package/src/services/__tests/getMerklePath.test.ts +1 -2
  350. package/src/services/__tests/getRawTx.test.ts +1 -3
  351. package/src/services/__tests/verifyBeef.test.ts +2 -1
  352. package/src/services/chaintracker/ChaintracksChainTracker.ts +3 -13
  353. package/src/services/chaintracker/chaintracks/BlockHeaderApi.ts +4 -12
  354. package/src/services/chaintracker/chaintracks/ChaintracksServiceClient.ts +9 -27
  355. package/src/services/createDefaultWalletServicesOptions.ts +2 -5
  356. package/src/services/processingErrors/arcSuccessError.json +76 -0
  357. package/src/services/providers/ARC.ts +6 -25
  358. package/src/services/providers/Bitails.ts +61 -159
  359. package/src/services/providers/SdkWhatsOnChain.ts +4 -17
  360. package/src/services/providers/WhatsOnChain.ts +31 -100
  361. package/src/services/providers/__tests/WhatsOnChain.test.ts +5 -15
  362. package/src/services/providers/echangeRates.ts +7 -22
  363. package/src/signer/WalletSigner.ts +1 -5
  364. package/src/signer/methods/acquireDirectCertificate.ts +1 -4
  365. package/src/signer/methods/buildSignableTransaction.ts +5 -20
  366. package/src/signer/methods/createAction.ts +15 -54
  367. package/src/signer/methods/internalizeAction.ts +10 -39
  368. package/src/signer/methods/proveCertificate.ts +2 -5
  369. package/src/signer/methods/signAction.ts +9 -39
  370. package/src/storage/StorageKnex.ts +166 -499
  371. package/src/storage/StorageProvider.ts +75 -291
  372. package/src/storage/StorageReader.ts +20 -65
  373. package/src/storage/StorageReaderWriter.ts +67 -264
  374. package/src/storage/StorageSyncReader.ts +2 -5
  375. package/src/storage/WalletStorageManager.ts +33 -108
  376. package/src/storage/__test/WalletStorageManager.test.ts +6 -23
  377. package/src/storage/methods/__test/GenerateChange/generateChangeSdk.test.ts +53 -171
  378. package/src/storage/methods/__test/GenerateChange/randomValsUsed1.ts +17 -28
  379. package/src/storage/methods/attemptToPostReqsToNetwork.ts +9 -37
  380. package/src/storage/methods/createAction.ts +45 -181
  381. package/src/storage/methods/generateChange.ts +33 -114
  382. package/src/storage/methods/getBeefForTransaction.ts +7 -37
  383. package/src/storage/methods/getSyncChunk.ts +18 -69
  384. package/src/storage/methods/internalizeAction.ts +18 -70
  385. package/src/storage/methods/listActions.ts +6 -23
  386. package/src/storage/methods/listCertificates.ts +5 -14
  387. package/src/storage/methods/listOutputs.ts +15 -69
  388. package/src/storage/methods/processAction.ts +29 -104
  389. package/src/storage/methods/purgeData.ts +11 -45
  390. package/src/storage/methods/reviewStatus.ts +3 -9
  391. package/src/storage/remoting/StorageClient.ts +43 -146
  392. package/src/storage/remoting/StorageServer.ts +21 -59
  393. package/src/storage/schema/KnexMigrations.ts +34 -165
  394. package/src/storage/schema/entities/Certificate.ts +3 -14
  395. package/src/storage/schema/entities/CertificateField.ts +6 -28
  396. package/src/storage/schema/entities/Commission.ts +6 -23
  397. package/src/storage/schema/entities/EntityBase.ts +1 -6
  398. package/src/storage/schema/entities/MergeEntity.ts +14 -21
  399. package/src/storage/schema/entities/Output.ts +10 -39
  400. package/src/storage/schema/entities/OutputBasket.ts +4 -16
  401. package/src/storage/schema/entities/OutputTag.ts +4 -17
  402. package/src/storage/schema/entities/OutputTagMap.ts +7 -30
  403. package/src/storage/schema/entities/ProvenTx.ts +16 -57
  404. package/src/storage/schema/entities/ProvenTxReq.ts +29 -93
  405. package/src/storage/schema/entities/SyncState.ts +64 -116
  406. package/src/storage/schema/entities/Transaction.ts +10 -35
  407. package/src/storage/schema/entities/TxLabel.ts +4 -17
  408. package/src/storage/schema/entities/TxLabelMap.ts +6 -28
  409. package/src/storage/schema/entities/User.ts +8 -31
  410. package/src/storage/schema/entities/__tests/CertificateFieldTests.test.ts +23 -54
  411. package/src/storage/schema/entities/__tests/CertificateTests.test.ts +26 -59
  412. package/src/storage/schema/entities/__tests/CommissionTests.test.ts +2 -11
  413. package/src/storage/schema/entities/__tests/OutputBasketTests.test.ts +2 -10
  414. package/src/storage/schema/entities/__tests/OutputTagMapTests.test.ts +2 -10
  415. package/src/storage/schema/entities/__tests/OutputTagTests.test.ts +1 -4
  416. package/src/storage/schema/entities/__tests/OutputTests.test.ts +3 -14
  417. package/src/storage/schema/entities/__tests/ProvenTxReqTests.test.ts +4 -16
  418. package/src/storage/schema/entities/__tests/ProvenTxTests.test.ts +5 -18
  419. package/src/storage/schema/entities/__tests/SyncStateTests.test.ts +5 -26
  420. package/src/storage/schema/entities/__tests/TransactionTests.test.ts +12 -48
  421. package/src/storage/schema/entities/__tests/TxLabelMapTests.test.ts +4 -22
  422. package/src/storage/schema/entities/__tests/TxLabelTests.test.ts +2 -10
  423. package/src/storage/schema/entities/__tests/stampLogTests.test.ts +3 -10
  424. package/src/storage/schema/entities/__tests/usersTests.test.ts +4 -7
  425. package/src/storage/schema/tables/TableSettings.ts +1 -3
  426. package/src/storage/sync/StorageMySQLDojoReader.ts +47 -148
  427. package/src/utility/ScriptTemplateBRC29.ts +2 -11
  428. package/src/utility/stampLog.ts +2 -6
  429. package/src/utility/tscProofToMerklePath.ts +1 -4
  430. package/src/utility/utilityHelpers.buffer.ts +3 -12
  431. package/src/utility/utilityHelpers.ts +14 -49
  432. package/test/Wallet/StorageClient/storageClient.man.test.ts +2 -8
  433. package/test/Wallet/action/internalizeAction.a.test.ts +8 -23
  434. package/test/Wallet/certificate/acquireCertificate.test.ts +10 -24
  435. package/test/Wallet/certificate/listCertificates.test.ts +8 -18
  436. package/test/Wallet/get/getHeaderForHeight.test.ts +4 -15
  437. package/test/Wallet/get/getHeight.test.ts +2 -6
  438. package/test/Wallet/get/getKnownTxids.test.ts +1 -5
  439. package/test/Wallet/get/getNetwork.test.ts +1 -2
  440. package/test/Wallet/get/getVersion.test.ts +1 -2
  441. package/test/Wallet/live/walletLive.man.test.ts +14 -41
  442. package/test/Wallet/local/localWallet.man.test.ts +45 -102
  443. package/test/Wallet/specOps/specOps.man.test.ts +4 -13
  444. package/test/Wallet/support/janitor.man.test.ts +2 -7
  445. package/test/Wallet/sync/Wallet.updateWalletLegacyTestData.man.test.ts +11 -34
  446. package/test/Wallet/sync/setActive.test.ts +75 -61
  447. package/test/checkDB.ts +2 -8
  448. package/test/examples/backup.man.test.ts +2 -9
  449. package/test/examples/pushdrop.test.ts +7 -20
  450. package/test/monitor/Monitor.test.ts +33 -87
  451. package/test/services/Services.test.ts +8 -19
  452. package/test/storage/KnexMigrations.test.ts +3 -18
  453. package/test/storage/StorageMySQLDojoReader.man.test.ts +4 -15
  454. package/test/storage/count.test.ts +7 -24
  455. package/test/storage/find.test.ts +7 -29
  456. package/test/storage/findLegacy.test.ts +2 -5
  457. package/test/storage/insert.test.ts +3 -19
  458. package/test/storage/update.test.ts +47 -179
  459. package/test/storage/update2.test.ts +54 -176
  460. package/test/utils/TestUtilsWalletStorage.ts +139 -372
  461. package/test/wallet/action/abortAction.test.ts +4 -12
  462. package/test/wallet/action/createAction.test.ts +4 -14
  463. package/test/wallet/action/createAction2.test.ts +74 -208
  464. package/test/wallet/action/createActionToGenerateBeefs.man.test.ts +8 -11
  465. package/test/wallet/action/internalizeAction.test.ts +20 -72
  466. package/test/wallet/action/relinquishOutput.test.ts +3 -9
  467. package/test/wallet/list/listActions.test.ts +2 -9
  468. package/test/wallet/list/listActions2.test.ts +8 -34
  469. package/test/wallet/list/listCertificates.test.ts +5 -16
  470. package/test/wallet/list/listOutputs.test.ts +15 -54
  471. package/test/wallet/sync/Wallet.sync.test.ts +18 -49
@@ -88,10 +88,7 @@ export class MonitorDaemon {
88
88
  if (a.storageProvider) {
89
89
  await a.storageProvider.makeAvailable()
90
90
  const settings = await a.storageProvider.getSettings()
91
- a.storageManager = new WalletStorageManager(
92
- settings.storageIdentityKey,
93
- a.storageProvider
94
- )
91
+ a.storageManager = new WalletStorageManager(settings.storageIdentityKey, a.storageProvider)
95
92
  await a.storageManager.makeAvailable()
96
93
  } else if (!a.storageManager) {
97
94
  throw new sdk.WERR_INVALID_PARAMETER(
@@ -102,10 +99,7 @@ export class MonitorDaemon {
102
99
 
103
100
  if (a.servicesOptions) {
104
101
  if (a.servicesOptions.chain != a.chain)
105
- throw new sdk.WERR_INVALID_PARAMETER(
106
- 'serviceOptions.chain',
107
- 'same as args.chain'
108
- )
102
+ throw new sdk.WERR_INVALID_PARAMETER('serviceOptions.chain', 'same as args.chain')
109
103
  a.services = new Services(a.servicesOptions)
110
104
  }
111
105
 
@@ -115,11 +109,7 @@ export class MonitorDaemon {
115
109
 
116
110
  a.storageManager.setServices(a.services)
117
111
 
118
- const monitorOptions = Monitor.createDefaultWalletMonitorOptions(
119
- a.chain,
120
- a.storageManager,
121
- a.services
122
- )
112
+ const monitorOptions = Monitor.createDefaultWalletMonitorOptions(a.chain, a.storageManager, a.services)
123
113
  a.monitor = new Monitor(monitorOptions)
124
114
  }
125
115
 
@@ -130,8 +120,7 @@ export class MonitorDaemon {
130
120
 
131
121
  async start(): Promise<void> {
132
122
  if (!this.setup) await this.createSetup()
133
- if (!this.setup?.monitor)
134
- throw new sdk.WERR_INTERNAL('createSetup failed to initialize setup')
123
+ if (!this.setup?.monitor) throw new sdk.WERR_INTERNAL('createSetup failed to initialize setup')
135
124
 
136
125
  const { monitor } = this.setup
137
126
 
@@ -144,11 +133,7 @@ export class MonitorDaemon {
144
133
  async stop(): Promise<void> {
145
134
  console.log('start of stop')
146
135
 
147
- if (
148
- !this.setup ||
149
- (!this.doneTasks && !this.noRunTasks) ||
150
- !this.doneListening
151
- )
136
+ if (!this.setup || (!this.doneTasks && !this.noRunTasks) || !this.doneListening)
152
137
  throw new sdk.WERR_INTERNAL('call start or createSetup first')
153
138
 
154
139
  const { monitor } = this.setup
@@ -189,9 +174,7 @@ export class MonitorDaemon {
189
174
  console.log('done')
190
175
  } catch (eu: unknown) {
191
176
  const e = sdk.WalletError.fromUnknown(eu)
192
- console.log(
193
- `\n\nrunWatchman Main Error Handler\n\ncode: ${e.code}\nDescription: ${e.description}\n\n\n`
194
- )
177
+ console.log(`\n\nrunWatchman Main Error Handler\n\ncode: ${e.code}\nDescription: ${e.description}\n\n\n`)
195
178
  }
196
179
  }
197
180
  }
@@ -1,11 +1,4 @@
1
- import {
2
- asString,
3
- doubleSha256BE,
4
- EntityProvenTx,
5
- EntityProvenTxReq,
6
- sdk,
7
- TableProvenTxReq
8
- } from '../../index.client'
1
+ import { asString, doubleSha256BE, EntityProvenTx, EntityProvenTxReq, sdk, TableProvenTxReq } from '../../index.client'
9
2
  import { Monitor } from '../Monitor'
10
3
  import { WalletMonitorTask } from './WalletMonitorTask'
11
4
 
@@ -45,8 +38,7 @@ export class TaskCheckForProofs extends WalletMonitorTask {
45
38
  return {
46
39
  run:
47
40
  TaskCheckForProofs.checkNow ||
48
- (this.triggerMsecs > 0 &&
49
- nowMsecsSinceEpoch - this.lastRunMsecsSinceEpoch > this.triggerMsecs)
41
+ (this.triggerMsecs > 0 && nowMsecsSinceEpoch - this.lastRunMsecsSinceEpoch > this.triggerMsecs)
50
42
  }
51
43
  }
52
44
 
@@ -60,14 +52,7 @@ export class TaskCheckForProofs extends WalletMonitorTask {
60
52
  for (;;) {
61
53
  const reqs = await this.storage.findProvenTxReqs({
62
54
  partial: {},
63
- status: [
64
- 'callback',
65
- 'unmined',
66
- 'nosend',
67
- 'sending',
68
- 'unknown',
69
- 'unconfirmed'
70
- ],
55
+ status: ['callback', 'unmined', 'nosend', 'sending', 'unknown', 'unconfirmed'],
71
56
  paged: { limit, offset }
72
57
  })
73
58
  if (reqs.length === 0) break
@@ -189,11 +174,7 @@ export class TaskCheckForProofs extends WalletMonitorTask {
189
174
  // one more time.
190
175
  //
191
176
  r = await this.monitor.services.getMerklePath(req.txid)
192
- ptx = await EntityProvenTx.fromReq(
193
- req,
194
- r,
195
- countsAsAttempt && req.status !== 'nosend'
196
- )
177
+ ptx = await EntityProvenTx.fromReq(req, r, countsAsAttempt && req.status !== 'nosend')
197
178
 
198
179
  if (ptx) {
199
180
  // We have a merklePath proof for the request (and a block header)
@@ -28,8 +28,6 @@ export class TaskClock extends WalletMonitorTask {
28
28
  }
29
29
 
30
30
  getNextMinute(): number {
31
- return (
32
- Math.ceil(Date.now() / this.monitor.oneMinute) * this.monitor.oneMinute
33
- )
31
+ return Math.ceil(Date.now() / this.monitor.oneMinute) * this.monitor.oneMinute
34
32
  }
35
33
  }
@@ -32,9 +32,7 @@ export class TaskFailAbandoned extends WalletMonitorTask {
32
32
  let offset = 0
33
33
  for (;;) {
34
34
  const now = new Date()
35
- const abandoned = new Date(
36
- now.getTime() - this.monitor.options.abandonedMsecs
37
- )
35
+ const abandoned = new Date(now.getTime() - this.monitor.options.abandonedMsecs)
38
36
  const done = await this.storage.runAsStorageProvider(async sp => {
39
37
  const txsAll = await sp.findTransactions({
40
38
  partial: {},
@@ -34,10 +34,7 @@ export class TaskNewHeader extends WalletMonitorTask {
34
34
  const skip = this.header.height - oldHeader.height - 1
35
35
  const skipped = skip > 0 ? ` SKIPPED ${skip}` : ''
36
36
  log = `new header: ${this.header.height} ${this.header.hash}${skipped}`
37
- } else if (
38
- oldHeader.height === this.header.height &&
39
- oldHeader.hash != this.header.hash
40
- ) {
37
+ } else if (oldHeader.height === this.header.height && oldHeader.hash != this.header.hash) {
41
38
  log = `reorg header: ${this.header.height} ${this.header.hash}`
42
39
  } else {
43
40
  isNew = false
@@ -49,8 +49,7 @@ export class TaskPurge extends WalletMonitorTask {
49
49
  return {
50
50
  run:
51
51
  TaskPurge.checkNow ||
52
- (this.triggerMsecs > 0 &&
53
- nowMsecsSinceEpoch - this.lastRunMsecsSinceEpoch > this.triggerMsecs)
52
+ (this.triggerMsecs > 0 && nowMsecsSinceEpoch - this.lastRunMsecsSinceEpoch > this.triggerMsecs)
54
53
  }
55
54
  }
56
55
 
@@ -29,9 +29,7 @@ export class TaskReviewStatus extends WalletMonitorTask {
29
29
 
30
30
  trigger(nowMsecsSinceEpoch: number): { run: boolean } {
31
31
  return {
32
- run:
33
- this.triggerMsecs > 0 &&
34
- nowMsecsSinceEpoch - this.lastRunMsecsSinceEpoch > this.triggerMsecs
32
+ run: this.triggerMsecs > 0 && nowMsecsSinceEpoch - this.lastRunMsecsSinceEpoch > this.triggerMsecs
35
33
  }
36
34
  }
37
35
 
@@ -34,9 +34,7 @@ export class TaskSendWaiting extends WalletMonitorTask {
34
34
  })
35
35
  if (reqs.length === 0) break
36
36
  log += `${reqs.length} reqs with status 'unsent'\n`
37
- const agedReqs = reqs.filter(
38
- req => verifyTruthy(req.updated_at) < agedLimit
39
- )
37
+ const agedReqs = reqs.filter(req => verifyTruthy(req.updated_at) < agedLimit)
40
38
  log += ` Of those reqs, ${agedReqs.length} where last updated before ${agedLimit.toISOString()}.\n`
41
39
  log += await this.processUnsent(agedReqs, 2)
42
40
  if (reqs.length < limit) break
@@ -62,10 +60,7 @@ export class TaskSendWaiting extends WalletMonitorTask {
62
60
  *
63
61
  * @param reqApis
64
62
  */
65
- async processUnsent(
66
- reqApis: TableProvenTxReq[],
67
- indent = 0
68
- ): Promise<string> {
63
+ async processUnsent(reqApis: TableProvenTxReq[], indent = 0): Promise<string> {
69
64
  let log = ''
70
65
  for (let i = 0; i < reqApis.length; i++) {
71
66
  const reqApi = reqApis[i]
@@ -84,9 +79,7 @@ export class TaskSendWaiting extends WalletMonitorTask {
84
79
  })
85
80
  for (const bra of batchReqApis) {
86
81
  // Remove any matching batchReqApis from reqApis
87
- const index = reqApis.findIndex(
88
- ra => ra.provenTxReqId === bra.provenTxReqId
89
- )
82
+ const index = reqApis.findIndex(ra => ra.provenTxReqId === bra.provenTxReqId)
90
83
  if (index > -1) reqApis.slice(index, index + 1)
91
84
  // And add to reqs being processed now:
92
85
  reqs.push(new EntityProvenTxReq(bra))
@@ -23,14 +23,8 @@ export interface CertOpsWallet {
23
23
  args: GetPublicKeyArgs,
24
24
  originator?: OriginatorDomainNameStringUnder250Bytes
25
25
  ): Promise<GetPublicKeyResult>
26
- encrypt(
27
- args: WalletEncryptArgs,
28
- originator?: OriginatorDomainNameStringUnder250Bytes
29
- ): Promise<WalletEncryptResult>
30
- decrypt(
31
- args: WalletDecryptArgs,
32
- originator?: OriginatorDomainNameStringUnder250Bytes
33
- ): Promise<WalletDecryptResult>
26
+ encrypt(args: WalletEncryptArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<WalletEncryptResult>
27
+ decrypt(args: WalletDecryptArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<WalletDecryptResult>
34
28
  }
35
29
 
36
30
  export class CertOps extends BsvCertificate {
@@ -42,15 +36,7 @@ export class CertOps extends BsvCertificate {
42
36
  public wallet: CertOpsWallet,
43
37
  wc: WalletCertificate
44
38
  ) {
45
- super(
46
- wc.type,
47
- wc.serialNumber,
48
- wc.subject,
49
- wc.certifier,
50
- wc.revocationOutpoint,
51
- wc.fields,
52
- wc.signature
53
- )
39
+ super(wc.type, wc.serialNumber, wc.subject, wc.certifier, wc.revocationOutpoint, wc.fields, wc.signature)
54
40
  }
55
41
 
56
42
  static async fromCounterparty(
@@ -96,13 +82,9 @@ export class CertOps extends BsvCertificate {
96
82
  return c
97
83
  }
98
84
 
99
- static async fromDecrypted(
100
- wallet: CertOpsWallet,
101
- wc: WalletCertificate
102
- ): Promise<CertOps> {
85
+ static async fromDecrypted(wallet: CertOpsWallet, wc: WalletCertificate): Promise<CertOps> {
103
86
  const c = new CertOps(wallet, wc)
104
- ;({ fields: c._encryptedFields, keyring: c._keyring } =
105
- await c.encryptFields())
87
+ ;({ fields: c._encryptedFields, keyring: c._keyring } = await c.encryptFields())
106
88
  c._decryptedFields = await c.decryptFields()
107
89
  return c
108
90
  }
@@ -129,15 +111,8 @@ export class CertOps extends BsvCertificate {
129
111
  certificate: WalletCertificate
130
112
  keyring: Record<CertificateFieldNameUnder50Bytes, string>
131
113
  } {
132
- if (
133
- !this._keyring ||
134
- !this._encryptedFields ||
135
- !this.signature ||
136
- this.signature.length === 0
137
- )
138
- throw new WERR_INVALID_OPERATION(
139
- `Certificate must be encrypted and signed prior to export.`
140
- )
114
+ if (!this._keyring || !this._encryptedFields || !this.signature || this.signature.length === 0)
115
+ throw new WERR_INVALID_OPERATION(`Certificate must be encrypted and signed prior to export.`)
141
116
  const certificate = this.toWalletCertificate()
142
117
  const keyring = this._keyring!
143
118
  return { certificate, keyring }
@@ -155,30 +130,19 @@ export class CertOps extends BsvCertificate {
155
130
  fields: Record<CertificateFieldNameUnder50Bytes, string>
156
131
  keyring: Record<CertificateFieldNameUnder50Bytes, string>
157
132
  }> {
158
- const fields: Record<CertificateFieldNameUnder50Bytes, string> =
159
- this._decryptedFields || this.fields
160
- const encryptedFields: Record<
161
- CertificateFieldNameUnder50Bytes,
162
- Base64String
163
- > = {}
133
+ const fields: Record<CertificateFieldNameUnder50Bytes, string> = this._decryptedFields || this.fields
134
+ const encryptedFields: Record<CertificateFieldNameUnder50Bytes, Base64String> = {}
164
135
  const keyring: Record<CertificateFieldNameUnder50Bytes, Base64String> = {}
165
136
 
166
137
  for (const fieldName of Object.keys(fields)) {
167
138
  const fieldSymmetricKey = SymmetricKey.fromRandom()
168
- const encryptedFieldValue = fieldSymmetricKey.encrypt(
169
- Utils.toArray(this.fields[fieldName], 'utf8')
170
- )
171
- encryptedFields[fieldName] = Utils.toBase64(
172
- encryptedFieldValue as number[]
173
- )
139
+ const encryptedFieldValue = fieldSymmetricKey.encrypt(Utils.toArray(this.fields[fieldName], 'utf8'))
140
+ encryptedFields[fieldName] = Utils.toBase64(encryptedFieldValue as number[])
174
141
 
175
142
  const encryptedFieldKey = await this.wallet.encrypt({
176
143
  plaintext: fieldSymmetricKey.toArray(),
177
144
  counterparty,
178
- ...CertOps.getProtocolForCertificateFieldEncryption(
179
- this.serialNumber,
180
- fieldName
181
- )
145
+ ...CertOps.getProtocolForCertificateFieldEncryption(this.serialNumber, fieldName)
182
146
  })
183
147
  keyring[fieldName] = Utils.toBase64(encryptedFieldKey.ciphertext)
184
148
  }
@@ -193,8 +157,7 @@ export class CertOps extends BsvCertificate {
193
157
  keyring?: Record<CertificateFieldNameUnder50Bytes, string>
194
158
  ): Promise<Record<CertificateFieldNameUnder50Bytes, string>> {
195
159
  keyring ||= this._keyring
196
- const fields: Record<CertificateFieldNameUnder50Bytes, Base64String> =
197
- this._encryptedFields || this.fields
160
+ const fields: Record<CertificateFieldNameUnder50Bytes, Base64String> = this._encryptedFields || this.fields
198
161
  const decryptedFields: Record<CertificateFieldNameUnder50Bytes, string> = {}
199
162
  if (!keyring) throw new sdk.WERR_INVALID_PARAMETER('keyring', 'valid')
200
163
 
@@ -203,15 +166,10 @@ export class CertOps extends BsvCertificate {
203
166
  const { plaintext: fieldRevelationKey } = await this.wallet.decrypt({
204
167
  ciphertext: Utils.toArray(keyring[fieldName], 'base64'),
205
168
  counterparty: counterparty || this.subject,
206
- ...CertOps.getProtocolForCertificateFieldEncryption(
207
- this.serialNumber,
208
- fieldName
209
- )
169
+ ...CertOps.getProtocolForCertificateFieldEncryption(this.serialNumber, fieldName)
210
170
  })
211
171
 
212
- const fieldValue = new SymmetricKey(fieldRevelationKey).decrypt(
213
- Utils.toArray(fields[fieldName], 'base64')
214
- )
172
+ const fieldValue = new SymmetricKey(fieldRevelationKey).decrypt(Utils.toArray(fields[fieldName], 'base64'))
215
173
  decryptedFields[fieldName] = Utils.toUTF8(fieldValue as number[])
216
174
  }
217
175
  this._keyring = keyring
@@ -233,20 +191,10 @@ export class CertOps extends BsvCertificate {
233
191
  keyring: Record<CertificateFieldNameUnder50Bytes, string>
234
192
  counterparty: PubKeyHex
235
193
  }> {
236
- if (
237
- !this._keyring ||
238
- !this._encryptedFields ||
239
- !this.signature ||
240
- this.signature.length === 0
241
- )
242
- throw new WERR_INVALID_OPERATION(
243
- `Certificate must be encrypted and signed prior to export.`
244
- )
194
+ if (!this._keyring || !this._encryptedFields || !this.signature || this.signature.length === 0)
195
+ throw new WERR_INVALID_OPERATION(`Certificate must be encrypted and signed prior to export.`)
245
196
  const certificate = this.toWalletCertificate()
246
- const keyring = await this.createKeyringForVerifier(
247
- counterparty,
248
- fieldsToReveal
249
- )
197
+ const keyring = await this.createKeyringForVerifier(counterparty, fieldsToReveal)
250
198
  // The exported counterparty is who we are to them...
251
199
  return {
252
200
  certificate,
@@ -272,24 +220,14 @@ export class CertOps extends BsvCertificate {
272
220
  verifierIdentityKey: PubKeyHex,
273
221
  fieldsToReveal: CertificateFieldNameUnder50Bytes[]
274
222
  ): Promise<Record<CertificateFieldNameUnder50Bytes, Base64String>> {
275
- if (!this._keyring || !this._encryptedFields)
276
- throw new sdk.WERR_INVALID_OPERATION(`certificate must be encrypted`)
277
- if (
278
- !Array.isArray(fieldsToReveal) ||
279
- fieldsToReveal.some(n => this._encryptedFields![n] === undefined)
280
- )
281
- throw new sdk.WERR_INVALID_PARAMETER(
282
- 'fieldsToReveal',
283
- `an array of certificate field names`
284
- )
223
+ if (!this._keyring || !this._encryptedFields) throw new sdk.WERR_INVALID_OPERATION(`certificate must be encrypted`)
224
+ if (!Array.isArray(fieldsToReveal) || fieldsToReveal.some(n => this._encryptedFields![n] === undefined))
225
+ throw new sdk.WERR_INVALID_PARAMETER('fieldsToReveal', `an array of certificate field names`)
285
226
  const fieldRevelationKeyring = {}
286
227
  for (const fieldName of fieldsToReveal) {
287
228
  // Create a keyID
288
229
  const encryptedFieldKey = this._keyring[fieldName]
289
- const protocol = CertOps.getProtocolForCertificateFieldEncryption(
290
- this.serialNumber,
291
- fieldName
292
- )
230
+ const protocol = CertOps.getProtocolForCertificateFieldEncryption(this.serialNumber, fieldName)
293
231
 
294
232
  // Decrypt the master field key
295
233
  const { plaintext: fieldKey } = await this.wallet.decrypt({
@@ -300,27 +238,20 @@ export class CertOps extends BsvCertificate {
300
238
 
301
239
  // Verify that derived key actually decrypts requested field
302
240
  try {
303
- new SymmetricKey(fieldKey).decrypt(
304
- Utils.toArray(this.fields[fieldName], 'base64')
305
- )
241
+ new SymmetricKey(fieldKey).decrypt(Utils.toArray(this.fields[fieldName], 'base64'))
306
242
  } catch (_) {
307
- throw new sdk.WERR_INTERNAL(
308
- `unable to decrypt field "${fieldName}" using derived field key.`
309
- )
243
+ throw new sdk.WERR_INTERNAL(`unable to decrypt field "${fieldName}" using derived field key.`)
310
244
  }
311
245
 
312
246
  // Encrypt derived fieldRevelationKey for verifier
313
- const { ciphertext: encryptedFieldRevelationKey } =
314
- await this.wallet.encrypt({
315
- plaintext: fieldKey,
316
- counterparty: verifierIdentityKey,
317
- ...protocol
318
- })
247
+ const { ciphertext: encryptedFieldRevelationKey } = await this.wallet.encrypt({
248
+ plaintext: fieldKey,
249
+ counterparty: verifierIdentityKey,
250
+ ...protocol
251
+ })
319
252
 
320
253
  // Add encryptedFieldRevelationKey to fieldRevelationKeyring
321
- fieldRevelationKeyring[fieldName] = Utils.toBase64(
322
- encryptedFieldRevelationKey
323
- )
254
+ fieldRevelationKeyring[fieldName] = Utils.toBase64(encryptedFieldRevelationKey)
324
255
  }
325
256
 
326
257
  // Return the field revelation keyring which can be used to create a verifiable certificate for a verifier.
@@ -333,10 +264,7 @@ export class CertOps extends BsvCertificate {
333
264
  */
334
265
  async encryptAndSignNewCertificate(): Promise<void> {
335
266
  if ((await getIdentityKey(this.wallet)) !== this.certifier)
336
- throw new sdk.WERR_INVALID_PARAMETER(
337
- 'wallet',
338
- 'the certifier for new certificate issuance.'
339
- )
267
+ throw new sdk.WERR_INVALID_PARAMETER('wallet', 'the certifier for new certificate issuance.')
340
268
 
341
269
  await this.encryptFields(this.subject)
342
270
  await this.sign(this.wallet as unknown as WalletInterface)
@@ -90,10 +90,7 @@ export class PrivilegedKeyManager implements ProtoWallet {
90
90
  * @param keyGetter - Asynchronous function that retrieves the PrivateKey from a secure environment.
91
91
  * @param retentionPeriod - Time in milliseconds to retain the obfuscated key in memory before zeroizing.
92
92
  */
93
- constructor(
94
- keyGetter: (reason: string) => Promise<PrivateKey>,
95
- retentionPeriod = 120_000
96
- ) {
93
+ constructor(keyGetter: (reason: string) => Promise<PrivateKey>, retentionPeriod = 120_000) {
97
94
  this.keyGetter = keyGetter
98
95
  this.retentionPeriod = retentionPeriod
99
96
 
@@ -192,8 +189,7 @@ export class PrivilegedKeyManager implements ProtoWallet {
192
189
  let offset = 0
193
190
 
194
191
  for (let i = 0; i < this.CHUNK_COUNT; i++) {
195
- const size =
196
- i === this.CHUNK_COUNT - 1 ? keyBytes.length - offset : chunkSize
192
+ const size = i === this.CHUNK_COUNT - 1 ? keyBytes.length - offset : chunkSize
197
193
  chunks.push(keyBytes.slice(offset, offset + size))
198
194
  offset += size
199
195
  }
@@ -256,9 +252,7 @@ export class PrivilegedKeyManager implements ProtoWallet {
256
252
  // if the numeric value has leading zeros.
257
253
  const buf = privKey.toArray()
258
254
  if (buf.length > 32) {
259
- throw new Error(
260
- 'PrivilegedKeyManager: Expected a 32-byte key, but got more.'
261
- )
255
+ throw new Error('PrivilegedKeyManager: Expected a 32-byte key, but got more.')
262
256
  }
263
257
  // Left-pad with zeros if needed
264
258
  const keyBytes = new Uint8Array(32)
@@ -336,67 +330,43 @@ export class PrivilegedKeyManager implements ProtoWallet {
336
330
  return fetchedKey
337
331
  }
338
332
 
339
- async getPublicKey(
340
- args: GetPublicKeyArgs
341
- ): Promise<{ publicKey: PubKeyHex }> {
342
- return new ProtoWallet(
343
- await this.getPrivilegedKey(args.privilegedReason as string)
344
- ).getPublicKey(args)
333
+ async getPublicKey(args: GetPublicKeyArgs): Promise<{ publicKey: PubKeyHex }> {
334
+ return new ProtoWallet(await this.getPrivilegedKey(args.privilegedReason as string)).getPublicKey(args)
345
335
  }
346
336
 
347
337
  async revealCounterpartyKeyLinkage(
348
338
  args: RevealCounterpartyKeyLinkageArgs
349
339
  ): Promise<RevealCounterpartyKeyLinkageResult> {
350
- return new ProtoWallet(
351
- await this.getPrivilegedKey(args.privilegedReason as string)
352
- ).revealCounterpartyKeyLinkage(args)
340
+ return new ProtoWallet(await this.getPrivilegedKey(args.privilegedReason as string)).revealCounterpartyKeyLinkage(
341
+ args
342
+ )
353
343
  }
354
344
 
355
- async revealSpecificKeyLinkage(
356
- args: RevealSpecificKeyLinkageArgs
357
- ): Promise<RevealSpecificKeyLinkageResult> {
358
- return new ProtoWallet(
359
- await this.getPrivilegedKey(args.privilegedReason as string)
360
- ).revealSpecificKeyLinkage(args)
345
+ async revealSpecificKeyLinkage(args: RevealSpecificKeyLinkageArgs): Promise<RevealSpecificKeyLinkageResult> {
346
+ return new ProtoWallet(await this.getPrivilegedKey(args.privilegedReason as string)).revealSpecificKeyLinkage(args)
361
347
  }
362
348
 
363
349
  async encrypt(args: WalletEncryptArgs): Promise<WalletEncryptResult> {
364
- return new ProtoWallet(
365
- await this.getPrivilegedKey(args.privilegedReason as string)
366
- ).encrypt(args)
350
+ return new ProtoWallet(await this.getPrivilegedKey(args.privilegedReason as string)).encrypt(args)
367
351
  }
368
352
 
369
353
  async decrypt(args: WalletDecryptArgs): Promise<WalletDecryptResult> {
370
- return new ProtoWallet(
371
- await this.getPrivilegedKey(args.privilegedReason as string)
372
- ).decrypt(args)
354
+ return new ProtoWallet(await this.getPrivilegedKey(args.privilegedReason as string)).decrypt(args)
373
355
  }
374
356
 
375
357
  async createHmac(args: CreateHmacArgs): Promise<CreateHmacResult> {
376
- return new ProtoWallet(
377
- await this.getPrivilegedKey(args.privilegedReason as string)
378
- ).createHmac(args)
358
+ return new ProtoWallet(await this.getPrivilegedKey(args.privilegedReason as string)).createHmac(args)
379
359
  }
380
360
 
381
361
  async verifyHmac(args: VerifyHmacArgs): Promise<VerifyHmacResult> {
382
- return new ProtoWallet(
383
- await this.getPrivilegedKey(args.privilegedReason as string)
384
- ).verifyHmac(args)
362
+ return new ProtoWallet(await this.getPrivilegedKey(args.privilegedReason as string)).verifyHmac(args)
385
363
  }
386
364
 
387
- async createSignature(
388
- args: CreateSignatureArgs
389
- ): Promise<CreateSignatureResult> {
390
- return new ProtoWallet(
391
- await this.getPrivilegedKey(args.privilegedReason as string)
392
- ).createSignature(args)
365
+ async createSignature(args: CreateSignatureArgs): Promise<CreateSignatureResult> {
366
+ return new ProtoWallet(await this.getPrivilegedKey(args.privilegedReason as string)).createSignature(args)
393
367
  }
394
368
 
395
- async verifySignature(
396
- args: VerifySignatureArgs
397
- ): Promise<VerifySignatureResult> {
398
- return new ProtoWallet(
399
- await this.getPrivilegedKey(args.privilegedReason as string)
400
- ).verifySignature(args)
369
+ async verifySignature(args: VerifySignatureArgs): Promise<VerifySignatureResult> {
370
+ return new ProtoWallet(await this.getPrivilegedKey(args.privilegedReason as string)).verifySignature(args)
401
371
  }
402
372
  }
@@ -28,10 +28,7 @@ export class WERR_INTERNAL extends WalletError {
28
28
  */
29
29
  export class WERR_INVALID_OPERATION extends WalletError {
30
30
  constructor(message?: string) {
31
- super(
32
- 'WERR_INVALID_OPERATION',
33
- message ?? `An invalid operation was requested.`
34
- )
31
+ super('WERR_INVALID_OPERATION', message ?? `An invalid operation was requested.`)
35
32
  }
36
33
  }
37
34
 
@@ -40,10 +37,7 @@ export class WERR_INVALID_OPERATION extends WalletError {
40
37
  */
41
38
  export class WERR_BROADCAST_UNAVAILABLE extends WalletError {
42
39
  constructor(message?: string) {
43
- super(
44
- 'WERR_BROADCAST_UNAVAILABLE',
45
- `Unable to broadcast transaction at this time.`
46
- )
40
+ super('WERR_BROADCAST_UNAVAILABLE', `Unable to broadcast transaction at this time.`)
47
41
  }
48
42
  }
49
43
 
@@ -57,10 +51,7 @@ export class WERR_INVALID_PARAMETER extends WalletError {
57
51
  public parameter: string,
58
52
  mustBe?: string
59
53
  ) {
60
- super(
61
- 'WERR_INVALID_PARAMETER',
62
- `The ${parameter} parameter must be ${mustBe ?? 'valid.'}`
63
- )
54
+ super('WERR_INVALID_PARAMETER', `The ${parameter} parameter must be ${mustBe ?? 'valid.'}`)
64
55
  }
65
56
  }
66
57
 
@@ -71,10 +62,7 @@ export class WERR_INVALID_PARAMETER extends WalletError {
71
62
  */
72
63
  export class WERR_MISSING_PARAMETER extends WalletError {
73
64
  constructor(public parameter: string) {
74
- super(
75
- 'WERR_MISSING_PARAMETER',
76
- `The required ${parameter} parameter is missing.`
77
- )
65
+ super('WERR_MISSING_PARAMETER', `The required ${parameter} parameter is missing.`)
78
66
  }
79
67
  }
80
68
 
@@ -92,11 +80,7 @@ export class WERR_BAD_REQUEST extends WalletError {
92
80
  */
93
81
  export class WERR_NETWORK_CHAIN extends WalletError {
94
82
  constructor(message?: string) {
95
- super(
96
- 'WERR_NETWORK_CHAIN',
97
- message ??
98
- 'Configured network chain is invalid or does not match across services.'
99
- )
83
+ super('WERR_NETWORK_CHAIN', message ?? 'Configured network chain is invalid or does not match across services.')
100
84
  }
101
85
  }
102
86
 
@@ -105,10 +89,7 @@ export class WERR_NETWORK_CHAIN extends WalletError {
105
89
  */
106
90
  export class WERR_UNAUTHORIZED extends WalletError {
107
91
  constructor(message?: string) {
108
- super(
109
- 'WERR_UNAUTHORIZED',
110
- message ?? 'Access is denied due to an authorization error.'
111
- )
92
+ super('WERR_UNAUTHORIZED', message ?? 'Access is denied due to an authorization error.')
112
93
  }
113
94
  }
114
95