@bsv/wallet-toolbox 2.1.26 → 2.1.28

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 (51) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +8 -17
  3. package/docs/client.md +441 -181
  4. package/docs/monitor.md +69 -1
  5. package/docs/storage.md +107 -31
  6. package/docs/wallet.md +379 -142
  7. package/out/src/Wallet.d.ts +46 -2
  8. package/out/src/Wallet.d.ts.map +1 -1
  9. package/out/src/Wallet.js +65 -4
  10. package/out/src/Wallet.js.map +1 -1
  11. package/out/src/monitor/Monitor.d.ts.map +1 -1
  12. package/out/src/monitor/Monitor.js +12 -0
  13. package/out/src/monitor/Monitor.js.map +1 -1
  14. package/out/src/monitor/tasks/TaskCheckNoSends.d.ts +59 -1
  15. package/out/src/monitor/tasks/TaskCheckNoSends.d.ts.map +1 -1
  16. package/out/src/monitor/tasks/TaskCheckNoSends.js +93 -4
  17. package/out/src/monitor/tasks/TaskCheckNoSends.js.map +1 -1
  18. package/out/src/services/__tests/getFiatExchangeRate.test.js +25 -0
  19. package/out/src/services/__tests/getFiatExchangeRate.test.js.map +1 -1
  20. package/out/src/services/__tests/getMerklePath.test.js +8 -0
  21. package/out/src/services/__tests/getMerklePath.test.js.map +1 -1
  22. package/out/src/services/__tests/verifyBeef.test.js +37 -0
  23. package/out/src/services/__tests/verifyBeef.test.js.map +1 -1
  24. package/out/src/services/chaintracker/__tests/ChaintracksChainTracker.test.js +36 -0
  25. package/out/src/services/chaintracker/__tests/ChaintracksChainTracker.test.js.map +1 -1
  26. package/out/src/services/chaintracker/__tests/ChaintracksServiceClient.test.js +34 -0
  27. package/out/src/services/chaintracker/__tests/ChaintracksServiceClient.test.js.map +1 -1
  28. package/out/src/signer/methods/internalizeAction.d.ts +8 -1
  29. package/out/src/signer/methods/internalizeAction.d.ts.map +1 -1
  30. package/out/src/signer/methods/internalizeAction.js +8 -1
  31. package/out/src/signer/methods/internalizeAction.js.map +1 -1
  32. package/out/src/storage/StorageProvider.d.ts.map +1 -1
  33. package/out/src/storage/StorageProvider.js +80 -2
  34. package/out/src/storage/StorageProvider.js.map +1 -1
  35. package/out/src/storage/methods/ListActionsSpecOp.d.ts.map +1 -1
  36. package/out/src/storage/methods/ListActionsSpecOp.js +68 -5
  37. package/out/src/storage/methods/ListActionsSpecOp.js.map +1 -1
  38. package/out/src/storage/methods/createAction.js +27 -13
  39. package/out/src/storage/methods/createAction.js.map +1 -1
  40. package/out/src/storage/methods/internalizeAction.d.ts +69 -2
  41. package/out/src/storage/methods/internalizeAction.d.ts.map +1 -1
  42. package/out/src/storage/methods/internalizeAction.js +206 -26
  43. package/out/src/storage/methods/internalizeAction.js.map +1 -1
  44. package/out/src/storage/portable/index.d.ts.map +1 -1
  45. package/out/src/storage/portable/index.js +160 -114
  46. package/out/src/storage/portable/index.js.map +1 -1
  47. package/out/src/utility/identityUtils.d.ts +12 -6
  48. package/out/src/utility/identityUtils.d.ts.map +1 -1
  49. package/out/src/utility/identityUtils.js +78 -30
  50. package/out/src/utility/identityUtils.js.map +1 -1
  51. package/package.json +6 -6
