@bsv/wallet-toolbox-mobile 2.4.0 → 2.4.2

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 (138) hide show
  1. package/out/src/Wallet.d.ts +5 -1
  2. package/out/src/Wallet.d.ts.map +1 -1
  3. package/out/src/Wallet.js +14 -8
  4. package/out/src/Wallet.js.map +1 -1
  5. package/out/src/WalletPermissionsManager.d.ts +18 -0
  6. package/out/src/WalletPermissionsManager.d.ts.map +1 -1
  7. package/out/src/WalletPermissionsManager.js +56 -9
  8. package/out/src/WalletPermissionsManager.js.map +1 -1
  9. package/out/src/monitor/tasks/TaskArcSSE.d.ts.map +1 -1
  10. package/out/src/monitor/tasks/TaskArcSSE.js +46 -18
  11. package/out/src/monitor/tasks/TaskArcSSE.js.map +1 -1
  12. package/out/src/monitor/tasks/TaskCheckForProofs.d.ts.map +1 -1
  13. package/out/src/monitor/tasks/TaskCheckForProofs.js +10 -10
  14. package/out/src/monitor/tasks/TaskCheckForProofs.js.map +1 -1
  15. package/out/src/monitor/tasks/TaskReviewStatus.d.ts.map +1 -1
  16. package/out/src/monitor/tasks/TaskReviewStatus.js +7 -2
  17. package/out/src/monitor/tasks/TaskReviewStatus.js.map +1 -1
  18. package/out/src/monitor/tasks/TaskUnFail.d.ts.map +1 -1
  19. package/out/src/monitor/tasks/TaskUnFail.js +2 -57
  20. package/out/src/monitor/tasks/TaskUnFail.js.map +1 -1
  21. package/out/src/sdk/WalletServices.interfaces.d.ts +1 -0
  22. package/out/src/sdk/WalletServices.interfaces.d.ts.map +1 -1
  23. package/out/src/sdk/WalletStorage.interfaces.d.ts +10 -4
  24. package/out/src/sdk/WalletStorage.interfaces.d.ts.map +1 -1
  25. package/out/src/sdk/types.d.ts +10 -1
  26. package/out/src/sdk/types.d.ts.map +1 -1
  27. package/out/src/sdk/types.js +16 -2
  28. package/out/src/sdk/types.js.map +1 -1
  29. package/out/src/services/Services.d.ts.map +1 -1
  30. package/out/src/services/Services.js +39 -19
  31. package/out/src/services/Services.js.map +1 -1
  32. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts.map +1 -1
  33. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js +8 -0
  34. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js.map +1 -1
  35. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.d.ts.map +1 -1
  36. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.js +4 -0
  37. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.js.map +1 -1
  38. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts.map +1 -1
  39. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js +2 -0
  40. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js.map +1 -1
  41. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts.map +1 -1
  42. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js +2 -1
  43. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js.map +1 -1
  44. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts.map +1 -1
  45. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js +1 -0
  46. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js.map +1 -1
  47. package/out/src/services/createDefaultWalletServicesOptions.d.ts.map +1 -1
  48. package/out/src/services/createDefaultWalletServicesOptions.js +17 -3
  49. package/out/src/services/createDefaultWalletServicesOptions.js.map +1 -1
  50. package/out/src/services/networkConfig.d.ts +29 -0
  51. package/out/src/services/networkConfig.d.ts.map +1 -0
  52. package/out/src/services/networkConfig.js +54 -0
  53. package/out/src/services/networkConfig.js.map +1 -0
  54. package/out/src/services/providers/Arcade.d.ts +1 -0
  55. package/out/src/services/providers/Arcade.d.ts.map +1 -1
  56. package/out/src/services/providers/Arcade.js +45 -14
  57. package/out/src/services/providers/Arcade.js.map +1 -1
  58. package/out/src/services/providers/SdkWhatsOnChain.d.ts +1 -1
  59. package/out/src/services/providers/SdkWhatsOnChain.d.ts.map +1 -1
  60. package/out/src/services/providers/SdkWhatsOnChain.js +12 -4
  61. package/out/src/services/providers/SdkWhatsOnChain.js.map +1 -1
  62. package/out/src/signer/methods/buildSignableTransaction.d.ts.map +1 -1
  63. package/out/src/signer/methods/buildSignableTransaction.js +3 -1
  64. package/out/src/signer/methods/buildSignableTransaction.js.map +1 -1
  65. package/out/src/signer/methods/completeSignedTransaction.d.ts.map +1 -1
  66. package/out/src/signer/methods/completeSignedTransaction.js +5 -3
  67. package/out/src/signer/methods/completeSignedTransaction.js.map +1 -1
  68. package/out/src/signer/methods/createAction.d.ts.map +1 -1
  69. package/out/src/signer/methods/createAction.js +12 -5
  70. package/out/src/signer/methods/createAction.js.map +1 -1
  71. package/out/src/signer/methods/internalizeAction.d.ts +6 -4
  72. package/out/src/signer/methods/internalizeAction.d.ts.map +1 -1
  73. package/out/src/signer/methods/internalizeAction.js +12 -7
  74. package/out/src/signer/methods/internalizeAction.js.map +1 -1
  75. package/out/src/signer/methods/resultBeef.d.ts +4 -0
  76. package/out/src/signer/methods/resultBeef.d.ts.map +1 -0
  77. package/out/src/signer/methods/resultBeef.js +12 -0
  78. package/out/src/signer/methods/resultBeef.js.map +1 -0
  79. package/out/src/signer/methods/signAction.d.ts.map +1 -1
  80. package/out/src/signer/methods/signAction.js +6 -1
  81. package/out/src/signer/methods/signAction.js.map +1 -1
  82. package/out/src/storage/StorageProvider.d.ts +17 -0
  83. package/out/src/storage/StorageProvider.d.ts.map +1 -1
  84. package/out/src/storage/StorageProvider.js +206 -13
  85. package/out/src/storage/StorageProvider.js.map +1 -1
  86. package/out/src/storage/methods/ListOutputsSpecOp.d.ts +2 -0
  87. package/out/src/storage/methods/ListOutputsSpecOp.d.ts.map +1 -1
  88. package/out/src/storage/methods/ListOutputsSpecOp.js +13 -1
  89. package/out/src/storage/methods/ListOutputsSpecOp.js.map +1 -1
  90. package/out/src/storage/methods/createAction.d.ts.map +1 -1
  91. package/out/src/storage/methods/createAction.js +23 -10
  92. package/out/src/storage/methods/createAction.js.map +1 -1
  93. package/out/src/storage/methods/getBeefForTransaction.d.ts.map +1 -1
  94. package/out/src/storage/methods/getBeefForTransaction.js +47 -24
  95. package/out/src/storage/methods/getBeefForTransaction.js.map +1 -1
  96. package/out/src/storage/methods/internalizeAction.d.ts +6 -4
  97. package/out/src/storage/methods/internalizeAction.d.ts.map +1 -1
  98. package/out/src/storage/methods/internalizeAction.js +26 -15
  99. package/out/src/storage/methods/internalizeAction.js.map +1 -1
  100. package/out/src/storage/methods/managedChange.d.ts +26 -0
  101. package/out/src/storage/methods/managedChange.d.ts.map +1 -0
  102. package/out/src/storage/methods/managedChange.js +43 -0
  103. package/out/src/storage/methods/managedChange.js.map +1 -0
  104. package/out/src/storage/methods/processAction.d.ts.map +1 -1
  105. package/out/src/storage/methods/processAction.js +5 -4
  106. package/out/src/storage/methods/processAction.js.map +1 -1
  107. package/out/src/storage/remoting/BinaryJson.d.ts +10 -0
  108. package/out/src/storage/remoting/BinaryJson.d.ts.map +1 -0
  109. package/out/src/storage/remoting/BinaryJson.js +172 -0
  110. package/out/src/storage/remoting/BinaryJson.js.map +1 -0
  111. package/out/src/storage/remoting/StorageClient.d.ts +2 -2
  112. package/out/src/storage/remoting/StorageClient.d.ts.map +1 -1
  113. package/out/src/storage/remoting/StorageClient.js +14 -5
  114. package/out/src/storage/remoting/StorageClient.js.map +1 -1
  115. package/out/src/storage/remoting/StorageClientBase.d.ts +11 -1
  116. package/out/src/storage/remoting/StorageClientBase.d.ts.map +1 -1
  117. package/out/src/storage/remoting/StorageClientBase.js +4 -1
  118. package/out/src/storage/remoting/StorageClientBase.js.map +1 -1
  119. package/out/src/storage/remoting/StorageMobile.d.ts +2 -2
  120. package/out/src/storage/remoting/StorageMobile.d.ts.map +1 -1
  121. package/out/src/storage/remoting/StorageMobile.js +14 -5
  122. package/out/src/storage/remoting/StorageMobile.js.map +1 -1
  123. package/out/src/storage/schema/tables/TableAuthSession.d.ts +20 -0
  124. package/out/src/storage/schema/tables/TableAuthSession.d.ts.map +1 -0
  125. package/out/src/storage/schema/tables/TableAuthSession.js +15 -0
  126. package/out/src/storage/schema/tables/TableAuthSession.js.map +1 -0
  127. package/out/src/storage/schema/tables/index.d.ts +1 -0
  128. package/out/src/storage/schema/tables/index.d.ts.map +1 -1
  129. package/out/src/storage/schema/tables/index.js +1 -0
  130. package/out/src/storage/schema/tables/index.js.map +1 -1
  131. package/out/src/storage/storageProviderHelpers.d.ts +5 -4
  132. package/out/src/storage/storageProviderHelpers.d.ts.map +1 -1
  133. package/out/src/storage/storageProviderHelpers.js +7 -6
  134. package/out/src/storage/storageProviderHelpers.js.map +1 -1
  135. package/out/src/utility/utilityHelpers.d.ts.map +1 -1
  136. package/out/src/utility/utilityHelpers.js +2 -0
  137. package/out/src/utility/utilityHelpers.js.map +1 -1
  138. package/package.json +2 -2
