@bsv/wallet-toolbox 2.1.26 → 2.1.27

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.
package/docs/wallet.md CHANGED
@@ -6,46 +6,48 @@ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](
6
6
 
7
7
  | | | |
8
8
  | --- | --- | --- |
9
- | [AdminStatsResult](#interface-adminstatsresult) | [GenerateChangeSdkChangeInput](#interface-generatechangesdkchangeinput) | [StorageCreateActionResult](#interface-storagecreateactionresult) |
10
- | [AggregatePostBeefTxResult](#interface-aggregatepostbeeftxresult) | [GenerateChangeSdkChangeOutput](#interface-generatechangesdkchangeoutput) | [StorageCreateTransactionSdkInput](#interface-storagecreatetransactionsdkinput) |
11
- | [ArcConfig](#interface-arcconfig) | [GenerateChangeSdkInput](#interface-generatechangesdkinput) | [StorageCreateTransactionSdkOutput](#interface-storagecreatetransactionsdkoutput) |
12
- | [ArcMinerGetTxData](#interface-arcminergettxdata) | [GenerateChangeSdkOutput](#interface-generatechangesdkoutput) | [StorageFeeModel](#interface-storagefeemodel) |
13
- | [ArcSSEClientOptions](#interface-arcsseclientoptions) | [GenerateChangeSdkParams](#interface-generatechangesdkparams) | [StorageGetBeefOptions](#interface-storagegetbeefoptions) |
14
- | [ArcSSEEvent](#interface-arcsseevent) | [GenerateChangeSdkResult](#interface-generatechangesdkresult) | [StorageIdentity](#interface-storageidentity) |
15
- | [AuthId](#interface-authid) | [GenerateChangeSdkStorageChange](#interface-generatechangesdkstoragechange) | [StorageInternalizeActionResult](#interface-storageinternalizeactionresult) |
16
- | [BaseBlockHeader](#interface-baseblockheader) | [GetMerklePathResult](#interface-getmerklepathresult) | [StorageProcessActionArgs](#interface-storageprocessactionargs) |
17
- | [BitailsConfig](#interface-bitailsconfig) | [GetRawTxResult](#interface-getrawtxresult) | [StorageProcessActionResults](#interface-storageprocessactionresults) |
18
- | [BitailsMerkleProof](#interface-bitailsmerkleproof) | [GetReqsAndBeefDetail](#interface-getreqsandbeefdetail) | [StorageProvenOrReq](#interface-storageprovenorreq) |
19
- | [BlockHeader](#interface-blockheader) | [GetReqsAndBeefResult](#interface-getreqsandbeefresult) | [StorageProviderOptions](#interface-storageprovideroptions) |
20
- | [BsvExchangeRate](#interface-bsvexchangerate) | [GetScriptHashHistory](#interface-getscripthashhistory) | [StorageReaderOptions](#interface-storagereaderoptions) |
21
- | [BulkFileDataManagerMergeResult](#interface-bulkfiledatamanagermergeresult) | [GetScriptHashHistoryResult](#interface-getscripthashhistoryresult) | [StorageReaderWriterOptions](#interface-storagereaderwriteroptions) |
22
- | [BulkFileDataManagerOptions](#interface-bulkfiledatamanageroptions) | [GetStatusForTxidsResult](#interface-getstatusfortxidsresult) | [StorageSyncReaderOptions](#interface-storagesyncreaderoptions) |
23
- | [BulkHeaderFileInfo](#interface-bulkheaderfileinfo) | [GetUtxoStatusDetails](#interface-getutxostatusdetails) | [SyncChunk](#interface-syncchunk) |
24
- | [BulkHeaderFilesInfo](#interface-bulkheaderfilesinfo) | [GetUtxoStatusResult](#interface-getutxostatusresult) | [SyncError](#interface-syncerror) |
25
- | [BulkIngestorApi](#interface-bulkingestorapi) | [HeightRangeApi](#interface-heightrangeapi) | [SyncMap](#interface-syncmap) |
26
- | [BulkIngestorBaseOptions](#interface-bulkingestorbaseoptions) | [HeightRanges](#interface-heightranges) | [TableCertificate](#interface-tablecertificate) |
27
- | [BulkSyncResult](#interface-bulksyncresult) | [KeyPair](#interface-keypair) | [TableCertificateField](#interface-tablecertificatefield) |
28
- | [CertOpsWallet](#interface-certopswallet) | [LiveBlockHeader](#interface-liveblockheader) | [TableCertificateX](#interface-tablecertificatex) |
29
- | [Certifier](#interface-certifier) | [LiveIngestorApi](#interface-liveingestorapi) | [TableCommission](#interface-tablecommission) |
30
- | [ChaintracksApi](#interface-chaintracksapi) | [MerklePathNote](#interface-merklepathnote) | [TableMonitorEvent](#interface-tablemonitorevent) |
31
- | [ChaintracksAppendableFileApi](#interface-chaintracksappendablefileapi) | [MockChainBlockHeaderRow](#interface-mockchainblockheaderrow) | [TableOutput](#interface-tableoutput) |
32
- | [ChaintracksChainTrackerOptions](#interface-chaintrackschaintrackeroptions) | [MockChainTransactionRow](#interface-mockchaintransactionrow) | [TableOutputBasket](#interface-tableoutputbasket) |
33
- | [ChaintracksClientApi](#interface-chaintracksclientapi) | [MockChainUtxoRow](#interface-mockchainutxorow) | [TableOutputTag](#interface-tableoutputtag) |
34
- | [ChaintracksFetchApi](#interface-chaintracksfetchapi) | [MonitorOptions](#interface-monitoroptions) | [TableOutputTagMap](#interface-tableoutputtagmap) |
35
- | [ChaintracksFsApi](#interface-chaintracksfsapi) | [OutPoint](#interface-outpoint) | [TableOutputX](#interface-tableoutputx) |
36
- | [ChaintracksInfoApi](#interface-chaintracksinfoapi) | [Paged](#interface-paged) | [TableProvenTx](#interface-tableproventx) |
37
- | [ChaintracksManagementApi](#interface-chaintracksmanagementapi) | [PendingSignAction](#interface-pendingsignaction) | [TableProvenTxReq](#interface-tableproventxreq) |
38
- | [ChaintracksOptions](#interface-chaintracksoptions) | [PendingStorageInput](#interface-pendingstorageinput) | [TableProvenTxReqDynamics](#interface-tableproventxreqdynamics) |
39
- | [ChaintracksPackageInfoApi](#interface-chaintrackspackageinfoapi) | [PostBeefResult](#interface-postbeefresult) | [TableSettings](#interface-tablesettings) |
40
- | [ChaintracksReadableFileApi](#interface-chaintracksreadablefileapi) | [PostBeefResultForTxidApi](#interface-postbeefresultfortxidapi) | [TableSyncState](#interface-tablesyncstate) |
41
- | [ChaintracksServiceClientOptions](#interface-chaintracksserviceclientoptions) | [PostReqsToNetworkDetails](#interface-postreqstonetworkdetails) | [TableTransaction](#interface-tabletransaction) |
42
- | [ChaintracksStorageApi](#interface-chaintracksstorageapi) | [PostReqsToNetworkResult](#interface-postreqstonetworkresult) | [TableTxLabel](#interface-tabletxlabel) |
43
- | [ChaintracksStorageBaseOptions](#interface-chaintracksstoragebaseoptions) | [PostTxResultForTxid](#interface-posttxresultfortxid) | [TableTxLabelMap](#interface-tabletxlabelmap) |
44
- | [ChaintracksStorageBulkFileApi](#interface-chaintracksstoragebulkfileapi) | [PostTxResultForTxidError](#interface-posttxresultfortxiderror) | [TableUser](#interface-tableuser) |
45
- | [ChaintracksStorageIngestApi](#interface-chaintracksstorageingestapi) | [PostTxsResult](#interface-posttxsresult) | [TaskPurgeParams](#interface-taskpurgeparams) |
46
- | [ChaintracksStorageQueryApi](#interface-chaintracksstoragequeryapi) | [ProcessSyncChunkResult](#interface-processsyncchunkresult) | [TrustSettings](#interface-trustsettings) |
47
- | [ChaintracksWritableFileApi](#interface-chaintrackswritablefileapi) | [ProvenOrRawTx](#interface-provenorrawtx) | [TrxToken](#interface-trxtoken) |
48
- | [CommitNewTxResults](#interface-commitnewtxresults) | [ProvenTransactionStatus](#interface-proventransactionstatus) | [TscMerkleProofApi](#interface-tscmerkleproofapi) |
9
+ | [AdminStatsResult](#interface-adminstatsresult) | [FindTxLabelsArgs](#interface-findtxlabelsargs) | [StatusForTxidResult](#interface-statusfortxidresult) |
10
+ | [AggregatePostBeefTxResult](#interface-aggregatepostbeeftxresult) | [FindUsersArgs](#interface-findusersargs) | [StorageAdminStats](#interface-storageadminstats) |
11
+ | [ArcConfig](#interface-arcconfig) | [GenerateChangeSdkChangeInput](#interface-generatechangesdkchangeinput) | [StorageCreateActionResult](#interface-storagecreateactionresult) |
12
+ | [ArcMinerGetTxData](#interface-arcminergettxdata) | [GenerateChangeSdkChangeOutput](#interface-generatechangesdkchangeoutput) | [StorageCreateTransactionSdkInput](#interface-storagecreatetransactionsdkinput) |
13
+ | [ArcSSEClientOptions](#interface-arcsseclientoptions) | [GenerateChangeSdkInput](#interface-generatechangesdkinput) | [StorageCreateTransactionSdkOutput](#interface-storagecreatetransactionsdkoutput) |
14
+ | [ArcSSEEvent](#interface-arcsseevent) | [GenerateChangeSdkOutput](#interface-generatechangesdkoutput) | [StorageFeeModel](#interface-storagefeemodel) |
15
+ | [AuthId](#interface-authid) | [GenerateChangeSdkParams](#interface-generatechangesdkparams) | [StorageGetBeefOptions](#interface-storagegetbeefoptions) |
16
+ | [BaseBlockHeader](#interface-baseblockheader) | [GenerateChangeSdkResult](#interface-generatechangesdkresult) | [StorageIdentity](#interface-storageidentity) |
17
+ | [BitailsConfig](#interface-bitailsconfig) | [GenerateChangeSdkStorageChange](#interface-generatechangesdkstoragechange) | [StorageInternalizeActionResult](#interface-storageinternalizeactionresult) |
18
+ | [BitailsMerkleProof](#interface-bitailsmerkleproof) | [GetMerklePathResult](#interface-getmerklepathresult) | [StorageProcessActionArgs](#interface-storageprocessactionargs) |
19
+ | [BlockHeader](#interface-blockheader) | [GetRawTxResult](#interface-getrawtxresult) | [StorageProcessActionResults](#interface-storageprocessactionresults) |
20
+ | [BsvExchangeRate](#interface-bsvexchangerate) | [GetReqsAndBeefDetail](#interface-getreqsandbeefdetail) | [StorageProvenOrReq](#interface-storageprovenorreq) |
21
+ | [BulkFileDataManagerMergeResult](#interface-bulkfiledatamanagermergeresult) | [GetReqsAndBeefResult](#interface-getreqsandbeefresult) | [StorageProviderOptions](#interface-storageprovideroptions) |
22
+ | [BulkFileDataManagerOptions](#interface-bulkfiledatamanageroptions) | [GetScriptHashHistory](#interface-getscripthashhistory) | [StorageReaderOptions](#interface-storagereaderoptions) |
23
+ | [BulkHeaderFileInfo](#interface-bulkheaderfileinfo) | [GetScriptHashHistoryResult](#interface-getscripthashhistoryresult) | [StorageReaderWriterOptions](#interface-storagereaderwriteroptions) |
24
+ | [BulkHeaderFilesInfo](#interface-bulkheaderfilesinfo) | [GetStatusForTxidsResult](#interface-getstatusfortxidsresult) | [StorageSyncReaderOptions](#interface-storagesyncreaderoptions) |
25
+ | [BulkIngestorApi](#interface-bulkingestorapi) | [GetUtxoStatusDetails](#interface-getutxostatusdetails) | [SyncChunk](#interface-syncchunk) |
26
+ | [BulkIngestorBaseOptions](#interface-bulkingestorbaseoptions) | [GetUtxoStatusResult](#interface-getutxostatusresult) | [SyncError](#interface-syncerror) |
27
+ | [BulkSyncResult](#interface-bulksyncresult) | [HeightRangeApi](#interface-heightrangeapi) | [SyncMap](#interface-syncmap) |
28
+ | [CertOpsWallet](#interface-certopswallet) | [HeightRanges](#interface-heightranges) | [TableCertificate](#interface-tablecertificate) |
29
+ | [Certifier](#interface-certifier) | [KeyPair](#interface-keypair) | [TableCertificateField](#interface-tablecertificatefield) |
30
+ | [ChaintracksApi](#interface-chaintracksapi) | [LiveBlockHeader](#interface-liveblockheader) | [TableCertificateX](#interface-tablecertificatex) |
31
+ | [ChaintracksAppendableFileApi](#interface-chaintracksappendablefileapi) | [LiveIngestorApi](#interface-liveingestorapi) | [TableCommission](#interface-tablecommission) |
32
+ | [ChaintracksChainTrackerOptions](#interface-chaintrackschaintrackeroptions) | [MerklePathNote](#interface-merklepathnote) | [TableMonitorEvent](#interface-tablemonitorevent) |
33
+ | [ChaintracksClientApi](#interface-chaintracksclientapi) | [MockChainBlockHeaderRow](#interface-mockchainblockheaderrow) | [TableOutput](#interface-tableoutput) |
34
+ | [ChaintracksFetchApi](#interface-chaintracksfetchapi) | [MockChainTransactionRow](#interface-mockchaintransactionrow) | [TableOutputBasket](#interface-tableoutputbasket) |
35
+ | [ChaintracksFsApi](#interface-chaintracksfsapi) | [MockChainUtxoRow](#interface-mockchainutxorow) | [TableOutputTag](#interface-tableoutputtag) |
36
+ | [ChaintracksInfoApi](#interface-chaintracksinfoapi) | [MonitorOptions](#interface-monitoroptions) | [TableOutputTagMap](#interface-tableoutputtagmap) |
37
+ | [ChaintracksManagementApi](#interface-chaintracksmanagementapi) | [OutPoint](#interface-outpoint) | [TableOutputX](#interface-tableoutputx) |
38
+ | [ChaintracksOptions](#interface-chaintracksoptions) | [Paged](#interface-paged) | [TableProvenTx](#interface-tableproventx) |
39
+ | [ChaintracksPackageInfoApi](#interface-chaintrackspackageinfoapi) | [PendingSignAction](#interface-pendingsignaction) | [TableProvenTxReq](#interface-tableproventxreq) |
40
+ | [ChaintracksReadableFileApi](#interface-chaintracksreadablefileapi) | [PendingStorageInput](#interface-pendingstorageinput) | [TableProvenTxReqDynamics](#interface-tableproventxreqdynamics) |
41
+ | [ChaintracksServiceClientOptions](#interface-chaintracksserviceclientoptions) | [PostBeefResult](#interface-postbeefresult) | [TableSettings](#interface-tablesettings) |
42
+ | [ChaintracksStorageApi](#interface-chaintracksstorageapi) | [PostBeefResultForTxidApi](#interface-postbeefresultfortxidapi) | [TableSyncState](#interface-tablesyncstate) |
43
+ | [ChaintracksStorageBaseOptions](#interface-chaintracksstoragebaseoptions) | [PostReqsToNetworkDetails](#interface-postreqstonetworkdetails) | [TableTransaction](#interface-tabletransaction) |
44
+ | [ChaintracksStorageBulkFileApi](#interface-chaintracksstoragebulkfileapi) | [PostReqsToNetworkResult](#interface-postreqstonetworkresult) | [TableTxLabel](#interface-tabletxlabel) |
45
+ | [ChaintracksStorageIngestApi](#interface-chaintracksstorageingestapi) | [PostTxResultForTxid](#interface-posttxresultfortxid) | [TableTxLabelMap](#interface-tabletxlabelmap) |
46
+ | [ChaintracksStorageQueryApi](#interface-chaintracksstoragequeryapi) | [PostTxResultForTxidError](#interface-posttxresultfortxiderror) | [TableUser](#interface-tableuser) |
47
+ | [ChaintracksWritableFileApi](#interface-chaintrackswritablefileapi) | [PostTxsResult](#interface-posttxsresult) | [TaskPurgeParams](#interface-taskpurgeparams) |
48
+ | [CommitNewTxResults](#interface-commitnewtxresults) | [ProcessSyncChunkResult](#interface-processsyncchunkresult) | [TrustSettings](#interface-trustsettings) |
49
+ | [ContactRecord](#interface-contactrecord) | [ProvenOrRawTx](#interface-provenorrawtx) | [TrxToken](#interface-trxtoken) |
50
+ | [ContactSource](#interface-contactsource) | [ProvenTransactionStatus](#interface-proventransactionstatus) | [TscMerkleProofApi](#interface-tscmerkleproofapi) |
49
51
  | [CreateActionResultX](#interface-createactionresultx) | [ProvenTxFromTxidResult](#interface-proventxfromtxidresult) | [TxScriptOffsets](#interface-txscriptoffsets) |
50
52
  | [DeactivedHeader](#interface-deactivedheader) | [ProvenTxReqHistory](#interface-proventxreqhistory) | [UpdateProvenTxReqWithNewProvenTxArgs](#interface-updateproventxreqwithnewproventxargs) |
51
53
  | [EntitySyncMap](#interface-entitysyncmap) | [ProvenTxReqHistorySummaryApi](#interface-proventxreqhistorysummaryapi) | [UpdateProvenTxReqWithNewProvenTxResult](#interface-updateproventxreqwithnewproventxresult) |
@@ -70,8 +72,6 @@ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](
70
72
  | [FindSyncStatesArgs](#interface-findsyncstatesargs) | [ServiceToCall](#interface-servicetocall) | [WocChainInfo](#interface-wocchaininfo) |
71
73
  | [FindTransactionsArgs](#interface-findtransactionsargs) | [ServicesCallHistory](#interface-servicescallhistory) | [WocHeader](#interface-wocheader) |
72
74
  | [FindTxLabelMapsArgs](#interface-findtxlabelmapsargs) | [SignActionResultX](#interface-signactionresultx) | [XValidCreateActionOutput](#interface-xvalidcreateactionoutput) |
73
- | [FindTxLabelsArgs](#interface-findtxlabelsargs) | [StatusForTxidResult](#interface-statusfortxidresult) | |
74
- | [FindUsersArgs](#interface-findusersargs) | [StorageAdminStats](#interface-storageadminstats) | |
75
75
 
76
76
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
77
77
 
@@ -2047,6 +2047,95 @@ See also: [EntityProvenTxReq](./storage.md#class-entityproventxreq)
2047
2047
 
2048
2048
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
2049
2049
 
2050
+ ---
2051
+ ##### Interface: ContactRecord
2052
+
2053
+ ```ts
2054
+ export interface ContactRecord {
2055
+ identityKey: PubKeyHex;
2056
+ type?: string;
2057
+ decryptedFields?: Record<string, string>;
2058
+ certifierInfo?: {
2059
+ name?: string;
2060
+ iconUrl?: string;
2061
+ description?: string;
2062
+ trust?: number;
2063
+ };
2064
+ }
2065
+ ```
2066
+
2067
+ ###### Property certifierInfo
2068
+
2069
+ Optional certifier metadata; missing trust defaults to `Infinity` (contacts override overlay trust).
2070
+
2071
+ ```ts
2072
+ certifierInfo?: {
2073
+ name?: string;
2074
+ iconUrl?: string;
2075
+ description?: string;
2076
+ trust?: number;
2077
+ }
2078
+ ```
2079
+
2080
+ ###### Property decryptedFields
2081
+
2082
+ Optional decrypted fields. Whatever the app stored when saving the contact.
2083
+
2084
+ ```ts
2085
+ decryptedFields?: Record<string, string>
2086
+ ```
2087
+
2088
+ ###### Property type
2089
+
2090
+ Optional certificate type (e.g. xCert / discordCert) so callers can render a badge.
2091
+
2092
+ ```ts
2093
+ type?: string
2094
+ ```
2095
+
2096
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
2097
+
2098
+ ---
2099
+ ##### Interface: ContactSource
2100
+
2101
+ The preferred means of constructing a `Wallet` is with a `WalletArgs` instance.
2102
+
2103
+ Minimal interface the wallet uses to short-circuit identity discovery against the user's local
2104
+ contacts before hitting the overlay. The result shape matches what `discoverByIdentityKey` /
2105
+ `discoverByAttributes` return so callers don't have to special-case contact-sourced records.
2106
+
2107
+ Implementations typically wrap `@bsv/sdk` `ContactsManager` or another on-device source. Reads
2108
+ are expected to be very fast (single-digit ms against local SQLite is typical).
2109
+
2110
+ ```ts
2111
+ export interface ContactSource {
2112
+ findByIdentityKey: (identityKey: PubKeyHex) => Promise<ContactRecord | null | undefined>;
2113
+ findByAttributes?: (attributes: Record<string, string> | string[]) => Promise<ContactRecord[]>;
2114
+ }
2115
+ ```
2116
+
2117
+ See also: [ContactRecord](./client.md#interface-contactrecord)
2118
+
2119
+ ###### Property findByAttributes
2120
+
2121
+ Look up contacts matching a set of attributes. May be a no-op if attribute search is unsupported.
2122
+
2123
+ ```ts
2124
+ findByAttributes?: (attributes: Record<string, string> | string[]) => Promise<ContactRecord[]>
2125
+ ```
2126
+ See also: [ContactRecord](./client.md#interface-contactrecord)
2127
+
2128
+ ###### Property findByIdentityKey
2129
+
2130
+ Look up a contact by identity key. Return `null` (or undefined) if unknown.
2131
+
2132
+ ```ts
2133
+ findByIdentityKey: (identityKey: PubKeyHex) => Promise<ContactRecord | null | undefined>
2134
+ ```
2135
+ See also: [ContactRecord](./client.md#interface-contactrecord)
2136
+
2137
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
2138
+
2050
2139
  ---
2051
2140
  ##### Interface: CreateActionResultX
2052
2141
 
@@ -5712,8 +5801,6 @@ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](
5712
5801
  ---
5713
5802
  ##### Interface: WalletArgs
5714
5803
 
5715
- The preferred means of constructing a `Wallet` is with a `WalletArgs` instance.
5716
-
5717
5804
  ```ts
5718
5805
  export interface WalletArgs {
5719
5806
  chain: Chain;
@@ -5724,11 +5811,24 @@ export interface WalletArgs {
5724
5811
  privilegedKeyManager?: PrivilegedKeyManager;
5725
5812
  settingsManager?: WalletSettingsManager;
5726
5813
  lookupResolver?: LookupResolver;
5814
+ contactSource?: ContactSource;
5727
5815
  makeLogger?: MakeWalletLogger;
5728
5816
  }
5729
5817
  ```
5730
5818
 
5731
- 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)
5819
+ 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)
5820
+
5821
+ ###### Property contactSource
5822
+
5823
+ Optional contact source consulted before the overlay in `discoverByIdentityKey` /
5824
+ `discoverByAttributes`. When a contact matches, the overlay call is skipped entirely.
5825
+ Pass `forceRefresh: true` on the discover args to bypass both contacts and the overlay
5826
+ cache.
5827
+
5828
+ ```ts
5829
+ contactSource?: ContactSource
5830
+ ```
5831
+ See also: [ContactSource](./client.md#interface-contactsource)
5732
5832
 
5733
5833
  ###### Property makeLogger
5734
5834
 
@@ -10317,6 +10417,7 @@ export class Wallet implements WalletInterface, ProtoWallet {
10317
10417
  lookupResolver: LookupResolver;
10318
10418
  services?: WalletServices;
10319
10419
  monitor?: Monitor;
10420
+ contactSource?: ContactSource;
10320
10421
  identityKey: string;
10321
10422
  beef: BeefParty;
10322
10423
  includeAllSourceTransactions: boolean = true;
@@ -10352,8 +10453,12 @@ export class Wallet implements WalletInterface, ProtoWallet {
10352
10453
  async acquireCertificate(args: AcquireCertificateArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<AcquireCertificateResult>
10353
10454
  async relinquishCertificate(args: RelinquishCertificateArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<RelinquishCertificateResult>
10354
10455
  async proveCertificate(args: ProveCertificateArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<ProveCertificateResult>
10355
- async discoverByIdentityKey(args: DiscoverByIdentityKeyArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<DiscoverCertificatesResult>
10356
- async discoverByAttributes(args: DiscoverByAttributesArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<DiscoverCertificatesResult>
10456
+ async discoverByIdentityKey(args: DiscoverByIdentityKeyArgs & {
10457
+ forceRefresh?: boolean;
10458
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<DiscoverCertificatesResult>
10459
+ async discoverByAttributes(args: DiscoverByAttributesArgs & {
10460
+ forceRefresh?: boolean;
10461
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<DiscoverCertificatesResult>
10357
10462
  verifyReturnedTxidOnly(beef: Beef, knownTxids?: string[]): Beef
10358
10463
  verifyReturnedTxidOnlyAtomicBEEF(beef: AtomicBEEF, knownTxids?: string[]): AtomicBEEF
10359
10464
  verifyReturnedTxidOnlyBEEF(beef: BEEF): BEEF
@@ -10382,7 +10487,7 @@ export class Wallet implements WalletInterface, ProtoWallet {
10382
10487
  }
10383
10488
  ```
10384
10489
 
10385
- 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)
10490
+ 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)
10386
10491
 
10387
10492
  ###### Property autoKnownTxids
10388
10493
 
@@ -11217,54 +11322,55 @@ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](
11217
11322
 
11218
11323
  | | | |
11219
11324
  | --- | --- | --- |
11220
- | [WalletErrorFromJson](#function-walleterrorfromjson) | [getSyncChunk](#function-getsyncchunk) | [sha256Hash](#function-sha256hash) |
11221
- | [acquireDirectCertificate](#function-acquiredirectcertificate) | [getWhatsOnChainBlockHeaderByHash](#function-getwhatsonchainblockheaderbyhash) | [sha256HashOfBinaryFile](#function-sha256hashofbinaryfile) |
11222
- | [addWork](#function-addwork) | [handlePostRawTxErrorResponse](#function-handlepostrawtxerrorresponse) | [shareReqsWithWorld](#function-sharereqswithworld) |
11223
- | [arcDefaultUrl](#function-arcdefaulturl) | [handleScriptHashHistoryCatch](#function-handlescripthashhistorycatch) | [signAction](#function-signaction) |
11224
- | [arcGorillaPoolUrl](#function-arcgorillapoolurl) | [handleScriptHashHistoryResponse](#function-handlescripthashhistoryresponse) | [stampLog](#function-stamplog) |
11225
- | [arraysEqual](#function-arraysequal) | [handleUtxoConnReset](#function-handleutxoconnreset) | [stampLogFormat](#function-stamplogformat) |
11226
- | [asArray](#function-asarray) | [internalizeAction](#function-internalizeaction) | [subWork](#function-subwork) |
11227
- | [asBsvSdkPrivateKey](#function-asbsvsdkprivatekey) | [internalizeAction](#function-internalizeaction) | [swapByteOrder](#function-swapbyteorder) |
11228
- | [asBsvSdkPublickKey](#function-asbsvsdkpublickkey) | [isBaseBlockHeader](#function-isbaseblockheader) | [throwDummyReviewActions](#function-throwdummyreviewactions) |
11229
- | [asBsvSdkScript](#function-asbsvsdkscript) | [isBlockHeader](#function-isblockheader) | [toBinaryBaseBlockHeader](#function-tobinarybaseblockheader) |
11230
- | [asBsvSdkTx](#function-asbsvsdktx) | [isCreateActionSpecOp](#function-iscreateactionspecop) | [toLookupNetworkPreset](#function-tolookupnetworkpreset) |
11231
- | [asString](#function-asstring) | [isKnownValidBulkHeaderFile](#function-isknownvalidbulkheaderfile) | [toWalletNetwork](#function-towalletnetwork) |
11232
- | [asUint8Array](#function-asuint8array) | [isListActionsSpecOp](#function-islistactionsspecop) | [transactionInputSize](#function-transactioninputsize) |
11233
- | [attemptToPostReqsToNetwork](#function-attempttopostreqstonetwork) | [isListOutputsSpecOp](#function-islistoutputsspecop) | [transactionOutputSize](#function-transactionoutputsize) |
11234
- | [blockHash](#function-blockhash) | [isLive](#function-islive) | [transactionSize](#function-transactionsize) |
11235
- | [buildSignableTransaction](#function-buildsignabletransaction) | [isLiveBlockHeader](#function-isliveblockheader) | [updateChaintracksFiatExchangeRates](#function-updatechaintracksfiatexchangerates) |
11236
- | [classifyMerklePathResponse](#function-classifymerklepathresponse) | [isMoreWork](#function-ismorework) | [updateExchangeratesapi](#function-updateexchangeratesapi) |
11237
- | [classifyReqStatus](#function-classifyreqstatus) | [keyOffsetToHashedSecret](#function-keyoffsettohashedsecret) | [updateReqsFromAggregateResults](#function-updatereqsfromaggregateresults) |
11238
- | [completeSignedTransaction](#function-completesignedtransaction) | [listCertificates](#function-listcertificates) | [validBulkHeaderFilesByFileHash](#function-validbulkheaderfilesbyfilehash) |
11239
- | [computeMerklePath](#function-computemerklepath) | [lockScriptWithKeyOffsetFromPubKey](#function-lockscriptwithkeyoffsetfrompubkey) | [validateAgainstDirtyHashes](#function-validateagainstdirtyhashes) |
11240
- | [computeMerkleRoot](#function-computemerkleroot) | [logCreateActionArgs](#function-logcreateactionargs) | [validateBufferOfHeaders](#function-validatebufferofheaders) |
11241
- | [convertBitsToTarget](#function-convertbitstotarget) | [logWalletError](#function-logwalleterror) | [validateBulkFileData](#function-validatebulkfiledata) |
11242
- | [convertBitsToWork](#function-convertbitstowork) | [makeAtomicBeef](#function-makeatomicbeef) | [validateDate](#function-validatedate) |
11243
- | [convertBufferToUint32](#function-convertbuffertouint32) | [makeChangeLock](#function-makechangelock) | [validateEntities](#function-validateentities) |
11244
- | [convertProofToMerklePath](#function-convertprooftomerklepath) | [makeMerklePathNote](#function-makemerklepathnote) | [validateEntity](#function-validateentity) |
11245
- | [convertUint32ToBuffer](#function-convertuint32tobuffer) | [markStaleInputsAsSpent](#function-markstaleinputsasspent) | [validateGenerateChangeSdkParams](#function-validategeneratechangesdkparams) |
11246
- | [convertWocToBlockHeaderHex](#function-convertwoctoblockheaderhex) | [maxDate](#function-maxdate) | [validateGenerateChangeSdkResult](#function-validategeneratechangesdkresult) |
11247
- | [createAction](#function-createaction) | [mergeInputBeefs](#function-mergeinputbeefs) | [validateGenesisHeader](#function-validategenesisheader) |
11325
+ | [WalletErrorFromJson](#function-walleterrorfromjson) | [getWhatsOnChainBlockHeaderByHash](#function-getwhatsonchainblockheaderbyhash) | [sha256HashOfBinaryFile](#function-sha256hashofbinaryfile) |
11326
+ | [acquireDirectCertificate](#function-acquiredirectcertificate) | [handlePostRawTxErrorResponse](#function-handlepostrawtxerrorresponse) | [shareReqsWithWorld](#function-sharereqswithworld) |
11327
+ | [addWork](#function-addwork) | [handleScriptHashHistoryCatch](#function-handlescripthashhistorycatch) | [signAction](#function-signaction) |
11328
+ | [arcDefaultUrl](#function-arcdefaulturl) | [handleScriptHashHistoryResponse](#function-handlescripthashhistoryresponse) | [stampLog](#function-stamplog) |
11329
+ | [arcGorillaPoolUrl](#function-arcgorillapoolurl) | [handleUtxoConnReset](#function-handleutxoconnreset) | [stampLogFormat](#function-stamplogformat) |
11330
+ | [arraysEqual](#function-arraysequal) | [internalizeAction](#function-internalizeaction) | [subWork](#function-subwork) |
11331
+ | [asArray](#function-asarray) | [internalizeAction](#function-internalizeaction) | [swapByteOrder](#function-swapbyteorder) |
11332
+ | [asBsvSdkPrivateKey](#function-asbsvsdkprivatekey) | [isBaseBlockHeader](#function-isbaseblockheader) | [throwDummyReviewActions](#function-throwdummyreviewactions) |
11333
+ | [asBsvSdkPublickKey](#function-asbsvsdkpublickkey) | [isBlockHeader](#function-isblockheader) | [toBinaryBaseBlockHeader](#function-tobinarybaseblockheader) |
11334
+ | [asBsvSdkScript](#function-asbsvsdkscript) | [isCreateActionSpecOp](#function-iscreateactionspecop) | [toLookupNetworkPreset](#function-tolookupnetworkpreset) |
11335
+ | [asBsvSdkTx](#function-asbsvsdktx) | [isKnownValidBulkHeaderFile](#function-isknownvalidbulkheaderfile) | [toWalletNetwork](#function-towalletnetwork) |
11336
+ | [asString](#function-asstring) | [isListActionsSpecOp](#function-islistactionsspecop) | [transactionInputSize](#function-transactioninputsize) |
11337
+ | [asUint8Array](#function-asuint8array) | [isListOutputsSpecOp](#function-islistoutputsspecop) | [transactionOutputSize](#function-transactionoutputsize) |
11338
+ | [attemptToPostReqsToNetwork](#function-attempttopostreqstonetwork) | [isLive](#function-islive) | [transactionSize](#function-transactionsize) |
11339
+ | [blockHash](#function-blockhash) | [isLiveBlockHeader](#function-isliveblockheader) | [updateChaintracksFiatExchangeRates](#function-updatechaintracksfiatexchangerates) |
11340
+ | [buildSignableTransaction](#function-buildsignabletransaction) | [isMoreWork](#function-ismorework) | [updateExchangeratesapi](#function-updateexchangeratesapi) |
11341
+ | [classifyMerklePathResponse](#function-classifymerklepathresponse) | [keyOffsetToHashedSecret](#function-keyoffsettohashedsecret) | [updateReqsFromAggregateResults](#function-updatereqsfromaggregateresults) |
11342
+ | [classifyReqStatus](#function-classifyreqstatus) | [listCertificates](#function-listcertificates) | [validBulkHeaderFilesByFileHash](#function-validbulkheaderfilesbyfilehash) |
11343
+ | [completeSignedTransaction](#function-completesignedtransaction) | [lockScriptWithKeyOffsetFromPubKey](#function-lockscriptwithkeyoffsetfrompubkey) | [validateAgainstDirtyHashes](#function-validateagainstdirtyhashes) |
11344
+ | [computeMerklePath](#function-computemerklepath) | [logCreateActionArgs](#function-logcreateactionargs) | [validateBufferOfHeaders](#function-validatebufferofheaders) |
11345
+ | [computeMerkleRoot](#function-computemerkleroot) | [logWalletError](#function-logwalleterror) | [validateBulkFileData](#function-validatebulkfiledata) |
11346
+ | [convertBitsToTarget](#function-convertbitstotarget) | [makeAtomicBeef](#function-makeatomicbeef) | [validateDate](#function-validatedate) |
11347
+ | [convertBitsToWork](#function-convertbitstowork) | [makeChangeLock](#function-makechangelock) | [validateEntities](#function-validateentities) |
11348
+ | [convertBufferToUint32](#function-convertbuffertouint32) | [makeMerklePathNote](#function-makemerklepathnote) | [validateEntity](#function-validateentity) |
11349
+ | [convertProofToMerklePath](#function-convertprooftomerklepath) | [markStaleInputsAsSpent](#function-markstaleinputsasspent) | [validateGenerateChangeSdkParams](#function-validategeneratechangesdkparams) |
11350
+ | [convertUint32ToBuffer](#function-convertuint32tobuffer) | [maxDate](#function-maxdate) | [validateGenerateChangeSdkResult](#function-validategeneratechangesdkresult) |
11351
+ | [convertWocToBlockHeaderHex](#function-convertwoctoblockheaderhex) | [mergeInputBeefs](#function-mergeinputbeefs) | [validateGenesisHeader](#function-validategenesisheader) |
11248
11352
  | [createAction](#function-createaction) | [mergeInputsIntoBeef](#function-mergeinputsintobeef) | [validateHeaderDifficulty](#function-validateheaderdifficulty) |
11249
- | [createCoinbaseTransaction](#function-createcoinbasetransaction) | [notifyTransactionsOfProof](#function-notifytransactionsofproof) | [validateHeaderFormat](#function-validateheaderformat) |
11250
- | [createDefaultWalletServicesOptions](#function-createdefaultwalletservicesoptions) | [offsetPrivKey](#function-offsetprivkey) | [validateScriptHash](#function-validatescripthash) |
11251
- | [createStorageServiceChargeScript](#function-createstorageservicechargescript) | [offsetPubKey](#function-offsetpubkey) | [validateSecondsSinceEpoch](#function-validatesecondssinceepoch) |
11252
- | [createSyncMap](#function-createsyncmap) | [optionalArraysEqual](#function-optionalarraysequal) | [validateStorageFeeModel](#function-validatestoragefeemodel) |
11253
- | [deserializeBaseBlockHeader](#function-deserializebaseblockheader) | [parseTxScriptOffsets](#function-parsetxscriptoffsets) | [validateSyncChunkEntities](#function-validatesyncchunkentities) |
11254
- | [deserializeBaseBlockHeaders](#function-deserializebaseblockheaders) | [populateUtxoDetails](#function-populateutxodetails) | [varUintSize](#function-varuintsize) |
11255
- | [deserializeBlockHeader](#function-deserializeblockheader) | [processAction](#function-processaction) | [verifyHexString](#function-verifyhexstring) |
11256
- | [deserializeBlockHeaders](#function-deserializeblockheaders) | [processAction](#function-processaction) | [verifyId](#function-verifyid) |
11257
- | [doubleSha256BE](#function-doublesha256be) | [proveCertificate](#function-provecertificate) | [verifyInteger](#function-verifyinteger) |
11258
- | [doubleSha256LE](#function-doublesha256le) | [randomBytes](#function-randombytes) | [verifyNumber](#function-verifynumber) |
11259
- | [generateChangeSdk](#function-generatechangesdk) | [randomBytesBase64](#function-randombytesbase64) | [verifyOne](#function-verifyone) |
11260
- | [generateChangeSdkMakeStorage](#function-generatechangesdkmakestorage) | [randomBytesHex](#function-randombyteshex) | [verifyOneOrNone](#function-verifyoneornone) |
11261
- | [genesisBuffer](#function-genesisbuffer) | [readUInt32BE](#function-readuint32be) | [verifyOptionalHexString](#function-verifyoptionalhexstring) |
11262
- | [genesisHeader](#function-genesisheader) | [readUInt32LE](#function-readuint32le) | [verifyTruthy](#function-verifytruthy) |
11263
- | [getBeefForTransaction](#function-getbeeffortransaction) | [redeemServiceCharges](#function-redeemservicecharges) | [verifyUnlockScripts](#function-verifyunlockscripts) |
11264
- | [getBeefForTxid](#function-getbeeffortxid) | [selectBulkHeaderFiles](#function-selectbulkheaderfiles) | [wait](#function-wait) |
11265
- | [getExchangeRatesIo](#function-getexchangeratesio) | [serializeBaseBlockHeader](#function-serializebaseblockheader) | [workBNtoBuffer](#function-workbntobuffer) |
11266
- | [getIdentityKey](#function-getidentitykey) | [serializeBaseBlockHeaders](#function-serializebaseblockheaders) | [writeUInt32BE](#function-writeuint32be) |
11267
- | [getProofs](#function-getproofs) | [setDisableDoubleSpendCheckForTest](#function-setdisabledoublespendcheckfortest) | [writeUInt32LE](#function-writeuint32le) |
11353
+ | [createAction](#function-createaction) | [notifyTransactionsOfProof](#function-notifytransactionsofproof) | [validateHeaderFormat](#function-validateheaderformat) |
11354
+ | [createCoinbaseTransaction](#function-createcoinbasetransaction) | [offsetPrivKey](#function-offsetprivkey) | [validateScriptHash](#function-validatescripthash) |
11355
+ | [createDefaultWalletServicesOptions](#function-createdefaultwalletservicesoptions) | [offsetPubKey](#function-offsetpubkey) | [validateSecondsSinceEpoch](#function-validatesecondssinceepoch) |
11356
+ | [createStorageServiceChargeScript](#function-createstorageservicechargescript) | [optionalArraysEqual](#function-optionalarraysequal) | [validateStorageFeeModel](#function-validatestoragefeemodel) |
11357
+ | [createSyncMap](#function-createsyncmap) | [parseResults$](#function-parseresults$) | [validateSyncChunkEntities](#function-validatesyncchunkentities) |
11358
+ | [deserializeBaseBlockHeader](#function-deserializebaseblockheader) | [parseTxScriptOffsets](#function-parsetxscriptoffsets) | [varUintSize](#function-varuintsize) |
11359
+ | [deserializeBaseBlockHeaders](#function-deserializebaseblockheaders) | [populateUtxoDetails](#function-populateutxodetails) | [verifyHexString](#function-verifyhexstring) |
11360
+ | [deserializeBlockHeader](#function-deserializeblockheader) | [processAction](#function-processaction) | [verifyId](#function-verifyid) |
11361
+ | [deserializeBlockHeaders](#function-deserializeblockheaders) | [processAction](#function-processaction) | [verifyInteger](#function-verifyinteger) |
11362
+ | [doubleSha256BE](#function-doublesha256be) | [proveCertificate](#function-provecertificate) | [verifyNumber](#function-verifynumber) |
11363
+ | [doubleSha256LE](#function-doublesha256le) | [randomBytes](#function-randombytes) | [verifyOne](#function-verifyone) |
11364
+ | [generateChangeSdk](#function-generatechangesdk) | [randomBytesBase64](#function-randombytesbase64) | [verifyOneOrNone](#function-verifyoneornone) |
11365
+ | [generateChangeSdkMakeStorage](#function-generatechangesdkmakestorage) | [randomBytesHex](#function-randombyteshex) | [verifyOptionalHexString](#function-verifyoptionalhexstring) |
11366
+ | [genesisBuffer](#function-genesisbuffer) | [readUInt32BE](#function-readuint32be) | [verifyTruthy](#function-verifytruthy) |
11367
+ | [genesisHeader](#function-genesisheader) | [readUInt32LE](#function-readuint32le) | [verifyUnlockScripts](#function-verifyunlockscripts) |
11368
+ | [getBeefForTransaction](#function-getbeeffortransaction) | [redeemServiceCharges](#function-redeemservicecharges) | [wait](#function-wait) |
11369
+ | [getBeefForTxid](#function-getbeeffortxid) | [selectBulkHeaderFiles](#function-selectbulkheaderfiles) | [workBNtoBuffer](#function-workbntobuffer) |
11370
+ | [getExchangeRatesIo](#function-getexchangeratesio) | [serializeBaseBlockHeader](#function-serializebaseblockheader) | [writeUInt32BE](#function-writeuint32be) |
11371
+ | [getIdentityKey](#function-getidentitykey) | [serializeBaseBlockHeaders](#function-serializebaseblockheaders) | [writeUInt32LE](#function-writeuint32le) |
11372
+ | [getProofs](#function-getproofs) | [setDisableDoubleSpendCheckForTest](#function-setdisabledoublespendcheckfortest) | |
11373
+ | [getSyncChunk](#function-getsyncchunk) | [sha256Hash](#function-sha256hash) | |
11268
11374
 
11269
11375
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
11270
11376
 
@@ -12682,6 +12788,17 @@ export function optionalArraysEqual(arr1?: Number[], arr2?: Number[]): boolean
12682
12788
 
12683
12789
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
12684
12790
 
12791
+ ---
12792
+ ##### Function: parseResults$
12793
+
12794
+ ```ts
12795
+ export async function* parseResults$(lookupResult: LookupAnswer): AsyncIterable<VerifiableCertificate>
12796
+ ```
12797
+
12798
+ See also: [parseResults](./client.md#variable-parseresults)
12799
+
12800
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
12801
+
12685
12802
  ---
12686
12803
  ##### Function: parseTxScriptOffsets
12687
12804
 
@@ -14360,26 +14477,18 @@ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](
14360
14477
 
14361
14478
  ```ts
14362
14479
  parseResults = async (lookupResult: LookupAnswer): Promise<VerifiableCertificate[]> => {
14363
- if (lookupResult.type === "output-list") {
14364
- const parsedResults: VerifiableCertificate[] = [];
14365
- for (const output of lookupResult.outputs) {
14366
- try {
14367
- const tx = Transaction.fromBEEF(output.beef);
14368
- const decodedOutput = PushDrop.decode(tx.outputs[output.outputIndex].lockingScript);
14369
- const certificate: VerifiableCertificate = JSON.parse(Utils.toUTF8(decodedOutput.fields[0]));
14370
- const verifiableCert = new VerifiableCertificate(certificate.type, certificate.serialNumber, certificate.subject, certificate.certifier, certificate.revocationOutpoint, certificate.fields, certificate.keyring, certificate.signature);
14371
- const decryptedFields = await verifiableCert.decryptFields(new ProtoWallet("anyone"));
14372
- await verifiableCert.verify();
14373
- verifiableCert.decryptedFields = decryptedFields;
14374
- parsedResults.push(verifiableCert);
14375
- }
14376
- catch (error) {
14377
- console.error(error);
14378
- }
14379
- }
14380
- return parsedResults;
14480
+ if (lookupResult.type !== "output-list")
14481
+ return [];
14482
+ const parsedResults: VerifiableCertificate[] = [];
14483
+ const shouldYield = isUiRuntime();
14484
+ for (const output of lookupResult.outputs) {
14485
+ if (shouldYield)
14486
+ await yieldToUi();
14487
+ const cert = await parseOne(output);
14488
+ if (cert != null)
14489
+ parsedResults.push(cert);
14381
14490
  }
14382
- return [];
14491
+ return parsedResults;
14383
14492
  }
14384
14493
  ```
14385
14494
 
@@ -14393,7 +14502,7 @@ queryOverlay = async (query: unknown, resolver: LookupResolver): Promise<Verifia
14393
14502
  const results = await resolver.query({
14394
14503
  service: "ls_identity",
14395
14504
  query
14396
- });
14505
+ }, undefined, { graceMs: 300 });
14397
14506
  return await parseResults(results);
14398
14507
  }
14399
14508
  ```
@@ -10,6 +10,38 @@ import { StorageCreateActionResult } from './sdk/WalletStorage.interfaces';
10
10
  /**
11
11
  * The preferred means of constructing a `Wallet` is with a `WalletArgs` instance.
12
12
  */
13
+ /**
14
+ * Minimal interface the wallet uses to short-circuit identity discovery against the user's local
15
+ * contacts before hitting the overlay. The result shape matches what `discoverByIdentityKey` /
16
+ * `discoverByAttributes` return so callers don't have to special-case contact-sourced records.
17
+ *
18
+ * Implementations typically wrap `@bsv/sdk` `ContactsManager` or another on-device source. Reads
19
+ * are expected to be very fast (single-digit ms against local SQLite is typical).
20
+ */
21
+ export interface ContactSource {
22
+ /** Look up a contact by identity key. Return `null` (or undefined) if unknown. */
23
+ findByIdentityKey: (identityKey: PubKeyHex) => Promise<ContactRecord | null | undefined>;
24
+ /** Look up contacts matching a set of attributes. May be a no-op if attribute search is unsupported. */
25
+ findByAttributes?: (attributes: Record<string, string> | string[]) => Promise<ContactRecord[]>;
26
+ }
27
+ /**
28
+ * What a {@link ContactSource} returns. Carries enough to synthesize a minimal trusted
29
+ * `DiscoverCertificatesResult` without touching the overlay.
30
+ */
31
+ export interface ContactRecord {
32
+ identityKey: PubKeyHex;
33
+ /** Optional certificate type (e.g. xCert / discordCert) so callers can render a badge. */
34
+ type?: string;
35
+ /** Optional decrypted fields. Whatever the app stored when saving the contact. */
36
+ decryptedFields?: Record<string, string>;
37
+ /** Optional certifier metadata; missing trust defaults to `Infinity` (contacts override overlay trust). */
38
+ certifierInfo?: {
39
+ name?: string;
40
+ iconUrl?: string;
41
+ description?: string;
42
+ trust?: number;
43
+ };
44
+ }
13
45
  export interface WalletArgs {
14
46
  chain: Chain;
15
47
  keyDeriver: KeyDeriverApi;
@@ -19,6 +51,13 @@ export interface WalletArgs {
19
51
  privilegedKeyManager?: PrivilegedKeyManager;
20
52
  settingsManager?: WalletSettingsManager;
21
53
  lookupResolver?: LookupResolver;
54
+ /**
55
+ * Optional contact source consulted before the overlay in `discoverByIdentityKey` /
56
+ * `discoverByAttributes`. When a contact matches, the overlay call is skipped entirely.
57
+ * Pass `forceRefresh: true` on the discover args to bypass both contacts and the overlay
58
+ * cache.
59
+ */
60
+ contactSource?: ContactSource;
22
61
  /**
23
62
  * Optional. Provide a function conforming to the `MakeWalletLogger` type to enable wallet request logging.
24
63
  *
@@ -38,6 +77,7 @@ export declare class Wallet implements WalletInterface, ProtoWallet {
38
77
  lookupResolver: LookupResolver;
39
78
  services?: WalletServices;
40
79
  monitor?: Monitor;
80
+ contactSource?: ContactSource;
41
81
  identityKey: string;
42
82
  /**
43
83
  * The wallet creates a `BeefParty` when it is created.
@@ -107,8 +147,12 @@ export declare class Wallet implements WalletInterface, ProtoWallet {
107
147
  private _trustSettingsCache?;
108
148
  /** 2-minute cache of queryOverlay() results keyed by normalized query */
109
149
  private readonly _overlayCache;
110
- discoverByIdentityKey(args: DiscoverByIdentityKeyArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<DiscoverCertificatesResult>;
111
- discoverByAttributes(args: DiscoverByAttributesArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<DiscoverCertificatesResult>;
150
+ discoverByIdentityKey(args: DiscoverByIdentityKeyArgs & {
151
+ forceRefresh?: boolean;
152
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<DiscoverCertificatesResult>;
153
+ discoverByAttributes(args: DiscoverByAttributesArgs & {
154
+ forceRefresh?: boolean;
155
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<DiscoverCertificatesResult>;
112
156
  verifyReturnedTxidOnly(beef: Beef, knownTxids?: string[]): Beef;
113
157
  verifyReturnedTxidOnlyAtomicBEEF(beef: AtomicBEEF, knownTxids?: string[]): AtomicBEEF;
114
158
  verifyReturnedTxidOnlyBEEF(beef: BEEF): BEEF;
@@ -1 +1 @@
1
- {"version":3,"file":"Wallet.d.ts","sourceRoot":"","sources":["../../src/Wallet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Wallet.d.ts","sourceRoot":"","sources":["../../src/Wallet.ts"],"names":[],"mappings":"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"}