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
| Parameter | Type |
|---|---|
root | Swapper<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
| Parameter | Type | Description |
|---|---|---|
chainIdentifier | ChainIdentifier | Smart chain string identifier |
tx | string | Serialized 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
| Parameter | Type | Description |
|---|---|---|
chainIdentifier | ChainIdentifier | Smart chain string identifier |
tx | string | Serialized 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
| Parameter | Type | Description |
|---|---|---|
wallet | | string | IBitcoinWallet | MinimalBitcoinWalletInterface | Bitcoin 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
| Parameter | Type | Description |
|---|---|---|
lnpr | string |
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
| Parameter | Type | Description |
|---|---|---|
lnurl | string | LNURL link to check, can be either pay or withdraw type |
shouldRetry? | boolean | Optional 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
| Parameter | Type |
|---|---|
chainIdentifier | ChainIdentifier |
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
| Parameter | Type | Description |
|---|---|---|
chainIdentifier | ChainIdentifier | Smart chain to swap to |
includeGasToken? | boolean | Whether 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
| Parameter | Type |
|---|---|
wallet | | string | T[ChainIdentifier]["Signer"] | T[ChainIdentifier]["NativeSigner"] |
token | SCToken<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
| Parameter | Type | Description |
|---|---|---|
address | string | Address 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
| Parameter | Type | Description |
|---|---|---|
address | string | Address 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
| Parameter | Type | Description |
|---|---|---|
address | string | Address 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
| Parameter | Type | Description |
|---|---|---|
address | string | Address 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
| Parameter | Type | Description |
|---|---|---|
address | string | Address |
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
| Parameter | Type | Description |
|---|---|---|
addressString | string | Address 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
| Parameter | Type | Description |
|---|---|---|
addressString | string | Address to parse |
Returns
object
Address data or null if address doesn't conform to any known format
| Name | Type | Defined in |
|---|---|---|
address | string | atomiq-sdk/src/swapper/SwapperUtils.ts:304 |
amount? | TokenAmount | atomiq-sdk/src/swapper/SwapperUtils.ts:309 |
max? | TokenAmount | atomiq-sdk/src/swapper/SwapperUtils.ts:308 |
min? | TokenAmount | atomiq-sdk/src/swapper/SwapperUtils.ts:307 |
swapType | | TO_BTC | TO_BTCLN | SPV_VAULT_FROM_BTC | atomiq-sdk/src/swapper/SwapperUtils.ts:306 |
type | ChainIds<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
| Parameter | Type | Description |
|---|---|---|
chainIdentifier | ChainIdentifier |
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
| Parameter | Type | Description |
|---|---|---|
chainIdentifier | ChainIdentifier |
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
| Parameter | Type | Description |
|---|---|---|
chainIdentifier | ChainIdentifier | Smart chain identifier string |
signer | | T[ChainIdentifier]["NativeSigner"] | T[ChainIdentifier]["Signer"] | Signer to use for signing the transactions |
txs | T[ChainIdentifier]["TX"][] | An array of transactions to sign |
abortSignal? | AbortSignal | Abort 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
| Parameter | Type | Description |
|---|---|---|
chainIdentifier | ChainIdentifier | Smart chain identifier string |
txs | T[ChainIdentifier]["SignedTXType"][] | An array of already signed transactions |
abortSignal? | AbortSignal | Abort 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
| Parameter | Type | Description |
|---|---|---|
chainIdentifier | ChainIdentifier | Smart chain string identifier |
tx | T[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
| Parameter | Type | Description |
|---|---|---|
chainIdentifier | ChainIdentifier | Smart chain string identifier |
tx | T[ChainIdentifier]["TX"] | An unsigned transaction to serialize |
Returns
Promise<string>