Skip to main content

IntermediaryDiscovery

Defined in: atomiq-sdk/src/intermediaries/IntermediaryDiscovery.ts:162

Discovery service for available intermediaries (liquidity providers)

Extends

  • EventEmitter

Constructors

Constructor

new IntermediaryDiscovery(
swapContracts,
lpApi,
registryUrl,
nodeUrls?,
httpRequestTimeout?,
maxWaitForOthersTimeout?): IntermediaryDiscovery;

Defined in: atomiq-sdk/src/intermediaries/IntermediaryDiscovery.ts:200

Parameters

ParameterTypeDefault value
swapContracts{ [chainIdentifier: string]: object; }undefined
lpApiIntermediaryAPIundefined
registryUrlstringREGISTRY_URL
nodeUrls?string[]undefined
httpRequestTimeout?numberundefined
maxWaitForOthersTimeout?numberundefined

Returns

IntermediaryDiscovery

Overrides

EventEmitter.constructor

Properties

httpRequestTimeout?

optional httpRequestTimeout: number;

Defined in: atomiq-sdk/src/intermediaries/IntermediaryDiscovery.ts:182

Timeout for the HTTP handshake (/info) requests sent to the intermediaries


intermediaries

intermediaries: Intermediary[] = [];

Defined in: atomiq-sdk/src/intermediaries/IntermediaryDiscovery.ts:167

A current list of active intermediaries


maxWaitForOthersTimeout?

optional maxWaitForOthersTimeout: number;

Defined in: atomiq-sdk/src/intermediaries/IntermediaryDiscovery.ts:186

Maximum time (in millis) to wait for other intermediary's responses after the first one was founds


registryUrl

registryUrl: string;

Defined in: atomiq-sdk/src/intermediaries/IntermediaryDiscovery.ts:177

Registry URL used as a source for the list of intermediaries, this should be a link to a github-hosted JSON file


swapContracts

swapContracts: object;

Defined in: atomiq-sdk/src/intermediaries/IntermediaryDiscovery.ts:172

Swap contracts for checking intermediary signatures

Index Signature

[chainIdentifier: string]: object

Methods

getIntermediary()

getIntermediary(url, abortSignal?): Promise<Intermediary>;

Defined in: atomiq-sdk/src/intermediaries/IntermediaryDiscovery.ts:344

Returns the intermediary at the provided URL, either from the already fetched list of LPs or fetches the data on-demand, by sending the handshake HTTP request (/info) to the LP.

Doesn't save the fetched intermediary to the list of intermediaries if it isn't already part of the known intermediaries

Parameters

ParameterTypeDescription
urlstringBase URL of the intermediary, which accepts HTTP requests
abortSignal?AbortSignal

Returns

Promise<Intermediary>


getMultichainSwapBounds()

getMultichainSwapBounds(): MultichainSwapBounds;

Defined in: atomiq-sdk/src/intermediaries/IntermediaryDiscovery.ts:394

Returns known swap bounds (in satoshis - BTC) by aggregating values from all known intermediaries

Returns

MultichainSwapBounds


getSwapBounds()

getSwapBounds(chainIdentifier): SwapBounds;

Defined in: atomiq-sdk/src/intermediaries/IntermediaryDiscovery.ts:428

Returns aggregate swap bounds (in satoshis - BTC) as indicated by the intermediaries

Parameters

ParameterType
chainIdentifierstring

Returns

SwapBounds


getSwapCandidates()

getSwapCandidates(
chainIdentifier,
swapType,
tokenAddress,
amount?,
count?): Intermediary[];

Defined in: atomiq-sdk/src/intermediaries/IntermediaryDiscovery.ts:507

Returns swap candidates for a specific swap type & token address

Parameters

ParameterTypeDescription
chainIdentifierstringChain identifier of the smart chain
swapTypeSwapTypeSwap protocol type
tokenAddressstringToken address
amount?bigintAmount to be swapped in sats - BTC
count?numberHow many intermediaries to return at most

Returns

Intermediary[]

Remarks

Also filters the LPs based on supported swap versions


getSwapMaximum()

getSwapMaximum(
chainIdentifier,
swapType,
tokenAddress): number;

Defined in: atomiq-sdk/src/intermediaries/IntermediaryDiscovery.ts:484

Returns the aggregate swap maximum (in satoshis - BTC) for a specific swap type & token as indicated by the intermediaries

Parameters

ParameterTypeDescription
chainIdentifierstringChain identifier of the smart chain
swapTypeSwapTypeSwap protocol type
tokenAddressstringToken address

Returns

number


getSwapMinimum()

getSwapMinimum(
chainIdentifier,
swapType,
tokenAddress): number;

Defined in: atomiq-sdk/src/intermediaries/IntermediaryDiscovery.ts:464

Returns the aggregate swap minimum (in satoshis - BTC) for a specific swap type & token as indicated by the intermediaries

Parameters

ParameterTypeDescription
chainIdentifierstringChain identifier of the smart chain
swapTypeSwapTypeSwap protocol type
tokenAddressstringToken address

Returns

number


init()

init(abortSignal?): Promise<void>;

Defined in: atomiq-sdk/src/intermediaries/IntermediaryDiscovery.ts:386

Initializes the discovery by fetching/reloading intermediaries

Parameters

ParameterTypeDescription
abortSignal?AbortSignal

Returns

Promise<void>


reloadIntermediaries()

reloadIntermediaries(abortSignal?): Promise<void>;

Defined in: atomiq-sdk/src/intermediaries/IntermediaryDiscovery.ts:355

Reloads the saves a list of intermediaries

Parameters

ParameterTypeDescription
abortSignal?AbortSignal

Returns

Promise<void>


removeIntermediary()

removeIntermediary(intermediary): boolean;

Defined in: atomiq-sdk/src/intermediaries/IntermediaryDiscovery.ts:537

Removes a specific intermediary from the list of active intermediaries (used for blacklisting)

Parameters

ParameterTypeDescription
intermediaryIntermediary

Returns

boolean