Resolver

@twine-protocol/twine-core v0.1.0Docs


twine-js / @twine-protocol/twine-core / Resolver

Interface: Resolver

Resolves a query into a chain or pulse

Resolvers are the primary way to fetch twines from somewhere. This specifies a general interface for all resolvers.

Resolvers are expected to verify the signature of the resolved twine.

See

Store

Example

import { collect } from '@twine-protocol/twine-core'
const resolver = new MyResolver()
const chains = await collect(resolver.chains())
// resolve the latest pulse of the first chain
const resolution = await resolver.resolveLatest({ chain: chains[0] })
if (resolution.pulse) {
  // a verified pulse that is the latest this resolver knows of
  console.log('pulse', resolution.pulse)
}

Extended by

Methods

resolve()

resolve(query, options)

resolve(query, options?): Promise<ChainResolution>

Resolve a chain from a query

This is the main way to get a pulse or chain from somewhere and have it automatically verified.

If the input is already a successful resolution, it will be returned as is.

If the input is a chain or pulse, it will be resolved as a chain or pulse resolution.

Parameters

Parameter
Type
Description

query

The query to resolve

options?

Options for the resolution

Returns

Promise<ChainResolution>

A chain or pulse resolution

Examples

const { chain } = await resolver.resolve({ chain: 'bafybeib3...' })
if (chain) {
  console.log('chain', chain)
} else {
  console.log('no chain')
}
const { chain, pulse } = await resolver.resolve({
  chain: 'bafybeib3...',
  pulse: 'bafybeib3...'
})

if (pulse) {
  console.log('pulse', pulse)
} else {
  console.log('no pulse')
}

Defined in

packages/twine-core/src/resolver/types.ts:233

resolve(query, options)

resolve(query, options?): Promise<PulseResolution>

Resolve a pulse (with its chain) from a query

Parameters

Parameter
Type

query

options?

Returns

Promise<PulseResolution>

Defined in

packages/twine-core/src/resolver/types.ts:237


resolveLatest()

resolveLatest(chain, options?): Promise<PulseResolution>

Resolve the latest pulse of a chain

Parameters

Parameter
Type
Description

chain

The chain CID or chain itself to resolve the latest pulse from

options?

Options for the resolution

Returns

Promise<PulseResolution>

A pulse resolution

Examples

const resolution = await resolver.resolveLatest('bafybeib3...')
if (resolution.pulse) {
  console.log('pulse', resolution.pulse)
}
const { chain } = await resolver.resolve({ chain: 'bafybeib3...' })
const resolution = await resolver.resolveLatest(chain)

Defined in

packages/twine-core/src/resolver/types.ts:260


resolveIndex()

resolveIndex(chain, index, options?): Promise<PulseResolution>

Resolve a pulse by index

Parameters

Parameter
Type
Description

chain

The chain CID or chain itself to resolve the pulse from

index

number

The index of the pulse to resolve

options?

Options for the resolution

Returns

Promise<PulseResolution>

A pulse resolution

Example

const resolution = await resolver.resolveIndex('bafybeib3...', 42)
if (resolution.pulse) {
  console.log('pulse', resolution.pulse)
}

Defined in

packages/twine-core/src/resolver/types.ts:278


has()

has(cid): Awaitable<boolean>

Check if a cid can be resolved

Parameters

Parameter
Type
Description

cid

The CID to check

Returns

Awaitable<boolean>

True if the CID can be resolved, false otherwise

Example

const exists = await resolver.has('bafybeib3...')
if (exists) {
  console.log('chain exists')
} else {
  console.log('chain does not exist')
}

Defined in

packages/twine-core/src/resolver/types.ts:295


pulses()

pulses(chain, start?, options?): AsyncGenerator<Pulse, any, any> | Generator<Pulse, any, any> | AnyIterable<Pulse>

Get the pulses of a chain

Parameters

Parameter
Type
Description

chain

The chain CID or chain itself to get the pulses from

start?

The index or CID of the pulse to start from

options?

Options for the resolution

Returns

AsyncGenerator<Pulse, any, any> | Generator<Pulse, any, any> | AnyIterable<Pulse>

An sync/async iterable of pulses

Example

// loop through pulses and print indices
for await (const pulse of resolver.pulses('bafybeib3...')) {
  console.log('pulse', pulse.value.content.index)
}

Defined in

packages/twine-core/src/resolver/types.ts:313


chains()

chains(): AsyncGenerator<Chain, any, any> | Generator<Chain, any, any> | AnyIterable<Chain>

Get the chains that are known to the resolver

Returns

AsyncGenerator<Chain, any, any> | Generator<Chain, any, any> | AnyIterable<Chain>

An sync/async iterable of chains

Example

const chains = await collect(resolver.chains())

Defined in

packages/twine-core/src/resolver/types.ts:324

Last updated