@bsv/wallet-toolbox 2.4.1 → 2.4.3

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 (139) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/README.md +41 -0
  3. package/docs/client.md +417 -173
  4. package/docs/services.md +51 -26
  5. package/docs/storage.md +367 -76
  6. package/docs/wallet.md +384 -140
  7. package/out/src/Wallet.d.ts +1 -1
  8. package/out/src/Wallet.d.ts.map +1 -1
  9. package/out/src/Wallet.js +8 -7
  10. package/out/src/Wallet.js.map +1 -1
  11. package/out/src/WalletPermissionsManager.d.ts +33 -0
  12. package/out/src/WalletPermissionsManager.d.ts.map +1 -1
  13. package/out/src/WalletPermissionsManager.js +132 -37
  14. package/out/src/WalletPermissionsManager.js.map +1 -1
  15. package/out/src/monitor/tasks/TaskArcSSE.d.ts.map +1 -1
  16. package/out/src/monitor/tasks/TaskArcSSE.js +11 -7
  17. package/out/src/monitor/tasks/TaskArcSSE.js.map +1 -1
  18. package/out/src/monitor/tasks/TaskCheckForProofs.d.ts.map +1 -1
  19. package/out/src/monitor/tasks/TaskCheckForProofs.js +10 -10
  20. package/out/src/monitor/tasks/TaskCheckForProofs.js.map +1 -1
  21. package/out/src/monitor/tasks/TaskReviewStatus.d.ts.map +1 -1
  22. package/out/src/monitor/tasks/TaskReviewStatus.js +7 -2
  23. package/out/src/monitor/tasks/TaskReviewStatus.js.map +1 -1
  24. package/out/src/monitor/tasks/TaskUnFail.d.ts.map +1 -1
  25. package/out/src/monitor/tasks/TaskUnFail.js +2 -57
  26. package/out/src/monitor/tasks/TaskUnFail.js.map +1 -1
  27. package/out/src/sdk/WalletServices.interfaces.d.ts +1 -0
  28. package/out/src/sdk/WalletServices.interfaces.d.ts.map +1 -1
  29. package/out/src/sdk/WalletStorage.interfaces.d.ts +10 -4
  30. package/out/src/sdk/WalletStorage.interfaces.d.ts.map +1 -1
  31. package/out/src/sdk/types.d.ts +1 -1
  32. package/out/src/sdk/types.d.ts.map +1 -1
  33. package/out/src/services/Services.d.ts.map +1 -1
  34. package/out/src/services/Services.js +39 -19
  35. package/out/src/services/Services.js.map +1 -1
  36. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.d.ts.map +1 -1
  37. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.js +4 -0
  38. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.js.map +1 -1
  39. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts.map +1 -1
  40. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js +2 -0
  41. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js.map +1 -1
  42. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts.map +1 -1
  43. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js +2 -1
  44. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js.map +1 -1
  45. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts.map +1 -1
  46. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js +1 -0
  47. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js.map +1 -1
  48. package/out/src/services/createDefaultWalletServicesOptions.d.ts.map +1 -1
  49. package/out/src/services/createDefaultWalletServicesOptions.js +17 -3
  50. package/out/src/services/createDefaultWalletServicesOptions.js.map +1 -1
  51. package/out/src/services/networkConfig.d.ts +29 -0
  52. package/out/src/services/networkConfig.d.ts.map +1 -0
  53. package/out/src/services/networkConfig.js +54 -0
  54. package/out/src/services/networkConfig.js.map +1 -0
  55. package/out/src/services/providers/Arcade.d.ts.map +1 -1
  56. package/out/src/services/providers/Arcade.js +6 -2
  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/resultBeef.d.ts +4 -0
  72. package/out/src/signer/methods/resultBeef.d.ts.map +1 -0
  73. package/out/src/signer/methods/resultBeef.js +12 -0
  74. package/out/src/signer/methods/resultBeef.js.map +1 -0
  75. package/out/src/signer/methods/signAction.d.ts.map +1 -1
  76. package/out/src/signer/methods/signAction.js +6 -1
  77. package/out/src/signer/methods/signAction.js.map +1 -1
  78. package/out/src/storage/StorageProvider.d.ts +17 -0
  79. package/out/src/storage/StorageProvider.d.ts.map +1 -1
  80. package/out/src/storage/StorageProvider.js +206 -13
  81. package/out/src/storage/StorageProvider.js.map +1 -1
  82. package/out/src/storage/index.all.d.ts +1 -0
  83. package/out/src/storage/index.all.d.ts.map +1 -1
  84. package/out/src/storage/index.all.js +1 -0
  85. package/out/src/storage/index.all.js.map +1 -1
  86. package/out/src/storage/methods/createAction.js +17 -4
  87. package/out/src/storage/methods/createAction.js.map +1 -1
  88. package/out/src/storage/methods/getBeefForTransaction.d.ts.map +1 -1
  89. package/out/src/storage/methods/getBeefForTransaction.js +47 -24
  90. package/out/src/storage/methods/getBeefForTransaction.js.map +1 -1
  91. package/out/src/storage/methods/internalizeAction.js +3 -3
  92. package/out/src/storage/methods/internalizeAction.js.map +1 -1
  93. package/out/src/storage/methods/processAction.d.ts.map +1 -1
  94. package/out/src/storage/methods/processAction.js +5 -4
  95. package/out/src/storage/methods/processAction.js.map +1 -1
  96. package/out/src/storage/remoting/BinaryJson.d.ts +10 -0
  97. package/out/src/storage/remoting/BinaryJson.d.ts.map +1 -0
  98. package/out/src/storage/remoting/BinaryJson.js +172 -0
  99. package/out/src/storage/remoting/BinaryJson.js.map +1 -0
  100. package/out/src/storage/remoting/KnexSessionManager.d.ts +37 -0
  101. package/out/src/storage/remoting/KnexSessionManager.d.ts.map +1 -0
  102. package/out/src/storage/remoting/KnexSessionManager.js +198 -0
  103. package/out/src/storage/remoting/KnexSessionManager.js.map +1 -0
  104. package/out/src/storage/remoting/StorageClient.d.ts +2 -2
  105. package/out/src/storage/remoting/StorageClient.d.ts.map +1 -1
  106. package/out/src/storage/remoting/StorageClient.js +14 -5
  107. package/out/src/storage/remoting/StorageClient.js.map +1 -1
  108. package/out/src/storage/remoting/StorageClientBase.d.ts +11 -1
  109. package/out/src/storage/remoting/StorageClientBase.d.ts.map +1 -1
  110. package/out/src/storage/remoting/StorageClientBase.js +4 -1
  111. package/out/src/storage/remoting/StorageClientBase.js.map +1 -1
  112. package/out/src/storage/remoting/StorageMobile.d.ts +2 -2
  113. package/out/src/storage/remoting/StorageMobile.d.ts.map +1 -1
  114. package/out/src/storage/remoting/StorageMobile.js +14 -5
  115. package/out/src/storage/remoting/StorageMobile.js.map +1 -1
  116. package/out/src/storage/remoting/StorageServer.d.ts +10 -0
  117. package/out/src/storage/remoting/StorageServer.d.ts.map +1 -1
  118. package/out/src/storage/remoting/StorageServer.js +48 -21
  119. package/out/src/storage/remoting/StorageServer.js.map +1 -1
  120. package/out/src/storage/schema/KnexMigrations.d.ts +2 -0
  121. package/out/src/storage/schema/KnexMigrations.d.ts.map +1 -1
  122. package/out/src/storage/schema/KnexMigrations.js +34 -1
  123. package/out/src/storage/schema/KnexMigrations.js.map +1 -1
  124. package/out/src/storage/schema/tables/TableAuthSession.d.ts +20 -0
  125. package/out/src/storage/schema/tables/TableAuthSession.d.ts.map +1 -0
  126. package/out/src/storage/schema/tables/TableAuthSession.js +15 -0
  127. package/out/src/storage/schema/tables/TableAuthSession.js.map +1 -0
  128. package/out/src/storage/schema/tables/index.d.ts +1 -0
  129. package/out/src/storage/schema/tables/index.d.ts.map +1 -1
  130. package/out/src/storage/schema/tables/index.js +1 -0
  131. package/out/src/storage/schema/tables/index.js.map +1 -1
  132. package/out/src/storage/storageProviderHelpers.d.ts +5 -4
  133. package/out/src/storage/storageProviderHelpers.d.ts.map +1 -1
  134. package/out/src/storage/storageProviderHelpers.js +7 -6
  135. package/out/src/storage/storageProviderHelpers.js.map +1 -1
  136. package/out/src/utility/utilityHelpers.d.ts.map +1 -1
  137. package/out/src/utility/utilityHelpers.js +2 -0
  138. package/out/src/utility/utilityHelpers.js.map +1 -1
  139. package/package.json +5 -4
