EVMSwapContract<ChainId>
Defined in: atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:44
EVM swap contract (escrow manager) representation handling PrTLC (on-chain) and HTLC (lightning) based swaps.
Extends
EVMContractBase<EscrowManager>
Type Parameters
| Type Parameter | Default type |
|---|---|
ChainId extends string | string |
Implements
SwapContract<EVMSwapData,EVMTx,never,EVMPreFetchVerification,EVMSigner,ChainId>
Constructors
Constructor
new EVMSwapContract<ChainId>(
chainInterface,
btcRelay,
contractAddress,
handlerAddresses,
contractDeploymentHeight?): EVMSwapContract<ChainId>;
Defined in: atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:117
Parameters
| Parameter | Type |
|---|---|
chainInterface | EVMChainInterface<ChainId> |
btcRelay | EVMBtcRelay<any> |
contractAddress | string |
handlerAddresses | { claim: { 0: string; 1: string; 2: string; 3: string; }; refund: { timelock: string; }; } |
handlerAddresses.claim | { 0: string; 1: string; 2: string; 3: string; } |
handlerAddresses.claim.0? | string |
handlerAddresses.claim.1? | string |
handlerAddresses.claim.2? | string |
handlerAddresses.claim.3? | string |
handlerAddresses.refund? | { timelock: string; } |
handlerAddresses.refund.timelock? | string |
contractDeploymentHeight? | number |
Returns
EVMSwapContract<ChainId>
Overrides
EVMContractBase<EscrowManager>.constructor
Properties
chainId
readonly chainId: ChainId;
Defined in: atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:59
Chain identifier string
Implementation of
claimWithSecretTimeout
readonly claimWithSecretTimeout: number = 180;
Defined in: atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:63
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 = 180;
Defined in: atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:64
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
contract
readonly contract: EscrowManager;
Defined in: atomiq-chain-evm/src/evm/contract/EVMContractBase.ts:33
Inherited from
EVMContractBase.contract
refundTimeout
readonly refundTimeout: number = 180;
Defined in: atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:65
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
supportsInitWithoutClaimer
readonly supportsInitWithoutClaimer: true = true;
Defined in: atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:55
Whether this chain supports sending initialization without a direct authorization by the claimer
Implementation of
SwapContract.supportsInitWithoutClaimer
Chain
protected readonly Chain: EVMChainInterface<any>;
Defined in: atomiq-chain-evm/src/evm/contract/EVMContractBase.ts:39
Inherited from
Methods
claimWithSecret()
claimWithSecret(
signer,
swapData,
secret,
checkExpiry?,
initAta?,
txOptions?): Promise<string>;
Defined in: atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:755
Signs & sends transactions required for claiming an HTLC swap
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | EVMSigner | Signer for which the transaction should be created (doesn't need to match the claimer) |
swapData | EVMSwapData | 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-evm/src/evm/swaps/EVMSwapContract.ts:771
Signs & sends transactions required for claiming an on-chain PTLC (proof-time locked contract) swap
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | EVMSigner | Signer for which the transaction should be created (doesn't need to match the claimer) |
swapData | EVMSwapData | 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? | EVMBtcStoredHeader | Optional already retrieved stored header to use for proving |
synchronizer? | RelaySynchronizer<EVMBtcStoredHeader, TransactionRequest, 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,
paymentHash,
sequence,
expiry,
payIn,
payOut,
securityDeposit,
claimerBounty,
depositToken): Promise<EVMSwapData>;
Defined in: atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:566
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 |
paymentHash | 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<EVMSwapData>
Implementation of
deposit()
deposit(
signer,
token,
amount,
txOptions?): Promise<string>;
Defined in: atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:868
Deposits funds to the trading LP vault
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | EVMSigner | 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-evm/src/evm/swaps/EVMSwapContract.ts:645
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
getClaimFee()
getClaimFee(
signer,
swapData,
feeRate?): Promise<bigint>;
Defined in: atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:912
Returns the fee in native token base units to claim the swap
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | string | Signer claiming the swap |
swapData | EVMSwapData | 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-evm/src/evm/swaps/EVMSwapContract.ts:905
Returns the fee rate for claiming a swap as a specific signer
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | string | Signer claiming the swap |
swapData | EVMSwapData | Swap to claim |
Returns
Promise<string>
Implementation of
getCommitFee()
getCommitFee(
signer,
swapData,
feeRate?): Promise<bigint>;
Defined in: atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:919
Returns the fee in native token base units to commit (initiate) the swap
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | string | |
swapData | EVMSwapData | 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-evm/src/evm/swaps/EVMSwapContract.ts:332
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 | EVMSwapData |
Returns
Promise<SwapCommitState>
Implementation of
getCommitStatuses()
getCommitStatuses(request): Promise<{
[p: string]: SwapCommitState;
}>;
Defined in: atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:398
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-evm/src/evm/swaps/EVMSwapContract.ts:210
Signs the given data with the provided signer
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | EVMSigner | 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-evm/src/evm/swaps/EVMSwapContract.ts:313
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(paymentHash): Buffer;
Defined in: atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:304
Compute the claim hash for an HTLC swap with a given swap hash
Parameters
| Parameter | Type | Description |
|---|---|---|
paymentHash | Buffer |
Returns
Buffer
Implementation of
getHashForOnchain()
getHashForOnchain(
outputScript,
amount,
confirmations,
nonce?): Buffer;
Defined in: atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:276
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<ArrayBuffer>;
Defined in: atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:263
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<ArrayBuffer>
Implementation of
getHistoricalSwaps()
getHistoricalSwaps(signer, startBlockheight?): Promise<{
latestBlockheight?: number;
swaps: {
[escrowHash: string]: object;
};
}>;
Defined in: atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:422
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,
signature,
preFetchedData?): Promise<number>;
Defined in: atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:182
Returns the expiry timestamp (UNIX milliseconds) of the authorization
Parameters
| Parameter | Type | Description |
|---|---|---|
swapData | EVMSwapData | Swap |
signature | SignatureData | Signature data |
preFetchedData? | EVMPreFetchVerification | Optional pre-fetched data required for signature validation |
Returns
Promise<number>
Implementation of
SwapContract.getInitAuthorizationExpiry
getInitFeeRate()
getInitFeeRate(
offerer?,
claimer?,
token?,
paymentHash?): Promise<string>;
Defined in: atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:891
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 |
paymentHash? | string | Optional payment hash |
Returns
Promise<string>
Implementation of
getInitPayInFeeRate()
getInitPayInFeeRate(
offerer?,
claimer?,
token?,
paymentHash?): Promise<string>;
Defined in: atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:884
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 |
paymentHash? | string | Optional payment hash |
Returns
Promise<string>
Implementation of
SwapContract.getInitPayInFeeRate
getInitSignature()
getInitSignature(
signer,
swapData,
authorizationTimeout,
preFetchedBlockData?,
feeRate?): Promise<SignatureData>;
Defined in: atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:168
Generates the initialization signature
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | EVMSigner | Signer to use for signing the message |
swapData | EVMSwapData | Swap to sign |
authorizationTimeout | number | Timeout of the authorization |
preFetchedBlockData? | never | Optional pre-fetched data required for creating the signature |
feeRate? | string | Optional fee rate to use for the authorization |
Returns
Promise<SignatureData>
Implementation of
getIntermediaryData()
getIntermediaryData(address, token): Promise<{
balance: bigint;
reputation: IntermediaryReputationType;
}>;
Defined in: atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:654
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-evm/src/evm/swaps/EVMSwapContract.ts:664
Returns intermediary's reputation for a given token swaps
Parameters
| Parameter | Type | Description |
|---|---|---|
address | string | |
token | string |
Returns
Promise<IntermediaryReputationType>
Implementation of
SwapContract.getIntermediaryReputation
getRefundFee()
getRefundFee(
signer,
swapData,
feeRate?): Promise<bigint>;
Defined in: atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:926
Returns the fee in native token base units to refund the swap
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | string | |
swapData | EVMSwapData | 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-evm/src/evm/swaps/EVMSwapContract.ts:898
Returns the fee rate for refunding a swap
Parameters
| Parameter | Type | Description |
|---|---|---|
swapData | EVMSwapData | Swap to refund |
Returns
Promise<string>
Implementation of
getRefundSignature()
getRefundSignature(
signer,
swapData,
authorizationTimeout): Promise<SignatureData>;
Defined in: atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:196
Generates the refund signature for a given swap allowing the offerer to refund before expiration
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | EVMSigner | Signer to use for signing the message (must be the same as offerer in swap data) |
swapData | EVMSwapData | 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-evm/src/evm/swaps/EVMSwapContract.ts:831
Signs & sends transactions for initializing a non-payIn swap (BTC -> SC)
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | EVMSigner | Signer to use for the transaction (must match claimer in swap data) |
swapData | EVMSwapData | 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
isClaimable()
isClaimable(signer, data): Promise<boolean>;
Defined in: atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:226
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 | EVMSwapData |
Returns
Promise<boolean>
Implementation of
isCommited()
isCommited(swapData): Promise<boolean>;
Defined in: atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:235
Checks whether a given swap is committed on chain (initialized)
Parameters
| Parameter | Type | Description |
|---|---|---|
swapData | EVMSwapData |
Returns
Promise<boolean>
Implementation of
isExpired()
isExpired(signer, data): Promise<boolean>;
Defined in: atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:243
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 | EVMSwapData | Swap to check |
Returns
Promise<boolean>
Implementation of
isInitAuthorizationExpired()
isInitAuthorizationExpired(swapData, signature): Promise<boolean>;
Defined in: atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:189
Checks whether a given init signature is already expired
Parameters
| Parameter | Type | Description |
|---|---|---|
swapData | EVMSwapData | Swap |
signature | SignatureData | Signature data |
Returns
Promise<boolean>
Implementation of
SwapContract.isInitAuthorizationExpired
isRequestRefundable()
isRequestRefundable(signer, data): Promise<boolean>;
Defined in: atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:253
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 | EVMSwapData |
Returns
Promise<boolean>
Implementation of
SwapContract.isRequestRefundable
isValidDataSignature()
isValidDataSignature(
data,
signature,
publicKey): Promise<boolean>;
Defined in: atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:217
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(
sender,
swapData,
signature,
feeRate?,
preFetchedData?): Promise<Buffer<ArrayBufferLike>>;
Defined in: atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:175
Checks whether a signature is a valid initialization signature for a given swap
Parameters
| Parameter | Type | Description |
|---|---|---|
sender | string | Address of the sender of the transaction (must be either offerer or claimer) |
swapData | EVMSwapData | Swap to initialize |
signature | SignatureData | Signature data |
feeRate? | string | Fee rate used for the authorization |
preFetchedData? | EVMPreFetchVerification | 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, signature): Promise<Buffer<ArrayBufferLike>>;
Defined in: atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:203
Checks whether a given refund signature is valid
Parameters
| Parameter | Type | Description |
|---|---|---|
swapData | EVMSwapData | Swap to refund |
signature | SignatureData | Signature received from the claimer |
Returns
Promise<Buffer<ArrayBufferLike>>
Implementation of
SwapContract.isValidRefundAuthorization
preFetchForInitSignatureVerification()
preFetchForInitSignatureVerification(): Promise<EVMPreFetchVerification>;
Defined in: atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:161
Pre-fetches data required for init signature verification
Returns
Promise<EVMPreFetchVerification>
Implementation of
SwapContract.preFetchForInitSignatureVerification
refund()
refund(
signer,
swapData,
check?,
initAta?,
txOptions?): Promise<string>;
Defined in: atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:796
Signs & sends transactions for refunding a timed out swap
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | EVMSigner | Signer to use for the transaction (must match offerer in swap data) |
swapData | EVMSwapData | 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-evm/src/evm/swaps/EVMSwapContract.ts:813
Signs & sends transactions for refunding a swap with a valid refund signature from the claimer
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | EVMSigner | Signer to use for the transaction (must match offerer in swap data) |
swapData | EVMSwapData | 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-evm/src/evm/swaps/EVMSwapContract.ts:153
Initializes the swap contract
Returns
Promise<void>
Implementation of
txsClaimWithSecret()
txsClaimWithSecret(
signer,
swapData,
secret,
checkExpiry?,
initAta?,
feeRate?,
skipAtaCheck?): Promise<TransactionRequest[]>;
Defined in: atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:677
Returns the unsigned transactions required for claiming an HTLC swap
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | string | EVMSigner | Signer for which the transaction should be created (doesn't need to match the claimer) |
swapData | EVMSwapData | 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<TransactionRequest[]>
Implementation of
SwapContract.txsClaimWithSecret
txsClaimWithTxData()
txsClaimWithTxData(
signer,
swapData,
tx,
requiredConfirmations,
vout,
commitedHeader?,
synchronizer?,
initAta?,
feeRate?): Promise<TransactionRequest[]>;
Defined in: atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:692
Returns the unsigned transactions required for claiming an on-chain PTLC (proof-time locked contract) swap
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | string | EVMSigner | Signer for which the transaction should be created (doesn't need to match the claimer) |
swapData | EVMSwapData | 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? | EVMBtcStoredHeader | Optional already retrieved stored header to use for proving |
synchronizer? | RelaySynchronizer<EVMBtcStoredHeader, TransactionRequest, 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<TransactionRequest[]>
Implementation of
SwapContract.txsClaimWithTxData
txsDeposit()
txsDeposit(
signer,
token,
amount,
feeRate?): Promise<TransactionRequest[]>;
Defined in: atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:746
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<TransactionRequest[]>
Implementation of
txsInit()
txsInit(
signer,
swapData,
signature,
skipChecks?,
feeRate?): Promise<TransactionRequest[]>;
Defined in: atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:732
Returns the unsigned transactions required for initializing a non-payIn swap (BTC -> SC)
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | string | Transaction sender address, must be either offerer or claimer |
swapData | EVMSwapData | 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 |
feeRate? | string | Fee rate to use for the transaction |
Returns
Promise<TransactionRequest[]>
Implementation of
txsRefund()
txsRefund(
signer,
swapData,
check?,
initAta?,
feeRate?): Promise<TransactionRequest[]>;
Defined in: atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:718
Returns the transactions for refunding a timed out swap
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | string | Signer of the refund transaction |
swapData | EVMSwapData | 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<TransactionRequest[]>
Implementation of
txsRefundWithAuthorization()
txsRefundWithAuthorization(
signer,
swapData,
signature,
check?,
initAta?,
feeRate?): Promise<TransactionRequest[]>;
Defined in: atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:725
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 | EVMSwapData | 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) |
feeRate? | string | Fee rate to use for the transactions |
Returns
Promise<TransactionRequest[]>
Implementation of
SwapContract.txsRefundWithAuthorization
txsWithdraw()
txsWithdraw(
signer,
token,
amount,
feeRate?): Promise<TransactionRequest[]>;
Defined in: atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:739
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<TransactionRequest[]>
Implementation of
withdraw()
withdraw(
signer,
token,
amount,
txOptions?): Promise<string>;
Defined in: atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:854
Withdraws funds from the trading LP vault
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | EVMSigner | 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>