Class: Resolver ​
Defined in: packages/method/src/core/resolver.ts:132
Sans-I/O state machine for did:btcr2 resolution.
Created by DidBtcr2.resolve (the factory). The caller drives resolution by repeatedly calling resolve and provide:
const resolver = DidBtcr2.resolve(did, { sidecar });
let state = resolver.resolve();
while (state.status === 'action-required') {
for (const need of state.needs) { ... fetch & provide ... }
state = resolver.resolve();
}
const { didDocument, metadata } = state.result;The Resolver performs zero I/O. All external data (Bitcoin signals, CAS data, genesis documents) flows through the advance/provide protocol.
Resolver
Constructors ​
Constructor ​
new Resolver(
didComponents,sidecarData,currentDocument,options?):Resolver
Defined in: packages/method/src/core/resolver.ts:154
Internal
— Use DidBtcr2.resolve to create instances.
Parameters ​
didComponents ​
sidecarData ​
currentDocument ​
DidDocument | null
options? ​
genesisDocument? ​
object
versionId? ​
string
versionTime? ​
string
Returns ​
Resolver
Methods ​
provide() ​
Call Signature ​
provide(
need,data):void
Defined in: packages/method/src/core/resolver.ts:674
Provide data the resolver requested in a previous resolve call. Call once per need, then call resolve again to continue.
Analogous to Rust's Resolver::process_responses().
Parameters ​
need ​
The DataNeed being fulfilled (from the needs array).
data ​
object
The data payload corresponding to the need kind.
Returns ​
void
Call Signature ​
provide(
need,data):void
Defined in: packages/method/src/core/resolver.ts:675
Provide data the resolver requested in a previous resolve call. Call once per need, then call resolve again to continue.
Analogous to Rust's Resolver::process_responses().
Parameters ​
need ​
The DataNeed being fulfilled (from the needs array).
data ​
Map<BeaconService, BeaconSignal[]>
The data payload corresponding to the need kind.
Returns ​
void
Call Signature ​
provide(
need,data):void
Defined in: packages/method/src/core/resolver.ts:676
Provide data the resolver requested in a previous resolve call. Call once per need, then call resolve again to continue.
Analogous to Rust's Resolver::process_responses().
Parameters ​
need ​
The DataNeed being fulfilled (from the needs array).
data ​
The data payload corresponding to the need kind.
Returns ​
void
Call Signature ​
provide(
need,data):void
Defined in: packages/method/src/core/resolver.ts:677
Provide data the resolver requested in a previous resolve call. Call once per need, then call resolve again to continue.
Analogous to Rust's Resolver::process_responses().
Parameters ​
need ​
The DataNeed being fulfilled (from the needs array).
data ​
The data payload corresponding to the need kind.
Returns ​
void
resolve() ​
resolve():
ResolverState
Defined in: packages/method/src/core/resolver.ts:530
Advance the state machine. Returns either:
{ status: 'action-required', needs }— caller must provide data via provide{ status: 'resolved', result }— resolution complete
Analogous to Rust's Resolver::resolve().
Returns ​
deterministic() ​
staticdeterministic(didComponents):DidDocument
Defined in: packages/method/src/core/resolver.ts:182
Implements subsection 7.2.d.1 if genesis bytes is a secp256k1 Public Key.
Parameters ​
didComponents ​
The decoded components of the did.
Returns ​
The resolved DID Document object.
external() ​
staticexternal(didComponents,genesisDocument):DidDocument
Defined in: packages/method/src/core/resolver.ts:219
Implements subsection 7.2.d.2 if genesis_bytes is a SHA-256 Hash.
Parameters ​
didComponents ​
BTCR2 DID components used to resolve the DID Document
genesisDocument ​
object
The genesis document for resolving the DID Document.
Returns ​
The resolved DID Document object
Throws ​
InvalidDidDocument if not conformant to DID Core v1.1
sidecarData() ​
staticsidecarData(sidecar?):SidecarData
Defined in: packages/method/src/core/resolver.ts:254
Implements subsection Process Sidecar Data
Parameters ​
sidecar? ​
Sidecar = ...
The sidecar data to process.
Returns ​
The processed sidecar data containing maps of updates, CAS announcements, and SMT proofs.
updates() ​
staticupdates(currentDocument,unsortedUpdates,versionTime?,versionId?):DidResolutionResponse
Defined in: packages/method/src/core/resolver.ts:287
Implements subsection 7.2.f Process updates Array.
Parameters ​
currentDocument ​
The current DID Document to apply the updates to.
unsortedUpdates ​
[SignedBTCR2Update, BlockMetadata][]
The unsorted array of BTCR2 Signed Updates and their associated Block Metadata.
versionTime? ​
string
The optional version time to limit updates to.
versionId? ​
string
The optional version id to limit updates to.
Returns ​
The updated DID Document, number of confirmations, and version id.