Skip to main content

SwapperUtils<T>

Defined in: atomiq-sdk/src/swapper/SwapperUtils.ts:24

Utility class providing helper methods for address parsing, token balances, serialization and other miscellaneous things.

Type Parameters

Type Parameter
T extends MultiChain

Constructors

Constructor

new SwapperUtils<T>(root): SwapperUtils<T>;

Defined in: atomiq-sdk/src/swapper/SwapperUtils.ts:29

Parameters

ParameterType
rootSwapper<T>

Returns

SwapperUtils<T>

Properties

bitcoinNetwork

readonly bitcoinNetwork: BTC_NETWORK;

Defined in: atomiq-sdk/src/swapper/SwapperUtils.ts:26

Methods

deserializeSignedTransaction()

deserializeSignedTransaction<ChainIdentifier>(chainIdentifier, tx): Promise<T[ChainIdentifier]["SignedTXType"]>;

Defined in: atomiq-sdk/src/swapper/SwapperUtils.ts:552

Deserializes a signed smart chain transaction

Type Parameters

Type Parameter
ChainIdentifier extends string

Parameters

ParameterTypeDescription
chainIdentifierChainIdentifierSmart chain string identifier
txstringSerialized signed transaction

Returns

Promise<T[ChainIdentifier]["SignedTXType"]>


deserializeUnsignedTransaction()

deserializeUnsignedTransaction<ChainIdentifier>(chainIdentifier, tx): Promise<T[ChainIdentifier]["TX"]>;

Defined in: atomiq-sdk/src/swapper/SwapperUtils.ts:530

Deserializes an unsigned smart chain transaction

Type Parameters

Type Parameter
ChainIdentifier extends string

Parameters

ParameterTypeDescription
chainIdentifierChainIdentifierSmart chain string identifier
txstringSerialized unsigned transaction

Returns

Promise<T[ChainIdentifier]["TX"]>


getBitcoinSpendableBalance()

getBitcoinSpendableBalance(
wallet,
targetChain?,
options?): Promise<{
balance: TokenAmount;
feeRate: number;
}>;

Defined in: atomiq-sdk/src/swapper/SwapperUtils.ts:363

Returns the spendable balance of a bitcoin wallet

Parameters

ParameterTypeDescription
wallet| string | IBitcoinWallet | MinimalBitcoinWalletInterfaceBitcoin wallet to check the spendable balance for, can either be a simple bitcoin address string or a wallet object
targetChain?ChainIds<T>Destination smart chain for the swap, the ensures proper spendable balance is estimated taking into consideration different swap primitives available on different chains
options?{ feeRate?: number; gasDrop?: boolean; minFeeRate?: number; }Additional options
options.feeRate?number-
options.gasDrop?boolean-
options.minFeeRate?number-

Returns

Promise<{ balance: TokenAmount; feeRate: number; }>


getLightningInvoiceValue()

getLightningInvoiceValue(lnpr): bigint;

Defined in: atomiq-sdk/src/swapper/SwapperUtils.ts:115

Returns satoshi value of BOLT11 bitcoin lightning invoice WITH AMOUNT, returns null otherwise

Parameters

ParameterTypeDescription
lnprstring

Returns

bigint


getLNURLTypeAndData()

getLNURLTypeAndData(lnurl, shouldRetry?): Promise<
| LNURLPay
| LNURLWithdraw>;

Defined in: atomiq-sdk/src/swapper/SwapperUtils.ts:106

Returns type and data about an LNURL

Parameters

ParameterTypeDescription
lnurlstringLNURL link to check, can be either pay or withdraw type
shouldRetry?booleanOptional whether HTTP requests should retried on failure

Returns

Promise< | LNURLPay | LNURLWithdraw>


getNativeToken()

getNativeToken<ChainIdentifier>(chainIdentifier): SCToken<ChainIdentifier>;

Defined in: atomiq-sdk/src/swapper/SwapperUtils.ts:450

Returns the address of the native currency of the smart chain

Type Parameters

Type Parameter
ChainIdentifier extends string

Parameters

ParameterType
chainIdentifierChainIdentifier

Returns

SCToken<ChainIdentifier>


getRandomSpvVaultPsbt()

getRandomSpvVaultPsbt<ChainIdentifier>(chainIdentifier, includeGasToken?): Transaction;

Defined in: atomiq-sdk/src/swapper/SwapperUtils.ts:348

