SolanaSwapProgram
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:53
Solana swap (escrow manager) program representation handling PrTLC (on-chain) and HTLC (lightning) based swaps.
Extends
SolanaProgramBase<SwapProgram>
Implements
SwapContract<SolanaSwapData,SolanaTx,SolanaPreFetchData,SolanaPreFetchVerification,SolanaSigner,"SOLANA">
Constructors
Constructor
new SolanaSwapProgram(
chainInterface,
btcRelay,
storage,
programAddress?): SolanaSwapProgram;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:152
Parameters
| Parameter | Type |
|---|---|
chainInterface | SolanaChainInterface |
btcRelay | SolanaBtcRelay<any> |
storage | IStorageManager<StoredDataAccount> |
programAddress? | string |
Returns
SolanaSwapProgram
Overrides
SolanaProgramBase<SwapProgram>.constructor
Properties
chainId
readonly chainId: "SOLANA" = "SOLANA";
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:101
Chain identifier string
Implementation of
claimWithSecretTimeout
readonly claimWithSecretTimeout: number = 45;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:105
A timeout to be used when claiming the escrow with a secret (HTLC), recommended to wait at least this long after sending a transaction before considering it a failure
Implementation of
SwapContract.claimWithSecretTimeout
claimWithTxDataTimeout
readonly claimWithTxDataTimeout: number = 120;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:109
A timeout to be used when claiming the escrow with bitcoin transaction data (PrTLC), recommended to wait at least this long after sending a transaction before considering it a failure
Implementation of
SwapContract.claimWithTxDataTimeout
ESCROW_STATE_RENT_EXEMPT
readonly ESCROW_STATE_RENT_EXEMPT: 2658720 = 2658720;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:69
Rent-exempt amount (lamports) for escrow state accounts.
program
program: Program<T>;
Defined in: atomiq-chain-solana/src/solana/program/SolanaProgramBase.ts:21
Inherited from
SolanaProgramBase.program
refundTimeout
readonly refundTimeout: number = 45;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:113
A timeout to be used when refunding the escrow, recommended to wait at least this long after sending a transaction before considering it a failure
Implementation of
Methods
claimDeposits()
claimDeposits(signer): Promise<{
count: number;
totalValue: bigint;
txIds: string[];
}>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:184
Claims the funds from claimable deposits
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | SolanaSigner | Owner of the deposits, transaction signer |
Returns
Promise<{
count: number;
totalValue: bigint;
txIds: string[];
}>
Implementation of
claimWithSecret()
claimWithSecret(
signer,
swapData,
secret,
checkExpiry?,
initAta?,
txOptions?): Promise<string>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:785
Signs & sends transactions required for claiming an HTLC swap
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | SolanaSigner | Signer for which the transaction should be created (doesn't need to match the claimer) |
swapData | SolanaSwapData | Swap to claim |
secret | string | Secret pre-image that hashes to the swap hash |
checkExpiry? | boolean | Whether to check expiration of the swap before executing transactions |
initAta? | boolean | Whether to initialize a token account if it doesn't exist (applies to e.g. Solana, with token specific ATAs) |
txOptions? | TransactionConfirmationOptions | Transaction options |
Returns
Promise<string>
Implementation of
claimWithTxData()
claimWithTxData(
signer,
swapData,
tx,
requiredConfirmations,
vout,
commitedHeader?,
synchronizer?,
initAta?,
txOptions?): Promise<string>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:801
Signs & sends transactions required for claiming an on-chain PTLC (proof-time locked contract) swap
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | SolanaSigner | Signer for which the transaction should be created (doesn't need to match the claimer) |
swapData | SolanaSwapData | Swap to claim |
tx | { blockhash: string; confirmations: number; height: number; hex: string; txid: string; } | Bitcoin transaction containing the required output |
tx.blockhash | string | - |
tx.confirmations | number | - |
tx.height | number | - |
tx.hex? | string | - |
tx.txid? | string | - |
requiredConfirmations? | number | Required confirmations for the escrow to be claimed |
vout? | number | Bitcoin tx's output index of the required output |
commitedHeader? | SolanaBtcStoredHeader | Optional already retrieved stored header to use for proving |
synchronizer? | RelaySynchronizer<any, SolanaTx, any> | Optiona synchronizer to be used if BTC relay contract is not synced up to the required blockheight |
initAta? | boolean | Whether to initialize a token account if it doesn't exist (applies to e.g. Solana, with token specific ATAs) |
txOptions? | TransactionConfirmationOptions | Transaction options |
Returns
Promise<string>
Implementation of
createSwapData()
createSwapData(
type,
offerer,
claimer,
token,
amount,
claimHash,
sequence,
expiry,
payIn,
payOut,
securityDeposit,
claimerBounty,
depositToken?): Promise<SolanaSwapData>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:612
Create a swap data for this given chain
Parameters
| Parameter | Type | Description |
|---|---|---|
type | ChainSwapType | Type of the swap |
offerer | string | Offerer address |
claimer | string | Claimer addres |
token | string | Token to use for the swap |
amount | bigint | Amount of tokens for the swap |
claimHash | string | Payment hash identifying the swap |
sequence | bigint | Swap sequence uniquelly defining this swap |
expiry | bigint | Expiration of the swap |
payIn | boolean | Whether the swap is payIn (offerer paying to the contract, or not payIn offerer using funds in his LP vault) |
payOut | boolean | Whether the swap is payOut (claimer getting the funds to his on-chain address, or no payOut claimer getting his funds into his LP vault) |
securityDeposit | bigint | Security deposit for the swap paid by the claimer (options premium) |
claimerBounty | bigint | Bounty for the claimer of the swap (used for watchtowers) |
depositToken? | string | Token to be used for security deposit and claimer bounty |
Returns
Promise<SolanaSwapData>
Implementation of
deposit()
deposit(
signer,
token,
amount,
txOptions?): Promise<string>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:920
Deposits funds to the trading LP vault
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | SolanaSigner | Signer to sign the deposit with |
token | string | Token to deposit |
amount | bigint | Amount of the token to deposit |
txOptions? | TransactionConfirmationOptions | Transaction options |
Returns
Promise<string>
Implementation of
getBalance()
getBalance(
signer,
tokenAddress,
inContract): Promise<bigint>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:660
Returns the token balance of a given signer's address
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | string | Address to check the balance of |
tokenAddress | string | Token |
inContract | boolean | Whether we are checking the liquidity deposited into the LP vault or just on-chain balance |
Returns
Promise<bigint>
Implementation of
getClaimableDeposits()
getClaimableDeposits(signer): Promise<{
count: number;
totalValue: bigint;
}>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:177
Returns the amount of deposits (in native token) that we can claim back (this is useful for SVM chains with the PDAs requiring you to put some deposit in order to store data)
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | string | Signer to check the claimable deposits for |
Returns
Promise<{
count: number;
totalValue: bigint;
}>
Implementation of
SwapContract.getClaimableDeposits
getClaimFee()
getClaimFee(
signer,
swapData,
feeRate?): Promise<bigint>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:976
Returns the fee in native token base units to claim the swap
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | string | Signer claiming the swap |
swapData | SolanaSwapData | Swap to claim |
feeRate? | string | Optional fee rate (fetched on-demand if not provided) |
Returns
Promise<bigint>
Implementation of
getClaimFeeRate()
getClaimFeeRate(signer, swapData): Promise<string>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:969
Returns the fee rate for claiming a swap as a specific signer
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | string | Signer claiming the swap |
swapData | SolanaSwapData | Swap to claim |
Returns
Promise<string>
Implementation of
getClaimHashStatus()
getClaimHashStatus(claimHash): Promise<SwapCommitStateType>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:422
Parameters
| Parameter | Type |
|---|---|
claimHash | string |
Returns
Promise<SwapCommitStateType>
Inherit Doc
getCommitedData()
getCommitedData(claimHashHex): Promise<SolanaSwapData>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:454
Parameters
| Parameter | Type |
|---|---|
claimHashHex | string |
Returns
Promise<SolanaSwapData>
Inherit Doc
getCommitFee()
getCommitFee(
signer,
swapData,
feeRate?): Promise<bigint>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:990
Returns the fee in native token base units to commit (initiate) the swap
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | string | |
swapData | SolanaSwapData | Swap to initiate |
feeRate? | string | Optional fee rate (fetched on-demand if not provided) |
Returns
Promise<bigint>
Implementation of
getCommitStatus()
getCommitStatus(signer, data): Promise<SwapCommitState>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:343
Returns the full status of the swap, expiry is handled by the isExpired function so also requires a signer/sender
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | string | |
data | SolanaSwapData |
Returns
Promise<SwapCommitState>
Implementation of
getCommitStatuses()
getCommitStatuses(request): Promise<{
[p: string]: SwapCommitState;
}>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:399
Returns the full status of the passed swaps, expiry is handled by the isExpired function so also requires a signer/sender
Parameters
| Parameter | Type | Description |
|---|---|---|
request | object[] |
Returns
Promise<{
[p: string]: SwapCommitState;
}>
Implementation of
SwapContract.getCommitStatuses
getDataSignature()
getDataSignature(signer, data): Promise<string>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:249
Signs the given data with the provided signer
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | SolanaSigner | Signer to sign the message |
data | Buffer | Data to sign |
Returns
Promise<string>
Implementation of
getExtraData()
getExtraData(
outputScript,
amount,
confirmations,
nonce?): Buffer;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:1018
Returns additional data to be included in the data-carrier (extra data) part of the PrTLC escrow initialization this provides helpers for 3rd party claimers
Parameters
| Parameter | Type | Description |
|---|---|---|
outputScript | Buffer | A bitcoin output script required in the bitcoin transaction to claim the escrow |
amount | bigint | An amount of bitcoin (in satoshis) required in the bitcoin transaction to claim the escrow |
confirmations | number | Confirmations of the bitcoin transaction required for claiming the escrow |
nonce? | bigint | An optional nonce applied to the transaction |
Returns
Buffer
Implementation of
getHashForHtlc()
getHashForHtlc(swapHash): Buffer;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:319
Compute the claim hash for an HTLC swap with a given swap hash
Parameters
| Parameter | Type | Description |
|---|---|---|
swapHash | Buffer |
Returns
Buffer
Implementation of
getHashForOnchain()
getHashForOnchain(
outputScript,
amount,
confirmations,
nonce?): Buffer;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:306
Compute the claim hash for a given transaction output, either nonced or just output locked
Parameters
| Parameter | Type | Description |
|---|---|---|
outputScript | Buffer | Bitcoin output locking script |
amount | bigint | Amount of sats in the output |
confirmations | number | Required number of confirmations for the swap to be claimable |
nonce? | bigint | Nonce to be used as replay protection |
Returns
Buffer
Implementation of
SwapContract.getHashForOnchain
getHashForTxId()
getHashForTxId(txId, confirmations): Buffer;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:330
Compute the claim hash for a given transaction id
Parameters
| Parameter | Type | Description |
|---|---|---|
txId | string | Bitcoin transaction ID |
confirmations | number | Required number of confirmations for the swap to be claimable |
Returns
Buffer
Implementation of
getHistoricalSwaps()
getHistoricalSwaps(signer, startBlockheight?): Promise<{
latestBlockheight?: number;
swaps: {
[escrowHash: string]: object;
};
}>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:470
Returns the full history as fetched from the chain for a specific signer
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | string | |
startBlockheight? | number |
Returns
Promise<{
latestBlockheight?: number;
swaps: {
[escrowHash: string]: object;
};
}>
Implementation of
SwapContract.getHistoricalSwaps
getInitAuthorizationExpiry()
getInitAuthorizationExpiry(
swapData,
sig,
preFetchedData?): Promise<number>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:221
Returns the expiry timestamp (UNIX milliseconds) of the authorization
Parameters
| Parameter | Type | Description |
|---|---|---|
swapData | SolanaSwapData | Swap |
sig | SignatureData | Signature data |
preFetchedData? | SolanaPreFetchVerification | Optional pre-fetched data required for signature validation |
Returns
Promise<number>
Implementation of
SwapContract.getInitAuthorizationExpiry
getInitFeeRate()
getInitFeeRate(
offerer?,
claimer?,
token?,
claimHash?): Promise<string>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:949
Returns the fee rate for committing (initializing) a non-payIn swap
Parameters
| Parameter | Type | Description |
|---|---|---|
offerer? | string | Offerer of the swap |
claimer? | string | Claimer of the swap |
token? | string | Token to be swapped |
claimHash? | string | Optional payment hash |
Returns
Promise<string>
Implementation of
getInitPayInFeeRate()
getInitPayInFeeRate(
offerer?,
claimer?,
token?,
claimHash?): Promise<string>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:936
Returns the fee rate for committing (initializing) a payIn swap
Parameters
| Parameter | Type | Description |
|---|---|---|
offerer? | string | Offerer of the swap |
claimer? | string | Claimer of the swap |
token? | string | Token to be swapped |
claimHash? | string | Optional payment hash |
Returns
Promise<string>
Implementation of
SwapContract.getInitPayInFeeRate
getInitSignature()
getInitSignature(
signer,
swapData,
authorizationTimeout,
preFetchedBlockData?,
feeRate?): Promise<SignatureData>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:207
Generates the initialization signature
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | SolanaSigner | Signer to use for signing the message |
swapData | SolanaSwapData | Swap to sign |
authorizationTimeout | number | Timeout of the authorization |
preFetchedBlockData? | SolanaPreFetchData | Optional pre-fetched data required for creating the signature |
feeRate? | string | Optional fee rate to use for the authorization |
Returns
Promise<SignatureData>
Implementation of
getIntermediaryBalance()
getIntermediaryBalance(address, token): Promise<bigint>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:694
Returns intermediary vault balance for a specific token.
Parameters
| Parameter | Type | Description |
|---|---|---|
address | PublicKey | Intermediary address |
token | PublicKey | Token mint |
Returns
Promise<bigint>
getIntermediaryData()
getIntermediaryData(address, token): Promise<{
balance: bigint;
reputation: IntermediaryReputationType;
}>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:674
Parameters
| Parameter | Type |
|---|---|
address | string |
token | string |
Returns
Promise<{
balance: bigint;
reputation: IntermediaryReputationType;
}>
Inherit Doc
getIntermediaryReputation()
getIntermediaryReputation(address, token): Promise<IntermediaryReputationType>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:684
Returns intermediary's reputation for a given token swaps
Parameters
| Parameter | Type | Description |
|---|---|---|
address | string | |
token | string |
Returns
Promise<IntermediaryReputationType>
Implementation of
SwapContract.getIntermediaryReputation
getRawClaimFee()
getRawClaimFee(
signer,
swapData,
feeRate?): Promise<bigint>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:983
Returns raw fee (not including any refunds we might get that would make the getClaimFee negative) for claiming the swap
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | string | Signer claiming the swap |
swapData | SolanaSwapData | Swap to claim |
feeRate? | string | Optional fee rate (fetched on-demand if not provided) |
Returns
Promise<bigint>
Implementation of
getRawCommitFee()
getRawCommitFee(
signer,
swapData,
feeRate?): Promise<bigint>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:997
Returns raw fee (not including any account deposits we might need) for initiating the swap
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | string | |
swapData | SolanaSwapData | Swap to initiate |
feeRate? | string | Optional fee rate (fetched on-demand if not provided) |
Returns
Promise<bigint>
Implementation of
getRawRefundFee()
getRawRefundFee(
signer,
swapData,
feeRate?): Promise<bigint>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:1011
Returns raw fee (not including any refunds we might get that would make the getRefundFee negative) for claiming the swap
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | string | |
swapData | SolanaSwapData | Swap to claim |
feeRate? | string | Optional fee rate (fetched on-demand if not provided) |
Returns
Promise<bigint>
Implementation of
getRefundFee()
getRefundFee(
signer,
swapData,
feeRate?): Promise<bigint>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:1004
Returns the fee in native token base units to refund the swap
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | string | |
swapData | SolanaSwapData | Swap to refund |
feeRate? | string | Optional fee rate (fetched on-demand if not provided) |
Returns
Promise<bigint>
Implementation of
getRefundFeeRate()
getRefundFeeRate(swapData): Promise<string>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:962
Returns the fee rate for refunding a swap
Parameters
| Parameter | Type | Description |
|---|---|---|
swapData | SolanaSwapData | Swap to refund |
Returns
Promise<string>
Implementation of
getRefundSignature()
getRefundSignature(
signer,
swapData,
authorizationTimeout): Promise<SignatureData>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:235
Generates the refund signature for a given swap allowing the offerer to refund before expiration
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | SolanaSigner | Signer to use for signing the message (must be the same as offerer in swap data) |
swapData | SolanaSwapData | Swap to refund |
authorizationTimeout | number | Timeout of the provided refund authorization |
Returns
Promise<SignatureData>
Implementation of
SwapContract.getRefundSignature
init()
init(
signer,
swapData,
signature,
skipChecks?,
txOptions?): Promise<string>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:863
Signs & sends transactions for initializing a non-payIn swap (BTC -> SC)
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | SolanaSigner | Signer to use for the transaction (must match claimer in swap data) |
swapData | SolanaSwapData | Swap to init |
signature | SignatureData | Signature data from the offerer |
skipChecks? | boolean | Whether to skip verification of the signature & checking if the swap is already committed |
txOptions? | TransactionConfirmationOptions | Transaction options |
Returns
Promise<string>
Implementation of
initAndClaimWithSecret()
initAndClaimWithSecret(
signer,
swapData,
signature,
secret,
skipChecks?,
txOptions?): Promise<string[]>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:886
Signs & sends transactions for initializing and instantly (upon init confirmation) claiming the HTLC, used for BTC-LN -> SC swaps
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | SolanaSigner | Signer to use for the transaction (must match claimer in swap data) |
swapData | SolanaSwapData | Swap to process |
signature | SignatureData | Signature data from the offerer |
secret | string | Secret pre-image that hashes to the swap hash |
skipChecks? | boolean | Whether to skip verification of the signature & checking if the swap is already committed |
txOptions? | TransactionConfirmationOptions | Transaction options |
Returns
Promise<string[]>
Implementation of
SwapContract.initAndClaimWithSecret
isClaimable()
isClaimable(signer, data): Promise<boolean>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:265
Checks whether a swap is claimable for the signer, i.e. it is not expired yet and is committed on-chain
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | string | |
data | SolanaSwapData |
Returns
Promise<boolean>
Implementation of
isCommited()
isCommited(swapData): Promise<boolean>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:274
Checks whether a given swap is committed on chain (initialized)
Parameters
| Parameter | Type | Description |
|---|---|---|
swapData | SolanaSwapData |
Returns
Promise<boolean>
Implementation of
isExpired()
isExpired(signer, data): Promise<boolean>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:286
Checks whether a swap is already expired, swap expires a bit sooner for the claimer & a bit later for offerer, this is used to account for possible on-chain time skew
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | string | Signer to use for checking the expiry |
data | SolanaSwapData | Swap to check |
Returns
Promise<boolean>
Implementation of
isInitAuthorizationExpired()
isInitAuthorizationExpired(swapData, sig): Promise<boolean>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:228
Checks whether a given init signature is already expired
Parameters
| Parameter | Type | Description |
|---|---|---|
swapData | SolanaSwapData | Swap |
sig | SignatureData | Signature data |
Returns
Promise<boolean>
Implementation of
SwapContract.isInitAuthorizationExpired
isRequestRefundable()
isRequestRefundable(signer, data): Promise<boolean>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:296
Checks whether a given swap is refundable by us, i.e. it is already expired, we are offerer & swap is committed on-chain
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | string | |
data | SolanaSwapData |
Returns
Promise<boolean>
Implementation of
SwapContract.isRequestRefundable
isValidDataSignature()
isValidDataSignature(
data,
signature,
publicKey): Promise<boolean>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:256
Checks whether a provided data is signature is valid
Parameters
| Parameter | Type | Description |
|---|---|---|
data | Buffer | Data to sign |
signature | string | Signature |
publicKey | string | Public key of the signer |
Returns
Promise<boolean>
Implementation of
SwapContract.isValidDataSignature
isValidInitAuthorization()
isValidInitAuthorization(
signer,
swapData,
sig,
feeRate?,
preFetchedData?): Promise<Buffer<ArrayBufferLike>>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:214
Checks whether a signature is a valid initialization signature for a given swap
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | string | Address of the sender of the transaction (must be either offerer or claimer) |
swapData | SolanaSwapData | Swap to initialize |
sig | SignatureData | Signature data |
feeRate? | string | Fee rate used for the authorization |
preFetchedData? | SolanaPreFetchVerification | Optional pre-fetched data required for signature validation |
Returns
Promise<Buffer<ArrayBufferLike>>
The message being signed if valid or null if invalid signature
Implementation of
SwapContract.isValidInitAuthorization
isValidRefundAuthorization()
isValidRefundAuthorization(swapData, sig): Promise<Buffer<ArrayBufferLike>>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:242
Checks whether a given refund signature is valid
Parameters
| Parameter | Type | Description |
|---|---|---|
swapData | SolanaSwapData | Swap to refund |
sig | SignatureData | Signature received from the claimer |
Returns
Promise<Buffer<ArrayBufferLike>>
Implementation of
SwapContract.isValidRefundAuthorization
preFetchBlockDataForSignatures()
preFetchBlockDataForSignatures(): Promise<SolanaPreFetchData>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:200
Pre-fetches data required for creating init signature
Returns
Promise<SolanaPreFetchData>
Implementation of
SwapContract.preFetchBlockDataForSignatures
preFetchForInitSignatureVerification()
preFetchForInitSignatureVerification(data): Promise<SolanaPreFetchVerification>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:193
Pre-fetches data required for init signature verification
Parameters
| Parameter | Type | Description |
|---|---|---|
data | SolanaPreFetchData |
Returns
Promise<SolanaPreFetchVerification>
Implementation of
SwapContract.preFetchForInitSignatureVerification
refund()
refund(
signer,
swapData,
check?,
initAta?,
txOptions?): Promise<string>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:828
Signs & sends transactions for refunding a timed out swap
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | SolanaSigner | Signer to use for the transaction (must match offerer in swap data) |
swapData | SolanaSwapData | Swap to refund |
check? | boolean | Whether to check if the swap contract still exists on-chain |
initAta? | boolean | Whether to initialize a token account if it doesn't exist (applies to e.g. Solana, with token specific ATAs) |
txOptions? | TransactionConfirmationOptions | Transaction options |
Returns
Promise<string>
Implementation of
refundWithAuthorization()
refundWithAuthorization(
signer,
swapData,
signature,
check?,
initAta?,
txOptions?): Promise<string>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:845
Signs & sends transactions for refunding a swap with a valid refund signature from the claimer
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | SolanaSigner | Signer to use for the transaction (must match offerer in swap data) |
swapData | SolanaSwapData | Swap to refund |
signature | SignatureData | Refund signature received from the claimer |
check? | boolean | Whether to check if the swap contract still exists on-chain |
initAta? | boolean | Whether to initialize a token account if it doesn't exist (applies to e.g. Solana, with token specific ATAs) |
txOptions? | TransactionConfirmationOptions | Transaction options |
Returns
Promise<string>
Implementation of
SwapContract.refundWithAuthorization
start()
start(): Promise<void>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:170
Initializes the swap contract
Returns
Promise<void>
Implementation of
txsClaimWithSecret()
txsClaimWithSecret(
signer,
swapData,
secret,
checkExpiry?,
initAta?,
feeRate?,
skipAtaCheck?): Promise<SolanaTx[]>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:703
Returns the unsigned transactions required for claiming an HTLC swap
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | string | SolanaSigner | Signer for which the transaction should be created (doesn't need to match the claimer) |
swapData | SolanaSwapData | Swap to claim |
secret | string | Secret pre-image that hashes to the swap hash |
checkExpiry? | boolean | Whether to check expiration of the swap before returning the transactions |
initAta? | boolean | Whether to initialize a token account if it doesn't exist (applies to e.g. Solana, with token specific ATAs) |
feeRate? | string | Fee rate to use for the transactions |
skipAtaCheck? | boolean | Whether to skip checking if token account exists |
Returns
Promise<SolanaTx[]>
Implementation of
SwapContract.txsClaimWithSecret
txsClaimWithTxData()
txsClaimWithTxData(
signer,
swapData,
tx,
requiredConfirmations,
vout,
commitedHeader?,
synchronizer?,
initAta?,
feeRate?): Promise<SolanaTx[]>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:718
Returns the unsigned transactions required for claiming an on-chain PTLC (proof-time locked contract) swap
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | string | SolanaSigner | Signer for which the transaction should be created (doesn't need to match the claimer) |
swapData | SolanaSwapData | Swap to claim |
tx | { blockhash: string; confirmations: number; height: number; hex: string; txid: string; } | Bitcoin transaction containing the required output |
tx.blockhash | string | - |
tx.confirmations | number | - |
tx.height | number | - |
tx.hex? | string | - |
tx.txid? | string | - |
requiredConfirmations? | number | Required confirmations for the escrow to be claimed |
vout? | number | Bitcoin tx's output index of the required output |
commitedHeader? | SolanaBtcStoredHeader | Optional already retrieved stored header to use for proving |
synchronizer? | RelaySynchronizer<any, SolanaTx, any> | Optiona synchronizer to be used if BTC relay contract is not synced up to the required blockheight |
initAta? | boolean | Whether to initialize a token account if it doesn't exist (applies to e.g. Solana, with token specific ATAs) |
feeRate? | string | Fee rate to use for the transactions |
Returns
Promise<SolanaTx[]>
Implementation of
SwapContract.txsClaimWithTxData
txsDeposit()
txsDeposit(
signer,
token,
amount,
feeRate?): Promise<SolanaTx[]>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:776
Returns transactions required for signer to deposit funds to the trading LP vault
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | string | Owner of the funds |
token | string | Token to deposit |
amount | bigint | Amount of the token to deposit |
feeRate? | string | Optional fee rate to use for the transaction (fetched on-demand if not provided) |
Returns
Promise<SolanaTx[]>
Implementation of
txsInit()
txsInit(
sender,
swapData,
sig,
skipChecks?,
feeRate?): Promise<SolanaTx[]>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:756
Returns the unsigned transactions required for initializing a non-payIn swap (BTC -> SC)
Parameters
| Parameter | Type | Description |
|---|---|---|
sender | string | Transaction sender address, must be either offerer or claimer |
swapData | SolanaSwapData | Swap to init |
sig | SignatureData | Signature data from the offerer |
skipChecks? | boolean | Whether to skip verification of the signature & checking if the swap is already committed |
feeRate? | string | Fee rate to use for the transaction |
Returns
Promise<SolanaTx[]>
Implementation of
txsRefund()
txsRefund(
signer,
swapData,
check?,
initAta?,
feeRate?): Promise<SolanaTx[]>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:740
Returns the transactions for refunding a timed out swap
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | string | Signer of the refund transaction |
swapData | SolanaSwapData | Swap to refund |
check? | boolean | Whether to check if the swap contract still exists on-chain |
initAta? | boolean | Whether to initialize a token account if it doesn't exist (applies to e.g. Solana, with token specific ATAs) |
feeRate? | string | Fee rate to use for the transactions |
Returns
Promise<SolanaTx[]>
Implementation of
txsRefundWithAuthorization()
txsRefundWithAuthorization(
signer,
swapData,
sig,
check?,
initAta?,
feeRate?): Promise<SolanaTx[]>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:748
Returns the transactions for refunding a swap with a valid refund signature from the claimer
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | string | Signer of the refund transaction |
swapData | SolanaSwapData | Swap to refund |
sig | SignatureData | Refund signature received from the claimer |
check? | boolean | Whether to check if the swap contract still exists on-chain |
initAta? | boolean | Whether to initialize a token account if it doesn't exist (applies to e.g. Solana, with token specific ATAs) |
feeRate? | string | Fee rate to use for the transactions |
Returns
Promise<SolanaTx[]>
Implementation of
SwapContract.txsRefundWithAuthorization
txsWithdraw()
txsWithdraw(
signer,
token,
amount,
feeRate?): Promise<SolanaTx[]>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:769
Returns transactions required for signer to withdraw funds from the trading LP vault
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | string | Owner of the funds |
token | string | Token to withdraw |
amount | bigint | Amount of the token to withdraw |
feeRate? | string | Optional fee rate to use for the transaction (fetched on-demand if not provided) |
Returns
Promise<SolanaTx[]>
Implementation of
withdraw()
withdraw(
signer,
token,
amount,
txOptions?): Promise<string>;
Defined in: atomiq-chain-solana/src/solana/swaps/SolanaSwapProgram.ts:906
Withdraws funds from the trading LP vault
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | SolanaSigner | Signer to sign the withdrawal with |
token | string | Token to withdraw |
amount | bigint | Amount of the token to withdraw |
txOptions? | TransactionConfirmationOptions | Transaction options |
Returns
Promise<string>