@bsv/wallet-toolbox 1.3.20 → 1.3.22

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 (517) hide show
  1. package/.github/workflows/push.yaml +5 -0
  2. package/mobile/out/src/CWIStyleWalletManager.d.ts +437 -0
  3. package/mobile/out/src/CWIStyleWalletManager.d.ts.map +1 -0
  4. package/mobile/out/src/CWIStyleWalletManager.js +1255 -0
  5. package/mobile/out/src/CWIStyleWalletManager.js.map +1 -0
  6. package/mobile/out/src/SetupClient.d.ts +126 -0
  7. package/mobile/out/src/SetupClient.d.ts.map +1 -0
  8. package/mobile/out/src/SetupClient.js +220 -0
  9. package/mobile/out/src/SetupClient.js.map +1 -0
  10. package/mobile/out/src/SetupWallet.d.ts +100 -0
  11. package/mobile/out/src/SetupWallet.d.ts.map +1 -0
  12. package/mobile/out/src/SetupWallet.js +3 -0
  13. package/mobile/out/src/SetupWallet.js.map +1 -0
  14. package/mobile/out/src/SimpleWalletManager.d.ts +169 -0
  15. package/mobile/out/src/SimpleWalletManager.d.ts.map +1 -0
  16. package/mobile/out/src/SimpleWalletManager.js +315 -0
  17. package/mobile/out/src/SimpleWalletManager.js.map +1 -0
  18. package/mobile/out/src/Wallet.d.ts +177 -0
  19. package/mobile/out/src/Wallet.d.ts.map +1 -0
  20. package/mobile/out/src/Wallet.js +742 -0
  21. package/mobile/out/src/Wallet.js.map +1 -0
  22. package/mobile/out/src/WalletAuthenticationManager.d.ts +33 -0
  23. package/mobile/out/src/WalletAuthenticationManager.d.ts.map +1 -0
  24. package/mobile/out/src/WalletAuthenticationManager.js +113 -0
  25. package/mobile/out/src/WalletAuthenticationManager.js.map +1 -0
  26. package/mobile/out/src/WalletPermissionsManager.d.ts +598 -0
  27. package/mobile/out/src/WalletPermissionsManager.d.ts.map +1 -0
  28. package/mobile/out/src/WalletPermissionsManager.js +1868 -0
  29. package/mobile/out/src/WalletPermissionsManager.js.map +1 -0
  30. package/mobile/out/src/WalletSettingsManager.d.ts +52 -0
  31. package/mobile/out/src/WalletSettingsManager.d.ts.map +1 -0
  32. package/mobile/out/src/WalletSettingsManager.js +82 -0
  33. package/mobile/out/src/WalletSettingsManager.js.map +1 -0
  34. package/mobile/out/src/index.client.d.ts +19 -0
  35. package/mobile/out/src/index.client.d.ts.map +1 -0
  36. package/mobile/out/src/index.client.js +58 -0
  37. package/mobile/out/src/index.client.js.map +1 -0
  38. package/mobile/out/src/index.mobile.d.ts +19 -0
  39. package/mobile/out/src/index.mobile.d.ts.map +1 -0
  40. package/mobile/out/src/index.mobile.js +58 -0
  41. package/mobile/out/src/index.mobile.js.map +1 -0
  42. package/mobile/out/src/monitor/Monitor.d.ts +91 -0
  43. package/mobile/out/src/monitor/Monitor.d.ts.map +1 -0
  44. package/mobile/out/src/monitor/Monitor.js +298 -0
  45. package/mobile/out/src/monitor/Monitor.js.map +1 -0
  46. package/mobile/out/src/monitor/tasks/TaskCheckForProofs.d.ts +53 -0
  47. package/mobile/out/src/monitor/tasks/TaskCheckForProofs.d.ts.map +1 -0
  48. package/mobile/out/src/monitor/tasks/TaskCheckForProofs.js +194 -0
  49. package/mobile/out/src/monitor/tasks/TaskCheckForProofs.js.map +1 -0
  50. package/mobile/out/src/monitor/tasks/TaskCheckNoSends.d.ts +33 -0
  51. package/mobile/out/src/monitor/tasks/TaskCheckNoSends.d.ts.map +1 -0
  52. package/mobile/out/src/monitor/tasks/TaskCheckNoSends.js +65 -0
  53. package/mobile/out/src/monitor/tasks/TaskCheckNoSends.js.map +1 -0
  54. package/mobile/out/src/monitor/tasks/TaskClock.d.ts +14 -0
  55. package/mobile/out/src/monitor/tasks/TaskClock.d.ts.map +1 -0
  56. package/mobile/out/src/monitor/tasks/TaskClock.js +27 -0
  57. package/mobile/out/src/monitor/tasks/TaskClock.js.map +1 -0
  58. package/mobile/out/src/monitor/tasks/TaskFailAbandoned.d.ts +20 -0
  59. package/mobile/out/src/monitor/tasks/TaskFailAbandoned.d.ts.map +1 -0
  60. package/mobile/out/src/monitor/tasks/TaskFailAbandoned.js +52 -0
  61. package/mobile/out/src/monitor/tasks/TaskFailAbandoned.js.map +1 -0
  62. package/mobile/out/src/monitor/tasks/TaskNewHeader.d.ts +15 -0
  63. package/mobile/out/src/monitor/tasks/TaskNewHeader.d.ts.map +1 -0
  64. package/mobile/out/src/monitor/tasks/TaskNewHeader.js +43 -0
  65. package/mobile/out/src/monitor/tasks/TaskNewHeader.js.map +1 -0
  66. package/mobile/out/src/monitor/tasks/TaskPurge.d.ts +45 -0
  67. package/mobile/out/src/monitor/tasks/TaskPurge.d.ts.map +1 -0
  68. package/mobile/out/src/monitor/tasks/TaskPurge.js +34 -0
  69. package/mobile/out/src/monitor/tasks/TaskPurge.js.map +1 -0
  70. package/mobile/out/src/monitor/tasks/TaskReviewStatus.d.ts +26 -0
  71. package/mobile/out/src/monitor/tasks/TaskReviewStatus.d.ts.map +1 -0
  72. package/mobile/out/src/monitor/tasks/TaskReviewStatus.js +43 -0
  73. package/mobile/out/src/monitor/tasks/TaskReviewStatus.js.map +1 -0
  74. package/mobile/out/src/monitor/tasks/TaskSendWaiting.d.ts +35 -0
  75. package/mobile/out/src/monitor/tasks/TaskSendWaiting.d.ts.map +1 -0
  76. package/mobile/out/src/monitor/tasks/TaskSendWaiting.js +107 -0
  77. package/mobile/out/src/monitor/tasks/TaskSendWaiting.js.map +1 -0
  78. package/mobile/out/src/monitor/tasks/TaskSyncWhenIdle.d.ts +12 -0
  79. package/mobile/out/src/monitor/tasks/TaskSyncWhenIdle.d.ts.map +1 -0
  80. package/mobile/out/src/monitor/tasks/TaskSyncWhenIdle.js +22 -0
  81. package/mobile/out/src/monitor/tasks/TaskSyncWhenIdle.js.map +1 -0
  82. package/mobile/out/src/monitor/tasks/TaskUnFail.d.ts +41 -0
  83. package/mobile/out/src/monitor/tasks/TaskUnFail.d.ts.map +1 -0
  84. package/mobile/out/src/monitor/tasks/TaskUnFail.js +144 -0
  85. package/mobile/out/src/monitor/tasks/TaskUnFail.js.map +1 -0
  86. package/mobile/out/src/monitor/tasks/WalletMonitorTask.d.ts +40 -0
  87. package/mobile/out/src/monitor/tasks/WalletMonitorTask.d.ts.map +1 -0
  88. package/mobile/out/src/monitor/tasks/WalletMonitorTask.js +37 -0
  89. package/mobile/out/src/monitor/tasks/WalletMonitorTask.js.map +1 -0
  90. package/mobile/out/src/sdk/CertOpsWallet.d.ts +7 -0
  91. package/mobile/out/src/sdk/CertOpsWallet.d.ts.map +1 -0
  92. package/mobile/out/src/sdk/CertOpsWallet.js +3 -0
  93. package/mobile/out/src/sdk/CertOpsWallet.js.map +1 -0
  94. package/mobile/out/src/sdk/PrivilegedKeyManager.d.ts +125 -0
  95. package/mobile/out/src/sdk/PrivilegedKeyManager.d.ts.map +1 -0
  96. package/mobile/out/src/sdk/PrivilegedKeyManager.js +293 -0
  97. package/mobile/out/src/sdk/PrivilegedKeyManager.js.map +1 -0
  98. package/mobile/out/src/sdk/WERR_errors.d.ts +115 -0
  99. package/mobile/out/src/sdk/WERR_errors.d.ts.map +1 -0
  100. package/mobile/out/src/sdk/WERR_errors.js +158 -0
  101. package/mobile/out/src/sdk/WERR_errors.js.map +1 -0
  102. package/mobile/out/src/sdk/WalletError.d.ts +44 -0
  103. package/mobile/out/src/sdk/WalletError.d.ts.map +1 -0
  104. package/mobile/out/src/sdk/WalletError.js +118 -0
  105. package/mobile/out/src/sdk/WalletError.js.map +1 -0
  106. package/mobile/out/src/sdk/WalletServices.interfaces.d.ts +430 -0
  107. package/mobile/out/src/sdk/WalletServices.interfaces.d.ts.map +1 -0
  108. package/mobile/out/src/sdk/WalletServices.interfaces.js +3 -0
  109. package/mobile/out/src/sdk/WalletServices.interfaces.js.map +1 -0
  110. package/mobile/out/src/sdk/WalletSigner.interfaces.d.ts +10 -0
  111. package/mobile/out/src/sdk/WalletSigner.interfaces.d.ts.map +1 -0
  112. package/mobile/out/src/sdk/WalletSigner.interfaces.js +3 -0
  113. package/mobile/out/src/sdk/WalletSigner.interfaces.js.map +1 -0
  114. package/mobile/out/src/sdk/WalletStorage.interfaces.d.ts +452 -0
  115. package/mobile/out/src/sdk/WalletStorage.interfaces.d.ts.map +1 -0
  116. package/mobile/out/src/sdk/WalletStorage.interfaces.js +3 -0
  117. package/mobile/out/src/sdk/WalletStorage.interfaces.js.map +1 -0
  118. package/mobile/out/src/sdk/index.d.ts +10 -0
  119. package/mobile/out/src/sdk/index.d.ts.map +1 -0
  120. package/mobile/out/src/sdk/index.js +26 -0
  121. package/mobile/out/src/sdk/index.js.map +1 -0
  122. package/mobile/out/src/sdk/types.d.ts +158 -0
  123. package/mobile/out/src/sdk/types.d.ts.map +1 -0
  124. package/mobile/out/src/sdk/types.js +90 -0
  125. package/mobile/out/src/sdk/types.js.map +1 -0
  126. package/mobile/out/src/sdk/validationHelpers.d.ts +301 -0
  127. package/mobile/out/src/sdk/validationHelpers.d.ts.map +1 -0
  128. package/mobile/out/src/sdk/validationHelpers.js +629 -0
  129. package/mobile/out/src/sdk/validationHelpers.js.map +1 -0
  130. package/mobile/out/src/services/ServiceCollection.d.ts +25 -0
  131. package/mobile/out/src/services/ServiceCollection.d.ts.map +1 -0
  132. package/mobile/out/src/services/ServiceCollection.js +43 -0
  133. package/mobile/out/src/services/ServiceCollection.js.map +1 -0
  134. package/mobile/out/src/services/Services.d.ts +67 -0
  135. package/mobile/out/src/services/Services.d.ts.map +1 -0
  136. package/mobile/out/src/services/Services.js +391 -0
  137. package/mobile/out/src/services/Services.js.map +1 -0
  138. package/mobile/out/src/services/chaintracker/ChaintracksChainTracker.d.ts +15 -0
  139. package/mobile/out/src/services/chaintracker/ChaintracksChainTracker.d.ts.map +1 -0
  140. package/mobile/out/src/services/chaintracker/ChaintracksChainTracker.js +51 -0
  141. package/mobile/out/src/services/chaintracker/ChaintracksChainTracker.js.map +1 -0
  142. package/mobile/out/src/services/chaintracker/chaintracks/BlockHeaderApi.d.ts +98 -0
  143. package/mobile/out/src/services/chaintracker/chaintracks/BlockHeaderApi.d.ts.map +1 -0
  144. package/mobile/out/src/services/chaintracker/chaintracks/BlockHeaderApi.js +38 -0
  145. package/mobile/out/src/services/chaintracker/chaintracks/BlockHeaderApi.js.map +1 -0
  146. package/mobile/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts +36 -0
  147. package/mobile/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts.map +1 -0
  148. package/mobile/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js +128 -0
  149. package/mobile/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js.map +1 -0
  150. package/mobile/out/src/services/chaintracker/chaintracks/index.d.ts +3 -0
  151. package/mobile/out/src/services/chaintracker/chaintracks/index.d.ts.map +1 -0
  152. package/mobile/out/src/services/chaintracker/chaintracks/index.js +19 -0
  153. package/mobile/out/src/services/chaintracker/chaintracks/index.js.map +1 -0
  154. package/mobile/out/src/services/chaintracker/index.d.ts +3 -0
  155. package/mobile/out/src/services/chaintracker/index.d.ts.map +1 -0
  156. package/mobile/out/src/services/chaintracker/index.js +19 -0
  157. package/mobile/out/src/services/chaintracker/index.js.map +1 -0
  158. package/mobile/out/src/services/createDefaultWalletServicesOptions.d.ts +4 -0
  159. package/mobile/out/src/services/createDefaultWalletServicesOptions.d.ts.map +1 -0
  160. package/mobile/out/src/services/createDefaultWalletServicesOptions.js +46 -0
  161. package/mobile/out/src/services/createDefaultWalletServicesOptions.js.map +1 -0
  162. package/mobile/out/src/services/index.d.ts +2 -0
  163. package/mobile/out/src/services/index.d.ts.map +1 -0
  164. package/mobile/out/src/services/index.js +18 -0
  165. package/mobile/out/src/services/index.js.map +1 -0
  166. package/mobile/out/src/services/providers/ARC.d.ts +91 -0
  167. package/mobile/out/src/services/providers/ARC.d.ts.map +1 -0
  168. package/mobile/out/src/services/providers/ARC.js +267 -0
  169. package/mobile/out/src/services/providers/ARC.js.map +1 -0
  170. package/mobile/out/src/services/providers/Bitails.d.ts +49 -0
  171. package/mobile/out/src/services/providers/Bitails.d.ts.map +1 -0
  172. package/mobile/out/src/services/providers/Bitails.js +222 -0
  173. package/mobile/out/src/services/providers/Bitails.js.map +1 -0
  174. package/mobile/out/src/services/providers/SdkWhatsOnChain.d.ts +21 -0
  175. package/mobile/out/src/services/providers/SdkWhatsOnChain.d.ts.map +1 -0
  176. package/mobile/out/src/services/providers/SdkWhatsOnChain.js +67 -0
  177. package/mobile/out/src/services/providers/SdkWhatsOnChain.js.map +1 -0
  178. package/mobile/out/src/services/providers/WhatsOnChain.d.ts +71 -0
  179. package/mobile/out/src/services/providers/WhatsOnChain.d.ts.map +1 -0
  180. package/mobile/out/src/services/providers/WhatsOnChain.js +582 -0
  181. package/mobile/out/src/services/providers/WhatsOnChain.js.map +1 -0
  182. package/mobile/out/src/services/providers/echangeRates.d.ts +12 -0
  183. package/mobile/out/src/services/providers/echangeRates.d.ts.map +1 -0
  184. package/mobile/out/src/services/providers/echangeRates.js +237 -0
  185. package/mobile/out/src/services/providers/echangeRates.js.map +1 -0
  186. package/mobile/out/src/services/providers/getBeefForTxid.d.ts +4 -0
  187. package/mobile/out/src/services/providers/getBeefForTxid.d.ts.map +1 -0
  188. package/mobile/out/src/services/providers/getBeefForTxid.js +286 -0
  189. package/mobile/out/src/services/providers/getBeefForTxid.js.map +1 -0
  190. package/mobile/out/src/signer/WalletSigner.d.ts +11 -0
  191. package/mobile/out/src/signer/WalletSigner.d.ts.map +1 -0
  192. package/mobile/out/src/signer/WalletSigner.js +13 -0
  193. package/mobile/out/src/signer/WalletSigner.js.map +1 -0
  194. package/mobile/out/src/signer/methods/acquireDirectCertificate.d.ts +4 -0
  195. package/mobile/out/src/signer/methods/acquireDirectCertificate.d.ts.map +1 -0
  196. package/mobile/out/src/signer/methods/acquireDirectCertificate.js +45 -0
  197. package/mobile/out/src/signer/methods/acquireDirectCertificate.js.map +1 -0
  198. package/mobile/out/src/signer/methods/buildSignableTransaction.d.ts +10 -0
  199. package/mobile/out/src/signer/methods/buildSignableTransaction.d.ts.map +1 -0
  200. package/mobile/out/src/signer/methods/buildSignableTransaction.js +126 -0
  201. package/mobile/out/src/signer/methods/buildSignableTransaction.js.map +1 -0
  202. package/mobile/out/src/signer/methods/createAction.d.ts +20 -0
  203. package/mobile/out/src/signer/methods/createAction.d.ts.map +1 -0
  204. package/mobile/out/src/signer/methods/createAction.js +160 -0
  205. package/mobile/out/src/signer/methods/createAction.js.map +1 -0
  206. package/mobile/out/src/signer/methods/internalizeAction.d.ts +31 -0
  207. package/mobile/out/src/signer/methods/internalizeAction.d.ts.map +1 -0
  208. package/mobile/out/src/signer/methods/internalizeAction.js +95 -0
  209. package/mobile/out/src/signer/methods/internalizeAction.js.map +1 -0
  210. package/mobile/out/src/signer/methods/proveCertificate.d.ts +4 -0
  211. package/mobile/out/src/signer/methods/proveCertificate.d.ts.map +1 -0
  212. package/mobile/out/src/signer/methods/proveCertificate.js +29 -0
  213. package/mobile/out/src/signer/methods/proveCertificate.js.map +1 -0
  214. package/mobile/out/src/signer/methods/signAction.d.ts +13 -0
  215. package/mobile/out/src/signer/methods/signAction.d.ts.map +1 -0
  216. package/mobile/out/src/signer/methods/signAction.js +89 -0
  217. package/mobile/out/src/signer/methods/signAction.js.map +1 -0
  218. package/mobile/out/src/storage/StorageIdb.d.ts +208 -0
  219. package/mobile/out/src/storage/StorageIdb.d.ts.map +1 -0
  220. package/mobile/out/src/storage/StorageIdb.js +2296 -0
  221. package/mobile/out/src/storage/StorageIdb.js.map +1 -0
  222. package/mobile/out/src/storage/StorageProvider.d.ts +209 -0
  223. package/mobile/out/src/storage/StorageProvider.d.ts.map +1 -0
  224. package/mobile/out/src/storage/StorageProvider.js +550 -0
  225. package/mobile/out/src/storage/StorageProvider.js.map +1 -0
  226. package/mobile/out/src/storage/StorageReader.d.ts +76 -0
  227. package/mobile/out/src/storage/StorageReader.d.ts.map +1 -0
  228. package/mobile/out/src/storage/StorageReader.js +129 -0
  229. package/mobile/out/src/storage/StorageReader.js.map +1 -0
  230. package/mobile/out/src/storage/StorageReaderWriter.d.ts +87 -0
  231. package/mobile/out/src/storage/StorageReaderWriter.d.ts.map +1 -0
  232. package/mobile/out/src/storage/StorageReaderWriter.js +338 -0
  233. package/mobile/out/src/storage/StorageReaderWriter.js.map +1 -0
  234. package/mobile/out/src/storage/StorageSyncReader.d.ts +17 -0
  235. package/mobile/out/src/storage/StorageSyncReader.d.ts.map +1 -0
  236. package/mobile/out/src/storage/StorageSyncReader.js +38 -0
  237. package/mobile/out/src/storage/StorageSyncReader.js.map +1 -0
  238. package/mobile/out/src/storage/WalletStorageManager.d.ts +184 -0
  239. package/mobile/out/src/storage/WalletStorageManager.d.ts.map +1 -0
  240. package/mobile/out/src/storage/WalletStorageManager.js +665 -0
  241. package/mobile/out/src/storage/WalletStorageManager.js.map +1 -0
  242. package/mobile/out/src/storage/index.client.d.ts +8 -0
  243. package/mobile/out/src/storage/index.client.d.ts.map +1 -0
  244. package/mobile/out/src/storage/index.client.js +24 -0
  245. package/mobile/out/src/storage/index.client.js.map +1 -0
  246. package/mobile/out/src/storage/index.mobile.d.ts +7 -0
  247. package/mobile/out/src/storage/index.mobile.d.ts.map +1 -0
  248. package/mobile/out/src/storage/index.mobile.js +23 -0
  249. package/mobile/out/src/storage/index.mobile.js.map +1 -0
  250. package/mobile/out/src/storage/methods/ListActionsSpecOp.d.ts +16 -0
  251. package/mobile/out/src/storage/methods/ListActionsSpecOp.d.ts.map +1 -0
  252. package/mobile/out/src/storage/methods/ListActionsSpecOp.js +40 -0
  253. package/mobile/out/src/storage/methods/ListActionsSpecOp.js.map +1 -0
  254. package/mobile/out/src/storage/methods/ListOutputsSpecOp.d.ts +26 -0
  255. package/mobile/out/src/storage/methods/ListOutputsSpecOp.d.ts.map +1 -0
  256. package/mobile/out/src/storage/methods/ListOutputsSpecOp.js +71 -0
  257. package/mobile/out/src/storage/methods/ListOutputsSpecOp.js.map +1 -0
  258. package/mobile/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts +41 -0
  259. package/mobile/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts.map +1 -0
  260. package/mobile/out/src/storage/methods/attemptToPostReqsToNetwork.js +320 -0
  261. package/mobile/out/src/storage/methods/attemptToPostReqsToNetwork.js.map +1 -0
  262. package/mobile/out/src/storage/methods/createAction.d.ts +24 -0
  263. package/mobile/out/src/storage/methods/createAction.d.ts.map +1 -0
  264. package/mobile/out/src/storage/methods/createAction.js +705 -0
  265. package/mobile/out/src/storage/methods/createAction.js.map +1 -0
  266. package/mobile/out/src/storage/methods/generateChange.d.ts +119 -0
  267. package/mobile/out/src/storage/methods/generateChange.d.ts.map +1 -0
  268. package/mobile/out/src/storage/methods/generateChange.js +448 -0
  269. package/mobile/out/src/storage/methods/generateChange.js.map +1 -0
  270. package/mobile/out/src/storage/methods/getBeefForTransaction.d.ts +22 -0
  271. package/mobile/out/src/storage/methods/getBeefForTransaction.d.ts.map +1 -0
  272. package/mobile/out/src/storage/methods/getBeefForTransaction.js +92 -0
  273. package/mobile/out/src/storage/methods/getBeefForTransaction.js.map +1 -0
  274. package/mobile/out/src/storage/methods/getSyncChunk.d.ts +10 -0
  275. package/mobile/out/src/storage/methods/getSyncChunk.d.ts.map +1 -0
  276. package/mobile/out/src/storage/methods/getSyncChunk.js +271 -0
  277. package/mobile/out/src/storage/methods/getSyncChunk.js.map +1 -0
  278. package/mobile/out/src/storage/methods/internalizeAction.d.ts +38 -0
  279. package/mobile/out/src/storage/methods/internalizeAction.d.ts.map +1 -0
  280. package/mobile/out/src/storage/methods/internalizeAction.js +371 -0
  281. package/mobile/out/src/storage/methods/internalizeAction.js.map +1 -0
  282. package/mobile/out/src/storage/methods/listActionsIdb.d.ts +5 -0
  283. package/mobile/out/src/storage/methods/listActionsIdb.d.ts.map +1 -0
  284. package/mobile/out/src/storage/methods/listActionsIdb.js +155 -0
  285. package/mobile/out/src/storage/methods/listActionsIdb.js.map +1 -0
  286. package/mobile/out/src/storage/methods/listCertificates.d.ts +5 -0
  287. package/mobile/out/src/storage/methods/listCertificates.d.ts.map +1 -0
  288. package/mobile/out/src/storage/methods/listCertificates.js +68 -0
  289. package/mobile/out/src/storage/methods/listCertificates.js.map +1 -0
  290. package/mobile/out/src/storage/methods/listOutputsIdb.d.ts +5 -0
  291. package/mobile/out/src/storage/methods/listOutputsIdb.d.ts.map +1 -0
  292. package/mobile/out/src/storage/methods/listOutputsIdb.js +181 -0
  293. package/mobile/out/src/storage/methods/listOutputsIdb.js.map +1 -0
  294. package/mobile/out/src/storage/methods/processAction.d.ts +35 -0
  295. package/mobile/out/src/storage/methods/processAction.d.ts.map +1 -0
  296. package/mobile/out/src/storage/methods/processAction.js +311 -0
  297. package/mobile/out/src/storage/methods/processAction.js.map +1 -0
  298. package/mobile/out/src/storage/methods/purgeDataIdb.d.ts +4 -0
  299. package/mobile/out/src/storage/methods/purgeDataIdb.d.ts.map +1 -0
  300. package/mobile/out/src/storage/methods/purgeDataIdb.js +9 -0
  301. package/mobile/out/src/storage/methods/purgeDataIdb.js.map +1 -0
  302. package/mobile/out/src/storage/methods/reviewStatusIdb.d.ts +20 -0
  303. package/mobile/out/src/storage/methods/reviewStatusIdb.d.ts.map +1 -0
  304. package/mobile/out/src/storage/methods/reviewStatusIdb.js +35 -0
  305. package/mobile/out/src/storage/methods/reviewStatusIdb.js.map +1 -0
  306. package/mobile/out/src/storage/remoting/StorageClient.d.ts +283 -0
  307. package/mobile/out/src/storage/remoting/StorageClient.d.ts.map +1 -0
  308. package/mobile/out/src/storage/remoting/StorageClient.js +477 -0
  309. package/mobile/out/src/storage/remoting/StorageClient.js.map +1 -0
  310. package/mobile/out/src/storage/schema/StorageIdbSchema.d.ts +133 -0
  311. package/mobile/out/src/storage/schema/StorageIdbSchema.d.ts.map +1 -0
  312. package/mobile/out/src/storage/schema/StorageIdbSchema.js +3 -0
  313. package/mobile/out/src/storage/schema/StorageIdbSchema.js.map +1 -0
  314. package/mobile/out/src/storage/schema/entities/EntityBase.d.ts +105 -0
  315. package/mobile/out/src/storage/schema/entities/EntityBase.d.ts.map +1 -0
  316. package/mobile/out/src/storage/schema/entities/EntityBase.js +100 -0
  317. package/mobile/out/src/storage/schema/entities/EntityBase.js.map +1 -0
  318. package/mobile/out/src/storage/schema/entities/EntityCertificate.d.ts +43 -0
  319. package/mobile/out/src/storage/schema/entities/EntityCertificate.d.ts.map +1 -0
  320. package/mobile/out/src/storage/schema/entities/EntityCertificate.js +162 -0
  321. package/mobile/out/src/storage/schema/entities/EntityCertificate.js.map +1 -0
  322. package/mobile/out/src/storage/schema/entities/EntityCertificateField.d.ts +32 -0
  323. package/mobile/out/src/storage/schema/entities/EntityCertificateField.d.ts.map +1 -0
  324. package/mobile/out/src/storage/schema/entities/EntityCertificateField.js +111 -0
  325. package/mobile/out/src/storage/schema/entities/EntityCertificateField.js.map +1 -0
  326. package/mobile/out/src/storage/schema/entities/EntityCommission.d.ts +37 -0
  327. package/mobile/out/src/storage/schema/entities/EntityCommission.d.ts.map +1 -0
  328. package/mobile/out/src/storage/schema/entities/EntityCommission.js +127 -0
  329. package/mobile/out/src/storage/schema/entities/EntityCommission.js.map +1 -0
  330. package/mobile/out/src/storage/schema/entities/EntityOutput.d.ts +67 -0
  331. package/mobile/out/src/storage/schema/entities/EntityOutput.d.ts.map +1 -0
  332. package/mobile/out/src/storage/schema/entities/EntityOutput.js +264 -0
  333. package/mobile/out/src/storage/schema/entities/EntityOutput.js.map +1 -0
  334. package/mobile/out/src/storage/schema/entities/EntityOutputBasket.d.ts +35 -0
  335. package/mobile/out/src/storage/schema/entities/EntityOutputBasket.d.ts.map +1 -0
  336. package/mobile/out/src/storage/schema/entities/EntityOutputBasket.js +133 -0
  337. package/mobile/out/src/storage/schema/entities/EntityOutputBasket.js.map +1 -0
  338. package/mobile/out/src/storage/schema/entities/EntityOutputTag.d.ts +31 -0
  339. package/mobile/out/src/storage/schema/entities/EntityOutputTag.d.ts.map +1 -0
  340. package/mobile/out/src/storage/schema/entities/EntityOutputTag.js +104 -0
  341. package/mobile/out/src/storage/schema/entities/EntityOutputTag.js.map +1 -0
  342. package/mobile/out/src/storage/schema/entities/EntityOutputTagMap.d.ts +28 -0
  343. package/mobile/out/src/storage/schema/entities/EntityOutputTagMap.d.ts.map +1 -0
  344. package/mobile/out/src/storage/schema/entities/EntityOutputTagMap.js +97 -0
  345. package/mobile/out/src/storage/schema/entities/EntityOutputTagMap.js.map +1 -0
  346. package/mobile/out/src/storage/schema/entities/EntityProvenTx.d.ts +84 -0
  347. package/mobile/out/src/storage/schema/entities/EntityProvenTx.d.ts.map +1 -0
  348. package/mobile/out/src/storage/schema/entities/EntityProvenTx.js +276 -0
  349. package/mobile/out/src/storage/schema/entities/EntityProvenTx.js.map +1 -0
  350. package/mobile/out/src/storage/schema/entities/EntityProvenTxReq.d.ts +135 -0
  351. package/mobile/out/src/storage/schema/entities/EntityProvenTxReq.d.ts.map +1 -0
  352. package/mobile/out/src/storage/schema/entities/EntityProvenTxReq.js +522 -0
  353. package/mobile/out/src/storage/schema/entities/EntityProvenTxReq.js.map +1 -0
  354. package/mobile/out/src/storage/schema/entities/EntitySyncState.d.ts +67 -0
  355. package/mobile/out/src/storage/schema/entities/EntitySyncState.d.ts.map +1 -0
  356. package/mobile/out/src/storage/schema/entities/EntitySyncState.js +319 -0
  357. package/mobile/out/src/storage/schema/entities/EntitySyncState.js.map +1 -0
  358. package/mobile/out/src/storage/schema/entities/EntityTransaction.d.ts +67 -0
  359. package/mobile/out/src/storage/schema/entities/EntityTransaction.d.ts.map +1 -0
  360. package/mobile/out/src/storage/schema/entities/EntityTransaction.js +255 -0
  361. package/mobile/out/src/storage/schema/entities/EntityTransaction.js.map +1 -0
  362. package/mobile/out/src/storage/schema/entities/EntityTxLabel.d.ts +31 -0
  363. package/mobile/out/src/storage/schema/entities/EntityTxLabel.d.ts.map +1 -0
  364. package/mobile/out/src/storage/schema/entities/EntityTxLabel.js +104 -0
  365. package/mobile/out/src/storage/schema/entities/EntityTxLabel.js.map +1 -0
  366. package/mobile/out/src/storage/schema/entities/EntityTxLabelMap.d.ts +28 -0
  367. package/mobile/out/src/storage/schema/entities/EntityTxLabelMap.d.ts.map +1 -0
  368. package/mobile/out/src/storage/schema/entities/EntityTxLabelMap.js +97 -0
  369. package/mobile/out/src/storage/schema/entities/EntityTxLabelMap.js.map +1 -0
  370. package/mobile/out/src/storage/schema/entities/EntityUser.d.ts +29 -0
  371. package/mobile/out/src/storage/schema/entities/EntityUser.d.ts.map +1 -0
  372. package/mobile/out/src/storage/schema/entities/EntityUser.js +98 -0
  373. package/mobile/out/src/storage/schema/entities/EntityUser.js.map +1 -0
  374. package/mobile/out/src/storage/schema/entities/MergeEntity.d.ts +33 -0
  375. package/mobile/out/src/storage/schema/entities/MergeEntity.d.ts.map +1 -0
  376. package/mobile/out/src/storage/schema/entities/MergeEntity.js +62 -0
  377. package/mobile/out/src/storage/schema/entities/MergeEntity.js.map +1 -0
  378. package/mobile/out/src/storage/schema/entities/index.d.ts +17 -0
  379. package/mobile/out/src/storage/schema/entities/index.d.ts.map +1 -0
  380. package/mobile/out/src/storage/schema/entities/index.js +33 -0
  381. package/mobile/out/src/storage/schema/entities/index.js.map +1 -0
  382. package/mobile/out/src/storage/schema/tables/TableCertificate.d.ts +20 -0
  383. package/mobile/out/src/storage/schema/tables/TableCertificate.d.ts.map +1 -0
  384. package/mobile/out/src/storage/schema/tables/TableCertificate.js +3 -0
  385. package/mobile/out/src/storage/schema/tables/TableCertificate.js.map +1 -0
  386. package/mobile/out/src/storage/schema/tables/TableCertificateField.d.ts +12 -0
  387. package/mobile/out/src/storage/schema/tables/TableCertificateField.d.ts.map +1 -0
  388. package/mobile/out/src/storage/schema/tables/TableCertificateField.js +3 -0
  389. package/mobile/out/src/storage/schema/tables/TableCertificateField.js.map +1 -0
  390. package/mobile/out/src/storage/schema/tables/TableCommission.d.ts +13 -0
  391. package/mobile/out/src/storage/schema/tables/TableCommission.d.ts.map +1 -0
  392. package/mobile/out/src/storage/schema/tables/TableCommission.js +3 -0
  393. package/mobile/out/src/storage/schema/tables/TableCommission.js.map +1 -0
  394. package/mobile/out/src/storage/schema/tables/TableMonitorEvent.d.ts +9 -0
  395. package/mobile/out/src/storage/schema/tables/TableMonitorEvent.d.ts.map +1 -0
  396. package/mobile/out/src/storage/schema/tables/TableMonitorEvent.js +3 -0
  397. package/mobile/out/src/storage/schema/tables/TableMonitorEvent.js.map +1 -0
  398. package/mobile/out/src/storage/schema/tables/TableOutput.d.ts +36 -0
  399. package/mobile/out/src/storage/schema/tables/TableOutput.d.ts.map +1 -0
  400. package/mobile/out/src/storage/schema/tables/TableOutput.js +31 -0
  401. package/mobile/out/src/storage/schema/tables/TableOutput.js.map +1 -0
  402. package/mobile/out/src/storage/schema/tables/TableOutputBasket.d.ts +12 -0
  403. package/mobile/out/src/storage/schema/tables/TableOutputBasket.d.ts.map +1 -0
  404. package/mobile/out/src/storage/schema/tables/TableOutputBasket.js +3 -0
  405. package/mobile/out/src/storage/schema/tables/TableOutputBasket.js.map +1 -0
  406. package/mobile/out/src/storage/schema/tables/TableOutputTag.d.ts +10 -0
  407. package/mobile/out/src/storage/schema/tables/TableOutputTag.d.ts.map +1 -0
  408. package/mobile/out/src/storage/schema/tables/TableOutputTag.js +3 -0
  409. package/mobile/out/src/storage/schema/tables/TableOutputTag.js.map +1 -0
  410. package/mobile/out/src/storage/schema/tables/TableOutputTagMap.d.ts +9 -0
  411. package/mobile/out/src/storage/schema/tables/TableOutputTagMap.d.ts.map +1 -0
  412. package/mobile/out/src/storage/schema/tables/TableOutputTagMap.js +3 -0
  413. package/mobile/out/src/storage/schema/tables/TableOutputTagMap.js.map +1 -0
  414. package/mobile/out/src/storage/schema/tables/TableProvenTx.d.ts +14 -0
  415. package/mobile/out/src/storage/schema/tables/TableProvenTx.d.ts.map +1 -0
  416. package/mobile/out/src/storage/schema/tables/TableProvenTx.js +3 -0
  417. package/mobile/out/src/storage/schema/tables/TableProvenTx.js.map +1 -0
  418. package/mobile/out/src/storage/schema/tables/TableProvenTxReq.d.ts +64 -0
  419. package/mobile/out/src/storage/schema/tables/TableProvenTxReq.d.ts.map +1 -0
  420. package/mobile/out/src/storage/schema/tables/TableProvenTxReq.js +3 -0
  421. package/mobile/out/src/storage/schema/tables/TableProvenTxReq.js.map +1 -0
  422. package/mobile/out/src/storage/schema/tables/TableSettings.d.ts +17 -0
  423. package/mobile/out/src/storage/schema/tables/TableSettings.d.ts.map +1 -0
  424. package/mobile/out/src/storage/schema/tables/TableSettings.js +3 -0
  425. package/mobile/out/src/storage/schema/tables/TableSettings.js.map +1 -0
  426. package/mobile/out/src/storage/schema/tables/TableSyncState.d.ts +18 -0
  427. package/mobile/out/src/storage/schema/tables/TableSyncState.d.ts.map +1 -0
  428. package/mobile/out/src/storage/schema/tables/TableSyncState.js +3 -0
  429. package/mobile/out/src/storage/schema/tables/TableSyncState.js.map +1 -0
  430. package/mobile/out/src/storage/schema/tables/TableTransaction.d.ts +37 -0
  431. package/mobile/out/src/storage/schema/tables/TableTransaction.d.ts.map +1 -0
  432. package/mobile/out/src/storage/schema/tables/TableTransaction.js +21 -0
  433. package/mobile/out/src/storage/schema/tables/TableTransaction.js.map +1 -0
  434. package/mobile/out/src/storage/schema/tables/TableTxLabel.d.ts +10 -0
  435. package/mobile/out/src/storage/schema/tables/TableTxLabel.d.ts.map +1 -0
  436. package/mobile/out/src/storage/schema/tables/TableTxLabel.js +3 -0
  437. package/mobile/out/src/storage/schema/tables/TableTxLabel.js.map +1 -0
  438. package/mobile/out/src/storage/schema/tables/TableTxLabelMap.d.ts +9 -0
  439. package/mobile/out/src/storage/schema/tables/TableTxLabelMap.d.ts.map +1 -0
  440. package/mobile/out/src/storage/schema/tables/TableTxLabelMap.js +3 -0
  441. package/mobile/out/src/storage/schema/tables/TableTxLabelMap.js.map +1 -0
  442. package/mobile/out/src/storage/schema/tables/TableUser.d.ts +16 -0
  443. package/mobile/out/src/storage/schema/tables/TableUser.d.ts.map +1 -0
  444. package/mobile/out/src/storage/schema/tables/TableUser.js +3 -0
  445. package/mobile/out/src/storage/schema/tables/TableUser.js.map +1 -0
  446. package/mobile/out/src/storage/schema/tables/index.d.ts +17 -0
  447. package/mobile/out/src/storage/schema/tables/index.d.ts.map +1 -0
  448. package/mobile/out/src/storage/schema/tables/index.js +33 -0
  449. package/mobile/out/src/storage/schema/tables/index.js.map +1 -0
  450. package/mobile/out/src/utility/ScriptTemplateBRC29.d.ts +25 -0
  451. package/mobile/out/src/utility/ScriptTemplateBRC29.d.ts.map +1 -0
  452. package/mobile/out/src/utility/ScriptTemplateBRC29.js +48 -0
  453. package/mobile/out/src/utility/ScriptTemplateBRC29.js.map +1 -0
  454. package/mobile/out/src/utility/identityUtils.d.ts +31 -0
  455. package/mobile/out/src/utility/identityUtils.d.ts.map +1 -0
  456. package/mobile/out/src/utility/identityUtils.js +116 -0
  457. package/mobile/out/src/utility/identityUtils.js.map +1 -0
  458. package/mobile/out/src/utility/index.client.d.ts +7 -0
  459. package/mobile/out/src/utility/index.client.d.ts.map +1 -0
  460. package/mobile/out/src/utility/index.client.js +23 -0
  461. package/mobile/out/src/utility/index.client.js.map +1 -0
  462. package/mobile/out/src/utility/parseTxScriptOffsets.d.ts +14 -0
  463. package/mobile/out/src/utility/parseTxScriptOffsets.d.ts.map +1 -0
  464. package/mobile/out/src/utility/parseTxScriptOffsets.js +26 -0
  465. package/mobile/out/src/utility/parseTxScriptOffsets.js.map +1 -0
  466. package/mobile/out/src/utility/stampLog.d.ts +18 -0
  467. package/mobile/out/src/utility/stampLog.d.ts.map +1 -0
  468. package/mobile/out/src/utility/stampLog.js +72 -0
  469. package/mobile/out/src/utility/stampLog.js.map +1 -0
  470. package/mobile/out/src/utility/tscProofToMerklePath.d.ts +8 -0
  471. package/mobile/out/src/utility/tscProofToMerklePath.d.ts.map +1 -0
  472. package/mobile/out/src/utility/tscProofToMerklePath.js +41 -0
  473. package/mobile/out/src/utility/tscProofToMerklePath.js.map +1 -0
  474. package/mobile/out/src/utility/utilityHelpers.d.ts +129 -0
  475. package/mobile/out/src/utility/utilityHelpers.d.ts.map +1 -0
  476. package/mobile/out/src/utility/utilityHelpers.js +266 -0
  477. package/mobile/out/src/utility/utilityHelpers.js.map +1 -0
  478. package/mobile/out/src/utility/utilityHelpers.noBuffer.d.ts +9 -0
  479. package/mobile/out/src/utility/utilityHelpers.noBuffer.d.ts.map +1 -0
  480. package/mobile/out/src/utility/utilityHelpers.noBuffer.js +23 -0
  481. package/mobile/out/src/utility/utilityHelpers.noBuffer.js.map +1 -0
  482. package/mobile/out/src/wab-client/WABClient.d.ts +49 -0
  483. package/mobile/out/src/wab-client/WABClient.d.ts.map +1 -0
  484. package/mobile/out/src/wab-client/WABClient.js +80 -0
  485. package/mobile/out/src/wab-client/WABClient.js.map +1 -0
  486. package/mobile/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.d.ts +34 -0
  487. package/mobile/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.d.ts.map +1 -0
  488. package/mobile/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js +16 -0
  489. package/mobile/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js.map +1 -0
  490. package/mobile/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.d.ts +7 -0
  491. package/mobile/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.d.ts.map +1 -0
  492. package/mobile/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.js +36 -0
  493. package/mobile/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.js.map +1 -0
  494. package/mobile/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.d.ts +28 -0
  495. package/mobile/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.d.ts.map +1 -0
  496. package/mobile/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.js +69 -0
  497. package/mobile/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.js.map +1 -0
  498. package/mobile/out/tsconfig.mobile.tsbuildinfo +1 -0
  499. package/mobile/package-lock.json +22 -0
  500. package/mobile/package.json +25 -0
  501. package/out/src/index.mobile.d.ts +19 -0
  502. package/out/src/index.mobile.d.ts.map +1 -0
  503. package/out/src/index.mobile.js +58 -0
  504. package/out/src/index.mobile.js.map +1 -0
  505. package/out/src/storage/index.mobile.d.ts +7 -0
  506. package/out/src/storage/index.mobile.d.ts.map +1 -0
  507. package/out/src/storage/index.mobile.js +23 -0
  508. package/out/src/storage/index.mobile.js.map +1 -0
  509. package/out/src/wab-client/WABClient.js +2 -5
  510. package/out/src/wab-client/WABClient.js.map +1 -1
  511. package/out/tsconfig.all.tsbuildinfo +1 -1
  512. package/package.json +1 -1
  513. package/src/index.mobile.ts +18 -0
  514. package/src/storage/index.mobile.ts +6 -0
  515. package/src/wab-client/WABClient.ts +2 -2
  516. package/tsconfig.json +3 -0
  517. package/tsconfig.mobile.json +22 -0
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.acquireDirectCertificate = acquireDirectCertificate;
4
+ async function acquireDirectCertificate(wallet, auth, vargs) {
5
+ var _a;
6
+ const now = new Date();
7
+ const newCert = {
8
+ certificateId: 0, // replaced by storage insert
9
+ created_at: now,
10
+ updated_at: now,
11
+ userId: auth.userId,
12
+ type: vargs.type,
13
+ subject: vargs.subject,
14
+ verifier: vargs.keyringRevealer === 'certifier' ? vargs.certifier : vargs.keyringRevealer,
15
+ serialNumber: vargs.serialNumber,
16
+ certifier: vargs.certifier,
17
+ revocationOutpoint: vargs.revocationOutpoint,
18
+ signature: vargs.signature,
19
+ fields: [],
20
+ isDeleted: false
21
+ };
22
+ for (const [name, value] of Object.entries(vargs.fields)) {
23
+ (_a = newCert.fields) === null || _a === void 0 ? void 0 : _a.push({
24
+ certificateId: 0, // replaced by storage insert
25
+ created_at: now,
26
+ updated_at: now,
27
+ userId: auth.userId,
28
+ fieldName: name,
29
+ fieldValue: value,
30
+ masterKey: vargs.keyringForSubject[name] || ''
31
+ });
32
+ }
33
+ const count = await wallet.storage.insertCertificate(newCert);
34
+ const r = {
35
+ type: vargs.type,
36
+ subject: vargs.subject,
37
+ serialNumber: vargs.serialNumber,
38
+ certifier: vargs.certifier,
39
+ revocationOutpoint: vargs.revocationOutpoint,
40
+ signature: vargs.signature,
41
+ fields: vargs.fields
42
+ };
43
+ return r;
44
+ }
45
+ //# sourceMappingURL=acquireDirectCertificate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acquireDirectCertificate.js","sourceRoot":"","sources":["../../../../../src/signer/methods/acquireDirectCertificate.ts"],"names":[],"mappings":";;AAGA,4DA8CC;AA9CM,KAAK,UAAU,wBAAwB,CAC5C,MAAc,EACd,IAAgB,EAChB,KAA4C;;IAE5C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IACtB,MAAM,OAAO,GAAsB;QACjC,aAAa,EAAE,CAAC,EAAE,6BAA6B;QAC/C,UAAU,EAAE,GAAG;QACf,UAAU,EAAE,GAAG;QACf,MAAM,EAAE,IAAI,CAAC,MAAO;QACpB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,QAAQ,EAAE,KAAK,CAAC,eAAe,KAAK,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe;QACzF,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;QAC5C,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,MAAM,EAAE,EAAE;QACV,SAAS,EAAE,KAAK;KACjB,CAAA;IACD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QACzD,MAAA,OAAO,CAAC,MAAM,0CAAE,IAAI,CAAC;YACnB,aAAa,EAAE,CAAC,EAAE,6BAA6B;YAC/C,UAAU,EAAE,GAAG;YACf,UAAU,EAAE,GAAG;YACf,MAAM,EAAE,IAAI,CAAC,MAAO;YACpB,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,KAAK;YACjB,SAAS,EAAE,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE;SAC/C,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;IAE7D,MAAM,CAAC,GAA6B;QAClC,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;QAC5C,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,MAAM,EAAE,KAAK,CAAC,MAAM;KACrB,CAAA;IAED,OAAO,CAAC,CAAA;AACV,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { Transaction } from '@bsv/sdk';
2
+ import { sdk } from '../../index.client';
3
+ import { Wallet, PendingStorageInput } from '../../Wallet';
4
+ export declare function buildSignableTransaction(dctr: sdk.StorageCreateActionResult, args: sdk.ValidCreateActionArgs, wallet: Wallet): {
5
+ tx: Transaction;
6
+ amount: number;
7
+ pdi: PendingStorageInput[];
8
+ log: string;
9
+ };
10
+ //# sourceMappingURL=buildSignableTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildSignableTransaction.d.ts","sourceRoot":"","sources":["../../../../../src/signer/methods/buildSignableTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,WAAW,EAAuC,MAAM,UAAU,CAAA;AACzF,OAAO,EAAkB,GAAG,EAAgB,MAAM,oBAAoB,CAAA;AACtE,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAG1D,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,GAAG,CAAC,yBAAyB,EACnC,IAAI,EAAE,GAAG,CAAC,qBAAqB,EAC/B,MAAM,EAAE,MAAM,GACb;IACD,EAAE,EAAE,WAAW,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,mBAAmB,EAAE,CAAA;IAC1B,GAAG,EAAE,MAAM,CAAA;CACZ,CA4IA"}
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildSignableTransaction = buildSignableTransaction;
4
+ const sdk_1 = require("@bsv/sdk");
5
+ const index_client_1 = require("../../index.client");
6
+ const createAction_1 = require("./createAction");
7
+ function buildSignableTransaction(dctr, args, wallet) {
8
+ var _a;
9
+ const changeKeys = wallet.getClientChangeKeyPair();
10
+ const inputBeef = args.inputBEEF ? sdk_1.Beef.fromBinary(args.inputBEEF) : undefined;
11
+ const { inputs: storageInputs, outputs: storageOutputs } = dctr;
12
+ const tx = new sdk_1.Transaction(args.version, [], [], args.lockTime);
13
+ // The order of outputs in storageOutputs is always:
14
+ // CreateActionArgs.outputs in the original order
15
+ // Commission output
16
+ // Change outputs
17
+ // The Vout values will be randomized if args.options.randomizeOutputs is true. Default is true.
18
+ const voutToIndex = Array(storageOutputs.length);
19
+ for (let vout = 0; vout < storageOutputs.length; vout++) {
20
+ const i = storageOutputs.findIndex(o => o.vout === vout);
21
+ if (i < 0)
22
+ throw new index_client_1.sdk.WERR_INVALID_PARAMETER('output.vout', `sequential. ${vout} is missing`);
23
+ voutToIndex[vout] = i;
24
+ }
25
+ //////////////
26
+ // Add OUTPUTS
27
+ /////////////
28
+ for (let vout = 0; vout < storageOutputs.length; vout++) {
29
+ const i = voutToIndex[vout];
30
+ const out = storageOutputs[i];
31
+ if (vout !== out.vout)
32
+ throw new index_client_1.sdk.WERR_INVALID_PARAMETER('output.vout', `equal to array index. ${out.vout} !== ${vout}`);
33
+ const change = out.providedBy === 'storage' && out.purpose === 'change';
34
+ const lockingScript = change
35
+ ? (0, createAction_1.makeChangeLock)(out, dctr, args, changeKeys, wallet)
36
+ : (0, index_client_1.asBsvSdkScript)(out.lockingScript);
37
+ const output = {
38
+ satoshis: out.satoshis,
39
+ lockingScript,
40
+ change
41
+ };
42
+ tx.addOutput(output);
43
+ }
44
+ if (storageOutputs.length === 0) {
45
+ // Add a dummy output to avoid transaction rejection by processors for having no outputs.
46
+ const output = {
47
+ satoshis: 0,
48
+ lockingScript: sdk_1.Script.fromASM('OP_FALSE OP_RETURN 42'),
49
+ change: false
50
+ };
51
+ tx.addOutput(output);
52
+ }
53
+ //////////////
54
+ // Merge and sort INPUTS info by vin order.
55
+ /////////////
56
+ const inputs = [];
57
+ for (const storageInput of storageInputs) {
58
+ const argsInput = storageInput.vin !== undefined && storageInput.vin < args.inputs.length
59
+ ? args.inputs[storageInput.vin]
60
+ : undefined;
61
+ inputs.push({ argsInput, storageInput });
62
+ }
63
+ inputs.sort((a, b) => a.storageInput.vin < b.storageInput.vin ? -1 : a.storageInput.vin === b.storageInput.vin ? 0 : 1);
64
+ const pendingStorageInputs = [];
65
+ //////////////
66
+ // Add INPUTS
67
+ /////////////
68
+ let totalChangeInputs = 0;
69
+ for (const { storageInput, argsInput } of inputs) {
70
+ // Two types of inputs are handled: user specified wth/without unlockingScript and storage specified using SABPPP template.
71
+ if (argsInput) {
72
+ // Type 1: User supplied input, with or without an explicit unlockingScript.
73
+ // If without, signAction must be used to provide the actual unlockScript.
74
+ const hasUnlock = typeof argsInput.unlockingScript === 'string';
75
+ const unlock = hasUnlock ? (0, index_client_1.asBsvSdkScript)(argsInput.unlockingScript) : new sdk_1.Script();
76
+ const sourceTransaction = args.isSignAction ? (_a = inputBeef === null || inputBeef === void 0 ? void 0 : inputBeef.findTxid(argsInput.outpoint.txid)) === null || _a === void 0 ? void 0 : _a.tx : undefined;
77
+ const inputToAdd = {
78
+ sourceTXID: argsInput.outpoint.txid,
79
+ sourceOutputIndex: argsInput.outpoint.vout,
80
+ // Include the source transaction for access to the outputs locking script and output satoshis for user side fee calculation.
81
+ // TODO: Make this conditional to improve performance when user can supply locking scripts themselves.
82
+ sourceTransaction,
83
+ unlockingScript: unlock,
84
+ sequence: argsInput.sequenceNumber
85
+ };
86
+ tx.addInput(inputToAdd);
87
+ }
88
+ else {
89
+ // Type2: SABPPP protocol inputs which are signed using ScriptTemplateBRC29.
90
+ if (storageInput.type !== 'P2PKH')
91
+ throw new index_client_1.sdk.WERR_INVALID_PARAMETER('type', `vin ${storageInput.vin}, "${storageInput.type}" is not a supported unlocking script type.`);
92
+ pendingStorageInputs.push({
93
+ vin: tx.inputs.length,
94
+ derivationPrefix: (0, index_client_1.verifyTruthy)(storageInput.derivationPrefix),
95
+ derivationSuffix: (0, index_client_1.verifyTruthy)(storageInput.derivationSuffix),
96
+ unlockerPubKey: storageInput.senderIdentityKey,
97
+ sourceSatoshis: storageInput.sourceSatoshis,
98
+ lockingScript: storageInput.sourceLockingScript
99
+ });
100
+ const inputToAdd = {
101
+ sourceTXID: storageInput.sourceTxid,
102
+ sourceOutputIndex: storageInput.sourceVout,
103
+ sourceTransaction: storageInput.sourceTransaction
104
+ ? sdk_1.Transaction.fromBinary(storageInput.sourceTransaction)
105
+ : undefined,
106
+ unlockingScript: new sdk_1.Script(),
107
+ sequence: 0xffffffff
108
+ };
109
+ tx.addInput(inputToAdd);
110
+ totalChangeInputs += (0, index_client_1.verifyTruthy)(storageInput.sourceSatoshis);
111
+ }
112
+ }
113
+ // The amount is the total of non-foreign inputs minus change outputs
114
+ // Note that the amount can be negative when we are redeeming more inputs than we are spending
115
+ const totalChangeOutputs = storageOutputs
116
+ .filter(x => x.purpose === 'change')
117
+ .reduce((acc, el) => acc + el.satoshis, 0);
118
+ const amount = totalChangeInputs - totalChangeOutputs;
119
+ return {
120
+ tx,
121
+ amount,
122
+ pdi: pendingStorageInputs,
123
+ log: ''
124
+ };
125
+ }
126
+ //# sourceMappingURL=buildSignableTransaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildSignableTransaction.js","sourceRoot":"","sources":["../../../../../src/signer/methods/buildSignableTransaction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { AtomicBEEF, CreateActionResult, OutpointString, SendWithResult, SignableTransaction, SignActionSpend, TXIDHexString } from '@bsv/sdk';
2
+ import { Script, Transaction } from '@bsv/sdk';
3
+ import { PendingSignAction, sdk, Wallet } from '../../index.client';
4
+ import { ReviewActionResult } from '../../sdk/WalletStorage.interfaces';
5
+ export interface CreateActionResultX extends CreateActionResult {
6
+ txid?: TXIDHexString;
7
+ tx?: AtomicBEEF;
8
+ noSendChange?: OutpointString[];
9
+ sendWithResults?: SendWithResult[];
10
+ signableTransaction?: SignableTransaction;
11
+ notDelayedResults?: ReviewActionResult[];
12
+ }
13
+ export declare function createAction(wallet: Wallet, auth: sdk.AuthId, vargs: sdk.ValidCreateActionArgs): Promise<CreateActionResultX>;
14
+ /**
15
+ * Derive a change output locking script
16
+ */
17
+ export declare function makeChangeLock(out: sdk.StorageCreateTransactionSdkOutput, dctr: sdk.StorageCreateActionResult, args: sdk.ValidCreateActionArgs, changeKeys: sdk.KeyPair, wallet: Wallet): Script;
18
+ export declare function completeSignedTransaction(prior: PendingSignAction, spends: Record<number, SignActionSpend>, wallet: Wallet): Promise<Transaction>;
19
+ export declare function processAction(prior: PendingSignAction | undefined, wallet: Wallet, auth: sdk.AuthId, vargs: sdk.ValidProcessActionArgs): Promise<sdk.StorageProcessActionResults>;
20
+ //# sourceMappingURL=createAction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createAction.d.ts","sourceRoot":"","sources":["../../../../../src/signer/methods/createAction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EAEV,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,mBAAmB,EAEnB,eAAe,EACf,aAAa,EACd,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAGL,iBAAiB,EAEjB,GAAG,EAEH,MAAM,EACP,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAA;AAEvE,MAAM,WAAW,mBAAoB,SAAQ,kBAAkB;IAC7D,IAAI,CAAC,EAAE,aAAa,CAAA;IACpB,EAAE,CAAC,EAAE,UAAU,CAAA;IACf,YAAY,CAAC,EAAE,cAAc,EAAE,CAAA;IAC/B,eAAe,CAAC,EAAE,cAAc,EAAE,CAAA;IAClC,mBAAmB,CAAC,EAAE,mBAAmB,CAAA;IACzC,iBAAiB,CAAC,EAAE,kBAAkB,EAAE,CAAA;CACzC;AAED,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,GAAG,CAAC,MAAM,EAChB,KAAK,EAAE,GAAG,CAAC,qBAAqB,GAC/B,OAAO,CAAC,mBAAmB,CAAC,CAyB9B;AAkDD;;GAEG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,GAAG,CAAC,iCAAiC,EAC1C,IAAI,EAAE,GAAG,CAAC,yBAAyB,EACnC,IAAI,EAAE,GAAG,CAAC,qBAAqB,EAC/B,UAAU,EAAE,GAAG,CAAC,OAAO,EACvB,MAAM,EAAE,MAAM,GACb,MAAM,CAUR;AAED,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,iBAAiB,EACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EACvC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,CAAC,CAmDtB;AAkBD,wBAAsB,aAAa,CACjC,KAAK,EAAE,iBAAiB,GAAG,SAAS,EACpC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,GAAG,CAAC,MAAM,EAChB,KAAK,EAAE,GAAG,CAAC,sBAAsB,GAChC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAc1C"}
@@ -0,0 +1,160 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createAction = createAction;
4
+ exports.makeChangeLock = makeChangeLock;
5
+ exports.completeSignedTransaction = completeSignedTransaction;
6
+ exports.processAction = processAction;
7
+ const sdk_1 = require("@bsv/sdk");
8
+ const sdk_2 = require("@bsv/sdk");
9
+ const index_client_1 = require("../../index.client");
10
+ const buildSignableTransaction_1 = require("./buildSignableTransaction");
11
+ async function createAction(wallet, auth, vargs) {
12
+ var _a;
13
+ const r = {};
14
+ let prior = undefined;
15
+ if (vargs.isNewTx) {
16
+ prior = await createNewTx(wallet, vargs);
17
+ if (vargs.isSignAction) {
18
+ return makeSignableTransactionResult(prior, wallet, vargs);
19
+ }
20
+ prior.tx = await completeSignedTransaction(prior, {}, wallet);
21
+ r.txid = prior.tx.id('hex');
22
+ r.noSendChange = (_a = prior.dcr.noSendChangeOutputVouts) === null || _a === void 0 ? void 0 : _a.map(vout => `${r.txid}.${vout}`);
23
+ if (!vargs.options.returnTXIDOnly)
24
+ r.tx = (0, index_client_1.makeAtomicBeef)(prior.tx, prior.dcr.inputBeef);
25
+ }
26
+ const { sendWithResults, notDelayedResults } = await processAction(prior, wallet, auth, vargs);
27
+ r.sendWithResults = sendWithResults;
28
+ r.notDelayedResults = notDelayedResults;
29
+ return r;
30
+ }
31
+ async function createNewTx(wallet, args) {
32
+ const storageArgs = removeUnlockScripts(args);
33
+ const dcr = await wallet.storage.createAction(storageArgs);
34
+ const reference = dcr.reference;
35
+ const { tx, amount, pdi } = (0, buildSignableTransaction_1.buildSignableTransaction)(dcr, args, wallet);
36
+ const prior = { reference, dcr, args, amount, tx, pdi };
37
+ return prior;
38
+ }
39
+ function makeSignableTransactionResult(prior, wallet, args) {
40
+ var _a;
41
+ if (!prior.dcr.inputBeef)
42
+ throw new index_client_1.sdk.WERR_INTERNAL('prior.dcr.inputBeef must be valid');
43
+ const txid = prior.tx.id('hex');
44
+ const r = {
45
+ noSendChange: args.isNoSend ? (_a = prior.dcr.noSendChangeOutputVouts) === null || _a === void 0 ? void 0 : _a.map(vout => `${txid}.${vout}`) : undefined,
46
+ signableTransaction: {
47
+ reference: prior.dcr.reference,
48
+ tx: makeSignableTransactionBeef(prior.tx, prior.dcr.inputBeef)
49
+ }
50
+ };
51
+ wallet.pendingSignActions[r.signableTransaction.reference] = prior;
52
+ return r;
53
+ }
54
+ function makeSignableTransactionBeef(tx, inputBEEF) {
55
+ // This is a special case beef for transaction signing.
56
+ // We only need the transaction being signed, and for each input, the raw source transaction.
57
+ const beef = new sdk_1.Beef();
58
+ for (const input of tx.inputs) {
59
+ if (!input.sourceTransaction)
60
+ throw new index_client_1.sdk.WERR_INTERNAL('Every signableTransaction input must have a sourceTransaction');
61
+ beef.mergeRawTx(input.sourceTransaction.toBinary());
62
+ }
63
+ beef.mergeRawTx(tx.toBinary());
64
+ return beef.toBinaryAtomic(tx.id('hex'));
65
+ }
66
+ /**
67
+ * Derive a change output locking script
68
+ */
69
+ function makeChangeLock(out, dctr, args, changeKeys, wallet) {
70
+ const derivationPrefix = dctr.derivationPrefix;
71
+ const derivationSuffix = (0, index_client_1.verifyTruthy)(out.derivationSuffix);
72
+ const sabppp = new index_client_1.ScriptTemplateBRC29({
73
+ derivationPrefix,
74
+ derivationSuffix,
75
+ keyDeriver: wallet.keyDeriver
76
+ });
77
+ const lockingScript = sabppp.lock(changeKeys.privateKey, changeKeys.publicKey);
78
+ return lockingScript;
79
+ }
80
+ async function completeSignedTransaction(prior, spends, wallet) {
81
+ /////////////////////
82
+ // Insert the user provided unlocking scripts from "spends" arg
83
+ /////////////////////
84
+ for (const [key, spend] of Object.entries(spends)) {
85
+ const vin = Number(key);
86
+ const createInput = prior.args.inputs[vin];
87
+ const input = prior.tx.inputs[vin];
88
+ if (!createInput || !input || createInput.unlockingScript || !Number.isInteger(createInput.unlockingScriptLength))
89
+ throw new index_client_1.sdk.WERR_INVALID_PARAMETER('args', `spend does not correspond to prior input with valid unlockingScriptLength.`);
90
+ if (spend.unlockingScript.length / 2 > createInput.unlockingScriptLength)
91
+ throw new index_client_1.sdk.WERR_INVALID_PARAMETER('args', `spend unlockingScript length ${spend.unlockingScript.length} exceeds expected length ${createInput.unlockingScriptLength}`);
92
+ input.unlockingScript = (0, index_client_1.asBsvSdkScript)(spend.unlockingScript);
93
+ if (spend.sequenceNumber !== undefined)
94
+ input.sequence = spend.sequenceNumber;
95
+ }
96
+ const results = {
97
+ sdk: {}
98
+ };
99
+ /////////////////////
100
+ // Insert SABPPP unlock templates for storage signed inputs
101
+ /////////////////////
102
+ for (const pdi of prior.pdi) {
103
+ const sabppp = new index_client_1.ScriptTemplateBRC29({
104
+ derivationPrefix: pdi.derivationPrefix,
105
+ derivationSuffix: pdi.derivationSuffix,
106
+ keyDeriver: wallet.keyDeriver
107
+ });
108
+ const keys = wallet.getClientChangeKeyPair();
109
+ const lockerPrivKey = keys.privateKey;
110
+ const unlockerPubKey = pdi.unlockerPubKey || keys.publicKey;
111
+ const sourceSatoshis = pdi.sourceSatoshis;
112
+ const lockingScript = (0, index_client_1.asBsvSdkScript)(pdi.lockingScript);
113
+ const unlockTemplate = sabppp.unlock(lockerPrivKey, unlockerPubKey, sourceSatoshis, lockingScript);
114
+ const input = prior.tx.inputs[pdi.vin];
115
+ input.unlockingScriptTemplate = unlockTemplate;
116
+ }
117
+ /////////////////////
118
+ // Sign storage signed inputs making transaction fully valid.
119
+ /////////////////////
120
+ await prior.tx.sign();
121
+ return prior.tx;
122
+ }
123
+ function removeUnlockScripts(args) {
124
+ let storageArgs = args;
125
+ if (!storageArgs.inputs.every(i => i.unlockingScript === undefined)) {
126
+ // Never send unlocking scripts to storage, all it needs is the script length.
127
+ storageArgs = { ...args, inputs: [] };
128
+ for (const i of args.inputs) {
129
+ const di = {
130
+ ...i,
131
+ unlockingScriptLength: i.unlockingScript !== undefined ? i.unlockingScript.length : i.unlockingScriptLength
132
+ };
133
+ delete di.unlockingScript;
134
+ storageArgs.inputs.push(di);
135
+ }
136
+ }
137
+ return storageArgs;
138
+ }
139
+ async function processAction(prior, wallet, auth, vargs) {
140
+ const args = {
141
+ isNewTx: vargs.isNewTx,
142
+ isSendWith: vargs.isSendWith,
143
+ isNoSend: vargs.isNoSend,
144
+ isDelayed: vargs.isDelayed,
145
+ reference: prior ? prior.reference : undefined,
146
+ txid: prior ? prior.tx.id('hex') : undefined,
147
+ rawTx: prior ? prior.tx.toBinary() : undefined,
148
+ sendWith: vargs.isSendWith ? vargs.options.sendWith : []
149
+ };
150
+ const r = await wallet.storage.processAction(args);
151
+ return r;
152
+ }
153
+ function makeDummyTransactionForOutputSatoshis(vout, satoshis) {
154
+ const tx = new sdk_2.Transaction();
155
+ for (let i = 0; i < vout; i++)
156
+ tx.addOutput({ lockingScript: new sdk_2.Script(), satoshis: 0 });
157
+ tx.addOutput({ lockingScript: new sdk_2.Script(), satoshis });
158
+ return tx;
159
+ }
160
+ //# sourceMappingURL=createAction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createAction.js","sourceRoot":"","sources":["../../../../../src/signer/methods/createAction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import { InternalizeActionArgs, InternalizeActionResult } from '@bsv/sdk';
2
+ import { sdk, Wallet } from '../../index.client';
3
+ /**
4
+ * Internalize Action allows a wallet to take ownership of outputs in a pre-existing transaction.
5
+ * The transaction may, or may not already be known to both the storage and user.
6
+ *
7
+ * Two types of outputs are handled: "wallet payments" and "basket insertions".
8
+ *
9
+ * A "basket insertion" output is considered a custom output and has no effect on the wallet's "balance".
10
+ *
11
+ * A "wallet payment" adds an outputs value to the wallet's change "balance". These outputs are assigned to the "default" basket.
12
+ *
13
+ * Processing starts with simple validation and then checks for a pre-existing transaction.
14
+ * If the transaction is already known to the user, then the outputs are reviewed against the existing outputs treatment,
15
+ * and merge rules are added to the arguments passed to the storage layer.
16
+ * The existing transaction must be in the 'unproven' or 'completed' status. Any other status is an error.
17
+ *
18
+ * When the transaction already exists, the description is updated. The isOutgoing sense is not changed.
19
+ *
20
+ * "basket insertion" Merge Rules:
21
+ * 1. The "default" basket may not be specified as the insertion basket.
22
+ * 2. A change output in the "default" basket may not be target of an insertion into a different basket.
23
+ * 3. These baskets do not affect the wallet's balance and are typed "custom".
24
+ *
25
+ * "wallet payment" Merge Rules:
26
+ * 1. Targetting an existing change "default" basket output results in a no-op. No error. No alterations made.
27
+ * 2. Targetting a previously "custom" non-change output converts it into a change output. This alters the transaction's `amount`, and the wallet balance.
28
+ *
29
+ */
30
+ export declare function internalizeAction(wallet: Wallet, auth: sdk.AuthId, args: InternalizeActionArgs): Promise<InternalizeActionResult>;
31
+ //# sourceMappingURL=internalizeAction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internalizeAction.d.ts","sourceRoot":"","sources":["../../../../../src/signer/methods/internalizeAction.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,qBAAqB,EACrB,uBAAuB,EAIxB,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,GAAG,CAAC,MAAM,EAChB,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,uBAAuB,CAAC,CAuElC"}
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.internalizeAction = internalizeAction;
4
+ const sdk_1 = require("@bsv/sdk");
5
+ const index_client_1 = require("../../index.client");
6
+ /**
7
+ * Internalize Action allows a wallet to take ownership of outputs in a pre-existing transaction.
8
+ * The transaction may, or may not already be known to both the storage and user.
9
+ *
10
+ * Two types of outputs are handled: "wallet payments" and "basket insertions".
11
+ *
12
+ * A "basket insertion" output is considered a custom output and has no effect on the wallet's "balance".
13
+ *
14
+ * A "wallet payment" adds an outputs value to the wallet's change "balance". These outputs are assigned to the "default" basket.
15
+ *
16
+ * Processing starts with simple validation and then checks for a pre-existing transaction.
17
+ * If the transaction is already known to the user, then the outputs are reviewed against the existing outputs treatment,
18
+ * and merge rules are added to the arguments passed to the storage layer.
19
+ * The existing transaction must be in the 'unproven' or 'completed' status. Any other status is an error.
20
+ *
21
+ * When the transaction already exists, the description is updated. The isOutgoing sense is not changed.
22
+ *
23
+ * "basket insertion" Merge Rules:
24
+ * 1. The "default" basket may not be specified as the insertion basket.
25
+ * 2. A change output in the "default" basket may not be target of an insertion into a different basket.
26
+ * 3. These baskets do not affect the wallet's balance and are typed "custom".
27
+ *
28
+ * "wallet payment" Merge Rules:
29
+ * 1. Targetting an existing change "default" basket output results in a no-op. No error. No alterations made.
30
+ * 2. Targetting a previously "custom" non-change output converts it into a change output. This alters the transaction's `amount`, and the wallet balance.
31
+ *
32
+ */
33
+ async function internalizeAction(wallet, auth, args) {
34
+ const vargs = index_client_1.sdk.validateInternalizeActionArgs(args);
35
+ const { ab, tx, txid } = await validateAtomicBeef();
36
+ const brc29ProtocolID = [2, '3241645161d8'];
37
+ for (const o of vargs.outputs) {
38
+ if (o.outputIndex < 0 || o.outputIndex >= tx.outputs.length)
39
+ throw new index_client_1.sdk.WERR_INVALID_PARAMETER('outputIndex', `a valid output index in range 0 to ${tx.outputs.length - 1}`);
40
+ switch (o.protocol) {
41
+ case 'basket insertion':
42
+ setupBasketInsertionForOutput(o, vargs);
43
+ break;
44
+ case 'wallet payment':
45
+ setupWalletPaymentForOutput(o, vargs);
46
+ break;
47
+ default:
48
+ throw new index_client_1.sdk.WERR_INTERNAL(`unexpected protocol ${o.protocol}`);
49
+ }
50
+ }
51
+ const r = await wallet.storage.internalizeAction(args);
52
+ return r;
53
+ function setupWalletPaymentForOutput(o, dargs) {
54
+ const p = o.paymentRemittance;
55
+ const output = tx.outputs[o.outputIndex];
56
+ if (!p)
57
+ throw new index_client_1.sdk.WERR_INVALID_PARAMETER('paymentRemitance', `valid for protocol ${o.protocol}`);
58
+ const keyID = `${p.derivationPrefix} ${p.derivationSuffix}`;
59
+ const privKey = wallet.keyDeriver.derivePrivateKey(brc29ProtocolID, keyID, p.senderIdentityKey);
60
+ const expectedLockScript = new sdk_1.P2PKH().lock(privKey.toAddress());
61
+ if (output.lockingScript.toHex() !== expectedLockScript.toHex())
62
+ throw new index_client_1.sdk.WERR_INVALID_PARAMETER('paymentRemitance', `locked by script conforming to BRC-29`);
63
+ }
64
+ function setupBasketInsertionForOutput(o, dargs) {
65
+ /*
66
+ No additional validations...
67
+ */
68
+ }
69
+ async function validateAtomicBeef() {
70
+ const ab = sdk_1.Beef.fromBinary(vargs.tx);
71
+ // TODO: Add support for known txids...
72
+ const txValid = await ab.verify(await wallet.getServices().getChainTracker(), false);
73
+ if (!txValid || !ab.atomicTxid)
74
+ throw new index_client_1.sdk.WERR_INVALID_PARAMETER('tx', 'valid AtomicBEEF');
75
+ const txid = ab.atomicTxid;
76
+ const btx = ab.findTxid(txid);
77
+ if (!btx)
78
+ throw new index_client_1.sdk.WERR_INVALID_PARAMETER('tx', `valid AtomicBEEF with newest txid of ${txid}`);
79
+ const tx = btx.tx;
80
+ /*
81
+ for (const i of tx.inputs) {
82
+ if (!i.sourceTXID)
83
+ throw new sdk.WERR_INTERNAL('beef Transactions must have sourceTXIDs')
84
+ if (!i.sourceTransaction) {
85
+ const btx = ab.findTxid(i.sourceTXID)
86
+ if (!btx)
87
+ throw new sdk.WERR_INVALID_PARAMETER('tx', `valid AtomicBEEF and contain input transaction with txid ${i.sourceTXID}`);
88
+ i.sourceTransaction = btx.tx
89
+ }
90
+ }
91
+ */
92
+ return { ab, tx, txid };
93
+ }
94
+ }
95
+ //# sourceMappingURL=internalizeAction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internalizeAction.js","sourceRoot":"","sources":["../../../../../src/signer/methods/internalizeAction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { ProveCertificateResult } from '@bsv/sdk';
2
+ import { sdk, Wallet } from '../../index.client';
3
+ export declare function proveCertificate(wallet: Wallet, auth: sdk.AuthId, vargs: sdk.ValidProveCertificateArgs): Promise<ProveCertificateResult>;
4
+ //# sourceMappingURL=proveCertificate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proveCertificate.d.ts","sourceRoot":"","sources":["../../../../../src/signer/methods/proveCertificate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,sBAAsB,EAAE,MAAM,UAAU,CAAA;AACpE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAEhD,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,GAAG,CAAC,MAAM,EAChB,KAAK,EAAE,GAAG,CAAC,yBAAyB,GACnC,OAAO,CAAC,sBAAsB,CAAC,CAiCjC"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.proveCertificate = proveCertificate;
4
+ const sdk_1 = require("@bsv/sdk");
5
+ const index_client_1 = require("../../index.client");
6
+ async function proveCertificate(wallet, auth, vargs) {
7
+ const lcargs = {
8
+ partial: {
9
+ type: vargs.type,
10
+ serialNumber: vargs.serialNumber,
11
+ certifier: vargs.certifier,
12
+ subject: vargs.subject,
13
+ revocationOutpoint: vargs.revocationOutpoint,
14
+ signature: vargs.signature
15
+ },
16
+ certifiers: [],
17
+ types: [],
18
+ limit: 2,
19
+ offset: 0,
20
+ privileged: false
21
+ };
22
+ const lcr = await wallet.storage.listCertificates(lcargs);
23
+ if (lcr.certificates.length != 1)
24
+ throw new index_client_1.sdk.WERR_INVALID_PARAMETER('args', `a unique certificate match`);
25
+ const storageCert = lcr.certificates[0];
26
+ const keyringForVerifier = await sdk_1.MasterCertificate.createKeyringForVerifier(wallet, storageCert.certifier, vargs.verifier, storageCert.fields, vargs.fieldsToReveal, storageCert.keyring, storageCert.serialNumber, vargs.privileged, vargs.privilegedReason);
27
+ return { keyringForVerifier };
28
+ }
29
+ //# sourceMappingURL=proveCertificate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proveCertificate.js","sourceRoot":"","sources":["../../../../../src/signer/methods/proveCertificate.ts"],"names":[],"mappings":";;AAGA,4CAqCC;AAxCD,kCAAoE;AACpE,qDAAgD;AAEzC,KAAK,UAAU,gBAAgB,CACpC,MAAc,EACd,IAAgB,EAChB,KAAoC;IAEpC,MAAM,MAAM,GAAkC;QAC5C,OAAO,EAAE;YACP,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;YAC5C,SAAS,EAAE,KAAK,CAAC,SAAS;SAC3B;QACD,UAAU,EAAE,EAAE;QACd,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,CAAC;QACT,UAAU,EAAE,KAAK;KAClB,CAAA;IAED,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;IACzD,IAAI,GAAG,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC;QAAE,MAAM,IAAI,kBAAG,CAAC,sBAAsB,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAA;IAC5G,MAAM,WAAW,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;IACvC,MAAM,kBAAkB,GAAG,MAAM,uBAAiB,CAAC,wBAAwB,CACzE,MAAM,EACN,WAAW,CAAC,SAAS,EACrB,KAAK,CAAC,QAAQ,EACd,WAAW,CAAC,MAAM,EAClB,KAAK,CAAC,cAAc,EACpB,WAAW,CAAC,OAAQ,EACpB,WAAW,CAAC,YAAY,EACxB,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,gBAAgB,CACvB,CAAA;IAED,OAAO,EAAE,kBAAkB,EAAE,CAAA;AAC/B,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { AtomicBEEF, Beef, Transaction as BsvTransaction, SendWithResult, SignActionArgs, SignActionResult, SignActionSpend, TXIDHexString } from '@bsv/sdk';
2
+ import { PendingSignAction, sdk, Wallet } from '../../index.client';
3
+ import { ReviewActionResult } from '../../sdk/WalletStorage.interfaces';
4
+ export interface SignActionResultX extends SignActionResult {
5
+ txid?: TXIDHexString;
6
+ tx?: AtomicBEEF;
7
+ sendWithResults?: SendWithResult[];
8
+ notDelayedResults?: ReviewActionResult[];
9
+ }
10
+ export declare function signAction(wallet: Wallet, auth: sdk.AuthId, args: SignActionArgs): Promise<SignActionResultX>;
11
+ export declare function makeAtomicBeef(tx: BsvTransaction, beef: number[] | Beef): number[];
12
+ export declare function completeSignedTransaction(prior: PendingSignAction, spends: Record<number, SignActionSpend>, wallet: Wallet): Promise<BsvTransaction>;
13
+ //# sourceMappingURL=signAction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signAction.d.ts","sourceRoot":"","sources":["../../../../../src/signer/methods/signAction.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,UAAU,EACV,IAAI,EACJ,WAAW,IAAI,cAAc,EAC7B,cAAc,EACd,cAAc,EAEd,gBAAgB,EAChB,eAAe,EACf,aAAa,EACd,MAAM,UAAU,CAAA;AACjB,OAAO,EAAkB,iBAAiB,EAAuB,GAAG,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAExG,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAA;AAGvE,MAAM,WAAW,iBAAkB,SAAQ,gBAAgB;IACzD,IAAI,CAAC,EAAE,aAAa,CAAA;IACpB,EAAE,CAAC,EAAE,UAAU,CAAA;IACf,eAAe,CAAC,EAAE,cAAc,EAAE,CAAA;IAClC,iBAAiB,CAAC,EAAE,kBAAkB,EAAE,CAAA;CACzC;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAoBnH;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,MAAM,EAAE,CAIlF;AAED,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,iBAAiB,EACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EACvC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,cAAc,CAAC,CAmDzB"}