Returns a random PSBT that can be used for fee estimation for SPV vault (UTXO-controlled vault) based swaps SwapType.SPV_VAULT_FROM_BTC, the last output (the LP output) is omitted to allow for coinselection algorithm to determine maximum sendable amount there

Type Parameters

Type Parameter
ChainIdentifier extends string

Parameters

ParameterTypeDescription
chainIdentifierChainIdentifierSmart chain to swap to
includeGasToken?booleanWhether to return the PSBT also with the gas token amount (increases the vSize by 8)

Returns

Transaction


getSpendableBalance()

getSpendableBalance<ChainIdentifier>(
wallet,
token,
options?): Promise<TokenAmount>;

Defined in: atomiq-sdk/src/swapper/SwapperUtils.ts:402

Returns the maximum spendable balance of the smart chain wallet, deducting the fee needed to initiate a swap for native balances

Type Parameters

Type Parameter
ChainIdentifier extends string

Parameters

ParameterType
wallet| string | T[ChainIdentifier]["Signer"] | T[ChainIdentifier]["NativeSigner"]
tokenSCToken<ChainIdentifier>
options?{ feeMultiplier?: number; feeRate?: any; }
options.feeMultiplier?number
options.feeRate?any

Returns

Promise<TokenAmount>


isLightningInvoice()

isLightningInvoice(address): boolean;

Defined in: atomiq-sdk/src/swapper/SwapperUtils.ts:56

Checks whether an address is a valid BOLT11 bitcoin lightning invoice

Parameters

ParameterTypeDescription
addressstringAddress to check

Returns

boolean


isValidBitcoinAddress()

isValidBitcoinAddress(address): boolean;

Defined in: atomiq-sdk/src/swapper/SwapperUtils.ts:69

Checks whether an address is a valid bitcoin address

Parameters

ParameterTypeDescription
addressstringAddress to check

Returns

boolean


isValidLightningInvoice()

isValidLightningInvoice(address): boolean;

Defined in: atomiq-sdk/src/swapper/SwapperUtils.ts:83

Checks whether an address is a valid BOLT11 bitcoin lightning invoice WITH AMOUNT

Parameters

ParameterTypeDescription
addressstringAddress to check

Returns

boolean


isValidLNURL()

isValidLNURL(address): boolean;

Defined in: atomiq-sdk/src/swapper/SwapperUtils.ts:96

Checks whether an address is a valid LNURL (no checking on type is performed)

Parameters

ParameterTypeDescription
addressstringAddress to check

Returns

boolean


isValidSmartChainAddress()

isValidSmartChainAddress(address, chainId?): boolean;

Defined in: atomiq-sdk/src/swapper/SwapperUtils.ts:40

Checks whether a passed address is a valid address on the smart chain

Parameters

ParameterTypeDescription
addressstringAddress
chainId?ChainIds<T>Smart chain identifier string to check the address for

Returns

boolean


parseAddress()

parseAddress(addressString): Promise<{
address: string;
amount?: TokenAmount;
lnurl?: | LNURLPay
| LNURLWithdraw;
max?: TokenAmount;
min?: TokenAmount;
swapType: | FROM_BTCLN
| TO_BTC
| TO_BTCLN
| SPV_VAULT_FROM_BTC;
type: ChainIds<T> | "BITCOIN" | "LNURL" | "LIGHTNING";
}>;

Defined in: atomiq-sdk/src/swapper/SwapperUtils.ts:257

General parser for bitcoin addresses, LNURLs, lightning invoices, smart chain addresses. Also fetches LNURL data (hence async and returns Promise).

Parameters

ParameterTypeDescription
addressStringstringAddress to parse

Returns

Promise<{ address: string; amount?: TokenAmount; lnurl?: | LNURLPay | LNURLWithdraw; max?: TokenAmount; min?: TokenAmount; swapType: | FROM_BTCLN | TO_BTC | TO_BTCLN | SPV_VAULT_FROM_BTC; type: ChainIds<T> | "BITCOIN" | "LNURL" | "LIGHTNING"; }>

Address data or null if address doesn't conform to any known format

Throws

Error in address parsing


parseAddressSync()

parseAddressSync(addressString): object;

Defined in: atomiq-sdk/src/swapper/SwapperUtils.ts:303

Synchronous general parser for bitcoin addresses, LNURLs, lightning invoices, smart chain addresses, doesn't fetch LNURL data, returns swapType: null instead to prevent returning a Promise