@@ -6,6 +6,7 @@ const sdk_1 = require("@bsv/sdk");
6
6
  const buildSignableTransaction_1 = require("./buildSignableTransaction");
7
7
  const completeSignedTransaction_1 = require("./completeSignedTransaction");
8
8
  const WERR_errors_1 = require("../../sdk/WERR_errors");
9
+ const resultBeef_1 = require("./resultBeef");
9
10
  async function createAction(wallet, auth, vargs) {
10
11
  const r = {};
11
12
  const logger = vargs.logger;
@@ -22,13 +23,19 @@ async function createAction(wallet, auth, vargs) {
22
23
  logger?.log('completed signed transaction');
23
24
  r.txid = prior.tx.id('hex');
24
25
  const beef = new sdk_1.Beef();
25
- if (prior.dcr.inputBeef != null)
26
- beef.mergeBeef(prior.dcr.inputBeef);
26
+ if (prior.dcr.inputBeef != null) {
27
+ const inputBeef = prior.dcr.inputBeef instanceof Uint8Array
28
+ ? sdk_1.Beef.fromBinaryView(prior.dcr.inputBeef)
29
+ : sdk_1.Beef.fromBinary(prior.dcr.inputBeef);
30
+ beef.mergeBeef(inputBeef);
31
+ }
27
32
  beef.mergeTransaction(prior.tx);
28
33
  logger?.log('merged beef');
29
34
  (0, completeSignedTransaction_1.verifyUnlockScripts)(r.txid, beef);
30
35
  logger?.log('verified unlock scripts');
31
36
  r.noSendChange = prior.dcr.noSendChangeOutputVouts?.map(vout => `${r.txid}.${vout}`);
37
+ beef.atomicTxid = r.txid;
38
+ (0, resultBeef_1.setResultBeef)(r, beef);
32
39
  if (!vargs.options.returnTXIDOnly)
33
40
  r.tx = beef.toBinaryAtomic(r.txid);
34
41
  }
@@ -70,9 +77,9 @@ function makeSignableTransactionBeef(tx, inputBEEF) {
70
77
  if (input.sourceTransaction == null) {
71
78
  throw new WERR_errors_1.WERR_INTERNAL('Every signableTransaction input must have a sourceTransaction');
72
79
  }
73
- beef.mergeRawTx(input.sourceTransaction.toBinary());
80
+ beef.mergeRawTx(input.sourceTransaction.toUint8Array());
74
81
  }
75
- beef.mergeRawTx(tx.toBinary());
82
+ beef.mergeRawTx(tx.toUint8Array());
76
83
  return beef.toBinaryAtomic(tx.id('hex'));
77
84
  }
