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:606

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:584

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"]>


destinationTokenSupportsGasDrop()​

destinationTokenSupportsGasDrop<ChainIdentifier>(token): boolean;

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

Returns whether when swapping to the provided token a gas drop can be requested

Type Parameters​

Type Parameter
ChainIdentifier extends string

Parameters​

ParameterTypeDescription
tokenSCToken<ChainIdentifier>

Returns​

boolean


getBitcoinSpendableBalance()​

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

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

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:468

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:364

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:418

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: "BITCOIN" | "LIGHTNING" | ChainIds<T> | "LNURL";
}>;

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: "BITCOIN" | "LIGHTNING" | ChainIds<T> | "LNURL"; }>

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
type"BITCOIN" | "LIGHTNING" | ChainIds<T> | "LNURL"atomiq-sdk/src/swapper/SwapperUtils.ts:305

Throws​

Error in address parsing


prepareUnsignedTransactions()​

prepareUnsignedTransactions<ChainIdentifier>(chainIdentifier, txs): Promise<T[ChainIdentifier]["TX"][]>;

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

Prepares a set of unsigned transactions for signing, by adding required nonces or recent blockhashes, might also add hints of account deployment on e.g. Starknet

Type Parameters​

Type Parameter
ChainIdentifier extends string

Parameters​

ParameterTypeDescription
chainIdentifierChainIdentifierA chain for which to prepare the txs
txsT[ChainIdentifier]["TX"][]Transactions to prepare

Returns​

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


randomAddress()​

randomAddress<ChainIdentifier>(chainIdentifier): string;

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

Returns a random address for a given smart chain or bitcoin

Type Parameters​

Type Parameter
ChainIdentifier extends string

Parameters​

ParameterTypeDescription
chainIdentifier"BITCOIN" | ChainIdentifier

Returns​

string


randomSigner()​

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

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

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:521

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:540

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:595

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:573

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>


stripAddress()​

stripAddress(addressString): string;

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

Strips the URL encoding around bitcoin: and lightning: addresses, leaving just the raw address

Parameters​

ParameterTypeDescription
addressStringstringAddress to strip

Returns​

string

Raw clean address