Parameters

ParameterTypeDescription
addressStringstringAddress to parse

Returns

object

Address data or null if address doesn't conform to any known format

NameTypeDefined in
addressstringatomiq-sdk/src/swapper/SwapperUtils.ts:304
amount?TokenAmountatomiq-sdk/src/swapper/SwapperUtils.ts:309
max?TokenAmountatomiq-sdk/src/swapper/SwapperUtils.ts:308
min?TokenAmountatomiq-sdk/src/swapper/SwapperUtils.ts:307
swapType| TO_BTC | TO_BTCLN | SPV_VAULT_FROM_BTCatomiq-sdk/src/swapper/SwapperUtils.ts:306
typeChainIds<T> | "BITCOIN" | "LNURL" | "LIGHTNING"atomiq-sdk/src/swapper/SwapperUtils.ts:305

Throws

Error in address parsing


randomAddress()

randomAddress<ChainIdentifier>(chainIdentifier): string;

Defined in: atomiq-sdk/src/swapper/SwapperUtils.ts:470

Returns a random address for a given smart chain

Type Parameters

Type Parameter
ChainIdentifier extends string

Parameters

ParameterTypeDescription
chainIdentifierChainIdentifier

Returns

string


randomSigner()

randomSigner<ChainIdentifier>(chainIdentifier): T[ChainIdentifier]["Signer"];

Defined in: atomiq-sdk/src/swapper/SwapperUtils.ts:460

Returns a random signer for a given smart chain

Type Parameters

Type Parameter
ChainIdentifier extends string

Parameters

ParameterTypeDescription
chainIdentifierChainIdentifier

Returns

T[ChainIdentifier]["Signer"]


sendAndConfirm()

sendAndConfirm<ChainIdentifier>(
chainIdentifier,
signer,
txs,
abortSignal?,
onBeforePublish?): Promise<string[]>;

Defined in: atomiq-sdk/src/swapper/SwapperUtils.ts:484

Signs and broadcasts the supplied smart chain transaction

Type Parameters

Type Parameter
ChainIdentifier extends string

Parameters

ParameterTypeDescription
chainIdentifierChainIdentifierSmart chain identifier string
signer| T[ChainIdentifier]["NativeSigner"] | T[ChainIdentifier]["Signer"]Signer to use for signing the transactions
txsT[ChainIdentifier]["TX"][]An array of transactions to sign
abortSignal?AbortSignalAbort signal
onBeforePublish?(txId, rawTx) => Promise<void>Callback invoked before a transaction is sent (invoked for every transaction to be sent)

Returns

Promise<string[]>


sendSignedAndConfirm()

sendSignedAndConfirm<ChainIdentifier>(
chainIdentifier,
txs,
abortSignal?,
onBeforePublish?): Promise<string[]>;

Defined in: atomiq-sdk/src/swapper/SwapperUtils.ts:503

Broadcasts already signed smart chain transactions

Type Parameters

Type Parameter
ChainIdentifier extends string

Parameters

ParameterTypeDescription
chainIdentifierChainIdentifierSmart chain identifier string
txsT[ChainIdentifier]["SignedTXType"][]An array of already signed transactions
abortSignal?AbortSignalAbort signal
onBeforePublish?(txId, rawTx) => Promise<void>Callback invoked before a transaction is sent (invoked for every transaction to be sent)

Returns

Promise<string[]>


serializeSignedTransaction()

serializeSignedTransaction<ChainIdentifier>(chainIdentifier, tx): Promise<string>;

Defined in: atomiq-sdk/src/swapper/SwapperUtils.ts:541

Serializes a signed smart chain transaction

Type Parameters

Type Parameter
ChainIdentifier extends string

Parameters

ParameterTypeDescription
chainIdentifierChainIdentifierSmart chain string identifier
txT[ChainIdentifier]["SignedTXType"]A signed transaction to serialize

Returns

Promise<string>


serializeUnsignedTransaction()

serializeUnsignedTransaction<ChainIdentifier>(chainIdentifier, tx): Promise<string>;

Defined in: atomiq-sdk/src/swapper/SwapperUtils.ts:519

Serializes an unsigned smart chain transaction

Type Parameters

Type Parameter
ChainIdentifier extends string

Parameters

ParameterTypeDescription
chainIdentifierChainIdentifierSmart chain string identifier
txT[ChainIdentifier]["TX"]An unsigned transaction to serialize

Returns

Promise<string>