78
85
  function removeUnlockScripts(args) {
@@ -99,7 +106,7 @@ async function processAction(prior, wallet, auth, vargs) {
99
106
  isDelayed: vargs.isDelayed,
100
107
  reference: (prior != null) ? prior.reference : undefined,
101
108
  txid: (prior != null) ? prior.tx.id('hex') : undefined,
102
- rawTx: (prior != null) ? prior.tx.toBinary() : undefined,
109
+ rawTx: (prior != null) ? prior.tx.toUint8Array() : undefined,
103
110
  sendWith: vargs.isSendWith ? vargs.options.sendWith : [],
104
111
  logger: vargs.logger
105
112
  };
@@ -1 +1 @@
1
- {"version":3,"file":"createAction.js","sourceRoot":"","sources":["../../../../../src/signer/methods/createAction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createAction.js","sourceRoot":"","sources":["../../../../../src/signer/methods/createAction.ts"],"names":[],"mappings":"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"}
@@ -29,12 +29,14 @@ import { AuthId, StorageInternalizeActionResult } from '../../sdk/WalletStorage.
29
29
  *
30
30
  * "basket insertion" Merge Rules:
31
31
  * 1. The "default" basket may not be specified as the insertion basket.
32
- * 2. A change output in the "default" basket may not be target of an insertion into a different basket.
33
- * 3. These baskets do not affect the wallet's balance and are typed "custom".
32
+ * 2. Managed change may not be reclassified as a basket insertion.
33
+ * 3. Basket insertions do not affect wallet balance and are typed "custom".
34
34
  *
35
35
  * "wallet payment" Merge Rules:
36
- * 1. Targetting an existing change "default" basket output results in a no-op. No error. No alterations made.
37
- * 2. Targetting a previously "custom" non-change output converts it into a change output. This alters the transaction's `amount`, and the wallet balance.
36
+ * 1. Targeting an existing managed output is idempotent.
37
+ * 2. Targeting a custom output converts it to managed BRC-29 change after
38
+ * the locking script is verified. This is the only supported in-place
39
+ * recovery path for a misclassified BRC-29 payment.
38
40
  *
39
41
  */
40
42
  export declare function internalizeAction(wallet: Wallet, auth: AuthId, args: InternalizeActionArgs): Promise<StorageInternalizeActionResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"internalizeAction.d.ts","sourceRoot":"","sources":["../../../../../src/signer/methods/internalizeAction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,qBAAqB,EAAwD,MAAM,UAAU,CAAA;AAC5G,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,MAAM,EAAE,8BAA8B,EAAE,MAAM,oCAAoC,CAAA;AAG3F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,8BAA8B,CAAC,CAmEzC"}
1
+ {"version":3,"file":"internalizeAction.d.ts","sourceRoot":"","sources":["../../../../../src/signer/methods/internalizeAction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,qBAAqB,EAAwD,MAAM,UAAU,CAAA;AAC5G,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,MAAM,EAAE,8BAA8B,EAAE,MAAM,oCAAoC,CAAA;AAG3F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,8BAA8B,CAAC,CAqEzC"}
@@ -31,12 +31,14 @@ const WERR_errors_1 = require("../../sdk/WERR_errors");
31
31
  *
32
32
  * "basket insertion" Merge Rules:
33
33
  * 1. The "default" basket may not be specified as the insertion basket.
34
- * 2. A change output in the "default" basket may not be target of an insertion into a different basket.
35
- * 3. These baskets do not affect the wallet's balance and are typed "custom".
34
+ * 2. Managed change may not be reclassified as a basket insertion.
35
+ * 3. Basket insertions do not affect wallet balance and are typed "custom".
36
36
  *
37
37
  * "wallet payment" Merge Rules:
38
- * 1. Targetting an existing change "default" basket output results in a no-op. No error. No alterations made.
39
- * 2. Targetting a previously "custom" non-change output converts it into a change output. This alters the transaction's `amount`, and the wallet balance.
38
+ * 1. Targeting an existing managed output is idempotent.
39
+ * 2. Targeting a custom output converts it to managed BRC-29 change after
40
+ * the locking script is verified. This is the only supported in-place
41
+ * recovery path for a misclassified BRC-29 payment.
40
42
  *
41
43
  */
42
44
  async function internalizeAction(wallet, auth, args) {
@@ -73,9 +75,12 @@ async function internalizeAction(wallet, auth, args) {
73
75
  }
74
76
  }
75
77
  function setupBasketInsertionForOutput(o, dargs) {
76
- /*
77
- No additional validations...
78
- */
78
+ const insertion = o.insertionRemittance;
79
+ if (insertion == null)
80
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER('insertionRemittance', `valid for protocol ${o.protocol}`);
81
+ if (insertion.basket === 'default') {
82
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER('insertionRemittance.basket', 'a non-default basket');
83
+ }
79
84
  }
80
85
  /**
81
86
  * Verifies that the `tx` argument passed to internalizeAction is a valid AtomicBEEF,
@@ -1 +1 @@
1
- {"version":3,"file":"internalizeAction.js","sourceRoot":"","sources":["../../../../../src/signer/methods/internalizeAction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"internalizeAction.js","sourceRoot":"","sources":["../../../../../src/signer/methods/internalizeAction.ts"],"names":[],"mappings":";;AA2CA,8CAyEC;AApHD,kCAA4G;AAG5G,uDAA6E;AAE7E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACI,KAAK,UAAU,iBAAiB,CACrC,MAAc,EACd,IAAY,EACZ,IAA2B;IAE3B,MAAM,KAAK,GAAG,gBAAU,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAA;IAE5D,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM,kBAAkB,EAAE,CAAA;IACzC,MAAM,eAAe,GAAmB,CAAC,CAAC,EAAE,cAAc,CAAC,CAAA;IAE3D,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAAC,MAAM,IAAI,oCAAsB,CAAC,aAAa,EAAE,sCAAsC,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAA;QAAC,CAAC;QAC/K,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;YACnB,KAAK,kBAAkB;gBACrB,6BAA6B,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;gBACvC,MAAK;YACP,KAAK,gBAAgB;gBACnB,2BAA2B,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;gBACrC,MAAK;YACP;gBACE,MAAM,IAAI,2BAAa,CAAC,uBAAuB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;QAChE,CAAC;IACH,CAAC;IAED,MAAM,CAAC,GAAmC,MAAM,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAEtF,OAAO,CAAC,CAAA;IAER,SAAS,2BAA2B,CAAE,CAAoB,EAAE,KAA4C;QACtG,MAAM,CAAC,GAAG,CAAC,CAAC,iBAAiB,CAAA;QAC7B,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;QACxC,IAAI,CAAC,IAAI,IAAI;YAAE,MAAM,IAAI,oCAAsB,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;QAExG,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,gBAAgB,IAAI,CAAC,CAAC,gBAAgB,EAAE,CAAA;QAE3D,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAA;QAC/F,MAAM,kBAAkB,GAAG,IAAI,WAAK,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAA;QAChE,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,kBAAkB,CAAC,KAAK,EAAE,EAAE,CAAC;YAAC,MAAM,IAAI,oCAAsB,CAAC,mBAAmB,EAAE,uCAAuC,CAAC,CAAA;QAAC,CAAC;IACrK,CAAC;IAED,SAAS,6BAA6B,CAAE,CAAoB,EAAE,KAA4C;QACxG,MAAM,SAAS,GAAG,CAAC,CAAC,mBAAmB,CAAA;QACvC,IAAI,SAAS,IAAI,IAAI;YAAE,MAAM,IAAI,oCAAsB,CAAC,qBAAqB,EAAE,sBAAsB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;QAClH,IAAI,SAAS,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACnC,MAAM,IAAI,oCAAsB,CAAC,4BAA4B,EAAE,sBAAsB,CAAC,CAAA;QACxF,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,UAAU,kBAAkB;QAC/B,MAAM,EAAE,GAAG,UAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAEpC,kGAAkG;QAClG,uCAAuC;QAEvC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC,eAAe,EAAE,EAAE,KAAK,CAAC,CAAA;QACpF,IAAI,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,sCAAsC,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;YACrE,MAAM,IAAI,oCAAsB,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAA;QAC5D,CAAC;QACD,MAAM,IAAI,GAAG,EAAE,CAAC,UAAU,CAAA;QAC1B,MAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC7B,IAAI,GAAG,IAAI,IAAI;YAAE,MAAM,IAAI,oCAAsB,CAAC,IAAI,EAAE,wCAAwC,IAAI,EAAE,CAAC,CAAA;QACvG,MAAM,EAAE,GAAG,GAAG,CAAC,EAAG,CAAA;QAElB,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;IACzB,CAAC;AACH,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Beef } from '@bsv/sdk';
2
+ export declare function setResultBeef(result: object, beef: Beef): void;
3
+ export declare function getResultBeef(result: object): Beef | undefined;
4
+ //# sourceMappingURL=resultBeef.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resultBeef.d.ts","sourceRoot":"","sources":["../../../../../src/signer/methods/resultBeef.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAI/B,wBAAgB,aAAa,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAE/D;AAED,wBAAgB,aAAa,CAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAE/D"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setResultBeef = setResultBeef;
4
+ exports.getResultBeef = getResultBeef;
5
+ const resultBeefs = new WeakMap();
6
+ function setResultBeef(result, beef) {
7
+ resultBeefs.set(result, beef);
8
+ }
9
+ function getResultBeef(result) {
10
+ return resultBeefs.get(result);
11
+ }
12
+ //# sourceMappingURL=resultBeef.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resultBeef.js","sourceRoot":"","sources":["../../../../../src/signer/methods/resultBeef.ts"],"names":[],"mappings":";;AAIA,sCAEC;AAED,sCAEC;AARD,MAAM,WAAW,GAAG,IAAI,OAAO,EAAgB,CAAA;AAE/C,SAAgB,aAAa,CAAE,MAAc,EAAE,IAAU;IACvD,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;AAC/B,CAAC;AAED,SAAgB,aAAa,CAAE,MAAc;IAC3C,OAAO,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;AAChC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"signAction.d.ts","sourceRoot":"","sources":["../../../../../src/signer/methods/signAction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAQ,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAAc,MAAM,UAAU,CAAA;AAExH,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAA;AAE/E,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAGrC,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,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAyBhH"}
1
+ {"version":3,"file":"signAction.d.ts","sourceRoot":"","sources":["../../../../../src/signer/methods/signAction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAQ,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAAc,MAAM,UAAU,CAAA;AAExH,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAA;AAE/E,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAIrC,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,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA8BhH"}
@@ -5,6 +5,7 @@ const sdk_1 = require("@bsv/sdk");
5
5
  const createAction_1 = require("./createAction");
6
6
  const completeSignedTransaction_1 = require("./completeSignedTransaction");
7
7
  const WERR_errors_1 = require("../../sdk/WERR_errors");
8
+ const resultBeef_1 = require("./resultBeef");
8
9
  async function signAction(wallet, auth, args) {
9
10
  const prior = wallet.pendingSignActions[args.reference];
10
11
  if (!prior) {
@@ -16,7 +17,9 @@ async function signAction(wallet, auth, args) {
16
17
  prior.tx = await (0, completeSignedTransaction_1.completeSignedTransaction)(prior, vargs.spends, wallet);
17
18
  const { sendWithResults, notDelayedResults } = await (0, createAction_1.processAction)(prior, wallet, auth, vargs);
18
19
  const txid = prior.tx.id('hex');
19
- const beef = sdk_1.Beef.fromBinary(prior.dcr.inputBeef);
20
+ const beef = prior.dcr.inputBeef instanceof Uint8Array
21
+ ? sdk_1.Beef.fromBinaryView(prior.dcr.inputBeef)
22
+ : sdk_1.Beef.fromBinary(prior.dcr.inputBeef);
20
23
  beef.mergeTransaction(prior.tx);
21
24
  (0, completeSignedTransaction_1.verifyUnlockScripts)(txid, beef);
22
25
  const r = {
@@ -25,6 +28,8 @@ async function signAction(wallet, auth, args) {
25
28
  sendWithResults,
26
29
  notDelayedResults
27
30
  };
31
+ beef.atomicTxid = txid;
32
+ (0, resultBeef_1.setResultBeef)(r, beef);
28
33
  return r;
29
34
  }
30
35
  function mergePriorOptions(caVargs, saArgs) {
@@ -1 +1 @@
1
- {"version":3,"file":"signAction.js","sourceRoot":"","sources":["../../../../../src/signer/methods/signAction.ts"],"names":[],"mappings":";;AAcA,gCAyBC;AAvCD,kCAAwH;AACxH,iDAA8C;AAE9C,2EAA4F;AAE5F,uDAA2E;AASpE,KAAK,UAAU,UAAU,CAAE,MAAc,EAAE,IAAY,EAAE,IAAoB;IAClF,MAAM,KAAK,GAAG,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACvD,IAAI,CAAC,KAAK,EAAE,CAAC;QAAC,MAAM,IAAI,kCAAoB,CAAC,8EAA8E,CAAC,CAAA;IAAC,CAAC;IAC9H,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,IAAI,IAAI;QAAE,MAAM,IAAI,2BAAa,CAAC,mCAAmC,CAAC,CAAA;IAE7F,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAEjD,KAAK,CAAC,EAAE,GAAG,MAAM,IAAA,qDAAyB,EAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAEvE,MAAM,EAAE,eAAe,EAAE,iBAAiB,EAAE,GAAG,MAAM,IAAA,4BAAa,EAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;IAE9F,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;IAC/B,MAAM,IAAI,GAAG,UAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IACjD,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAE/B,IAAA,+CAAmB,EAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAE/B,MAAM,CAAC,GAAsB;QAC3B,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QACxB,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;QACxE,eAAe;QACf,iBAAiB;KAClB,CAAA;IAED,OAAO,CAAC,CAAA;AACV,CAAC;AAED,SAAS,iBAAiB,CACxB,OAAyC,EACzC,MAAsB;IAEtB,MAAM,SAAS,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,EAAE,CAAC,CAAA;IACzC,SAAS,CAAC,sBAAsB,KAAK,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAA;IAC3E,SAAS,CAAC,cAAc,KAAK,OAAO,CAAC,OAAO,CAAC,cAAc,CAAA;IAC3D,SAAS,CAAC,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,MAAM,CAAA;IAC3C,SAAS,CAAC,QAAQ,KAAK,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAA;IAC/C,OAAO,gBAAU,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAA;AAClD,CAAC"}
1
+ {"version":3,"file":"signAction.js","sourceRoot":"","sources":["../../../../../src/signer/methods/signAction.ts"],"names":[],"mappings":";;AAeA,gCA8BC;AA7CD,kCAAwH;AACxH,iDAA8C;AAE9C,2EAA4F;AAE5F,uDAA2E;AAC3E,6CAA4C;AASrC,KAAK,UAAU,UAAU,CAAE,MAAc,EAAE,IAAY,EAAE,IAAoB;IAClF,MAAM,KAAK,GAAG,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACvD,IAAI,CAAC,KAAK,EAAE,CAAC;QAAC,MAAM,IAAI,kCAAoB,CAAC,8EAA8E,CAAC,CAAA;IAAC,CAAC;IAC9H,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,IAAI,IAAI;QAAE,MAAM,IAAI,2BAAa,CAAC,mCAAmC,CAAC,CAAA;IAE7F,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAEjD,KAAK,CAAC,EAAE,GAAG,MAAM,IAAA,qDAAyB,EAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAEvE,MAAM,EAAE,eAAe,EAAE,iBAAiB,EAAE,GAAG,MAAM,IAAA,4BAAa,EAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;IAE9F,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;IAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,YAAY,UAAU;QACpD,CAAC,CAAC,UAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;QAC1C,CAAC,CAAC,UAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IACxC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAE/B,IAAA,+CAAmB,EAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAE/B,MAAM,CAAC,GAAsB;QAC3B,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QACxB,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;QACxE,eAAe;QACf,iBAAiB;KAClB,CAAA;IAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;IACtB,IAAA,0BAAa,EAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IAEtB,OAAO,CAAC,CAAA;AACV,CAAC;AAED,SAAS,iBAAiB,CACxB,OAAyC,EACzC,MAAsB;IAEtB,MAAM,SAAS,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,EAAE,CAAC,CAAA;IACzC,SAAS,CAAC,sBAAsB,KAAK,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAA;IAC3E,SAAS,CAAC,cAAc,KAAK,OAAO,CAAC,OAAO,CAAC,cAAc,CAAA;IAC3D,SAAS,CAAC,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,MAAM,CAAA;IAC3C,SAAS,CAAC,QAAQ,KAAK,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAA;IAC/C,OAAO,gBAAU,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAA;AAClD,CAAC"}
@@ -154,6 +154,23 @@ export declare abstract class StorageProvider extends StorageReaderWriter implem
154
154
  * Alterations of "typically" to handle:
155
155
  */
156
156
  updateProvenTxReqWithNewProvenTx(args: UpdateProvenTxReqWithNewProvenTxArgs): Promise<UpdateProvenTxReqWithNewProvenTxResult>;
157
+ /**
158
+ * Reconcile completed proof requests whose transaction fan-out previously
159
+ * failed or whose durable notification state drifted.
160
+ *
161
+ * This is called by TaskReviewStatus so a completed request with
162
+ * `notified = false` is retried and can become eligible for normal purge.
163
+ */
164
+ reconcileCompletedProvenTxReqs(): Promise<{
165
+ log: string;
166
+ }>;
167
+ /**
168
+ * Restore every failed local copy of a transaction before proof completion.
169
+ * Also heals the request's notification set from the authoritative txid
170
+ * lookup so TaskUnFail cannot omit a local copy after notification drift.
171
+ */
172
+ unfailTransactionsForProof(req: EntityProvenTxReq, indent?: number, requestUpdate?: Pick<TableProvenTxReqDynamics, 'status' | 'attempts'>): Promise<string>;
173
+ private reconcileProvenTxReqTransactions;
157
174
  /**
158
175
  * For each spendable output in the 'default' basket of the authenticated user,
159
176
  * verify that the output script, satoshis, vout and txid match that of an output
@@ -1 +1 @@
1
- {"version":3,"file":"StorageProvider.d.ts","sourceRoot":"","sources":["../../../../src/storage/StorageProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StorageProvider.d.ts","sourceRoot":"","sources":["../../../../src/storage/StorageProvider.ts"],"names":[],"mappings":"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"}
@@ -597,11 +597,15 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
597
597
  if (req.provenTxId != null && req.provenTxId > 0) {
598
598
  // Someone beat us to it, grab what we need for results...
599
599
  proven = new entities_1.EntityProvenTx((0, utilityHelpers_1.verifyOne)(await this.findProvenTxs({ partial: { txid: args.txid } })));
600
+ if (req.status !== 'completed' || req.provenTxId !== proven.provenTxId) {
601
+ req.status = 'completed';
602
+ req.provenTxId = proven.provenTxId;
603
+ await req.updateStorageDynamicProperties(this);
604
+ }
600
605
  }
601
606
  else {
602
- let isNew;
603
- ({ proven, isNew } = await this.transaction(async (trx) => {
604
- const { proven: api, isNew } = await this.findOrInsertProvenTx({
607
+ proven = await this.transaction(async (trx) => {
608
+ const { proven: api } = await this.findOrInsertProvenTx({
605
609
  created_at: new Date(),
606
610
  updated_at: new Date(),
607
611
  provenTxId: 0,
@@ -613,26 +617,215 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
613
617
  blockHash: args.blockHash,
614
618
  merkleRoot: args.merkleRoot
615
619
  }, trx);
616
- proven = new entities_1.EntityProvenTx(api);
617
- if (isNew) {
620
+ const found = new entities_1.EntityProvenTx(api);
621
+ if (req.status !== 'completed' || req.provenTxId !== found.provenTxId) {
618
622
  req.status = 'completed';
619
- req.provenTxId = proven.provenTxId;
623
+ req.provenTxId = found.provenTxId;
620
624
  await req.updateStorageDynamicProperties(this, trx);
621
- // upate the transaction notifications outside of storage transaction....
622
625
  }
623
- return { proven, isNew };
624
- }));
625
- if (isNew) {
626
- await (0, storageProviderHelpers_1.notifyTransactionsOfProof)(req.notify.transactionIds ?? [], proven.provenTxId, note => req.addHistoryNote(note), async () => { await req.updateStorageDynamicProperties(this); }, async (id, update) => { await this.updateTransaction(id, update); });
627
- }
626
+ return found;
627
+ });
628
628
  }
629
+ await this.reconcileProvenTxReqTransactions(req, proven);
629
630
  const r = {
630
631
  status: req.status,
631
632
  history: req.apiHistory,
632
- provenTxId: proven.provenTxId
633
+ provenTxId: proven.provenTxId,
634
+ notified: req.notified,
635
+ notify: req.apiNotify
633
636
  };
634
637
  return r;
635
638
  }
639
+ /**
640
+ * Reconcile completed proof requests whose transaction fan-out previously
641
+ * failed or whose durable notification state drifted.
642
+ *
643
+ * This is called by TaskReviewStatus so a completed request with
644
+ * `notified = false` is retried and can become eligible for normal purge.
645
+ */
646
+ async reconcileCompletedProvenTxReqs() {
647
+ let log = '';
648
+ const reqs = await this.findProvenTxReqs({
649
+ partial: { status: 'completed', notified: false }
650
+ });
651
+ for (const reqApi of reqs) {
652
+ const req = new entities_1.EntityProvenTxReq(reqApi);
653
+ if (req.provenTxId == null || req.provenTxId <= 0) {
654
+ log += `completed req ${req.id} cannot reconcile without provenTxId\n`;
655
+ continue;
656
+ }
657
+ const provenApi = (0, utilityHelpers_1.verifyOneOrNone)(await this.findProvenTxs({
658
+ partial: { provenTxId: req.provenTxId }
659
+ }));
660
+ if (provenApi == null) {
661
+ log += `completed req ${req.id} cannot reconcile missing provenTx ${req.provenTxId}\n`;
662
+ continue;
663
+ }
664
+ await this.reconcileProvenTxReqTransactions(req, new entities_1.EntityProvenTx(provenApi));
665
+ if (req.notified)
666
+ log += `completed req ${req.id} transaction notifications reconciled\n`;
667
+ }
668
+ return { log };
669
+ }
670
+ /**
671
+ * Restore every failed local copy of a transaction before proof completion.
672
+ * Also heals the request's notification set from the authoritative txid
673
+ * lookup so TaskUnFail cannot omit a local copy after notification drift.
674
+ */
675
+ async unfailTransactionsForProof(req, indent = 0, requestUpdate) {
676
+ const transactions = await this.findTransactions({
677
+ partial: { txid: req.txid },
678
+ noRawTx: true
679
+ });
680
+ const transactionsToRepair = transactions.filter(transaction => requestUpdate != null || transaction.status === 'failed');
681
+ // Proof completion is the hot path. If no failed transaction needs repair,
682
+ // notification reconciliation below will perform the required atomic work;
683
+ // avoid an otherwise empty refresh/write transaction here.
684
+ if (transactionsToRepair.length === 0 && requestUpdate == null)
685
+ return '';
686
+ // Refresh only after deciding recovery is required, while the caller has
687
+ // not yet applied an intended request transition. TaskUnFail passes that
688
+ // transition separately so it is persisted atomically with bookkeeping.
689
+ await req.refreshFromStorage(this);
690
+ const preparedTransactionIds = new Set(transactionsToRepair.map(transaction => transaction.transactionId));
691
+ const outputVerdicts = new Map();
692
+ const bsvtx = transactionsToRepair.length > 0 ? sdk_1.Transaction.fromBinary(req.rawTx) : undefined;
693
+ // UTXO checks can call external services. Complete every check before
694
+ // opening the write transaction so network latency never holds DB locks.
695
+ if (transactionsToRepair.length > 0) {
696
+ const services = this.getServices();
697
+ for (const transaction of transactionsToRepair) {
698
+ const outputs = await this.findOutputs({
699
+ partial: { userId: transaction.userId, transactionId: transaction.transactionId }
700
+ });
701
+ for (const output of outputs) {
702
+ const outputId = (0, utilityHelpers_1.verifyId)(output.outputId);
703
+ await this.validateOutputScript(output);
704
+ outputVerdicts.set(outputId, output.lockingScript == null ? undefined : await services.isUtxo(output));
705
+ }
706
+ }
707
+ }
708
+ return await this.transaction(async (trx) => {
709
+ let log = '';
710
+ await req.refreshFromStorage(this, trx);
711
+ const currentTransactions = await this.findTransactions({
712
+ partial: { txid: req.txid },
713
+ noRawTx: true,
714
+ trx
715
+ });
716
+ const knownNotificationIds = new Set(req.notify.transactionIds ?? []);
717
+ if (requestUpdate != null) {
718
+ req.status = requestUpdate.status;
719
+ req.attempts = requestUpdate.attempts;
720
+ }
721
+ for (const tx of currentTransactions) {
722
+ if (!knownNotificationIds.has(tx.transactionId)) {
723
+ req.addNotifyTransactionId(tx.transactionId);
724
+ knownNotificationIds.add(tx.transactionId);
725
+ }
726
+ const shouldRepair = requestUpdate != null || tx.status === 'failed';
727
+ if (!shouldRepair)
728
+ continue;
729
+ if (bsvtx == null || !preparedTransactionIds.has(tx.transactionId)) {
730
+ throw new WERR_errors_1.WERR_INTERNAL(`Transaction ${tx.transactionId} changed while preparing proof recovery.`);
731
+ }
732
+ await this.updateTransaction(tx.transactionId, { status: 'unproven' }, trx);
733
+ log += ' '.repeat(indent) + `transaction ${tx.transactionId} status is now 'unproven'\n`;
734
+ let vin = -1;
735
+ for (const input of bsvtx.inputs) {
736
+ vin++;
737
+ const sourceTXID = input.sourceTXID;
738
+ if (sourceTXID == null) {
739
+ log += ' '.repeat(indent + 2) + `input ${vin} has no source transaction id\n`;
740
+ continue;
741
+ }
742
+ const outputs = await this.findOutputs({
743
+ partial: {
744
+ userId: tx.userId,
745
+ txid: sourceTXID,
746
+ vout: input.sourceOutputIndex
747
+ },
748
+ trx
749
+ });
750
+ if (outputs.length === 1) {
751
+ const output = outputs[0];
752
+ log += ' '.repeat(indent + 2) +
753
+ `input ${vin} matched to output ${output.outputId} updated spentBy ${tx.transactionId}\n`;
754
+ await this.updateOutput((0, utilityHelpers_1.verifyId)(output.outputId), { spendable: false, spentBy: tx.transactionId }, trx);
755
+ }
756
+ else {
757
+ log += ' '.repeat(indent + 2) + `input ${vin} not matched to user's outputs\n`;
758
+ }
759
+ }
760
+ const outputs = await this.findOutputs({
761
+ partial: { userId: tx.userId, transactionId: tx.transactionId },
762
+ trx
763
+ });
764
+ for (const output of outputs) {
765
+ const outputId = (0, utilityHelpers_1.verifyId)(output.outputId);
766
+ if (!outputVerdicts.has(outputId)) {
767
+ throw new WERR_errors_1.WERR_INTERNAL(`Output ${outputId} changed while preparing proof recovery.`);
768
+ }
769
+ const isUtxo = outputVerdicts.get(outputId);
770
+ if (isUtxo == null) {
771
+ log += ' '.repeat(indent + 2) + `output ${output.outputId} does not have a valid locking script\n`;
772
+ }
773
+ else if (isUtxo === output.spendable) {
774
+ log += ' '.repeat(indent + 2) + `output ${output.outputId} unchanged\n`;
775
+ }
776
+ else {
777
+ log += ' '.repeat(indent + 2) +
778
+ `output ${output.outputId} set to ${isUtxo ? 'spendable' : 'spent'}\n`;
779
+ await this.updateOutput(outputId, { spendable: isUtxo }, trx);
780
+ }
781
+ }
782
+ }
783
+ await req.updateStorageDynamicProperties(this, trx);
784
+ return log;
785
+ });
786
+ }
787
+ async reconcileProvenTxReqTransactions(req, proven) {
788
+ // A transaction can be internalized concurrently by several users. Their
789
+ // transaction rows share a txid but race while merging the JSON notify
790
+ // list, so a last-writer-wins update can omit one local copy. A valid proof
791
+ // is authoritative for every local transaction with this txid: discover
792
+ // them from the indexed transaction table and atomically heal both the
793
+ // durable notify set and any row that missed the original completion.
794
+ // Keep the clean proof-completion path identical to the normal notification
795
+ // transaction. Only leave it when failed rows require external UTXO checks,
796
+ // which must run without an open transaction.
797
+ let repairAttempts = 0;
798
+ for (;;) {
799
+ const needsRepair = await this.transaction(async (trx) => {
800
+ await req.refreshFromStorage(this, trx);
801
+ const transactions = await this.findTransactions({ partial: { txid: req.txid }, trx });
802
+ if (transactions.some(transaction => transaction.status === 'failed'))
803
+ return true;
804
+ const knownNotificationIds = new Set(req.notify.transactionIds ?? []);
805
+ for (const transaction of transactions) {
806
+ if (!knownNotificationIds.has(transaction.transactionId)) {
807
+ req.addNotifyTransactionId(transaction.transactionId);
808
+ knownNotificationIds.add(transaction.transactionId);
809
+ }
810
+ }
811
+ const transactionIdsNeedingProof = transactions
812
+ .filter(transaction => transaction.status !== 'completed' || transaction.provenTxId !== proven.provenTxId)
813
+ .map(transaction => transaction.transactionId);
814
+ const updatesSucceeded = await (0, storageProviderHelpers_1.notifyTransactionsOfProof)(transactionIdsNeedingProof, proven.provenTxId, note => req.addHistoryNote(note), async (id, update) => { await this.updateTransaction(id, update, trx); });
815
+ const completedTransactions = await this.findTransactions({ partial: { txid: req.txid }, trx });
816
+ req.notified = updatesSucceeded && completedTransactions.every(transaction => transaction.status === 'completed' && transaction.provenTxId === proven.provenTxId);
817
+ await req.updateStorageDynamicProperties(this, trx);
818
+ return false;
819
+ });
820
+ if (!needsRepair)
821
+ return;
822
+ if (repairAttempts >= 2) {
823
+ throw new WERR_errors_1.WERR_INTERNAL(`Transactions for ${req.txid} repeatedly changed to failed during proof recovery.`);
824
+ }
825
+ repairAttempts++;
826
+ await this.unfailTransactionsForProof(req);
827
+ }
828
+ }
636
829
  /**
637
830
  * For each spendable output in the 'default' basket of the authenticated user,
638
831
  * verify that the output script, satoshis, vout and txid match that of an output