package/docs/client.md CHANGED
@@ -6,86 +6,87 @@ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](
6
6
 
7
7
  | | | |
8
8
  | --- | --- | --- |
9
- | [AdminStatsResult](#interface-adminstatsresult) | [GenerateChangeSdkInput](#interface-generatechangesdkinput) | [SetupWalletClient](#interface-setupwalletclient) |
10
- | [AggregatePostBeefTxResult](#interface-aggregatepostbeeftxresult) | [GenerateChangeSdkOutput](#interface-generatechangesdkoutput) | [SetupWalletIdb](#interface-setupwalletidb) |
11
- | [ArcConfig](#interface-arcconfig) | [GenerateChangeSdkParams](#interface-generatechangesdkparams) | [SetupWalletIdbArgs](#interface-setupwalletidbargs) |
12
- | [ArcMinerGetTxData](#interface-arcminergettxdata) | [GenerateChangeSdkResult](#interface-generatechangesdkresult) | [SignActionResultX](#interface-signactionresultx) |
13
- | [ArcSSEClientOptions](#interface-arcsseclientoptions) | [GenerateChangeSdkStorageChange](#interface-generatechangesdkstoragechange) | [StartAuthResponse](#interface-startauthresponse) |
14
- | [ArcSSEEvent](#interface-arcsseevent) | [GetHeaderByteFileLinksResult](#interface-getheaderbytefilelinksresult) | [StatusForTxidResult](#interface-statusfortxidresult) |
15
- | [AuthId](#interface-authid) | [GetMerklePathResult](#interface-getmerklepathresult) | [StopListenerToken](#interface-stoplistenertoken) |
16
- | [AuthPayload](#interface-authpayload) | [GetRawTxResult](#interface-getrawtxresult) | [StorageAdminStats](#interface-storageadminstats) |
17
- | [BaseBlockHeader](#interface-baseblockheader) | [GetReqsAndBeefDetail](#interface-getreqsandbeefdetail) | [StorageCreateActionResult](#interface-storagecreateactionresult) |
18
- | [BitailsConfig](#interface-bitailsconfig) | [GetReqsAndBeefResult](#interface-getreqsandbeefresult) | [StorageCreateTransactionSdkInput](#interface-storagecreatetransactionsdkinput) |
19
- | [BitailsMerkleProof](#interface-bitailsmerkleproof) | [GetScriptHashHistory](#interface-getscripthashhistory) | [StorageCreateTransactionSdkOutput](#interface-storagecreatetransactionsdkoutput) |
20
- | [BlockHeader](#interface-blockheader) | [GetScriptHashHistoryResult](#interface-getscripthashhistoryresult) | [StorageFeeModel](#interface-storagefeemodel) |
21
- | [BsvExchangeRate](#interface-bsvexchangerate) | [GetStatusForTxidsResult](#interface-getstatusfortxidsresult) | [StorageGetBeefOptions](#interface-storagegetbeefoptions) |
22
- | [BulkFileDataManagerMergeResult](#interface-bulkfiledatamanagermergeresult) | [GetUtxoStatusDetails](#interface-getutxostatusdetails) | [StorageIdbOptions](#interface-storageidboptions) |
23
- | [BulkFileDataManagerOptions](#interface-bulkfiledatamanageroptions) | [GetUtxoStatusResult](#interface-getutxostatusresult) | [StorageIdbSchema](#interface-storageidbschema) |
24
- | [BulkHeaderFileInfo](#interface-bulkheaderfileinfo) | [GroupedPermissionRequest](#interface-groupedpermissionrequest) | [StorageIdentity](#interface-storageidentity) |
25
- | [BulkHeaderFilesInfo](#interface-bulkheaderfilesinfo) | [GroupedPermissions](#interface-groupedpermissions) | [StorageInternalizeActionResult](#interface-storageinternalizeactionresult) |
26
- | [BulkIngestorApi](#interface-bulkingestorapi) | [HeightRangeApi](#interface-heightrangeapi) | [StorageProcessActionArgs](#interface-storageprocessactionargs) |
27
- | [BulkIngestorBaseOptions](#interface-bulkingestorbaseoptions) | [HeightRanges](#interface-heightranges) | [StorageProcessActionResults](#interface-storageprocessactionresults) |
28
- | [BulkIngestorCDNOptions](#interface-bulkingestorcdnoptions) | [KdfConfig](#interface-kdfconfig) | [StorageProvenOrReq](#interface-storageprovenorreq) |
29
- | [BulkIngestorWhatsOnChainOptions](#interface-bulkingestorwhatsonchainoptions) | [KeyPair](#interface-keypair) | [StorageProviderOptions](#interface-storageprovideroptions) |
30
- | [BulkStorageApi](#interface-bulkstorageapi) | [KeyPairAddress](#interface-keypairaddress) | [StorageReaderOptions](#interface-storagereaderoptions) |
31
- | [BulkStorageBaseOptions](#interface-bulkstoragebaseoptions) | [ListActionsSpecOp](#interface-listactionsspecop) | [StorageReaderWriterOptions](#interface-storagereaderwriteroptions) |
32
- | [BulkSyncResult](#interface-bulksyncresult) | [ListOutputsSpecOp](#interface-listoutputsspecop) | [StorageSyncReaderOptions](#interface-storagesyncreaderoptions) |
33
- | [CertOpsWallet](#interface-certopswallet) | [LiveBlockHeader](#interface-liveblockheader) | [SyncChunk](#interface-syncchunk) |
34
- | [Certifier](#interface-certifier) | [LiveIngestorApi](#interface-liveingestorapi) | [SyncError](#interface-syncerror) |
35
- | [ChaintracksApi](#interface-chaintracksapi) | [LiveIngestorBaseOptions](#interface-liveingestorbaseoptions) | [SyncMap](#interface-syncmap) |
36
- | [ChaintracksAppendableFileApi](#interface-chaintracksappendablefileapi) | [LiveIngestorWhatsOnChainOptions](#interface-liveingestorwhatsonchainoptions) | [TableCertificate](#interface-tablecertificate) |
37
- | [ChaintracksChainTrackerOptions](#interface-chaintrackschaintrackeroptions) | [MerklePathNote](#interface-merklepathnote) | [TableCertificateField](#interface-tablecertificatefield) |
38
- | [ChaintracksClientApi](#interface-chaintracksclientapi) | [MockChainBlockHeaderRow](#interface-mockchainblockheaderrow) | [TableCertificateX](#interface-tablecertificatex) |
39
- | [ChaintracksFetchApi](#interface-chaintracksfetchapi) | [MockChainTransactionRow](#interface-mockchaintransactionrow) | [TableCommission](#interface-tablecommission) |
40
- | [ChaintracksFsApi](#interface-chaintracksfsapi) | [MockChainUtxoRow](#interface-mockchainutxorow) | [TableMonitorEvent](#interface-tablemonitorevent) |
41
- | [ChaintracksInfoApi](#interface-chaintracksinfoapi) | [MonitorOptions](#interface-monitoroptions) | [TableOutput](#interface-tableoutput) |
42
- | [ChaintracksIngestorParams](#interface-chaintracksingestorparams) | [OutPoint](#interface-outpoint) | [TableOutputBasket](#interface-tableoutputbasket) |
43
- | [ChaintracksManagementApi](#interface-chaintracksmanagementapi) | [Paged](#interface-paged) | [TableOutputTag](#interface-tableoutputtag) |
44
- | [ChaintracksOptions](#interface-chaintracksoptions) | [ParsedBrc114ActionTimeLabels](#interface-parsedbrc114actiontimelabels) | [TableOutputTagMap](#interface-tableoutputtagmap) |
45
- | [ChaintracksPackageInfoApi](#interface-chaintrackspackageinfoapi) | [ParsedOutpoint](#interface-parsedoutpoint) | [TableOutputX](#interface-tableoutputx) |
46
- | [ChaintracksReadableFileApi](#interface-chaintracksreadablefileapi) | [PendingSignAction](#interface-pendingsignaction) | [TableProvenTx](#interface-tableproventx) |
47
- | [ChaintracksServiceClientOptions](#interface-chaintracksserviceclientoptions) | [PendingStorageInput](#interface-pendingstorageinput) | [TableProvenTxReq](#interface-tableproventxreq) |
48
- | [ChaintracksStorageApi](#interface-chaintracksstorageapi) | [PermissionRequest](#interface-permissionrequest) | [TableProvenTxReqDynamics](#interface-tableproventxreqdynamics) |
49
- | [ChaintracksStorageBaseOptions](#interface-chaintracksstoragebaseoptions) | [PermissionToken](#interface-permissiontoken) | [TableSettings](#interface-tablesettings) |
50
- | [ChaintracksStorageBulkFileApi](#interface-chaintracksstoragebulkfileapi) | [PermissionsManagerConfig](#interface-permissionsmanagerconfig) | [TableSyncState](#interface-tablesyncstate) |
51
- | [ChaintracksStorageIdbOptions](#interface-chaintracksstorageidboptions) | [PermissionsModule](#interface-permissionsmodule) | [TableTransaction](#interface-tabletransaction) |
52
- | [ChaintracksStorageIdbSchema](#interface-chaintracksstorageidbschema) | [PostBeefResult](#interface-postbeefresult) | [TableTxLabel](#interface-tabletxlabel) |
53
- | [ChaintracksStorageIngestApi](#interface-chaintracksstorageingestapi) | [PostBeefResultForTxidApi](#interface-postbeefresultfortxidapi) | [TableTxLabelMap](#interface-tabletxlabelmap) |
54
- | [ChaintracksStorageNoDbOptions](#interface-chaintracksstoragenodboptions) | [PostReqsToNetworkDetails](#interface-postreqstonetworkdetails) | [TableUser](#interface-tableuser) |
55
- | [ChaintracksStorageQueryApi](#interface-chaintracksstoragequeryapi) | [PostReqsToNetworkResult](#interface-postreqstonetworkresult) | [TaskPurgeParams](#interface-taskpurgeparams) |
56
- | [ChaintracksWritableFileApi](#interface-chaintrackswritablefileapi) | [PostTxResultForTxid](#interface-posttxresultfortxid) | [TrustSettings](#interface-trustsettings) |
57
- | [CommitNewTxResults](#interface-commitnewtxresults) | [PostTxResultForTxidError](#interface-posttxresultfortxiderror) | [TrxToken](#interface-trxtoken) |
58
- | [CompleteAuthResponse](#interface-completeauthresponse) | [PostTxsResult](#interface-posttxsresult) | [TscMerkleProofApi](#interface-tscmerkleproofapi) |
59
- | [CounterpartyPermissionRequest](#interface-counterpartypermissionrequest) | [ProcessSyncChunkResult](#interface-processsyncchunkresult) | [TxScriptOffsets](#interface-txscriptoffsets) |
60
- | [CounterpartyPermissions](#interface-counterpartypermissions) | [Profile](#interface-profile) | [UMPToken](#interface-umptoken) |
61
- | [CreateActionResultX](#interface-createactionresultx) | [ProvenOrRawTx](#interface-provenorrawtx) | [UMPTokenInteractor](#interface-umptokeninteractor) |
62
- | [DeactivedHeader](#interface-deactivedheader) | [ProvenTransactionStatus](#interface-proventransactionstatus) | [UpdateProvenTxReqWithNewProvenTxArgs](#interface-updateproventxreqwithnewproventxargs) |
63
- | [EntitySyncMap](#interface-entitysyncmap) | [ProvenTxFromTxidResult](#interface-proventxfromtxidresult) | [UpdateProvenTxReqWithNewProvenTxResult](#interface-updateproventxreqwithnewproventxresult) |
64
- | [EntityTimeStamp](#interface-entitytimestamp) | [ProvenTxReqHistory](#interface-proventxreqhistory) | [ValidateGenerateChangeSdkParamsResult](#interface-validategeneratechangesdkparamsresult) |
65
- | [ExchangeRatesIoApi](#interface-exchangeratesioapi) | [ProvenTxReqHistorySummaryApi](#interface-proventxreqhistorysummaryapi) | [VerifyAndRepairBeefResult](#interface-verifyandrepairbeefresult) |
66
- | [ExtendedVerifiableCertificate](#interface-extendedverifiablecertificate) | [ProvenTxReqNotify](#interface-proventxreqnotify) | [WalletArgs](#interface-walletargs) |
67
- | [FiatExchangeRates](#interface-fiatexchangerates) | [ProviderCallHistory](#interface-providercallhistory) | [WalletBalance](#interface-walletbalance) |
68
- | [FindCertificateFieldsArgs](#interface-findcertificatefieldsargs) | [PurgeParams](#interface-purgeparams) | [WalletLoggerArgs](#interface-walletloggerargs) |
69
- | [FindCertificatesArgs](#interface-findcertificatesargs) | [PurgeResults](#interface-purgeresults) | [WalletPermissionsManagerCallbacks](#interface-walletpermissionsmanagercallbacks) |
70
- | [FindCommissionsArgs](#interface-findcommissionsargs) | [ReorgResult](#interface-reorgresult) | [WalletServices](#interface-walletservices) |
71
- | [FindForUserSincePagedArgs](#interface-findforusersincepagedargs) | [ReproveHeaderResult](#interface-reproveheaderresult) | [WalletServicesOptions](#interface-walletservicesoptions) |
72
- | [FindMonitorEventsArgs](#interface-findmonitoreventsargs) | [ReproveProvenResult](#interface-reproveprovenresult) | [WalletSettings](#interface-walletsettings) |
73
- | [FindOutputBasketsArgs](#interface-findoutputbasketsargs) | [ReqHistoryNote](#interface-reqhistorynote) | [WalletSettingsManagerConfig](#interface-walletsettingsmanagerconfig) |
74
- | [FindOutputTagMapsArgs](#interface-findoutputtagmapsargs) | [RequestSyncChunkArgs](#interface-requestsyncchunkargs) | [WalletSigner](#interface-walletsigner) |
75
- | [FindOutputTagsArgs](#interface-findoutputtagsargs) | [ReviewActionResult](#interface-reviewactionresult) | [WalletStorage](#interface-walletstorage) |
76
- | [FindOutputsArgs](#interface-findoutputsargs) | [ReviewHeightRangeResult](#interface-reviewheightrangeresult) | [WalletStorageInfo](#interface-walletstorageinfo) |
77
- | [FindPartialSincePagedArgs](#interface-findpartialsincepagedargs) | [ScriptHashHistoryResponse](#interface-scripthashhistoryresponse) | [WalletStorageProvider](#interface-walletstorageprovider) |
78
- | [FindProvenTxReqsArgs](#interface-findproventxreqsargs) | [ScriptTemplateParamsBRC29](#interface-scripttemplateparamsbrc29) | [WalletStorageReader](#interface-walletstoragereader) |
79
- | [FindProvenTxsArgs](#interface-findproventxsargs) | [ScriptTemplateUnlock](#interface-scripttemplateunlock) | [WalletStorageSync](#interface-walletstoragesync) |
80
- | [FindSincePagedArgs](#interface-findsincepagedargs) | [ServiceCall](#interface-servicecall) | [WalletStorageSyncReader](#interface-walletstoragesyncreader) |
81
- | [FindStaleMerkleRootsArgs](#interface-findstalemerklerootsargs) | [ServiceCall](#interface-servicecall) | [WalletStorageWriter](#interface-walletstoragewriter) |
82
- | [FindSyncStatesArgs](#interface-findsyncstatesargs) | [ServiceCallHistory](#interface-servicecallhistory) | [WalletTheme](#interface-wallettheme) |
83
- | [FindTransactionsArgs](#interface-findtransactionsargs) | [ServiceCallHistoryCounts](#interface-servicecallhistorycounts) | [WhatsOnChainServicesOptions](#interface-whatsonchainservicesoptions) |
84
- | [FindTxLabelMapsArgs](#interface-findtxlabelmapsargs) | [ServiceToCall](#interface-servicetocall) | [WocChainInfo](#interface-wocchaininfo) |
85
- | [FindTxLabelsArgs](#interface-findtxlabelsargs) | [ServicesCallHistory](#interface-servicescallhistory) | [WocGetHeaderByteFileLinks](#interface-wocgetheaderbytefilelinks) |
86
- | [FindUsersArgs](#interface-findusersargs) | [SetupClientWalletArgs](#interface-setupclientwalletargs) | [WocGetHeadersHeader](#interface-wocgetheadersheader) |
87
- | [GenerateChangeSdkChangeInput](#interface-generatechangesdkchangeinput) | [SetupClientWalletClientArgs](#interface-setupclientwalletclientargs) | [WocHeader](#interface-wocheader) |
88
- | [GenerateChangeSdkChangeOutput](#interface-generatechangesdkchangeoutput) | [SetupWallet](#interface-setupwallet) | [XValidCreateActionOutput](#interface-xvalidcreateactionoutput) |
9
+ | [AdminStatsResult](#interface-adminstatsresult) | [GenerateChangeSdkChangeOutput](#interface-generatechangesdkchangeoutput) | [SetupWalletClient](#interface-setupwalletclient) |
10
+ | [AggregatePostBeefTxResult](#interface-aggregatepostbeeftxresult) | [GenerateChangeSdkInput](#interface-generatechangesdkinput) | [SetupWalletIdb](#interface-setupwalletidb) |
11
+ | [ArcConfig](#interface-arcconfig) | [GenerateChangeSdkOutput](#interface-generatechangesdkoutput) | [SetupWalletIdbArgs](#interface-setupwalletidbargs) |
12
+ | [ArcMinerGetTxData](#interface-arcminergettxdata) | [GenerateChangeSdkParams](#interface-generatechangesdkparams) | [SignActionResultX](#interface-signactionresultx) |
13
+ | [ArcSSEClientOptions](#interface-arcsseclientoptions) | [GenerateChangeSdkResult](#interface-generatechangesdkresult) | [SpentInputTransition](#interface-spentinputtransition) |
14
+ | [ArcSSEEvent](#interface-arcsseevent) | [GenerateChangeSdkStorageChange](#interface-generatechangesdkstoragechange) | [StartAuthResponse](#interface-startauthresponse) |
15
+ | [AuthId](#interface-authid) | [GetHeaderByteFileLinksResult](#interface-getheaderbytefilelinksresult) | [StatusForTxidResult](#interface-statusfortxidresult) |
16
+ | [AuthPayload](#interface-authpayload) | [GetMerklePathResult](#interface-getmerklepathresult) | [StopListenerToken](#interface-stoplistenertoken) |
17
+ | [BaseBlockHeader](#interface-baseblockheader) | [GetRawTxResult](#interface-getrawtxresult) | [StorageAdminStats](#interface-storageadminstats) |
18
+ | [BitailsConfig](#interface-bitailsconfig) | [GetReqsAndBeefDetail](#interface-getreqsandbeefdetail) | [StorageCreateActionResult](#interface-storagecreateactionresult) |
19
+ | [BitailsMerkleProof](#interface-bitailsmerkleproof) | [GetReqsAndBeefResult](#interface-getreqsandbeefresult) | [StorageCreateTransactionSdkInput](#interface-storagecreatetransactionsdkinput) |
20
+ | [BlockHeader](#interface-blockheader) | [GetScriptHashHistory](#interface-getscripthashhistory) | [StorageCreateTransactionSdkOutput](#interface-storagecreatetransactionsdkoutput) |
21
+ | [BsvExchangeRate](#interface-bsvexchangerate) | [GetScriptHashHistoryResult](#interface-getscripthashhistoryresult) | [StorageFeeModel](#interface-storagefeemodel) |
22
+ | [BulkFileDataManagerMergeResult](#interface-bulkfiledatamanagermergeresult) | [GetStatusForTxidsResult](#interface-getstatusfortxidsresult) | [StorageGetBeefOptions](#interface-storagegetbeefoptions) |
23
+ | [BulkFileDataManagerOptions](#interface-bulkfiledatamanageroptions) | [GetUtxoStatusDetails](#interface-getutxostatusdetails) | [StorageIdbOptions](#interface-storageidboptions) |
24
+ | [BulkHeaderFileInfo](#interface-bulkheaderfileinfo) | [GetUtxoStatusResult](#interface-getutxostatusresult) | [StorageIdbSchema](#interface-storageidbschema) |
25
+ | [BulkHeaderFilesInfo](#interface-bulkheaderfilesinfo) | [GroupedPermissionRequest](#interface-groupedpermissionrequest) | [StorageIdentity](#interface-storageidentity) |
26
+ | [BulkIngestorApi](#interface-bulkingestorapi) | [GroupedPermissions](#interface-groupedpermissions) | [StorageInternalizeActionResult](#interface-storageinternalizeactionresult) |
27
+ | [BulkIngestorBaseOptions](#interface-bulkingestorbaseoptions) | [HeightRangeApi](#interface-heightrangeapi) | [StorageProcessActionArgs](#interface-storageprocessactionargs) |
28
+ | [BulkIngestorCDNOptions](#interface-bulkingestorcdnoptions) | [HeightRanges](#interface-heightranges) | [StorageProcessActionResults](#interface-storageprocessactionresults) |
29
+ | [BulkIngestorWhatsOnChainOptions](#interface-bulkingestorwhatsonchainoptions) | [KdfConfig](#interface-kdfconfig) | [StorageProvenOrReq](#interface-storageprovenorreq) |
30
+ | [BulkStorageApi](#interface-bulkstorageapi) | [KeyPair](#interface-keypair) | [StorageProviderOptions](#interface-storageprovideroptions) |
31
+ | [BulkStorageBaseOptions](#interface-bulkstoragebaseoptions) | [KeyPairAddress](#interface-keypairaddress) | [StorageReaderOptions](#interface-storagereaderoptions) |
32
+ | [BulkSyncResult](#interface-bulksyncresult) | [ListActionsSpecOp](#interface-listactionsspecop) | [StorageReaderWriterOptions](#interface-storagereaderwriteroptions) |
33
+ | [CertOpsWallet](#interface-certopswallet) | [ListOutputsSpecOp](#interface-listoutputsspecop) | [StorageSyncReaderOptions](#interface-storagesyncreaderoptions) |
34
+ | [Certifier](#interface-certifier) | [LiveBlockHeader](#interface-liveblockheader) | [SyncChunk](#interface-syncchunk) |
35
+ | [ChaintracksApi](#interface-chaintracksapi) | [LiveIngestorApi](#interface-liveingestorapi) | [SyncError](#interface-syncerror) |
36
+ | [ChaintracksAppendableFileApi](#interface-chaintracksappendablefileapi) | [LiveIngestorBaseOptions](#interface-liveingestorbaseoptions) | [SyncMap](#interface-syncmap) |
37
+ | [ChaintracksChainTrackerOptions](#interface-chaintrackschaintrackeroptions) | [LiveIngestorWhatsOnChainOptions](#interface-liveingestorwhatsonchainoptions) | [TableCertificate](#interface-tablecertificate) |
38
+ | [ChaintracksClientApi](#interface-chaintracksclientapi) | [MerklePathNote](#interface-merklepathnote) | [TableCertificateField](#interface-tablecertificatefield) |
39
+ | [ChaintracksFetchApi](#interface-chaintracksfetchapi) | [MockChainBlockHeaderRow](#interface-mockchainblockheaderrow) | [TableCertificateX](#interface-tablecertificatex) |
40
+ | [ChaintracksFsApi](#interface-chaintracksfsapi) | [MockChainTransactionRow](#interface-mockchaintransactionrow) | [TableCommission](#interface-tablecommission) |
41
+ | [ChaintracksInfoApi](#interface-chaintracksinfoapi) | [MockChainUtxoRow](#interface-mockchainutxorow) | [TableMonitorEvent](#interface-tablemonitorevent) |
42
+ | [ChaintracksIngestorParams](#interface-chaintracksingestorparams) | [MonitorOptions](#interface-monitoroptions) | [TableOutput](#interface-tableoutput) |
43
+ | [ChaintracksManagementApi](#interface-chaintracksmanagementapi) | [OutPoint](#interface-outpoint) | [TableOutputBasket](#interface-tableoutputbasket) |
44
+ | [ChaintracksOptions](#interface-chaintracksoptions) | [Paged](#interface-paged) | [TableOutputTag](#interface-tableoutputtag) |
45
+ | [ChaintracksPackageInfoApi](#interface-chaintrackspackageinfoapi) | [ParsedBrc114ActionTimeLabels](#interface-parsedbrc114actiontimelabels) | [TableOutputTagMap](#interface-tableoutputtagmap) |
46
+ | [ChaintracksReadableFileApi](#interface-chaintracksreadablefileapi) | [ParsedOutpoint](#interface-parsedoutpoint) | [TableOutputX](#interface-tableoutputx) |
47
+ | [ChaintracksServiceClientOptions](#interface-chaintracksserviceclientoptions) | [PendingSignAction](#interface-pendingsignaction) | [TableProvenTx](#interface-tableproventx) |
48
+ | [ChaintracksStorageApi](#interface-chaintracksstorageapi) | [PendingStorageInput](#interface-pendingstorageinput) | [TableProvenTxReq](#interface-tableproventxreq) |
49
+ | [ChaintracksStorageBaseOptions](#interface-chaintracksstoragebaseoptions) | [PermissionRequest](#interface-permissionrequest) | [TableProvenTxReqDynamics](#interface-tableproventxreqdynamics) |
50
+ | [ChaintracksStorageBulkFileApi](#interface-chaintracksstoragebulkfileapi) | [PermissionToken](#interface-permissiontoken) | [TableSettings](#interface-tablesettings) |
51
+ | [ChaintracksStorageIdbOptions](#interface-chaintracksstorageidboptions) | [PermissionsManagerConfig](#interface-permissionsmanagerconfig) | [TableSyncState](#interface-tablesyncstate) |
52
+ | [ChaintracksStorageIdbSchema](#interface-chaintracksstorageidbschema) | [PermissionsModule](#interface-permissionsmodule) | [TableTransaction](#interface-tabletransaction) |
53
+ | [ChaintracksStorageIngestApi](#interface-chaintracksstorageingestapi) | [PostBeefResult](#interface-postbeefresult) | [TableTxLabel](#interface-tabletxlabel) |
54
+ | [ChaintracksStorageNoDbOptions](#interface-chaintracksstoragenodboptions) | [PostBeefResultForTxidApi](#interface-postbeefresultfortxidapi) | [TableTxLabelMap](#interface-tabletxlabelmap) |
55
+ | [ChaintracksStorageQueryApi](#interface-chaintracksstoragequeryapi) | [PostReqsToNetworkDetails](#interface-postreqstonetworkdetails) | [TableUser](#interface-tableuser) |
56
+ | [ChaintracksWritableFileApi](#interface-chaintrackswritablefileapi) | [PostReqsToNetworkResult](#interface-postreqstonetworkresult) | [TaskPurgeParams](#interface-taskpurgeparams) |
57
+ | [CommitNewTxResults](#interface-commitnewtxresults) | [PostTxResultForTxid](#interface-posttxresultfortxid) | [TrustSettings](#interface-trustsettings) |
58
+ | [CompleteAuthResponse](#interface-completeauthresponse) | [PostTxResultForTxidError](#interface-posttxresultfortxiderror) | [TrxToken](#interface-trxtoken) |
59
+ | [ContactRecord](#interface-contactrecord) | [PostTxsResult](#interface-posttxsresult) | [TscMerkleProofApi](#interface-tscmerkleproofapi) |
60
+ | [ContactSource](#interface-contactsource) | [ProcessSyncChunkResult](#interface-processsyncchunkresult) | [TxScriptOffsets](#interface-txscriptoffsets) |
61
+ | [CounterpartyPermissionRequest](#interface-counterpartypermissionrequest) | [Profile](#interface-profile) | [UMPToken](#interface-umptoken) |
62
+ | [CounterpartyPermissions](#interface-counterpartypermissions) | [ProvenOrRawTx](#interface-provenorrawtx) | [UMPTokenInteractor](#interface-umptokeninteractor) |
63
+ | [CreateActionResultX](#interface-createactionresultx) | [ProvenTransactionStatus](#interface-proventransactionstatus) | [UpdateProvenTxReqWithNewProvenTxArgs](#interface-updateproventxreqwithnewproventxargs) |
64
+ | [DeactivedHeader](#interface-deactivedheader) | [ProvenTxFromTxidResult](#interface-proventxfromtxidresult) | [UpdateProvenTxReqWithNewProvenTxResult](#interface-updateproventxreqwithnewproventxresult) |
65
+ | [EntitySyncMap](#interface-entitysyncmap) | [ProvenTxReqHistory](#interface-proventxreqhistory) | [ValidateGenerateChangeSdkParamsResult](#interface-validategeneratechangesdkparamsresult) |
66
+ | [EntityTimeStamp](#interface-entitytimestamp) | [ProvenTxReqHistorySummaryApi](#interface-proventxreqhistorysummaryapi) | [VerifyAndRepairBeefResult](#interface-verifyandrepairbeefresult) |
67
+ | [ExchangeRatesIoApi](#interface-exchangeratesioapi) | [ProvenTxReqNotify](#interface-proventxreqnotify) | [WalletArgs](#interface-walletargs) |
68
+ | [ExtendedVerifiableCertificate](#interface-extendedverifiablecertificate) | [ProviderCallHistory](#interface-providercallhistory) | [WalletBalance](#interface-walletbalance) |
69
+ | [FiatExchangeRates](#interface-fiatexchangerates) | [PurgeParams](#interface-purgeparams) | [WalletLoggerArgs](#interface-walletloggerargs) |
70
+ | [FindCertificateFieldsArgs](#interface-findcertificatefieldsargs) | [PurgeResults](#interface-purgeresults) | [WalletPermissionsManagerCallbacks](#interface-walletpermissionsmanagercallbacks) |
71
+ | [FindCertificatesArgs](#interface-findcertificatesargs) | [ReorgResult](#interface-reorgresult) | [WalletServices](#interface-walletservices) |
72
+ | [FindCommissionsArgs](#interface-findcommissionsargs) | [ReproveHeaderResult](#interface-reproveheaderresult) | [WalletServicesOptions](#interface-walletservicesoptions) |
73
+ | [FindForUserSincePagedArgs](#interface-findforusersincepagedargs) | [ReproveProvenResult](#interface-reproveprovenresult) | [WalletSettings](#interface-walletsettings) |
74
+ | [FindMonitorEventsArgs](#interface-findmonitoreventsargs) | [ReqHistoryNote](#interface-reqhistorynote) | [WalletSettingsManagerConfig](#interface-walletsettingsmanagerconfig) |
75
+ | [FindOutputBasketsArgs](#interface-findoutputbasketsargs) | [RequestSyncChunkArgs](#interface-requestsyncchunkargs) | [WalletSigner](#interface-walletsigner) |
76
+ | [FindOutputTagMapsArgs](#interface-findoutputtagmapsargs) | [ReviewActionResult](#interface-reviewactionresult) | [WalletStorage](#interface-walletstorage) |
77
+ | [FindOutputTagsArgs](#interface-findoutputtagsargs) | [ReviewHeightRangeResult](#interface-reviewheightrangeresult) | [WalletStorageInfo](#interface-walletstorageinfo) |
78
+ | [FindOutputsArgs](#interface-findoutputsargs) | [ScriptHashHistoryResponse](#interface-scripthashhistoryresponse) | [WalletStorageProvider](#interface-walletstorageprovider) |
79
+ | [FindPartialSincePagedArgs](#interface-findpartialsincepagedargs) | [ScriptTemplateParamsBRC29](#interface-scripttemplateparamsbrc29) | [WalletStorageReader](#interface-walletstoragereader) |
80
+ | [FindProvenTxReqsArgs](#interface-findproventxreqsargs) | [ScriptTemplateUnlock](#interface-scripttemplateunlock) | [WalletStorageSync](#interface-walletstoragesync) |
81
+ | [FindProvenTxsArgs](#interface-findproventxsargs) | [ServiceCall](#interface-servicecall) | [WalletStorageSyncReader](#interface-walletstoragesyncreader) |
82
+ | [FindSincePagedArgs](#interface-findsincepagedargs) | [ServiceCall](#interface-servicecall) | [WalletStorageWriter](#interface-walletstoragewriter) |
83
+ | [FindStaleMerkleRootsArgs](#interface-findstalemerklerootsargs) | [ServiceCallHistory](#interface-servicecallhistory) | [WalletTheme](#interface-wallettheme) |
84
+ | [FindSyncStatesArgs](#interface-findsyncstatesargs) | [ServiceCallHistoryCounts](#interface-servicecallhistorycounts) | [WhatsOnChainServicesOptions](#interface-whatsonchainservicesoptions) |
85
+ | [FindTransactionsArgs](#interface-findtransactionsargs) | [ServiceToCall](#interface-servicetocall) | [WocChainInfo](#interface-wocchaininfo) |
86
+ | [FindTxLabelMapsArgs](#interface-findtxlabelmapsargs) | [ServicesCallHistory](#interface-servicescallhistory) | [WocGetHeaderByteFileLinks](#interface-wocgetheaderbytefilelinks) |
87
+ | [FindTxLabelsArgs](#interface-findtxlabelsargs) | [SetupClientWalletArgs](#interface-setupclientwalletargs) | [WocGetHeadersHeader](#interface-wocgetheadersheader) |
88
+ | [FindUsersArgs](#interface-findusersargs) | [SetupClientWalletClientArgs](#interface-setupclientwalletclientargs) | [WocHeader](#interface-wocheader) |
89
+ | [GenerateChangeSdkChangeInput](#interface-generatechangesdkchangeinput) | [SetupWallet](#interface-setupwallet) | [XValidCreateActionOutput](#interface-xvalidcreateactionoutput) |
89
90
 
90
91
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
91
92
 
@@ -2460,6 +2461,95 @@ export interface CompleteAuthResponse {
2460
2461
 
2461
2462
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
2462
2463
 
2464
+ ---
2465
+ ##### Interface: ContactRecord
2466
+
2467
+ ```ts
2468
+ export interface ContactRecord {
2469
+ identityKey: PubKeyHex;
2470
+ type?: string;
2471
+ decryptedFields?: Record<string, string>;
2472
+ certifierInfo?: {
2473
+ name?: string;
2474
+ iconUrl?: string;
2475
+ description?: string;
2476
+ trust?: number;
2477
+ };
2478
+ }
2479
+ ```
2480
+
2481
+ ###### Property certifierInfo
2482
+
2483
+ Optional certifier metadata; missing trust defaults to `Infinity` (contacts override overlay trust).
2484
+
2485
+ ```ts
2486
+ certifierInfo?: {
2487
+ name?: string;
2488
+ iconUrl?: string;
2489
+ description?: string;
2490
+ trust?: number;
2491
+ }
2492
+ ```
2493
+
2494
+ ###### Property decryptedFields
2495
+
2496
+ Optional decrypted fields. Whatever the app stored when saving the contact.
2497
+
2498
+ ```ts
2499
+ decryptedFields?: Record<string, string>
2500
+ ```
2501
+
2502
+ ###### Property type
2503
+
2504
+ Optional certificate type (e.g. xCert / discordCert) so callers can render a badge.
2505
+
2506
+ ```ts
2507
+ type?: string
2508
+ ```
2509
+
2510
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
2511
+
2512
+ ---
2513
+ ##### Interface: ContactSource
2514
+
2515
+ The preferred means of constructing a `Wallet` is with a `WalletArgs` instance.
2516
+
2517
+ Minimal interface the wallet uses to short-circuit identity discovery against the user's local
2518
+ contacts before hitting the overlay. The result shape matches what `discoverByIdentityKey` /
2519
+ `discoverByAttributes` return so callers don't have to special-case contact-sourced records.
2520
+
2521
+ Implementations typically wrap `@bsv/sdk` `ContactsManager` or another on-device source. Reads
2522
+ are expected to be very fast (single-digit ms against local SQLite is typical).
2523
+
2524
+ ```ts
2525
+ export interface ContactSource {
2526
+ findByIdentityKey: (identityKey: PubKeyHex) => Promise<ContactRecord | null | undefined>;
2527
+ findByAttributes?: (attributes: Record<string, string> | string[]) => Promise<ContactRecord[]>;
2528
+ }
2529
+ ```
2530
+
2531
+ See also: [ContactRecord](./client.md#interface-contactrecord)
2532
+
2533
+ ###### Property findByAttributes
2534
+
2535
+ Look up contacts matching a set of attributes. May be a no-op if attribute search is unsupported.
2536
+
2537
+ ```ts
2538
+ findByAttributes?: (attributes: Record<string, string> | string[]) => Promise<ContactRecord[]>
2539
+ ```
2540
+ See also: [ContactRecord](./client.md#interface-contactrecord)
2541
+
2542
+ ###### Property findByIdentityKey
2543
+
2544
+ Look up a contact by identity key. Return `null` (or undefined) if unknown.
2545
+
2546
+ ```ts
2547
+ findByIdentityKey: (identityKey: PubKeyHex) => Promise<ContactRecord | null | undefined>
2548
+ ```
2549
+ See also: [ContactRecord](./client.md#interface-contactrecord)
2550
+
2551
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
2552
+
2463
2553
  ---
2464
2554
  ##### Interface: CounterpartyPermissionRequest
2465
2555
 
@@ -5992,6 +6082,26 @@ See also: [ReviewActionResult](./client.md#interface-reviewactionresult)
5992
6082
 
5993
6083
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
5994
6084
 
6085
+ ---
6086
+ ##### Interface: SpentInputTransition
6087
+
6088
+ ```ts
6089
+ export interface SpentInputTransition {
6090
+ outputId: number;
6091
+ setSpentBy: boolean;
6092
+ }
6093
+ ```
6094
+
6095
+ ###### Property setSpentBy
6096
+
6097
+ true if the call set spentBy; false if only spendable was flipped.
6098
+
6099
+ ```ts
6100
+ setSpentBy: boolean
6101
+ ```
6102
+
6103
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
6104
+
5995
6105
  ---
5996
6106
  ##### Interface: StartAuthResponse
5997
6107
 
@@ -7724,8 +7834,6 @@ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](
7724
7834
  ---
7725
7835
  ##### Interface: WalletArgs
7726
7836
 
7727
- The preferred means of constructing a `Wallet` is with a `WalletArgs` instance.
7728
-
7729
7837
  ```ts
7730
7838
  export interface WalletArgs {
7731
7839
  chain: Chain;
@@ -7736,11 +7844,24 @@ export interface WalletArgs {
7736
7844
  privilegedKeyManager?: PrivilegedKeyManager;
7737
7845
  settingsManager?: WalletSettingsManager;
7738
7846
  lookupResolver?: LookupResolver;
7847
+ contactSource?: ContactSource;
7739
7848
  makeLogger?: MakeWalletLogger;
7740
7849
  }
7741
7850
  ```
7742
7851
 
7743
- See also: [Chain](./client.md#type-chain), [Monitor](./monitor.md#class-monitor), [PrivilegedKeyManager](./client.md#class-privilegedkeymanager), [WalletServices](./client.md#interface-walletservices), [WalletSettingsManager](./client.md#class-walletsettingsmanager), [WalletStorageManager](./storage.md#class-walletstoragemanager)
7852
+ See also: [Chain](./client.md#type-chain), [ContactSource](./client.md#interface-contactsource), [Monitor](./monitor.md#class-monitor), [PrivilegedKeyManager](./client.md#class-privilegedkeymanager), [WalletServices](./client.md#interface-walletservices), [WalletSettingsManager](./client.md#class-walletsettingsmanager), [WalletStorageManager](./storage.md#class-walletstoragemanager)
7853
+
7854
+ ###### Property contactSource
7855
+
7856
+ Optional contact source consulted before the overlay in `discoverByIdentityKey` /
7857
+ `discoverByAttributes`. When a contact matches, the overlay call is skipped entirely.
7858
+ Pass `forceRefresh: true` on the discover args to bypass both contacts and the overlay
7859
+ cache.
7860
+
7861
+ ```ts
7862
+ contactSource?: ContactSource
7863
+ ```
7864
+ See also: [ContactSource](./client.md#interface-contactsource)
7744
7865
 
7745
7866
  ###### Property makeLogger
7746
7867
 
@@ -14126,7 +14247,7 @@ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](
14126
14247
  ---
14127
14248
  ##### Class: TaskCheckNoSends
14128
14249
 
14129
- `TaskCheckNoSends` is a WalletMonitor task that retreives merkle proofs for
14250
+ `TaskCheckNoSends` is a WalletMonitor task that retrieves merkle proofs for
14130
14251
  'nosend' transactions that MAY have been shared externally.
14131
14252
 
14132
14253
  Unlike intentionally processed transactions, 'nosend' transactions are fully valid
@@ -14138,10 +14259,54 @@ managed to get mined by some external process.
14138
14259
  If a proof is obtained and validated, a new ProvenTx record is created and
14139
14260
  the original ProvenTxReq status is advanced to 'notifying'.
14140
14261
 
14262
+ # Aging schedule on the checkNow path
14263
+
14264
+ When this task is triggered by a new block header (`checkNow = true`, wired in
14265
+ `Monitor.processNewBlockHeader`), it does NOT scan every `nosend` row on every
14266
+ block. The set of `nosend` rows can grow large over a wallet's lifetime
14267
+ (txs sitting in escrow, un-aborted tests, abandoned batches), and a fast,
14268
+ unfiltered scan on every block would do an unbounded number of external
14269
+ `getMerklePath` lookups per block.
14270
+
14271
+ Instead, the row's age (now - `created_at`) determines how often it is
14272
+ eligible for a checkNow-triggered chain check. The schedule starts at "skip
14273
+ entirely" for very fresh rows (to protect in-flight batched-tx workflows
14274
+ where chained `createAction({ noSend: true, sendWith: [...] })` builds
14275
+ deliberately keep rows in `nosend` until a single terminator broadcasts the
14276
+ whole BEEF), then progresses to "every block", "hourly", "daily", and
14277
+ "weekly" as rows age:
14278
+
14279
+ age < 5 min → skip (in-flight batch protection)
14280
+ 5 min ≤ age < 1 hr → check on every checkNow trigger
14281
+ 1 hr ≤ age < 24 hr → check on ~hourly cadence (block-height % 6)
14282
+ 24 hr ≤ age < 7 days → check on ~daily cadence (block-height % 144)
14283
+ age ≥ 7 days → check on ~weekly cadence (block-height % 1008)
14284
+
14285
+ Block-height modulo gives a deterministic, stateless way to schedule
14286
+ checks for older rows; no per-row "last checked" persistence is required.
14287
+ Each row's modulo offset is keyed by its `provenTxReqId` so that rows in
14288
+ the same age tier are staggered across the modulo cycle rather than all
14289
+ firing on the same block — `(blockHeight + provenTxReqId) % tierInterval`.
14290
+ For a wallet with N rows in tier T and tier interval K, this gives
14291
+ roughly N/K rows fired per block instead of N rows fired every K blocks.
14292
+
14293
+ The scheduled daily cadence (no `checkNow`) is unaffected — it still scans
14294
+ every row regardless of age. That path is the once-per-day fallback that
14295
+ guarantees externally-broadcast `nosend` txs are eventually recognized
14296
+ even if the aging schedule on the checkNow path defers them.
14297
+
14141
14298
  ```ts
14142
14299
  export class TaskCheckNoSends extends WalletMonitorTask {
14143
14300
  static readonly taskName = "CheckNoSends";
14144
14301
  static checkNow = false;
14302
+ static readonly tier0FreshSkipMsecs = 5 * 60 * 1000;
14303
+ static readonly tier1EveryBlockMsecs = 60 * 60 * 1000;
14304
+ static readonly tier2HourlyMsecs = 24 * 60 * 60 * 1000;
14305
+ static readonly tier3DailyMsecs = 7 * 24 * 60 * 60 * 1000;
14306
+ static readonly tier2BlockInterval = 6;
14307
+ static readonly tier3BlockInterval = 144;
14308
+ static readonly tier4BlockInterval = 1008;
14309
+ static shouldCheckOnCheckNow(createdAt: Date, nowMs: number, currentBlockHeight: number, provenTxReqId: number): boolean
14145
14310
  constructor(monitor: Monitor, public triggerMsecs = Monitor.oneDay * 1)
14146
14311
  trigger(nowMsecsSinceEpoch: number): {
14147
14312
  run: boolean;
@@ -14161,6 +14326,30 @@ listener can set this true to cause
14161
14326
  static checkNow = false
14162
14327
  ```
14163
14328
 
14329
+ ###### Property tier0FreshSkipMsecs
14330
+
14331
+ Aging-schedule constants for the `checkNow` path. Rows below `tier0FreshSkipMsecs`
14332
+ are never checked via checkNow (batched-tx protection). Rows from tier 0 up
14333
+ to `tier1EveryBlockMsecs` are checked on every checkNow trigger. Beyond that,
14334
+ checks happen on `block-height % tierNBlockInterval === 0` cadences with
14335
+ growing intervals. The scheduled daily cadence (no checkNow) is unaffected.
14336
+
14337
+ ```ts
14338
+ static readonly tier0FreshSkipMsecs = 5 * 60 * 1000
14339
+ ```
14340
+
14341
+ ###### Method shouldCheckOnCheckNow
14342
+
14343
+ Decide whether a single `nosend` row should be chain-checked on the
14344
+ current `checkNow` trigger, based on its age, the current block
14345
+ height, and its `provenTxReqId` (used to stagger same-tier rows
14346
+ across the modulo cycle). See class docstring for the full schedule
14347
+ and staggering rationale.
14348
+
14349
+ ```ts
14350
+ static shouldCheckOnCheckNow(createdAt: Date, nowMs: number, currentBlockHeight: number, provenTxReqId: number): boolean
14351
+ ```
14352
+
14164
14353
  ###### Method trigger
14165
14354
 
14166
14355
  Normally triggered by checkNow getting set by new block header found event from chaintracks
@@ -15161,6 +15350,7 @@ export class Wallet implements WalletInterface, ProtoWallet {
15161
15350
  lookupResolver: LookupResolver;
15162
15351
  services?: WalletServices;
15163
15352
  monitor?: Monitor;
15353
+ contactSource?: ContactSource;
15164
15354
  identityKey: string;
15165
15355
  beef: BeefParty;
15166
15356
  includeAllSourceTransactions: boolean = true;
@@ -15196,8 +15386,12 @@ export class Wallet implements WalletInterface, ProtoWallet {
15196
15386
  async acquireCertificate(args: AcquireCertificateArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<AcquireCertificateResult>
15197
15387
  async relinquishCertificate(args: RelinquishCertificateArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<RelinquishCertificateResult>
15198
15388
  async proveCertificate(args: ProveCertificateArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<ProveCertificateResult>
15199
- async discoverByIdentityKey(args: DiscoverByIdentityKeyArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<DiscoverCertificatesResult>
15200
- async discoverByAttributes(args: DiscoverByAttributesArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<DiscoverCertificatesResult>
15389
+ async discoverByIdentityKey(args: DiscoverByIdentityKeyArgs & {
15390
+ forceRefresh?: boolean;
15391
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<DiscoverCertificatesResult>
15392
+ async discoverByAttributes(args: DiscoverByAttributesArgs & {
15393
+ forceRefresh?: boolean;
15394
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<DiscoverCertificatesResult>
15201
15395
  verifyReturnedTxidOnly(beef: Beef, knownTxids?: string[]): Beef
15202
15396
  verifyReturnedTxidOnlyAtomicBEEF(beef: AtomicBEEF, knownTxids?: string[]): AtomicBEEF
15203
15397
  verifyReturnedTxidOnlyBEEF(beef: BEEF): BEEF
@@ -15226,7 +15420,7 @@ export class Wallet implements WalletInterface, ProtoWallet {
15226
15420
  }
15227
15421
  ```
15228
15422
 
15229
- See also: [Chain](./client.md#type-chain), [KeyPair](./client.md#interface-keypair), [Monitor](./monitor.md#class-monitor), [PendingSignAction](./client.md#interface-pendingsignaction), [PrivilegedKeyManager](./client.md#class-privilegedkeymanager), [StorageIdentity](./client.md#interface-storageidentity), [WalletArgs](./client.md#interface-walletargs), [WalletBalance](./client.md#interface-walletbalance), [WalletServices](./client.md#interface-walletservices), [WalletSettingsManager](./client.md#class-walletsettingsmanager), [WalletSigner](./client.md#class-walletsigner), [WalletStorageManager](./storage.md#class-walletstoragemanager), [createAction](./storage.md#function-createaction), [getIdentityKey](./client.md#function-getidentitykey), [internalizeAction](./storage.md#function-internalizeaction), [listActions](./storage.md#function-listactions), [listCertificates](./storage.md#function-listcertificates), [listOutputs](./storage.md#function-listoutputs), [logWalletError](./client.md#function-logwalleterror), [logger](./client.md#variable-logger), [proveCertificate](./client.md#function-provecertificate), [signAction](./client.md#function-signaction)
15423
+ See also: [Chain](./client.md#type-chain), [ContactSource](./client.md#interface-contactsource), [KeyPair](./client.md#interface-keypair), [Monitor](./monitor.md#class-monitor), [PendingSignAction](./client.md#interface-pendingsignaction), [PrivilegedKeyManager](./client.md#class-privilegedkeymanager), [StorageIdentity](./client.md#interface-storageidentity), [WalletArgs](./client.md#interface-walletargs), [WalletBalance](./client.md#interface-walletbalance), [WalletServices](./client.md#interface-walletservices), [WalletSettingsManager](./client.md#class-walletsettingsmanager), [WalletSigner](./client.md#class-walletsigner), [WalletStorageManager](./storage.md#class-walletstoragemanager), [createAction](./storage.md#function-createaction), [getIdentityKey](./client.md#function-getidentitykey), [internalizeAction](./storage.md#function-internalizeaction), [listActions](./storage.md#function-listactions), [listCertificates](./storage.md#function-listcertificates), [listOutputs](./storage.md#function-listoutputs), [logWalletError](./client.md#function-logwalleterror), [logger](./client.md#variable-logger), [proveCertificate](./client.md#function-provecertificate), [signAction](./client.md#function-signaction)
15230
15424
 
15231
15425
  ###### Property autoKnownTxids
15232
15426
 
@@ -16670,73 +16864,74 @@ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](
16670
16864
 
16671
16865
  | | | |
16672
16866
  | --- | --- | --- |
16673
- | [WalletErrorFromJson](#function-walleterrorfromjson) | [importSingleOutpoint](#function-importsingleoutpoint) | [sha256Hash](#function-sha256hash) |
16674
- | [WocHeadersBulkListener](#function-wocheadersbulklistener) | [internalizeAction](#function-internalizeaction) | [sha256HashOfBinaryFile](#function-sha256hashofbinaryfile) |
16675
- | [WocHeadersBulkListener_test](#function-wocheadersbulklistener_test) | [internalizeAction](#function-internalizeaction) | [shareReqsWithWorld](#function-sharereqswithworld) |
16676
- | [WocHeadersLiveListener](#function-wocheaderslivelistener) | [isBaseBlockHeader](#function-isbaseblockheader) | [signAction](#function-signaction) |
16677
- | [WocHeadersLiveListener_test](#function-wocheaderslivelistener_test) | [isBlockHeader](#function-isblockheader) | [signAndComplete](#function-signandcomplete) |
16678
- | [acquireDirectCertificate](#function-acquiredirectcertificate) | [isCreateActionSpecOp](#function-iscreateactionspecop) | [stampLog](#function-stamplog) |
16679
- | [addWork](#function-addwork) | [isKnownValidBulkHeaderFile](#function-isknownvalidbulkheaderfile) | [stampLogFormat](#function-stamplogformat) |
16680
- | [arcDefaultUrl](#function-arcdefaulturl) | [isListActionsSpecOp](#function-islistactionsspecop) | [subWork](#function-subwork) |
16681
- | [arcGorillaPoolUrl](#function-arcgorillapoolurl) | [isListOutputsSpecOp](#function-islistoutputsspecop) | [swapByteOrder](#function-swapbyteorder) |
16682
- | [arraysEqual](#function-arraysequal) | [isLive](#function-islive) | [throwDummyReviewActions](#function-throwdummyreviewactions) |
16683
- | [asArray](#function-asarray) | [isLiveBlockHeader](#function-isliveblockheader) | [toBinaryBaseBlockHeader](#function-tobinarybaseblockheader) |
16684
- | [asBsvSdkPrivateKey](#function-asbsvsdkprivatekey) | [isMoreWork](#function-ismorework) | [toLookupNetworkPreset](#function-tolookupnetworkpreset) |
16685
- | [asBsvSdkPublickKey](#function-asbsvsdkpublickkey) | [keyOffsetToHashedSecret](#function-keyoffsettohashedsecret) | [toWalletNetwork](#function-towalletnetwork) |
16686
- | [asBsvSdkScript](#function-asbsvsdkscript) | [listActionsIdb](#function-listactionsidb) | [transactionInputSize](#function-transactioninputsize) |
16687
- | [asBsvSdkTx](#function-asbsvsdktx) | [listCertificates](#function-listcertificates) | [transactionOutputSize](#function-transactionoutputsize) |
16688
- | [asString](#function-asstring) | [listOutputsIdb](#function-listoutputsidb) | [transactionSize](#function-transactionsize) |
16689
- | [asUint8Array](#function-asuint8array) | [lockScriptWithKeyOffsetFromPubKey](#function-lockscriptwithkeyoffsetfrompubkey) | [updateChaintracksFiatExchangeRates](#function-updatechaintracksfiatexchangerates) |
16690
- | [attemptToPostReqsToNetwork](#function-attempttopostreqstonetwork) | [logCreateActionArgs](#function-logcreateactionargs) | [updateExchangeratesapi](#function-updateexchangeratesapi) |
16691
- | [blockHash](#function-blockhash) | [logWalletError](#function-logwalleterror) | [updateReqsFromAggregateResults](#function-updatereqsfromaggregateresults) |
16692
- | [buildBeefForOutpoints](#function-buildbeefforoutpoints) | [makeAtomicBeef](#function-makeatomicbeef) | [upgradeAllStoresV1](#function-upgradeallstoresv1) |
16693
- | [buildChaintracksOptionsWithIngestors](#function-buildchaintracksoptionswithingestors) | [makeBrc114ActionTimeLabel](#function-makebrc114actiontimelabel) | [upgradeCertificateFields](#function-upgradecertificatefields) |
16694
- | [buildSignableTransaction](#function-buildsignabletransaction) | [makeChangeLock](#function-makechangelock) | [upgradeCertificates](#function-upgradecertificates) |
16695
- | [classifyMerklePathResponse](#function-classifymerklepathresponse) | [makeMerklePathNote](#function-makemerklepathnote) | [upgradeCommissions](#function-upgradecommissions) |
16696
- | [classifyReqStatus](#function-classifyreqstatus) | [markStaleInputsAsSpent](#function-markstaleinputsasspent) | [upgradeMonitorEvents](#function-upgrademonitorevents) |
16697
- | [completeSignedTransaction](#function-completesignedtransaction) | [matchesCertificateFieldPartial](#function-matchescertificatefieldpartial) | [upgradeOutputBaskets](#function-upgradeoutputbaskets) |
16698
- | [computeMerklePath](#function-computemerklepath) | [matchesCertificatePartial](#function-matchescertificatepartial) | [upgradeOutputTags](#function-upgradeoutputtags) |
16699
- | [computeMerkleRoot](#function-computemerkleroot) | [matchesCommissionPartial](#function-matchescommissionpartial) | [upgradeOutputTagsMap](#function-upgradeoutputtagsmap) |
16700
- | [convertBitsToTarget](#function-convertbitstotarget) | [matchesMonitorEventPartial](#function-matchesmonitoreventpartial) | [upgradeOutputs](#function-upgradeoutputs) |
16701
- | [convertBitsToWork](#function-convertbitstowork) | [matchesOutputBasketPartial](#function-matchesoutputbasketpartial) | [upgradeProvenTxReqs](#function-upgradeproventxreqs) |
16702
- | [convertBufferToUint32](#function-convertbuffertouint32) | [matchesOutputPartial](#function-matchesoutputpartial) | [upgradeProvenTxs](#function-upgradeproventxs) |
16703
- | [convertProofToMerklePath](#function-convertprooftomerklepath) | [matchesOutputTagMapPartial](#function-matchesoutputtagmappartial) | [upgradeSyncStates](#function-upgradesyncstates) |
16704
- | [convertUint32ToBuffer](#function-convertuint32tobuffer) | [matchesOutputTagPartial](#function-matchesoutputtagpartial) | [upgradeTransactions](#function-upgradetransactions) |
16705
- | [convertWocToBlockHeaderHex](#function-convertwoctoblockheaderhex) | [matchesProvenTxPartial](#function-matchesproventxpartial) | [upgradeTxLabels](#function-upgradetxlabels) |
16706
- | [createAction](#function-createaction) | [matchesProvenTxReqPartial](#function-matchesproventxreqpartial) | [upgradeTxLabelsMap](#function-upgradetxlabelsmap) |
16707
- | [createAction](#function-createaction) | [matchesSyncStatePartial](#function-matchessyncstatepartial) | [upgradeUsers](#function-upgradeusers) |
16708
- | [createCoinbaseTransaction](#function-createcoinbasetransaction) | [matchesTransactionPartial](#function-matchestransactionpartial) | [validBulkHeaderFilesByFileHash](#function-validbulkheaderfilesbyfilehash) |
16709
- | [createDefaultIdbChaintracksOptions](#function-createdefaultidbchaintracksoptions) | [matchesTxLabelMapPartial](#function-matchestxlabelmappartial) | [validateAgainstDirtyHashes](#function-validateagainstdirtyhashes) |
16710
- | [createDefaultNoDbChaintracksOptions](#function-createdefaultnodbchaintracksoptions) | [matchesTxLabelPartial](#function-matchestxlabelpartial) | [validateBufferOfHeaders](#function-validatebufferofheaders) |
16711
- | [createDefaultWalletServicesOptions](#function-createdefaultwalletservicesoptions) | [maxDate](#function-maxdate) | [validateBulkFileData](#function-validatebulkfiledata) |
16712
- | [createIdbChaintracks](#function-createidbchaintracks) | [mergeInputBeefs](#function-mergeinputbeefs) | [validateDate](#function-validatedate) |
16713
- | [createNoDbChaintracks](#function-createnodbchaintracks) | [mergeInputsIntoBeef](#function-mergeinputsintobeef) | [validateEntities](#function-validateentities) |
16714
- | [createStorageServiceChargeScript](#function-createstorageservicechargescript) | [notifyTransactionsOfProof](#function-notifytransactionsofproof) | [validateEntity](#function-validateentity) |
16715
- | [createSyncMap](#function-createsyncmap) | [offsetPrivKey](#function-offsetprivkey) | [validateGenerateChangeSdkParams](#function-validategeneratechangesdkparams) |
16716
- | [dateMatches](#function-datematches) | [offsetPubKey](#function-offsetpubkey) | [validateGenerateChangeSdkResult](#function-validategeneratechangesdkresult) |
16717
- | [deserializeBaseBlockHeader](#function-deserializebaseblockheader) | [optionalArraysEqual](#function-optionalarraysequal) | [validateGenesisHeader](#function-validategenesisheader) |
16718
- | [deserializeBaseBlockHeaders](#function-deserializebaseblockheaders) | [parseBrc114ActionTimeLabels](#function-parsebrc114actiontimelabels) | [validateHeaderDifficulty](#function-validateheaderdifficulty) |
16719
- | [deserializeBlockHeader](#function-deserializeblockheader) | [parseOutpoint](#function-parseoutpoint) | [validateHeaderFormat](#function-validateheaderformat) |
16720
- | [deserializeBlockHeaders](#function-deserializeblockheaders) | [parseTxAndAssertId](#function-parsetxandassertid) | [validateScriptHash](#function-validatescripthash) |
16721
- | [doubleSha256BE](#function-doublesha256be) | [parseTxScriptOffsets](#function-parsetxscriptoffsets) | [validateSecondsSinceEpoch](#function-validatesecondssinceepoch) |
16722
- | [doubleSha256LE](#function-doublesha256le) | [partitionActionLabels](#function-partitionactionlabels) | [validateStorageFeeModel](#function-validatestoragefeemodel) |
16723
- | [fundWalletFromP2PKHOutpoints](#function-fundwalletfromp2pkhoutpoints) | [populateUtxoDetails](#function-populateutxodetails) | [validateSyncChunkEntities](#function-validatesyncchunkentities) |
16724
- | [generateChangeSdk](#function-generatechangesdk) | [processAction](#function-processaction) | [varUintSize](#function-varuintsize) |
16725
- | [generateChangeSdkMakeStorage](#function-generatechangesdkmakestorage) | [processAction](#function-processaction) | [verifyHexString](#function-verifyhexstring) |
16726
- | [genesisBuffer](#function-genesisbuffer) | [proveCertificate](#function-provecertificate) | [verifyId](#function-verifyid) |
16727
- | [genesisHeader](#function-genesisheader) | [purgeDataIdb](#function-purgedataidb) | [verifyInteger](#function-verifyinteger) |
16728
- | [getBeefForTransaction](#function-getbeeffortransaction) | [randomBytes](#function-randombytes) | [verifyNumber](#function-verifynumber) |
16729
- | [getBeefForTxid](#function-getbeeffortxid) | [randomBytesBase64](#function-randombytesbase64) | [verifyOne](#function-verifyone) |
16730
- | [getExchangeRatesIo](#function-getexchangeratesio) | [randomBytesHex](#function-randombyteshex) | [verifyOneOrNone](#function-verifyoneornone) |
16731
- | [getIdentityKey](#function-getidentitykey) | [readUInt32BE](#function-readuint32be) | [verifyOptionalHexString](#function-verifyoptionalhexstring) |
16732
- | [getListOutputsSpecOp](#function-getlistoutputsspecop) | [readUInt32LE](#function-readuint32le) | [verifyP2PKHOwnership](#function-verifyp2pkhownership) |
16733
- | [getProofs](#function-getproofs) | [redeemServiceCharges](#function-redeemservicecharges) | [verifyTruthy](#function-verifytruthy) |
16734
- | [getSyncChunk](#function-getsyncchunk) | [resolveAutoSigned](#function-resolveautosigned) | [verifyUnlockScripts](#function-verifyunlockscripts) |
16735
- | [getWhatsOnChainBlockHeaderByHash](#function-getwhatsonchainblockheaderbyhash) | [reviewStatusIdb](#function-reviewstatusidb) | [wait](#function-wait) |
16736
- | [handlePostRawTxErrorResponse](#function-handlepostrawtxerrorresponse) | [selectBulkHeaderFiles](#function-selectbulkheaderfiles) | [wocGetHeadersHeaderToBlockHeader](#function-wocgetheadersheadertoblockheader) |
16737
- | [handleScriptHashHistoryCatch](#function-handlescripthashhistorycatch) | [serializeBaseBlockHeader](#function-serializebaseblockheader) | [workBNtoBuffer](#function-workbntobuffer) |
16738
- | [handleScriptHashHistoryResponse](#function-handlescripthashhistoryresponse) | [serializeBaseBlockHeaders](#function-serializebaseblockheaders) | [writeUInt32BE](#function-writeuint32be) |
16739
- | [handleUtxoConnReset](#function-handleutxoconnreset) | [setDisableDoubleSpendCheckForTest](#function-setdisabledoublespendcheckfortest) | [writeUInt32LE](#function-writeuint32le) |
16867
+ | [WalletErrorFromJson](#function-walleterrorfromjson) | [internalizeAction](#function-internalizeaction) | [setDisableDoubleSpendCheckForTest](#function-setdisabledoublespendcheckfortest) |
16868
+ | [WocHeadersBulkListener](#function-wocheadersbulklistener) | [internalizeAction](#function-internalizeaction) | [sha256Hash](#function-sha256hash) |
16869
+ | [WocHeadersBulkListener_test](#function-wocheadersbulklistener_test) | [isBaseBlockHeader](#function-isbaseblockheader) | [sha256HashOfBinaryFile](#function-sha256hashofbinaryfile) |
16870
+ | [WocHeadersLiveListener](#function-wocheaderslivelistener) | [isBlockHeader](#function-isblockheader) | [shareReqsWithWorld](#function-sharereqswithworld) |
16871
+ | [WocHeadersLiveListener_test](#function-wocheaderslivelistener_test) | [isCreateActionSpecOp](#function-iscreateactionspecop) | [signAction](#function-signaction) |
16872
+ | [acquireDirectCertificate](#function-acquiredirectcertificate) | [isKnownValidBulkHeaderFile](#function-isknownvalidbulkheaderfile) | [signAndComplete](#function-signandcomplete) |
16873
+ | [addWork](#function-addwork) | [isListActionsSpecOp](#function-islistactionsspecop) | [stampLog](#function-stamplog) |
16874
+ | [arcDefaultUrl](#function-arcdefaulturl) | [isListOutputsSpecOp](#function-islistoutputsspecop) | [stampLogFormat](#function-stamplogformat) |
16875
+ | [arcGorillaPoolUrl](#function-arcgorillapoolurl) | [isLive](#function-islive) | [subWork](#function-subwork) |
16876
+ | [arraysEqual](#function-arraysequal) | [isLiveBlockHeader](#function-isliveblockheader) | [swapByteOrder](#function-swapbyteorder) |
16877
+ | [asArray](#function-asarray) | [isMoreWork](#function-ismorework) | [throwDummyReviewActions](#function-throwdummyreviewactions) |
16878
+ | [asBsvSdkPrivateKey](#function-asbsvsdkprivatekey) | [keyOffsetToHashedSecret](#function-keyoffsettohashedsecret) | [toBinaryBaseBlockHeader](#function-tobinarybaseblockheader) |
16879
+ | [asBsvSdkPublickKey](#function-asbsvsdkpublickkey) | [listActionsIdb](#function-listactionsidb) | [toLookupNetworkPreset](#function-tolookupnetworkpreset) |
16880
+ | [asBsvSdkScript](#function-asbsvsdkscript) | [listCertificates](#function-listcertificates) | [toWalletNetwork](#function-towalletnetwork) |
16881
+ | [asBsvSdkTx](#function-asbsvsdktx) | [listOutputsIdb](#function-listoutputsidb) | [transactionInputSize](#function-transactioninputsize) |
16882
+ | [asString](#function-asstring) | [lockScriptWithKeyOffsetFromPubKey](#function-lockscriptwithkeyoffsetfrompubkey) | [transactionOutputSize](#function-transactionoutputsize) |
16883
+ | [asUint8Array](#function-asuint8array) | [logCreateActionArgs](#function-logcreateactionargs) | [transactionSize](#function-transactionsize) |
16884
+ | [attemptToPostReqsToNetwork](#function-attempttopostreqstonetwork) | [logWalletError](#function-logwalleterror) | [updateChaintracksFiatExchangeRates](#function-updatechaintracksfiatexchangerates) |
16885
+ | [blockHash](#function-blockhash) | [makeAtomicBeef](#function-makeatomicbeef) | [updateExchangeratesapi](#function-updateexchangeratesapi) |
16886
+ | [buildBeefForOutpoints](#function-buildbeefforoutpoints) | [makeBrc114ActionTimeLabel](#function-makebrc114actiontimelabel) | [updateReqsFromAggregateResults](#function-updatereqsfromaggregateresults) |
16887
+ | [buildChaintracksOptionsWithIngestors](#function-buildchaintracksoptionswithingestors) | [makeChangeLock](#function-makechangelock) | [upgradeAllStoresV1](#function-upgradeallstoresv1) |
16888
+ | [buildSignableTransaction](#function-buildsignabletransaction) | [makeMerklePathNote](#function-makemerklepathnote) | [upgradeCertificateFields](#function-upgradecertificatefields) |
16889
+ | [classifyMerklePathResponse](#function-classifymerklepathresponse) | [markStaleInputsAsSpent](#function-markstaleinputsasspent) | [upgradeCertificates](#function-upgradecertificates) |
16890
+ | [classifyReqStatus](#function-classifyreqstatus) | [markUserInputsSpent](#function-markuserinputsspent) | [upgradeCommissions](#function-upgradecommissions) |
16891
+ | [completeSignedTransaction](#function-completesignedtransaction) | [matchesCertificateFieldPartial](#function-matchescertificatefieldpartial) | [upgradeMonitorEvents](#function-upgrademonitorevents) |
16892
+ | [computeMerklePath](#function-computemerklepath) | [matchesCertificatePartial](#function-matchescertificatepartial) | [upgradeOutputBaskets](#function-upgradeoutputbaskets) |
16893
+ | [computeMerkleRoot](#function-computemerkleroot) | [matchesCommissionPartial](#function-matchescommissionpartial) | [upgradeOutputTags](#function-upgradeoutputtags) |
16894
+ | [convertBitsToTarget](#function-convertbitstotarget) | [matchesMonitorEventPartial](#function-matchesmonitoreventpartial) | [upgradeOutputTagsMap](#function-upgradeoutputtagsmap) |
16895
+ | [convertBitsToWork](#function-convertbitstowork) | [matchesOutputBasketPartial](#function-matchesoutputbasketpartial) | [upgradeOutputs](#function-upgradeoutputs) |
16896
+ | [convertBufferToUint32](#function-convertbuffertouint32) | [matchesOutputPartial](#function-matchesoutputpartial) | [upgradeProvenTxReqs](#function-upgradeproventxreqs) |
16897
+ | [convertProofToMerklePath](#function-convertprooftomerklepath) | [matchesOutputTagMapPartial](#function-matchesoutputtagmappartial) | [upgradeProvenTxs](#function-upgradeproventxs) |
16898
+ | [convertUint32ToBuffer](#function-convertuint32tobuffer) | [matchesOutputTagPartial](#function-matchesoutputtagpartial) | [upgradeSyncStates](#function-upgradesyncstates) |
16899
+ | [convertWocToBlockHeaderHex](#function-convertwoctoblockheaderhex) | [matchesProvenTxPartial](#function-matchesproventxpartial) | [upgradeTransactions](#function-upgradetransactions) |
16900
+ | [createAction](#function-createaction) | [matchesProvenTxReqPartial](#function-matchesproventxreqpartial) | [upgradeTxLabels](#function-upgradetxlabels) |
16901
+ | [createAction](#function-createaction) | [matchesSyncStatePartial](#function-matchessyncstatepartial) | [upgradeTxLabelsMap](#function-upgradetxlabelsmap) |
16902
+ | [createCoinbaseTransaction](#function-createcoinbasetransaction) | [matchesTransactionPartial](#function-matchestransactionpartial) | [upgradeUsers](#function-upgradeusers) |
16903
+ | [createDefaultIdbChaintracksOptions](#function-createdefaultidbchaintracksoptions) | [matchesTxLabelMapPartial](#function-matchestxlabelmappartial) | [validBulkHeaderFilesByFileHash](#function-validbulkheaderfilesbyfilehash) |
16904
+ | [createDefaultNoDbChaintracksOptions](#function-createdefaultnodbchaintracksoptions) | [matchesTxLabelPartial](#function-matchestxlabelpartial) | [validateAgainstDirtyHashes](#function-validateagainstdirtyhashes) |
16905
+ | [createDefaultWalletServicesOptions](#function-createdefaultwalletservicesoptions) | [maxDate](#function-maxdate) | [validateBufferOfHeaders](#function-validatebufferofheaders) |
16906
+ | [createIdbChaintracks](#function-createidbchaintracks) | [mergeInputBeefs](#function-mergeinputbeefs) | [validateBulkFileData](#function-validatebulkfiledata) |
16907
+ | [createNoDbChaintracks](#function-createnodbchaintracks) | [mergeInputsIntoBeef](#function-mergeinputsintobeef) | [validateDate](#function-validatedate) |
16908
+ | [createStorageServiceChargeScript](#function-createstorageservicechargescript) | [notifyTransactionsOfProof](#function-notifytransactionsofproof) | [validateEntities](#function-validateentities) |
16909
+ | [createSyncMap](#function-createsyncmap) | [offsetPrivKey](#function-offsetprivkey) | [validateEntity](#function-validateentity) |
16910
+ | [dateMatches](#function-datematches) | [offsetPubKey](#function-offsetpubkey) | [validateGenerateChangeSdkParams](#function-validategeneratechangesdkparams) |
16911
+ | [deserializeBaseBlockHeader](#function-deserializebaseblockheader) | [optionalArraysEqual](#function-optionalarraysequal) | [validateGenerateChangeSdkResult](#function-validategeneratechangesdkresult) |
16912
+ | [deserializeBaseBlockHeaders](#function-deserializebaseblockheaders) | [parseBrc114ActionTimeLabels](#function-parsebrc114actiontimelabels) | [validateGenesisHeader](#function-validategenesisheader) |
16913
+ | [deserializeBlockHeader](#function-deserializeblockheader) | [parseOutpoint](#function-parseoutpoint) | [validateHeaderDifficulty](#function-validateheaderdifficulty) |
16914
+ | [deserializeBlockHeaders](#function-deserializeblockheaders) | [parseResults$](#function-parseresults$) | [validateHeaderFormat](#function-validateheaderformat) |
16915
+ | [doubleSha256BE](#function-doublesha256be) | [parseTxAndAssertId](#function-parsetxandassertid) | [validateScriptHash](#function-validatescripthash) |
16916
+ | [doubleSha256LE](#function-doublesha256le) | [parseTxScriptOffsets](#function-parsetxscriptoffsets) | [validateSecondsSinceEpoch](#function-validatesecondssinceepoch) |
16917
+ | [fundWalletFromP2PKHOutpoints](#function-fundwalletfromp2pkhoutpoints) | [partitionActionLabels](#function-partitionactionlabels) | [validateStorageFeeModel](#function-validatestoragefeemodel) |
16918
+ | [generateChangeSdk](#function-generatechangesdk) | [populateUtxoDetails](#function-populateutxodetails) | [validateSyncChunkEntities](#function-validatesyncchunkentities) |
16919
+ | [generateChangeSdkMakeStorage](#function-generatechangesdkmakestorage) | [processAction](#function-processaction) | [varUintSize](#function-varuintsize) |
16920
+ | [genesisBuffer](#function-genesisbuffer) | [processAction](#function-processaction) | [verifyHexString](#function-verifyhexstring) |
16921
+ | [genesisHeader](#function-genesisheader) | [proveCertificate](#function-provecertificate) | [verifyId](#function-verifyid) |
16922
+ | [getBeefForTransaction](#function-getbeeffortransaction) | [purgeDataIdb](#function-purgedataidb) | [verifyInteger](#function-verifyinteger) |
16923
+ | [getBeefForTxid](#function-getbeeffortxid) | [randomBytes](#function-randombytes) | [verifyNumber](#function-verifynumber) |
16924
+ | [getExchangeRatesIo](#function-getexchangeratesio) | [randomBytesBase64](#function-randombytesbase64) | [verifyOne](#function-verifyone) |
16925
+ | [getIdentityKey](#function-getidentitykey) | [randomBytesHex](#function-randombyteshex) | [verifyOneOrNone](#function-verifyoneornone) |
16926
+ | [getListOutputsSpecOp](#function-getlistoutputsspecop) | [readUInt32BE](#function-readuint32be) | [verifyOptionalHexString](#function-verifyoptionalhexstring) |
16927
+ | [getProofs](#function-getproofs) | [readUInt32LE](#function-readuint32le) | [verifyP2PKHOwnership](#function-verifyp2pkhownership) |
16928
+ | [getSyncChunk](#function-getsyncchunk) | [redeemServiceCharges](#function-redeemservicecharges) | [verifyTruthy](#function-verifytruthy) |
16929
+ | [getWhatsOnChainBlockHeaderByHash](#function-getwhatsonchainblockheaderbyhash) | [resolveAutoSigned](#function-resolveautosigned) | [verifyUnlockScripts](#function-verifyunlockscripts) |
16930
+ | [handlePostRawTxErrorResponse](#function-handlepostrawtxerrorresponse) | [restoreInputsToSpendable](#function-restoreinputstospendable) | [wait](#function-wait) |
16931
+ | [handleScriptHashHistoryCatch](#function-handlescripthashhistorycatch) | [reviewStatusIdb](#function-reviewstatusidb) | [wocGetHeadersHeaderToBlockHeader](#function-wocgetheadersheadertoblockheader) |
16932
+ | [handleScriptHashHistoryResponse](#function-handlescripthashhistoryresponse) | [selectBulkHeaderFiles](#function-selectbulkheaderfiles) | [workBNtoBuffer](#function-workbntobuffer) |
16933
+ | [handleUtxoConnReset](#function-handleutxoconnreset) | [serializeBaseBlockHeader](#function-serializebaseblockheader) | [writeUInt32BE](#function-writeuint32be) |
16934
+ | [importSingleOutpoint](#function-importsingleoutpoint) | [serializeBaseBlockHeaders](#function-serializebaseblockheaders) | [writeUInt32LE](#function-writeuint32le) |
16740
16935
 
16741
16936
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
16742
16937
 
@@ -17934,7 +18129,14 @@ A "wallet payment" adds an outputs value to the wallet's change "balance". These
17934
18129
  Processing starts with simple validation and then checks for a pre-existing transaction.
17935
18130
  If the transaction is already known to the user, then the outputs are reviewed against the existing outputs treatment,
17936
18131
  and merge rules are added to the arguments passed to the storage layer.
17937
- The existing transaction must be in the 'unproven' or 'completed' status. Any other status is an error.
18132
+
18133
+ The existing transaction's `status` determines what the merge path does next:
18134
+ - `'unproven'` or `'completed'`: outputs are merged; status is left as-is.
18135
+ - `'nosend'`: the `internalizeAction` call is treated as explicit authorization to advance the lifecycle.
18136
+ `transactions.status` is promoted to `'completed'` (BUMP-bearing BEEF) or `'unproven'` (otherwise), and the
18137
+ `proven_tx_req` is moved out of `'nosend'` so Monitor's proof-fetching flow can finalize it. See storage-layer
18138
+ `internalizeAction` docs for the full rationale.
18139
+ - Any other status: an error.
17938
18140
 
17939
18141
  When the transaction already exists, the description is updated. The isOutgoing sense is not changed.
17940
18142
 
@@ -17970,7 +18172,17 @@ A "wallet payment" adds an outputs value to the wallet's change "balance". These
17970
18172
  Processing starts with simple validation and then checks for a pre-existing transaction.
17971
18173
  If the transaction is already known to the user, then the outputs are reviewed against the existing outputs treatment,
17972
18174
  and merge rules are added to the arguments passed to the storage layer.
17973
- The existing transaction must be in the 'unproven' or 'completed' status. Any other status is an error.
18175
+
18176
+ The existing transaction's `status` determines what the merge path does next:
18177
+ - `'unproven'` or `'completed'`: outputs are merged into the existing record. The transaction status is left as-is.
18178
+ - `'nosend'`: an ambiguous case. The transaction was created with `noSend: true` and may have been externally
18179
+ broadcast, may be sitting in a sendWith chain, or may be stuck mid-flight. The merge path treats the
18180
+ `internalizeAction` call as explicit authorization to advance the lifecycle. Specifically: `transactions.status`
18181
+ is promoted to `'completed'` (when a BUMP is included in the BEEF) or `'unproven'` (otherwise), and the
18182
+ `proven_tx_req` is moved out of `'nosend'` so Monitor's standard proof-fetching flow can finalize it.
18183
+ This makes the `internalizeAction` semantics consistent regardless of whether the originator shares the
18184
+ same storage as the internalizer or not.
18185
+ - Any other status: an error.
17974
18186
 
17975
18187
  When the transaction already exists, the description is updated. The isOutgoing sense is not changed.
17976
18188
 
@@ -18336,6 +18548,17 @@ See also: [AggregatePostBeefTxResult](./storage.md#interface-aggregatepostbeeftx
18336
18548
 
18337
18549
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
18338
18550
 
18551
+ ---
18552
+ ##### Function: markUserInputsSpent
18553
+
18554
+ ```ts
18555
+ export async function markUserInputsSpent(storage: StorageProvider, userId: number, tx: BsvTransaction, transactionId: number): Promise<SpentInputTransition[]>
18556
+ ```
18557
+
18558
+ See also: [SpentInputTransition](./storage.md#interface-spentinputtransition), [StorageProvider](./storage.md#class-storageprovider)
18559
+
18560
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
18561
+
18339
18562
  ---
18340
18563
  ##### Function: matchesCertificateFieldPartial
18341
18564
 
@@ -18606,6 +18829,17 @@ See also: [ParsedOutpoint](./client.md#interface-parsedoutpoint)
18606
18829
 
18607
18830
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
18608
18831
 
18832
+ ---
18833
+ ##### Function: parseResults$
18834
+
18835
+ ```ts
18836
+ export async function* parseResults$(lookupResult: LookupAnswer): AsyncIterable<VerifiableCertificate>
18837
+ ```
18838
+
18839
+ See also: [parseResults](./client.md#variable-parseresults)
18840
+
18841
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
18842
+
18609
18843
  ---
18610
18844
  ##### Function: parseTxAndAssertId
18611
18845
 
@@ -18782,6 +19016,17 @@ export function resolveAutoSigned(car: CreateActionResult, txid: string, vout: n
18782
19016
 
18783
19017
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
18784
19018
 
19019
+ ---
19020
+ ##### Function: restoreInputsToSpendable
19021
+
19022
+ ```ts
19023
+ export async function restoreInputsToSpendable(storage: StorageProvider, transitions: SpentInputTransition[]): Promise<void>
19024
+ ```
19025
+
19026
+ See also: [SpentInputTransition](./storage.md#interface-spentinputtransition), [StorageProvider](./storage.md#class-storageprovider)
19027
+
19028
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
19029
+
18785
19030
  ---
18786
19031
  ##### Function: reviewStatusIdb
18787
19032
 
@@ -20641,13 +20886,36 @@ getLabelToSpecOp: () => Record<string, ListActionsSpecOp> = () => {
20641
20886
  labelsToIntercept: ["abort"],
20642
20887
  setStatusFilter: () => ["nosend"],
20643
20888
  postProcess: async (s: StorageProvider, auth: AuthId, vargs: Validation.ValidListActionsArgs, specOpLabels: string[], txs: Array<Partial<TableTransaction>>): Promise<void> => {
20644
- if (specOpLabels.includes("abort")) {
20645
- for (const tx of txs) {
20646
- if (tx.status === "nosend") {
20647
- await s.abortAction(auth, { reference: tx.reference! });
20648
- tx.status = "failed";
20889
+ if (!specOpLabels.includes("abort"))
20890
+ return;
20891
+ const candidates = txs.filter(tx => tx.status === "nosend" && !!tx.txid);
20892
+ const candidateTxids = candidates.map(tx => tx.txid as string);
20893
+ const protectedTxids = new Set<string>();
20894
+ if (candidateTxids.length > 0) {
20895
+ const services = s.getServices();
20896
+ try {
20897
+ const r = await services.getStatusForTxids(candidateTxids);
20898
+ if (r.status === "success") {
20899
+ for (const result of r.results) {
20900
+ if (result.status === "mined" || result.status === "known") {
20901
+ protectedTxids.add(result.txid);
20902
+ }
20903
+ }
20649
20904
  }
20650
20905
  }
20906
+ catch {
20907
+ }
20908
+ }
20909
+ for (const tx of txs) {
20910
+ if (tx.status !== "nosend")
20911
+ continue;
20912
+ if (tx.txid && protectedTxids.has(tx.txid)) {
20913
+ continue;
20914
+ }
20915
+ const result = await s.abortAction(auth, { reference: tx.reference! });
20916
+ if (result.aborted) {
20917
+ tx.status = "failed";
20918
+ }
20651
20919
  }
20652
20920
  }
20653
20921
  },
@@ -20744,26 +21012,18 @@ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](
20744
21012
 
20745
21013
  ```ts
20746
21014
  parseResults = async (lookupResult: LookupAnswer): Promise<VerifiableCertificate[]> => {
20747
- if (lookupResult.type === "output-list") {
20748
- const parsedResults: VerifiableCertificate[] = [];
20749
- for (const output of lookupResult.outputs) {
20750
- try {
20751
- const tx = Transaction.fromBEEF(output.beef);
20752
- const decodedOutput = PushDrop.decode(tx.outputs[output.outputIndex].lockingScript);
20753
- const certificate: VerifiableCertificate = JSON.parse(Utils.toUTF8(decodedOutput.fields[0]));
20754
- const verifiableCert = new VerifiableCertificate(certificate.type, certificate.serialNumber, certificate.subject, certificate.certifier, certificate.revocationOutpoint, certificate.fields, certificate.keyring, certificate.signature);
20755
- const decryptedFields = await verifiableCert.decryptFields(new ProtoWallet("anyone"));
20756
- await verifiableCert.verify();
20757
- verifiableCert.decryptedFields = decryptedFields;
20758
- parsedResults.push(verifiableCert);
20759
- }
20760
- catch (error) {
20761
- console.error(error);
20762
- }
20763
- }
20764
- return parsedResults;
21015
+ if (lookupResult.type !== "output-list")
21016
+ return [];
21017
+ const parsedResults: VerifiableCertificate[] = [];
21018
+ const shouldYield = isUiRuntime();
21019
+ for (const output of lookupResult.outputs) {
21020
+ if (shouldYield)
21021
+ await yieldToUi();
21022
+ const cert = await parseOne(output);
21023
+ if (cert != null)
21024
+ parsedResults.push(cert);
20765
21025
  }
20766
- return [];
21026
+ return parsedResults;
20767
21027
  }
20768
21028
  ```
20769
21029
 
@@ -20777,7 +21037,7 @@ queryOverlay = async (query: unknown, resolver: LookupResolver): Promise<Verifia
20777
21037
  const results = await resolver.query({
20778
21038
  service: "ls_identity",
20779
21039
  query
20780
- });
21040
+ }, undefined, { graceMs: 300 });
20781
21041
  return await parseResults(results);
20782
21042
  }
20783
21043
  ```