Skip to main content

SingleSwapPrice<T>

Defined in: atomiq-sdk/src/prices/SingleSwapPrice.ts:10

Swap price API using a single price source

Extends​

  • ICachedSwapPrice<T>

Type Parameters​

Type Parameter
T extends MultiChain

Constructors​

Constructor​

new SingleSwapPrice<T>(
maxAllowedFeeDiffPPM,
priceProvider,
cacheTimeout?): SingleSwapPrice<T>;

Defined in: atomiq-sdk/src/prices/SingleSwapPrice.ts:14

Parameters​

ParameterType
maxAllowedFeeDiffPPMbigint
priceProviderIPriceProvider<T>
cacheTimeout?number

Returns​

SingleSwapPrice<T>

Overrides​

ICachedSwapPrice<T>.constructor

Properties​

cache​

cache: { [chainIdentifier in string | number | symbol]?: { [tokenAddress: string]: { expiry: number; price: Promise<bigint> } } } = {};

Defined in: atomiq-sdk/src/prices/abstract/ICachedSwapPrice.ts:8

Inherited from​

ICachedSwapPrice.cache

cacheTimeout​

cacheTimeout: number;

Defined in: atomiq-sdk/src/prices/abstract/ICachedSwapPrice.ts:20

Inherited from​

RedundantSwapPrice.cacheTimeout


maxAllowedFeeDifferencePPM​

maxAllowedFeeDifferencePPM: bigint;

Defined in: atomiq-sdk/src/prices/abstract/ISwapPrice.ts:12

Inherited from​

ICachedSwapPrice.maxAllowedFeeDifferencePPM

priceProvider​

priceProvider: IPriceProvider<T>;

Defined in: atomiq-sdk/src/prices/SingleSwapPrice.ts:12


usdCache?​

optional usdCache: object;

Defined in: atomiq-sdk/src/prices/abstract/ICachedSwapPrice.ts:16

expiry​

expiry: number;

price​

price: Promise<number>;

Inherited from​

ICachedSwapPrice.usdCache

Methods​

getBtcUsdValue()​

getBtcUsdValue(
btcSats,
abortSignal?,
preFetchedUsdPrice?): Promise<number>;

Defined in: atomiq-sdk/src/prices/abstract/ISwapPrice.ts:338

Returns the USD value of the bitcoin amount

Parameters​

ParameterTypeDescription
btcSatsbigintBitcoin amount in satoshis
abortSignal?AbortSignal
preFetchedUsdPrice?numberAn optional price pre-fetched with preFetchUsdPrice

Returns​

Promise<number>

Inherited from​

ICachedSwapPrice.getBtcUsdValue

getFromBtcSwapAmount()​

getFromBtcSwapAmount<C>(
chainIdentifier,
fromAmount,
toToken,
abortSignal?,
preFetchedPrice?): Promise<bigint>;

Defined in: atomiq-sdk/src/prices/abstract/ISwapPrice.ts:274

Returns amount of toToken that is equivalent to fromAmount satoshis

Type Parameters​

Type Parameter
C extends string

Parameters​

ParameterTypeDescription
chainIdentifierCChain identifier string for the smart chain
fromAmountbigintAmount of satoshis
toTokenstringToken address
abortSignal?AbortSignal
preFetchedPrice?bigintAn optional price pre-fetched with preFetchPrice

Returns​

Promise<bigint>

Throws​

when token is not found

Inherited from​

ICachedSwapPrice.getFromBtcSwapAmount

getToBtcSwapAmount()​

getToBtcSwapAmount<C>(
chainIdentifier,
fromAmount,
fromToken,
abortSignal?,
preFetchedPrice?): Promise<bigint>;

Defined in: atomiq-sdk/src/prices/abstract/ISwapPrice.ts:301

Returns amount of satoshis that are equivalent to fromAmount of fromToken

Type Parameters​

Type Parameter
C extends string

Parameters​

ParameterTypeDescription
chainIdentifierCChain identifier string for the smart chain
fromAmountbigintAmount of the token
fromTokenstringToken address
abortSignal?AbortSignal
preFetchedPrice?bigintAn optional price pre-fetched with preFetchPrice

Returns​

Promise<bigint>

Throws​

when token is not found

Inherited from​

ICachedSwapPrice.getToBtcSwapAmount

getTokenUsdValue()​

getTokenUsdValue<C>(
chainIdentifier,
tokenAmount,
tokenAddress,
abortSignal?,
preFetchedUsdPrice?): Promise<number>;

Defined in: atomiq-sdk/src/prices/abstract/ISwapPrice.ts:355

Returns the USD value of the smart chain token amount

Type Parameters​

Type Parameter
C extends string

Parameters​

ParameterTypeDescription
chainIdentifierCChain identifier string for the smart chain
tokenAmountbigintAmount of the token in base units
tokenAddressstringToken address
abortSignal?AbortSignal
preFetchedUsdPrice?numberAn optional price pre-fetched with preFetchUsdPrice