package/docs/storage.md CHANGED
@@ -22,27 +22,28 @@ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](
22
22
 
23
23
  | | | |
24
24
  | --- | --- | --- |
25
- | [AdminStatsResult](#interface-adminstatsresult) | [MonitorAdminContextConfig](#interface-monitoradmincontextconfig) | [TableCertificateX](#interface-tablecertificatex) |
26
- | [AggregatePostBeefTxResult](#interface-aggregatepostbeeftxresult) | [PostBeefResultForTxidApi](#interface-postbeefresultfortxidapi) | [TableCommission](#interface-tablecommission) |
27
- | [BRC38ImportOptions](#interface-brc38importoptions) | [PostReqsToNetworkDetails](#interface-postreqstonetworkdetails) | [TableMonitorEvent](#interface-tablemonitorevent) |
28
- | [BRC38ImportResult](#interface-brc38importresult) | [PostReqsToNetworkResult](#interface-postreqstonetworkresult) | [TableOutput](#interface-tableoutput) |
29
- | [BRC38Tables](#interface-brc38tables) | [ProvenTxFromTxidResult](#interface-proventxfromtxidresult) | [TableOutputBasket](#interface-tableoutputbasket) |
30
- | [BRC38WalletData](#interface-brc38walletdata) | [ProvenTxReqHistory](#interface-proventxreqhistory) | [TableOutputTag](#interface-tableoutputtag) |
31
- | [BRC39Options](#interface-brc39options) | [ProvenTxReqHistorySummaryApi](#interface-proventxreqhistorysummaryapi) | [TableOutputTagMap](#interface-tableoutputtagmap) |
32
- | [CommitNewTxResults](#interface-commitnewtxresults) | [ProvenTxReqNotify](#interface-proventxreqnotify) | [TableOutputX](#interface-tableoutputx) |
33
- | [EntitySyncMap](#interface-entitysyncmap) | [SpentInputTransition](#interface-spentinputtransition) | [TableProvenTx](#interface-tableproventx) |
34
- | [GenerateChangeSdkChangeInput](#interface-generatechangesdkchangeinput) | [StorageAdminStats](#interface-storageadminstats) | [TableProvenTxReq](#interface-tableproventxreq) |
35
- | [GenerateChangeSdkChangeOutput](#interface-generatechangesdkchangeoutput) | [StorageIdbOptions](#interface-storageidboptions) | [TableProvenTxReqDynamics](#interface-tableproventxreqdynamics) |
36
- | [GenerateChangeSdkInput](#interface-generatechangesdkinput) | [StorageIdbSchema](#interface-storageidbschema) | [TableSettings](#interface-tablesettings) |
37
- | [GenerateChangeSdkOutput](#interface-generatechangesdkoutput) | [StorageKnexOptions](#interface-storageknexoptions) | [TableSyncState](#interface-tablesyncstate) |
38
- | [GenerateChangeSdkParams](#interface-generatechangesdkparams) | [StorageMySQLDojoReaderOptions](#interface-storagemysqldojoreaderoptions) | [TableTransaction](#interface-tabletransaction) |
39
- | [GenerateChangeSdkResult](#interface-generatechangesdkresult) | [StorageProviderOptions](#interface-storageprovideroptions) | [TableTxLabel](#interface-tabletxlabel) |
40
- | [GenerateChangeSdkStorageChange](#interface-generatechangesdkstoragechange) | [StorageReaderOptions](#interface-storagereaderoptions) | [TableTxLabelMap](#interface-tabletxlabelmap) |
41
- | [GetReqsAndBeefDetail](#interface-getreqsandbeefdetail) | [StorageReaderWriterOptions](#interface-storagereaderwriteroptions) | [TableUser](#interface-tableuser) |
42
- | [GetReqsAndBeefResult](#interface-getreqsandbeefresult) | [SyncError](#interface-syncerror) | [ValidateGenerateChangeSdkParamsResult](#interface-validategeneratechangesdkparamsresult) |
25
+ | [AdminStatsResult](#interface-adminstatsresult) | [MonitorAdminContextConfig](#interface-monitoradmincontextconfig) | [TableCertificateField](#interface-tablecertificatefield) |
26
+ | [AggregatePostBeefTxResult](#interface-aggregatepostbeeftxresult) | [PostBeefResultForTxidApi](#interface-postbeefresultfortxidapi) | [TableCertificateX](#interface-tablecertificatex) |
27
+ | [BRC38ImportOptions](#interface-brc38importoptions) | [PostReqsToNetworkDetails](#interface-postreqstonetworkdetails) | [TableCommission](#interface-tablecommission) |
28
+ | [BRC38ImportResult](#interface-brc38importresult) | [PostReqsToNetworkResult](#interface-postreqstonetworkresult) | [TableMonitorEvent](#interface-tablemonitorevent) |
29
+ | [BRC38Tables](#interface-brc38tables) | [ProvenTxFromTxidResult](#interface-proventxfromtxidresult) | [TableOutput](#interface-tableoutput) |
30
+ | [BRC38WalletData](#interface-brc38walletdata) | [ProvenTxReqHistory](#interface-proventxreqhistory) | [TableOutputBasket](#interface-tableoutputbasket) |
31
+ | [BRC39Options](#interface-brc39options) | [ProvenTxReqHistorySummaryApi](#interface-proventxreqhistorysummaryapi) | [TableOutputTag](#interface-tableoutputtag) |
32
+ | [CommitNewTxResults](#interface-commitnewtxresults) | [ProvenTxReqNotify](#interface-proventxreqnotify) | [TableOutputTagMap](#interface-tableoutputtagmap) |
33
+ | [EntitySyncMap](#interface-entitysyncmap) | [SpentInputTransition](#interface-spentinputtransition) | [TableOutputX](#interface-tableoutputx) |
34
+ | [GenerateChangeSdkChangeInput](#interface-generatechangesdkchangeinput) | [StorageAdminStats](#interface-storageadminstats) | [TableProvenTx](#interface-tableproventx) |
35
+ | [GenerateChangeSdkChangeOutput](#interface-generatechangesdkchangeoutput) | [StorageClientOptions](#interface-storageclientoptions) | [TableProvenTxReq](#interface-tableproventxreq) |
36
+ | [GenerateChangeSdkInput](#interface-generatechangesdkinput) | [StorageIdbOptions](#interface-storageidboptions) | [TableProvenTxReqDynamics](#interface-tableproventxreqdynamics) |
37
+ | [GenerateChangeSdkOutput](#interface-generatechangesdkoutput) | [StorageIdbSchema](#interface-storageidbschema) | [TableSettings](#interface-tablesettings) |
38
+ | [GenerateChangeSdkParams](#interface-generatechangesdkparams) | [StorageKnexOptions](#interface-storageknexoptions) | [TableSyncState](#interface-tablesyncstate) |
39
+ | [GenerateChangeSdkResult](#interface-generatechangesdkresult) | [StorageMySQLDojoReaderOptions](#interface-storagemysqldojoreaderoptions) | [TableTransaction](#interface-tabletransaction) |
40
+ | [GenerateChangeSdkStorageChange](#interface-generatechangesdkstoragechange) | [StorageProviderOptions](#interface-storageprovideroptions) | [TableTxLabel](#interface-tabletxlabel) |
41
+ | [GetReqsAndBeefDetail](#interface-getreqsandbeefdetail) | [StorageReaderOptions](#interface-storagereaderoptions) | [TableTxLabelMap](#interface-tabletxlabelmap) |
42
+ | [GetReqsAndBeefResult](#interface-getreqsandbeefresult) | [StorageReaderWriterOptions](#interface-storagereaderwriteroptions) | [TableUser](#interface-tableuser) |
43
+ | [KnexSessionManagerOptions](#interface-knexsessionmanageroptions) | [SyncError](#interface-syncerror) | [ValidateGenerateChangeSdkParamsResult](#interface-validategeneratechangesdkparamsresult) |
43
44
  | [ListActionsSpecOp](#interface-listactionsspecop) | [SyncMap](#interface-syncmap) | [VerifyAndRepairBeefResult](#interface-verifyandrepairbeefresult) |
44
- | [ListOutputsSpecOp](#interface-listoutputsspecop) | [TableCertificate](#interface-tablecertificate) | [WalletStorageServerOptions](#interface-walletstorageserveroptions) |
45
- | [MonitorAdminContext](#interface-monitoradmincontext) | [TableCertificateField](#interface-tablecertificatefield) | [XValidCreateActionOutput](#interface-xvalidcreateactionoutput) |
45
+ | [ListOutputsSpecOp](#interface-listoutputsspecop) | [TableAuthSession](#interface-tableauthsession) | [WalletStorageServerOptions](#interface-walletstorageserveroptions) |
46
+ | [MonitorAdminContext](#interface-monitoradmincontext) | [TableCertificate](#interface-tablecertificate) | [XValidCreateActionOutput](#interface-xvalidcreateactionoutput) |
46
47
 
47
48
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
48
49
 
@@ -425,6 +426,34 @@ See also: [GetReqsAndBeefDetail](./storage.md#interface-getreqsandbeefdetail)
425
426
 
426
427
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
427
428
 
429
+ ---
430
+ ##### Interface: KnexSessionManagerOptions
431
+
432
+ ```ts
433
+ export interface KnexSessionManagerOptions {
434
+ ttlMs?: number;
435
+ now?: () => number;
436
+ }
437
+ ```
438
+
439
+ ###### Property now
440
+
441
+ Testable clock source. Defaults to `Date.now`.
442
+
443
+ ```ts
444
+ now?: () => number
445
+ ```
446
+
447
+ ###### Property ttlMs
448
+
449
+ Session lifetime since its most recent authenticated use. Default: 24 hours.
450
+
451
+ ```ts
452
+ ttlMs?: number
453
+ ```
454
+
455
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
456
+
428
457
  ---
429
458
  ##### Interface: ListActionsSpecOp
430
459
 
@@ -780,6 +809,27 @@ export interface StorageAdminStats {
780
809
 
781
810
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
782
811
 
812
+ ---
813
+ ##### Interface: StorageClientOptions
814
+
815
+ ```ts
816
+ export interface StorageClientOptions {
817
+ binaryRequests?: boolean;
818
+ }
819
+ ```
820
+
821
+ ###### Property binaryRequests
822
+
823
+ Send compact tagged binary request values after the server advertises
824
+ support. Leave disabled during rolling deployments where an endpoint may
825
+ still route requests to legacy server instances.
826
+
827
+ ```ts
828
+ binaryRequests?: boolean
829
+ ```
830
+
831
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
832
+
783
833
  ---
784
834
  ##### Interface: StorageIdbOptions
785
835
 
@@ -1089,6 +1139,30 @@ See also: [EntitySyncMap](./storage.md#interface-entitysyncmap)
1089
1139
 
1090
1140
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
1091
1141
 
1142
+ ---
1143
+ ##### Interface: TableAuthSession
1144
+
1145
+ Durable representation of a BRC-103 peer session.
1146
+
1147
+ The session nonce is the authoritative key. `lastUpdate` also acts as the
1148
+ optimistic-write version so a delayed request from one replica cannot
1149
+ overwrite newer authentication state written by another replica.
1150
+
1151
+ ```ts
1152
+ export interface TableAuthSession {
1153
+ sessionNonce: string;
1154
+ peerNonce?: string | null;
1155
+ peerIdentityKey?: string | null;
1156
+ isAuthenticated: boolean | number;
1157
+ lastUpdate: number | string;
1158
+ certificatesRequired?: boolean | number | null;
1159
+ certificatesValidated?: boolean | number | null;
1160
+ expiresAt: number | string;
1161
+ }
1162
+ ```
1163
+
1164
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
1165
+
1092
1166
  ---
1093
1167
  ##### Interface: TableCertificate
1094
1168
 
@@ -1719,11 +1793,30 @@ export interface WalletStorageServerOptions {
1719
1793
  calculateRequestPrice?: (req: Request) => number | Promise<number>;
1720
1794
  adminIdentityKeys?: string[];
1721
1795
  makeLogger?: MakeWalletLogger;
1796
+ sessionManager?: AuthMiddlewareOptions["sessionManager"];
1797
+ logRpcRequests?: boolean;
1722
1798
  }
1723
1799
  ```
1724
1800
 
1725
1801
  See also: [Wallet](./client.md#class-wallet)
1726
1802
 
1803
+ ###### Property logRpcRequests
1804
+
1805
+ Emit one JSON log record for each authenticated RPC. Default: true.
1806
+
1807
+ ```ts
1808
+ logRpcRequests?: boolean
1809
+ ```
1810
+
1811
+ ###### Property sessionManager
1812
+
1813
+ Shared BRC-103 session storage for multi-process or multi-replica servers.
1814
+ Defaults to the auth middleware's in-process SessionManager.
1815
+
1816
+ ```ts
1817
+ sessionManager?: AuthMiddlewareOptions["sessionManager"]
1818
+ ```
1819
+
1727
1820
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
1728
1821
 
1729
1822
  ---
@@ -1748,16 +1841,16 @@ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](
1748
1841
 
1749
1842
  | | | |
1750
1843
  | --- | --- | --- |
1751
- | [AdminServer](#class-adminserver) | [EntityProvenTxReq](#class-entityproventxreq) | [StorageIdb](#class-storageidb) |
1752
- | [EntityBase](#class-entitybase) | [EntitySyncState](#class-entitysyncstate) | [StorageKnex](#class-storageknex) |
1753
- | [EntityCertificate](#class-entitycertificate) | [EntityTransaction](#class-entitytransaction) | [StorageMySQLDojoReader](#class-storagemysqldojoreader) |
1754
- | [EntityCertificateField](#class-entitycertificatefield) | [EntityTxLabel](#class-entitytxlabel) | [StorageProvider](#class-storageprovider) |
1755
- | [EntityCommission](#class-entitycommission) | [EntityTxLabelMap](#class-entitytxlabelmap) | [StorageReader](#class-storagereader) |
1756
- | [EntityOutput](#class-entityoutput) | [EntityUser](#class-entityuser) | [StorageReaderWriter](#class-storagereaderwriter) |
1757
- | [EntityOutputBasket](#class-entityoutputbasket) | [KnexMigrations](#class-knexmigrations) | [StorageServer](#class-storageserver) |
1758
- | [EntityOutputTag](#class-entityoutputtag) | [MergeEntity](#class-mergeentity) | [StorageSyncReader](#class-storagesyncreader) |
1759
- | [EntityOutputTagMap](#class-entityoutputtagmap) | [StorageClient](#class-storageclient) | [WalletStorageManager](#class-walletstoragemanager) |
1760
- | [EntityProvenTx](#class-entityproventx) | [StorageClientBase](#class-storageclientbase) | |
1844
+ | [AdminServer](#class-adminserver) | [EntityProvenTxReq](#class-entityproventxreq) | [StorageClientBase](#class-storageclientbase) |
1845
+ | [EntityBase](#class-entitybase) | [EntitySyncState](#class-entitysyncstate) | [StorageIdb](#class-storageidb) |
1846
+ | [EntityCertificate](#class-entitycertificate) | [EntityTransaction](#class-entitytransaction) | [StorageKnex](#class-storageknex) |
1847
+ | [EntityCertificateField](#class-entitycertificatefield) | [EntityTxLabel](#class-entitytxlabel) | [StorageMySQLDojoReader](#class-storagemysqldojoreader) |
1848
+ | [EntityCommission](#class-entitycommission) | [EntityTxLabelMap](#class-entitytxlabelmap) | [StorageProvider](#class-storageprovider) |
1849
+ | [EntityOutput](#class-entityoutput) | [EntityUser](#class-entityuser) | [StorageReader](#class-storagereader) |
1850
+ | [EntityOutputBasket](#class-entityoutputbasket) | [KnexMigrations](#class-knexmigrations) | [StorageReaderWriter](#class-storagereaderwriter) |
1851
+ | [EntityOutputTag](#class-entityoutputtag) | [KnexSessionManager](#class-knexsessionmanager) | [StorageServer](#class-storageserver) |
1852
+ | [EntityOutputTagMap](#class-entityoutputtagmap) | [MergeEntity](#class-mergeentity) | [StorageSyncReader](#class-storagesyncreader) |
1853
+ | [EntityProvenTx](#class-entityproventx) | [StorageClient](#class-storageclient) | [WalletStorageManager](#class-walletstoragemanager) |
1761
1854
 
1762
1855
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
1763
1856
 
@@ -2803,6 +2896,40 @@ Argument Details
2803
2896
 
2804
2897
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
2805
2898
 
2899
+ ---
2900
+ ##### Class: KnexSessionManager
2901
+
2902
+ Shared BRC-103 session storage for horizontally scaled StorageServer nodes.
2903
+
2904
+ Every instance must use the same Knex database. The wallet-toolbox migration
2905
+ creates the required `auth_sessions` table. Writes are monotonic by
2906
+ `PeerSession.lastUpdate`, preventing a delayed request on one replica from
2907
+ replacing newer session state written by another replica.
2908
+
2909
+ ```ts
2910
+ export class KnexSessionManager implements AsyncSessionManager {
2911
+ constructor(private readonly knex: Knex, options: KnexSessionManagerOptions = {})
2912
+ async addSession(session: PeerSession): Promise<void>
2913
+ async updateSession(session: PeerSession): Promise<void>
2914
+ async getSession(identifier: string): Promise<PeerSession | undefined>
2915
+ async removeSession(session: PeerSession): Promise<void>
2916
+ async hasSession(identifier: string): Promise<boolean>
2917
+ async pruneExpiredSessions(): Promise<number>
2918
+ }
2919
+ ```
2920
+
2921
+ See also: [KnexSessionManagerOptions](./storage.md#interface-knexsessionmanageroptions)
2922
+
2923
+ ###### Method pruneExpiredSessions
2924
+
2925
+ Delete expired rows. Call from an operator-controlled maintenance task.
2926
+
2927
+ ```ts
2928
+ async pruneExpiredSessions(): Promise<number>
2929
+ ```
2930
+
2931
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
2932
+
2806
2933
  ---
2807
2934
  ##### Class: MergeEntity
2808
2935
 
@@ -2859,12 +2986,12 @@ For details of the API implemented, follow the "See also" link for the `WalletSt
2859
2986
 
2860
2987
  ```ts
2861
2988
  export class StorageClient extends StorageClientBase {
2862
- constructor(wallet: WalletInterface, endpointUrl: string)
2989
+ constructor(wallet: WalletInterface, endpointUrl: string, options: StorageClientOptions = {})
2863
2990
  protected async rpcCall<T>(method: string, params: unknown[]): Promise<T>
2864
2991
  }
2865
2992
  ```
2866
2993
 
2867
- See also: [StorageClientBase](./storage.md#class-storageclientbase)
2994
+ See also: [StorageClientBase](./storage.md#class-storageclientbase), [StorageClientOptions](./storage.md#interface-storageclientoptions)
2868
2995
 
2869
2996
  ###### Method rpcCall
2870
2997
 
@@ -2897,8 +3024,10 @@ export abstract class StorageClientBase implements WalletStorageProvider {
2897
3024
  readonly endpointUrl: string;
2898
3025
  protected readonly authClient: AuthFetch;
2899
3026
  protected nextId = 1;
3027
+ protected serverSupportsBinary = false;
3028
+ protected readonly binaryRequests: boolean;
2900
3029
  public settings?: TableSettings;
2901
- constructor(wallet: WalletInterface, endpointUrl: string)
3030
+ constructor(wallet: WalletInterface, endpointUrl: string, options: StorageClientOptions = {})
2902
3031
  isStorageProvider(): boolean
2903
3032
  protected abstract rpcCall<T>(method: string, params: unknown[]): Promise<T>;
2904
3033
  isAvailable(): boolean
@@ -2940,7 +3069,7 @@ export abstract class StorageClientBase implements WalletStorageProvider {
2940
3069
  }
2941
3070
  ```
2942
3071
 
2943
- See also: [AuthId](./client.md#interface-authid), [EntityTimeStamp](./client.md#interface-entitytimestamp), [FindCertificatesArgs](./client.md#interface-findcertificatesargs), [FindOutputBasketsArgs](./client.md#interface-findoutputbasketsargs), [FindOutputsArgs](./client.md#interface-findoutputsargs), [FindProvenTxReqsArgs](./client.md#interface-findproventxreqsargs), [ProcessSyncChunkResult](./client.md#interface-processsyncchunkresult), [RequestSyncChunkArgs](./client.md#interface-requestsyncchunkargs), [StorageCreateActionResult](./client.md#interface-storagecreateactionresult), [StorageInternalizeActionResult](./client.md#interface-storageinternalizeactionresult), [StorageProcessActionArgs](./client.md#interface-storageprocessactionargs), [StorageProcessActionResults](./client.md#interface-storageprocessactionresults), [SyncChunk](./client.md#interface-syncchunk), [TableCertificateX](./storage.md#interface-tablecertificatex), [TableOutput](./storage.md#interface-tableoutput), [TableOutputBasket](./storage.md#interface-tableoutputbasket), [TableProvenTxReq](./storage.md#interface-tableproventxreq), [TableSettings](./storage.md#interface-tablesettings), [TableSyncState](./storage.md#interface-tablesyncstate), [TableUser](./storage.md#interface-tableuser), [UpdateProvenTxReqWithNewProvenTxArgs](./client.md#interface-updateproventxreqwithnewproventxargs), [UpdateProvenTxReqWithNewProvenTxResult](./client.md#interface-updateproventxreqwithnewproventxresult), [WalletServices](./client.md#interface-walletservices), [WalletStorageProvider](./client.md#interface-walletstorageprovider), [createAction](./storage.md#function-createaction), [getSyncChunk](./storage.md#function-getsyncchunk), [internalizeAction](./storage.md#function-internalizeaction), [listActions](./storage.md#function-listactions), [listCertificates](./storage.md#function-listcertificates), [listOutputs](./storage.md#function-listoutputs), [processAction](./storage.md#function-processaction), [validateDate](./storage.md#function-validatedate), [validateEntities](./storage.md#function-validateentities), [validateEntity](./storage.md#function-validateentity)
3072
+ See also: [AuthId](./client.md#interface-authid), [EntityTimeStamp](./client.md#interface-entitytimestamp), [FindCertificatesArgs](./client.md#interface-findcertificatesargs), [FindOutputBasketsArgs](./client.md#interface-findoutputbasketsargs), [FindOutputsArgs](./client.md#interface-findoutputsargs), [FindProvenTxReqsArgs](./client.md#interface-findproventxreqsargs), [ProcessSyncChunkResult](./client.md#interface-processsyncchunkresult), [RequestSyncChunkArgs](./client.md#interface-requestsyncchunkargs), [StorageClientOptions](./storage.md#interface-storageclientoptions), [StorageCreateActionResult](./client.md#interface-storagecreateactionresult), [StorageInternalizeActionResult](./client.md#interface-storageinternalizeactionresult), [StorageProcessActionArgs](./client.md#interface-storageprocessactionargs), [StorageProcessActionResults](./client.md#interface-storageprocessactionresults), [SyncChunk](./client.md#interface-syncchunk), [TableCertificateX](./storage.md#interface-tablecertificatex), [TableOutput](./storage.md#interface-tableoutput), [TableOutputBasket](./storage.md#interface-tableoutputbasket), [TableProvenTxReq](./storage.md#interface-tableproventxreq), [TableSettings](./storage.md#interface-tablesettings), [TableSyncState](./storage.md#interface-tablesyncstate), [TableUser](./storage.md#interface-tableuser), [UpdateProvenTxReqWithNewProvenTxArgs](./client.md#interface-updateproventxreqwithnewproventxargs), [UpdateProvenTxReqWithNewProvenTxResult](./client.md#interface-updateproventxreqwithnewproventxresult), [WalletServices](./client.md#interface-walletservices), [WalletStorageProvider](./client.md#interface-walletstorageprovider), [createAction](./storage.md#function-createaction), [getSyncChunk](./storage.md#function-getsyncchunk), [internalizeAction](./storage.md#function-internalizeaction), [listActions](./storage.md#function-listactions), [listCertificates](./storage.md#function-listcertificates), [listOutputs](./storage.md#function-listoutputs), [processAction](./storage.md#function-processaction), [validateDate](./storage.md#function-validatedate), [validateEntities](./storage.md#function-validateentities), [validateEntity](./storage.md#function-validateentity)
2944
3073
 
2945
3074
  ###### Method abortAction
2946
3075
 
@@ -4333,6 +4462,10 @@ export abstract class StorageProvider extends StorageReaderWriter implements Wal
4333
4462
  async relinquishOutput(auth: AuthId, args: RelinquishOutputArgs): Promise<number>
4334
4463
  async processSyncChunk(args: RequestSyncChunkArgs, chunk: SyncChunk): Promise<ProcessSyncChunkResult>
4335
4464
  async updateProvenTxReqWithNewProvenTx(args: UpdateProvenTxReqWithNewProvenTxArgs): Promise<UpdateProvenTxReqWithNewProvenTxResult>
4465
+ async reconcileCompletedProvenTxReqs(): Promise<{
4466
+ log: string;
4467
+ }>
4468
+ async unfailTransactionsForProof(req: EntityProvenTxReq, indent = 0, requestUpdate?: Pick<TableProvenTxReqDynamics, "status" | "attempts">): Promise<string>
4336
4469
  async confirmSpendableOutputs(): Promise<{
4337
4470
  invalidSpendableOutputs: TableOutput[];
4338
4471
  }>
@@ -4384,6 +4517,31 @@ async getValidBeefForKnownTxid(txid: string, mergeToBeef?: Beef, trustSelf?: Tru
4384
4517
  ```
4385
4518
  See also: [TrxToken](./client.md#interface-trxtoken)
4386
4519
 
4520
+ ###### Method reconcileCompletedProvenTxReqs
4521
+
4522
+ Reconcile completed proof requests whose transaction fan-out previously
4523
+ failed or whose durable notification state drifted.
4524
+
4525
+ This is called by TaskReviewStatus so a completed request with
4526
+ `notified = false` is retried and can become eligible for normal purge.
4527
+
4528
+ ```ts
4529
+ async reconcileCompletedProvenTxReqs(): Promise<{
4530
+ log: string;
4531
+ }>
4532
+ ```
4533
+
4534
+ ###### Method unfailTransactionsForProof
4535
+
4536
+ Restore every failed local copy of a transaction before proof completion.
4537
+ Also heals the request's notification set from the authoritative txid
4538
+ lookup so TaskUnFail cannot omit a local copy after notification drift.
4539
+
4540
+ ```ts
4541
+ async unfailTransactionsForProof(req: EntityProvenTxReq, indent = 0, requestUpdate?: Pick<TableProvenTxReqDynamics, "status" | "attempts">): Promise<string>
4542
+ ```
4543
+ See also: [EntityProvenTxReq](./storage.md#class-entityproventxreq), [TableProvenTxReqDynamics](./storage.md#interface-tableproventxreqdynamics)
4544
+
4387
4545
  ###### Method updateProvenTxReqWithNewProvenTx
4388
4546
 
4389
4547
  Handles storage changes when a valid MerklePath and mined block header are found for a ProvenTxReq txid.
@@ -4913,36 +5071,39 @@ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](
4913
5071
 
4914
5072
  | | | |
4915
5073
  | --- | --- | --- |
4916
- | [attemptToPostReqsToNetwork](#function-attempttopostreqstonetwork) | [markUserInputsSpent](#function-markuserinputsspent) | [setDisableDoubleSpendCheckForTest](#function-setdisabledoublespendcheckfortest) |
4917
- | [classifyReqStatus](#function-classifyreqstatus) | [matchesCertificateFieldPartial](#function-matchescertificatefieldpartial) | [shareReqsWithWorld](#function-sharereqswithworld) |
4918
- | [createAction](#function-createaction) | [matchesCertificatePartial](#function-matchescertificatepartial) | [transactionInputSize](#function-transactioninputsize) |
4919
- | [createStorageServiceChargeScript](#function-createstorageservicechargescript) | [matchesCommissionPartial](#function-matchescommissionpartial) | [transactionOutputSize](#function-transactionoutputsize) |
4920
- | [createSyncMap](#function-createsyncmap) | [matchesMonitorEventPartial](#function-matchesmonitoreventpartial) | [transactionSize](#function-transactionsize) |
4921
- | [dateMatches](#function-datematches) | [matchesOutputBasketPartial](#function-matchesoutputbasketpartial) | [updateReqsFromAggregateResults](#function-updatereqsfromaggregateresults) |
4922
- | [decryptBRC39](#function-decryptbrc39) | [matchesOutputPartial](#function-matchesoutputpartial) | [upgradeAllStoresV1](#function-upgradeallstoresv1) |
4923
- | [determineDBType](#function-determinedbtype) | [matchesOutputTagMapPartial](#function-matchesoutputtagmappartial) | [upgradeCertificateFields](#function-upgradecertificatefields) |
4924
- | [encryptBRC39](#function-encryptbrc39) | [matchesOutputTagPartial](#function-matchesoutputtagpartial) | [upgradeCertificates](#function-upgradecertificates) |
4925
- | [exportBRC38](#function-exportbrc38) | [matchesProvenTxPartial](#function-matchesproventxpartial) | [upgradeCommissions](#function-upgradecommissions) |
4926
- | [exportBRC38Json](#function-exportbrc38json) | [matchesProvenTxReqPartial](#function-matchesproventxreqpartial) | [upgradeMonitorEvents](#function-upgrademonitorevents) |
4927
- | [exportBRC39](#function-exportbrc39) | [matchesSyncStatePartial](#function-matchessyncstatepartial) | [upgradeOutputBaskets](#function-upgradeoutputbaskets) |
4928
- | [generateChangeSdk](#function-generatechangesdk) | [matchesTransactionPartial](#function-matchestransactionpartial) | [upgradeOutputTags](#function-upgradeoutputtags) |
4929
- | [generateChangeSdkMakeStorage](#function-generatechangesdkmakestorage) | [matchesTxLabelMapPartial](#function-matchestxlabelmappartial) | [upgradeOutputTagsMap](#function-upgradeoutputtagsmap) |
4930
- | [getBeefForTransaction](#function-getbeeffortransaction) | [matchesTxLabelPartial](#function-matchestxlabelpartial) | [upgradeOutputs](#function-upgradeoutputs) |
4931
- | [getListOutputsSpecOp](#function-getlistoutputsspecop) | [mergeInputBeefs](#function-mergeinputbeefs) | [upgradeProvenTxReqs](#function-upgradeproventxreqs) |
4932
- | [getSyncChunk](#function-getsyncchunk) | [mergeInputsIntoBeef](#function-mergeinputsintobeef) | [upgradeProvenTxs](#function-upgradeproventxs) |
4933
- | [importBRC38](#function-importbrc38) | [notifyTransactionsOfProof](#function-notifytransactionsofproof) | [upgradeSyncStates](#function-upgradesyncstates) |
4934
- | [importBRC39](#function-importbrc39) | [offsetPrivKey](#function-offsetprivkey) | [upgradeTransactions](#function-upgradetransactions) |
4935
- | [internalizeAction](#function-internalizeaction) | [offsetPubKey](#function-offsetpubkey) | [upgradeTxLabels](#function-upgradetxlabels) |
4936
- | [isAutoSpendableChangeOutput](#function-isautospendablechangeoutput) | [parseBRC38Json](#function-parsebrc38json) | [upgradeTxLabelsMap](#function-upgradetxlabelsmap) |
4937
- | [isManagedChangeOutput](#function-ismanagedchangeoutput) | [partitionActionLabels](#function-partitionactionlabels) | [upgradeUsers](#function-upgradeusers) |
4938
- | [keyOffsetToHashedSecret](#function-keyoffsettohashedsecret) | [processAction](#function-processaction) | [validateDate](#function-validatedate) |
4939
- | [listActions](#function-listactions) | [purgeData](#function-purgedata) | [validateEntities](#function-validateentities) |
4940
- | [listActionsIdb](#function-listactionsidb) | [purgeDataIdb](#function-purgedataidb) | [validateEntity](#function-validateentity) |
4941
- | [listCertificates](#function-listcertificates) | [redeemServiceCharges](#function-redeemservicecharges) | [validateGenerateChangeSdkParams](#function-validategeneratechangesdkparams) |
4942
- | [listOutputs](#function-listoutputs) | [renderAdminPage](#function-renderadminpage) | [validateGenerateChangeSdkResult](#function-validategeneratechangesdkresult) |
4943
- | [listOutputsIdb](#function-listoutputsidb) | [restoreInputsToSpendable](#function-restoreinputstospendable) | [validateStorageFeeModel](#function-validatestoragefeemodel) |
4944
- | [lockScriptWithKeyOffsetFromPubKey](#function-lockscriptwithkeyoffsetfrompubkey) | [reviewStatus](#function-reviewstatus) | [validateSyncChunkEntities](#function-validatesyncchunkentities) |
4945
- | [markStaleInputsAsSpent](#function-markstaleinputsasspent) | [reviewStatusIdb](#function-reviewstatusidb) | [varUintSize](#function-varuintsize) |
5074
+ | [attemptToPostReqsToNetwork](#function-attempttopostreqstonetwork) | [markStaleInputsAsSpent](#function-markstaleinputsasspent) | [shareReqsWithWorld](#function-sharereqswithworld) |
5075
+ | [binaryJsonReplacer](#function-binaryjsonreplacer) | [markUserInputsSpent](#function-markuserinputsspent) | [stringifyJsonRpc](#function-stringifyjsonrpc) |
5076
+ | [binaryJsonReviver](#function-binaryjsonreviver) | [matchesCertificateFieldPartial](#function-matchescertificatefieldpartial) | [tableAuthSessionToPeerSession](#function-tableauthsessiontopeersession) |
5077
+ | [classifyReqStatus](#function-classifyreqstatus) | [matchesCertificatePartial](#function-matchescertificatepartial) | [transactionInputSize](#function-transactioninputsize) |
5078
+ | [createAction](#function-createaction) | [matchesCommissionPartial](#function-matchescommissionpartial) | [transactionOutputSize](#function-transactionoutputsize) |
5079
+ | [createStorageServiceChargeScript](#function-createstorageservicechargescript) | [matchesMonitorEventPartial](#function-matchesmonitoreventpartial) | [transactionSize](#function-transactionsize) |
5080
+ | [createSyncMap](#function-createsyncmap) | [matchesOutputBasketPartial](#function-matchesoutputbasketpartial) | [updateReqsFromAggregateResults](#function-updatereqsfromaggregateresults) |
5081
+ | [dateMatches](#function-datematches) | [matchesOutputPartial](#function-matchesoutputpartial) | [upgradeAllStoresV1](#function-upgradeallstoresv1) |
5082
+ | [decodeBinaryJsonValue](#function-decodebinaryjsonvalue) | [matchesOutputTagMapPartial](#function-matchesoutputtagmappartial) | [upgradeCertificateFields](#function-upgradecertificatefields) |
5083
+ | [decryptBRC39](#function-decryptbrc39) | [matchesOutputTagPartial](#function-matchesoutputtagpartial) | [upgradeCertificates](#function-upgradecertificates) |
5084
+ | [determineDBType](#function-determinedbtype) | [matchesProvenTxPartial](#function-matchesproventxpartial) | [upgradeCommissions](#function-upgradecommissions) |
5085
+ | [encryptBRC39](#function-encryptbrc39) | [matchesProvenTxReqPartial](#function-matchesproventxreqpartial) | [upgradeMonitorEvents](#function-upgrademonitorevents) |
5086
+ | [exportBRC38](#function-exportbrc38) | [matchesSyncStatePartial](#function-matchessyncstatepartial) | [upgradeOutputBaskets](#function-upgradeoutputbaskets) |
5087
+ | [exportBRC38Json](#function-exportbrc38json) | [matchesTransactionPartial](#function-matchestransactionpartial) | [upgradeOutputTags](#function-upgradeoutputtags) |
5088
+ | [exportBRC39](#function-exportbrc39) | [matchesTxLabelMapPartial](#function-matchestxlabelmappartial) | [upgradeOutputTagsMap](#function-upgradeoutputtagsmap) |
5089
+ | [generateChangeSdk](#function-generatechangesdk) | [matchesTxLabelPartial](#function-matchestxlabelpartial) | [upgradeOutputs](#function-upgradeoutputs) |
5090
+ | [generateChangeSdkMakeStorage](#function-generatechangesdkmakestorage) | [mergeInputBeefs](#function-mergeinputbeefs) | [upgradeProvenTxReqs](#function-upgradeproventxreqs) |
5091
+ | [getBeefForTransaction](#function-getbeeffortransaction) | [mergeInputsIntoBeef](#function-mergeinputsintobeef) | [upgradeProvenTxs](#function-upgradeproventxs) |
5092
+ | [getListOutputsSpecOp](#function-getlistoutputsspecop) | [notifyTransactionsOfProof](#function-notifytransactionsofproof) | [upgradeSyncStates](#function-upgradesyncstates) |
5093
+ | [getSyncChunk](#function-getsyncchunk) | [offsetPrivKey](#function-offsetprivkey) | [upgradeTransactions](#function-upgradetransactions) |
5094
+ | [importBRC38](#function-importbrc38) | [offsetPubKey](#function-offsetpubkey) | [upgradeTxLabels](#function-upgradetxlabels) |
5095
+ | [importBRC39](#function-importbrc39) | [parseBRC38Json](#function-parsebrc38json) | [upgradeTxLabelsMap](#function-upgradetxlabelsmap) |
5096
+ | [internalizeAction](#function-internalizeaction) | [parseJsonRpc](#function-parsejsonrpc) | [upgradeUsers](#function-upgradeusers) |
5097
+ | [isAutoSpendableChangeOutput](#function-isautospendablechangeoutput) | [partitionActionLabels](#function-partitionactionlabels) | [validateDate](#function-validatedate) |
5098
+ | [isManagedChangeOutput](#function-ismanagedchangeoutput) | [processAction](#function-processaction) | [validateEntities](#function-validateentities) |
5099
+ | [keyOffsetToHashedSecret](#function-keyoffsettohashedsecret) | [purgeData](#function-purgedata) | [validateEntity](#function-validateentity) |
5100
+ | [legacyBinaryJsonReplacer](#function-legacybinaryjsonreplacer) | [purgeDataIdb](#function-purgedataidb) | [validateGenerateChangeSdkParams](#function-validategeneratechangesdkparams) |
5101
+ | [listActions](#function-listactions) | [redeemServiceCharges](#function-redeemservicecharges) | [validateGenerateChangeSdkResult](#function-validategeneratechangesdkresult) |
5102
+ | [listActionsIdb](#function-listactionsidb) | [renderAdminPage](#function-renderadminpage) | [validateStorageFeeModel](#function-validatestoragefeemodel) |
5103
+ | [listCertificates](#function-listcertificates) | [restoreInputsToSpendable](#function-restoreinputstospendable) | [validateSyncChunkEntities](#function-validatesyncchunkentities) |
5104
+ | [listOutputs](#function-listoutputs) | [reviewStatus](#function-reviewstatus) | [varUintSize](#function-varuintsize) |
5105
+ | [listOutputsIdb](#function-listoutputsidb) | [reviewStatusIdb](#function-reviewstatusidb) | |
5106
+ | [lockScriptWithKeyOffsetFromPubKey](#function-lockscriptwithkeyoffsetfrompubkey) | [setDisableDoubleSpendCheckForTest](#function-setdisabledoublespendcheckfortest) | |
4946
5107
 
4947
5108
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
4948
5109
 
@@ -4961,6 +5122,24 @@ See also: [EntityProvenTxReq](./storage.md#class-entityproventxreq), [PostReqsTo
4961
5122
 
4962
5123
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
4963
5124
 
5125
+ ---
5126
+ ##### Function: binaryJsonReplacer
5127
+
5128
+ ```ts
5129
+ export function binaryJsonReplacer(this: Record<string, unknown>, key: string, value: unknown): unknown
5130
+ ```
5131
+
5132
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
5133
+
5134
+ ---
5135
+ ##### Function: binaryJsonReviver
5136
+
5137
+ ```ts
5138
+ export function binaryJsonReviver(_key: string, value: unknown): unknown
5139
+ ```
5140
+
5141
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
5142
+
4964
5143
  ---
4965
5144
  ##### Function: classifyReqStatus
4966
5145
 
@@ -5018,6 +5197,15 @@ export function dateMatches(a: Date | undefined, b: Date | undefined): boolean
5018
5197
 
5019
5198
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
5020
5199
 
5200
+ ---
5201
+ ##### Function: decodeBinaryJsonValue
5202
+
5203
+ ```ts
5204
+ export function decodeBinaryJsonValue(value: unknown): unknown
5205
+ ```
5206
+
5207
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
5208
+
5021
5209
  ---
5022
5210
  ##### Function: decryptBRC39
5023
5211
 
@@ -5294,6 +5482,15 @@ export function keyOffsetToHashedSecret(pub: PublicKey, keyOffset?: string): {
5294
5482
 
5295
5483
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
5296
5484
 
5485
+ ---
5486
+ ##### Function: legacyBinaryJsonReplacer
5487
+
5488
+ ```ts
5489
+ export function legacyBinaryJsonReplacer(_key: string, value: unknown): unknown
5490
+ ```
5491
+
5492
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
5493
+
5297
5494
  ---
5298
5495
  ##### Function: listActions
5299
5496
 
@@ -5616,14 +5813,15 @@ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](
5616
5813
  Notify each transaction that a proof has been found.
5617
5814
  Mutates `req` history notes in place.
5618
5815
 
5619
- The `addNote` and `flushNotes` callbacks avoid coupling this helper to a
5620
- specific entity type.
5816
+ The `addNote` callback avoids coupling this helper to a specific entity type.
5817
+ Returns false if any transaction update failed so callers can retain the
5818
+ request for later status repair.
5621
5819
 
5622
5820
  ```ts
5623
- export async function notifyTransactionsOfProof(ids: number[], provenTxId: number, addNote: (note: ReqHistoryNote) => void, flushNotes: () => Promise<void>, updateTransaction: (id: number, update: {
5821
+ export async function notifyTransactionsOfProof(ids: number[], provenTxId: number, addNote: (note: ReqHistoryNote) => void, updateTransaction: (id: number, update: {
5624
5822
  provenTxId: number;
5625
5823
  status: "completed";
5626
- }) => Promise<unknown>): Promise<void>
5824
+ }) => Promise<unknown>): Promise<boolean>
5627
5825
  ```
5628
5826
 
5629
5827
  See also: [ReqHistoryNote](./client.md#interface-reqhistorynote)
@@ -5665,6 +5863,15 @@ See also: [BRC38WalletData](./storage.md#interface-brc38walletdata)
5665
5863
 
5666
5864
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
5667
5865
 
5866
+ ---
5867
+ ##### Function: parseJsonRpc
5868
+
5869
+ ```ts
5870
+ export function parseJsonRpc(text: string, binary: boolean = false): any
5871
+ ```
5872
+
5873
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
5874
+
5668
5875
  ---
5669
5876
  ##### Function: partitionActionLabels
5670
5877
 
@@ -5812,6 +6019,26 @@ See also: [GetReqsAndBeefResult](./storage.md#interface-getreqsandbeefresult), [
5812
6019
 
5813
6020
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
5814
6021
 
6022
+ ---
6023
+ ##### Function: stringifyJsonRpc
6024
+
6025
+ ```ts
6026
+ export function stringifyJsonRpc(value: unknown, binary: boolean): string
6027
+ ```
6028
+
6029
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
6030
+
6031
+ ---
6032
+ ##### Function: tableAuthSessionToPeerSession
6033
+
6034
+ ```ts
6035
+ export function tableAuthSessionToPeerSession(row: TableAuthSession): PeerSession
6036
+ ```
6037
+
6038
+ See also: [TableAuthSession](./storage.md#interface-tableauthsession)
6039
+
6040
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
6041
+
5815
6042
  ---
5816
6043
  ##### Function: transactionInputSize
5817
6044
 
@@ -6257,19 +6484,83 @@ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](
6257
6484
  ---
6258
6485
  #### Variables
6259
6486
 
6260
- | |
6261
- | --- |
6262
- | [getLabelToSpecOp](#variable-getlabeltospecop) |
6263
- | [managedChangeOutputFields](#variable-managedchangeoutputfields) |
6264
- | [maxChangeOutputsPerTransaction](#variable-maxchangeoutputspertransaction) |
6265
- | [maxPossibleSatoshis](#variable-maxpossiblesatoshis) |
6266
- | [outputColumnsWithoutLockingScript](#variable-outputcolumnswithoutlockingscript) |
6267
- | [transactionColumnsWithoutRawTx](#variable-transactioncolumnswithoutrawtx) |
6487
+ | | |
6488
+ | --- | --- |
6489
+ | [AUTH_SESSION_MIGRATION](#variable-auth_session_migration) | [getLabelToSpecOp](#variable-getlabeltospecop) |
6490
+ | [AUTH_SESSION_TABLE](#variable-auth_session_table) | [managedChangeOutputFields](#variable-managedchangeoutputfields) |
6491
+ | [BINARY_ENCODING](#variable-binary_encoding) | [maxChangeOutputsPerTransaction](#variable-maxchangeoutputspertransaction) |
6492
+ | [BINARY_ENCODING_HEADER](#variable-binary_encoding_header) | [maxPossibleSatoshis](#variable-maxpossiblesatoshis) |
6493
+ | [BINARY_REQUEST_ENCODING_HEADER](#variable-binary_request_encoding_header) | [outputColumnsWithoutLockingScript](#variable-outputcolumnswithoutlockingscript) |
6494
+ | [DEFAULT_AUTH_SESSION_TTL_MS](#variable-default_auth_session_ttl_ms) | [transactionColumnsWithoutRawTx](#variable-transactioncolumnswithoutrawtx) |
6495
+ | [MONITOR_CREATED_AT_INDEX_MIGRATION](#variable-monitor_created_at_index_migration) | |
6268
6496
 
6269
6497
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
6270
6498
 
6271
6499
  ---
6272
6500
 
6501
+ ##### Variable: AUTH_SESSION_MIGRATION
6502
+
6503
+ ```ts
6504
+ AUTH_SESSION_MIGRATION = "2026-07-14-001 add shared auth sessions"
6505
+ ```
6506
+
6507
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
6508
+
6509
+ ---
6510
+ ##### Variable: AUTH_SESSION_TABLE
6511
+
6512
+ ```ts
6513
+ AUTH_SESSION_TABLE = "auth_sessions"
6514
+ ```
6515
+
6516
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
6517
+
6518
+ ---
6519
+ ##### Variable: BINARY_ENCODING
6520
+
6521
+ ```ts
6522
+ BINARY_ENCODING = "base64"
6523
+ ```
6524
+
6525
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
6526
+
6527
+ ---
6528
+ ##### Variable: BINARY_ENCODING_HEADER
6529
+
6530
+ ```ts
6531
+ BINARY_ENCODING_HEADER = "X-BSV-Binary-Encoding"
6532
+ ```
6533
+
6534
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
6535
+
6536
+ ---
6537
+ ##### Variable: BINARY_REQUEST_ENCODING_HEADER
6538
+
6539
+ ```ts
6540
+ BINARY_REQUEST_ENCODING_HEADER = "X-BSV-Binary-Request-Encoding"
6541
+ ```
6542
+
6543
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
6544
+
6545
+ ---
6546
+ ##### Variable: DEFAULT_AUTH_SESSION_TTL_MS
6547
+
6548
+ ```ts
6549
+ DEFAULT_AUTH_SESSION_TTL_MS = 24 * 60 * 60 * 1000
6550
+ ```
6551
+
6552
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
6553
+
6554
+ ---
6555
+ ##### Variable: MONITOR_CREATED_AT_INDEX_MIGRATION
6556
+
6557
+ ```ts
6558
+ MONITOR_CREATED_AT_INDEX_MIGRATION = "2026-07-14-002 add monitor created index"
6559
+ ```
6560
+
6561
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
6562
+
6563
+ ---
6273
6564
  ##### Variable: getLabelToSpecOp
6274
6565
 
6275
6566
  ```ts