Returns​

Promise<number>

Inherited from​

ICachedSwapPrice.getTokenUsdValue

getUsdValue()​

getUsdValue<C>(
amount,
token,
abortSignal?,
preFetchedUsdPrice?): Promise<number>;

Defined in: atomiq-sdk/src/prices/abstract/ISwapPrice.ts:377

Returns the USD value of the token amount

Type Parameters​

Type Parameter
C extends string

Parameters​

ParameterTypeDescription
amountbigintAmount in base units of the token
tokenToken<C>Token to fetch the usd price for
abortSignal?AbortSignal
preFetchedUsdPrice?numberAn optional price pre-fetched with preFetchUsdPrice

Returns​

Promise<number>

Inherited from​

ICachedSwapPrice.getUsdValue

isValidAmountReceive()​

isValidAmountReceive<C>(
chainIdentifier,
amountSats,
satsBaseFee,
feePPM,
receiveToken,
tokenAddress,
abortSignal?,
preFetchedPrice?,
realSwapFeeSats?): Promise<PriceInfoType>;

Defined in: atomiq-sdk/src/prices/abstract/ISwapPrice.ts:195

Checks whether the swap amounts are valid given the current market rate for a given pair

Type Parameters​

Type Parameter
C extends string

Parameters​

ParameterTypeDescription
chainIdentifierCChain identifier of the smart chain
amountSatsbigintAmount of sats (BTC) to be paid to the swap
satsBaseFeebigintBase fee in sats (BTC) as reported by the intermediary
feePPMbigintPPM fee rate as reported by the intermediary
receiveTokenbigintAmount of token to be received from the swap
tokenAddressstringToken address to be received
abortSignal?AbortSignal
preFetchedPrice?bigintAn optional price pre-fetched with preFetchPrice
realSwapFeeSats?bigint

Returns​

Promise<PriceInfoType>

Inherited from​

ICachedSwapPrice.isValidAmountReceive

isValidAmountSend()​

isValidAmountSend<C>(
chainIdentifier,
amountSats,
satsBaseFee,
feePPM,
paidToken,
tokenAddress,
abortSignal?,
preFetchedPrice?,
realSwapFeeSats?): Promise<PriceInfoType>;

Defined in: atomiq-sdk/src/prices/abstract/ISwapPrice.ts:105

Checks whether the swap amounts are valid given the current market rate for a given pair

Type Parameters​

Type Parameter
C extends string

Parameters​

ParameterTypeDescription
chainIdentifierCChain identifier of the smart chain
amountSatsbigintAmount of sats (BTC) to be received from the swap
satsBaseFeebigintBase fee in sats (BTC) as reported by the intermediary
feePPMbigintPPM fee rate as reported by the intermediary
paidTokenbigintAmount of token to be paid to the swap
tokenAddressstringToken address to be paid
abortSignal?AbortSignal
preFetchedPrice?bigintAn optional price pre-fetched with preFetchPrice
realSwapFeeSats?bigint

Returns​

Promise<PriceInfoType>

Inherited from​

ICachedSwapPrice.isValidAmountSend

preFetchPrice()​

preFetchPrice<C>(
chainIdentifier,
tokenAddress,
abortSignal?): Promise<bigint>;

Defined in: atomiq-sdk/src/prices/abstract/ISwapPrice.ts:250

Pre-fetches the pricing data for a given token, such that further calls to isValidAmountReceive or isValidAmountSend are quicker and don't need to wait for the price fetch

Type Parameters​

Type Parameter
C extends string

Parameters​

ParameterTypeDescription
chainIdentifierCChain identifier of the smart chain
tokenAddressstringToken address
abortSignal?AbortSignal

Returns​

Promise<bigint>

Inherited from​

ICachedSwapPrice.preFetchPrice

preFetchUsdPrice()​

preFetchUsdPrice(abortSignal?): Promise<number>;

Defined in: atomiq-sdk/src/prices/abstract/ISwapPrice.ts:260

Pre-fetches the Bitcoin USD price data, such that further calls to getBtcUsdValue, getTokenUsdValue or getUsdValue are quicker and don't need to wait for the price fetch

Parameters​

ParameterTypeDescription
abortSignal?AbortSignal

Returns​

Promise<number>

Inherited from​

ICachedSwapPrice.preFetchUsdPrice

recomputePriceInfoReceive()​

recomputePriceInfoReceive<C>(
chainIdentifier,
amountSats,
satsBaseFee,
feePPM,
receiveToken,
tokenAddress): PriceInfoType;

Defined in: atomiq-sdk/src/prices/abstract/ISwapPrice.ts:159

Recomputes pricing info without fetching the current price

Type Parameters​

Type Parameter
C extends string

Parameters​

ParameterTypeDescription
chainIdentifierCChain identifier of the smart chain
amountSatsbigintAmount of sats (BTC) to be paid to the swap
satsBaseFeebigintBase fee in sats (BTC) as reported by the intermediary
feePPMbigintPPM fee rate as reported by the intermediary
receiveTokenbigintAmount of token to be received from the swap
tokenAddressstringToken address to be received

Returns​

PriceInfoType

Inherited from​

ICachedSwapPrice.recomputePriceInfoReceive

recomputePriceInfoSend()​

recomputePriceInfoSend<C>(
chainIdentifier,
amountSats,
satsBaseFee,
feePPM,
paidToken,
tokenAddress): PriceInfoType;

Defined in: atomiq-sdk/src/prices/abstract/ISwapPrice.ts:69

Recomputes pricing info without fetching the current price

Type Parameters​

Type Parameter
C extends string

Parameters​

ParameterTypeDescription
chainIdentifierCChain identifier of the smart chain
amountSatsbigintAmount of sats (BTC) to be received from the swap
satsBaseFeebigintBase fee in sats (BTC) as reported by the intermediary
feePPMbigintPPM fee rate as reported by the intermediary
paidTokenbigintAmount of token to be paid to the swap
tokenAddressstringToken address to be paid

Returns​

PriceInfoType

Inherited from​

ICachedSwapPrice.recomputePriceInfoSend

shouldIgnore()​

shouldIgnore<C>(chainIdentifier, tokenAddress): boolean;

Defined in: atomiq-sdk/src/prices/abstract/ISwapPrice.ts:325

Returns whether the token should be ignored and pricing for it not calculated

Type Parameters​

Type Parameter
C extends string

Parameters​

ParameterTypeDescription
chainIdentifierCChain identifier string for the smart chain
tokenAddressstringToken address

Returns​

boolean

Throws​

if token is not found

Inherited from​

ICachedSwapPrice.shouldIgnore

fetchPrice()​

protected fetchPrice<C>(
chainIdentifier,
token,
abortSignal?): Promise<bigint>;

Defined in: atomiq-sdk/src/prices/SingleSwapPrice.ts:28

Fetch price in uSats (micro sats) for a given token against BTC

Type Parameters​

Type Parameter
C extends string

Parameters​

ParameterTypeDescription
chainIdentifierC
tokenstring
abortSignal?AbortSignal

Returns​

Promise<bigint>

token price in uSats (micro sats)

Overrides​

ICachedSwapPrice.fetchPrice

fetchUsdPrice()​

protected fetchUsdPrice(abortSignal?): Promise<number>;

Defined in: atomiq-sdk/src/prices/SingleSwapPrice.ts:46

Fetches BTC price in USD

Parameters​

ParameterTypeDescription
abortSignal?AbortSignal

Returns​

Promise<number>

token price in uSats (micro sats)

Overrides​

ICachedSwapPrice.fetchUsdPrice

getDecimals()​

protected getDecimals<C>(chainIdentifier, token): number;

Defined in: atomiq-sdk/src/prices/SingleSwapPrice.ts:35

Type Parameters​

Type Parameter
C extends string

Parameters​

ParameterType
chainIdentifierC
tokenstring

Returns​

number

Inherit Doc​

Overrides​

ICachedSwapPrice.getDecimals

getDecimalsThrowing()​

protected getDecimalsThrowing<C>(chainIdentifier, tokenAddress): number;

Defined in: atomiq-sdk/src/prices/abstract/ISwapPrice.ts:53

Gets the decimal places for a given token, returns -1 if token should be ignored & throws if token is not found

Type Parameters​

Type Parameter
C extends string

Parameters​

ParameterTypeDescription
chainIdentifierCChain identifier of the smart chain
tokenAddressstringToken address

Returns​

number

Throws​

When token is not known

Inherited from​

ICachedSwapPrice.getDecimalsThrowing

getPrice()​

protected getPrice<C>(
chainIdentifier,
tokenAddress,
abortSignal?): Promise<bigint>;

Defined in: atomiq-sdk/src/prices/abstract/ICachedSwapPrice.ts:30

Returns the price of the token in BTC uSats (microSats)

Type Parameters​

Type Parameter
C extends string

Parameters​

ParameterTypeDescription
chainIdentifierCChain identifier of the smart chain
tokenAddressstringToken address
abortSignal?AbortSignal

Returns​

Promise<bigint>

Inherited from​

ICachedSwapPrice.getPrice

getUsdPrice()​

protected getUsdPrice(abortSignal?): Promise<number>;

Defined in: atomiq-sdk/src/prices/abstract/ICachedSwapPrice.ts:64

Returns BTC price in USD (sats/USD)

Parameters​

ParameterTypeDescription
abortSignal?AbortSignal

Returns​

Promise<number>

Throws​

if token is not found

Inherited from​

ICachedSwapPrice.getUsdPrice