# EVMSwapContract\<ChainId>

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:42](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L42)

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`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md)<[`EVMSwapData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSwapData.md), [`EVMTx`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/type-aliases/EVMTx.md), `never`, `EVMPreFetchVerification`, [`EVMSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSigner.md), `ChainId`>

## Constructors

### Constructor

```
new EVMSwapContract<ChainId>(

   chainInterface, 

   btcRelay, 

   contractAddress, 

   handlerAddresses, 

contractDeploymentHeight?): EVMSwapContract<ChainId>;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:117](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L117)

#### Parameters

| Parameter                           | Type                                                                                                                               |
| ----------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| `chainInterface`                    | [`EVMChainInterface`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMChainInterface.md)<`ChainId`> |
| `btcRelay`                          | [`EVMBtcRelay`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMBtcRelay.md)<`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](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L59)

Chain identifier string

#### Implementation of

[`SwapContract`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`chainId`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#chainid-1)

***

### claimWithSecretTimeout

```
readonly claimWithSecretTimeout: number = 180;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:63](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L63)

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`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`claimWithSecretTimeout`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#claimwithsecrettimeout)

***

### claimWithTxDataTimeout

```
readonly claimWithTxDataTimeout: number = 180;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:64](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L64)

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`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`claimWithTxDataTimeout`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#claimwithtxdatatimeout)

***

### contract

```
readonly contract: EscrowManager;
```

Defined in: [atomiq-chain-evm/src/evm/contract/EVMContractBase.ts:33](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/contract/EVMContractBase.ts#L33)

#### Inherited from

```
EVMContractBase.contract
```

***

### refundTimeout

```
readonly refundTimeout: number = 180;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:65](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L65)

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

[`SwapContract`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`refundTimeout`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#refundtimeout)

***

### supportsInitWithoutClaimer

```
readonly supportsInitWithoutClaimer: true = true;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:55](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L55)

Whether this chain supports sending initialization without a direct authorization by the claimer

#### Implementation of

[`SwapContract`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`supportsInitWithoutClaimer`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#supportsinitwithoutclaimer)

***

### Chain

```
protected readonly Chain: EVMChainInterface<any>;
```

Defined in: [atomiq-chain-evm/src/evm/contract/EVMContractBase.ts:39](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/contract/EVMContractBase.ts#L39)

#### Inherited from

[`EVMBtcRelay`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMBtcRelay.md).[`Chain`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMBtcRelay.md#chain)

## Methods

### claimWithSecret()

```
claimWithSecret(

   signer, 

   swapData, 

   secret, 

   checkExpiry?, 

   initAta?, 

txOptions?): Promise<string>;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:781](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L781)

Signs & sends transactions required for claiming an HTLC swap

#### Parameters

| Parameter      | Type                                                                                                        | Description                                                                                                  |
| -------------- | ----------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
| `signer`       | [`EVMSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSigner.md)     | Signer for which the transaction should be created (doesn't need to match the claimer)                       |
| `swapData`     | [`EVMSwapData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSwapData.md) | 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

[`SwapContract`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`claimWithSecret`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#claimwithsecret)

***

### claimWithTxData()

```
claimWithTxData(

   signer, 

   swapData, 

   tx, 

   requiredConfirmations, 

   vout, 

   commitedHeader?, 

   synchronizer?, 

   initAta?, 

txOptions?): Promise<string>;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:797](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L797)

Signs & sends transactions required for claiming an on-chain PTLC (proof-time locked contract) swap

#### Parameters

| Parameter                | Type                                                                                                                                                                        | Description                                                                                                  |
| ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
| `signer`                 | [`EVMSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSigner.md)                                                                     | Signer for which the transaction should be created (doesn't need to match the claimer)                       |
| `swapData`               | [`EVMSwapData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSwapData.md)                                                                 | 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`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMBtcStoredHeader.md)                                                   | Optional already retrieved stored header to use for proving                                                  |
| `synchronizer?`          | `RelaySynchronizer`<[`EVMBtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMBtcStoredHeader.md), `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

[`SwapContract`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`claimWithTxData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#claimwithtxdata)

***

### 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:592](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L592)

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`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSwapData.md)>

#### Implementation of

[`SwapContract`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`createSwapData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#createswapdata)

***

### deposit()

```
deposit(

   signer, 

   token, 

   amount, 

txOptions?): Promise<string>;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:894](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L894)

Deposits funds to the trading LP vault

#### Parameters

| Parameter    | Type                                                                                                    | Description                     |
| ------------ | ------------------------------------------------------------------------------------------------------- | ------------------------------- |
| `signer`     | [`EVMSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSigner.md) | 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

[`SwapContract`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`deposit`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#deposit)

***

### getBalance()

```
getBalance(

   signer, 

   tokenAddress, 

inContract?): Promise<bigint>;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:671](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L671)

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

[`SwapContract`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`getBalance`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#getbalance)

***

### getClaimFee()

```
getClaimFee(

   signer, 

   swapData, 

feeRate?): Promise<bigint>;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:938](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L938)

Returns the fee in native token base units to claim the swap

#### Parameters

| Parameter  | Type                                                                                                        | Description                                           |
| ---------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- |
| `signer`   | `string`                                                                                                    | Signer claiming the swap                              |
| `swapData` | [`EVMSwapData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSwapData.md) | Swap to claim                                         |
| `feeRate?` | `string`                                                                                                    | Optional fee rate (fetched on-demand if not provided) |

#### Returns

`Promise`<`bigint`>

#### Implementation of

[`SwapContract`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`getClaimFee`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#getclaimfee)

***

### getClaimFeeRate()

```
getClaimFeeRate(signer, swapData): Promise<string>;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:931](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L931)

Returns the fee rate for claiming a swap as a specific signer

#### Parameters

| Parameter  | Type                                                                                                        | Description              |
| ---------- | ----------------------------------------------------------------------------------------------------------- | ------------------------ |
| `signer`   | `string`                                                                                                    | Signer claiming the swap |
| `swapData` | [`EVMSwapData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSwapData.md) | Swap to claim            |

#### Returns

`Promise`<`string`>

#### Implementation of

[`SwapContract`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`getClaimFeeRate`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#getclaimfeerate)

***

### getCommitFee()

```
getCommitFee(

   signer, 

   swapData, 

feeRate?): Promise<bigint>;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:945](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L945)

Returns the fee in native token base units to commit (initiate) the swap

#### Parameters

| Parameter  | Type                                                                                                        | Description                                           |
| ---------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- |
| `signer`   | `string`                                                                                                    |                                                       |
| `swapData` | [`EVMSwapData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSwapData.md) | Swap to initiate                                      |
| `feeRate?` | `string`                                                                                                    | Optional fee rate (fetched on-demand if not provided) |

#### Returns

`Promise`<`bigint`>

#### Implementation of

[`SwapContract`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`getCommitFee`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#getcommitfee)

***

### getCommitStatus()

```
getCommitStatus(signer, data): Promise<SwapCommitState>;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:334](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L334)

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`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSwapData.md) |             |

#### Returns

`Promise`<`SwapCommitState`>

#### Implementation of

[`SwapContract`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`getCommitStatus`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#getcommitstatus)

***

### getCommitStatuses()

```
getCommitStatuses(request): Promise<{

[p: string]: SwapCommitState;

}>;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:422](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L422)

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`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`getCommitStatuses`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#getcommitstatuses)

***

### getDataSignature()

```
getDataSignature(signer, data): Promise<string>;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:212](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L212)

Signs the given data with the provided signer

#### Parameters

| Parameter | Type                                                                                                    | Description                |
| --------- | ------------------------------------------------------------------------------------------------------- | -------------------------- |
| `signer`  | [`EVMSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSigner.md) | Signer to sign the message |
| `data`    | `Buffer`                                                                                                | Data to sign               |

#### Returns

`Promise`<`string`>

#### Implementation of

[`SwapContract`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`getDataSignature`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#getdatasignature)

***

### getExtraData()

```
getExtraData(

   outputScript, 

   amount, 

   confirmations, 

   nonce?): Buffer;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:315](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L315)

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

[`SwapContract`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`getExtraData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#getextradata)

***

### getHashForHtlc()

```
getHashForHtlc(paymentHash): Buffer;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:306](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L306)

Compute the claim hash for an HTLC swap with a given swap hash

#### Parameters

| Parameter     | Type     | Description |
| ------------- | -------- | ----------- |
| `paymentHash` | `Buffer` |             |

#### Returns

`Buffer`

#### Implementation of

[`SwapContract`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`getHashForHtlc`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#gethashforhtlc)

***

### getHashForOnchain()

```
getHashForOnchain(

   outputScript, 

   amount, 

   confirmations, 

   nonce?): Buffer;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:278](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L278)

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`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`getHashForOnchain`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#gethashforonchain)

***

### getHashForTxId()

```
getHashForTxId(txId, confirmations): Buffer<ArrayBuffer>;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:265](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L265)

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

[`SwapContract`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`getHashForTxId`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#gethashfortxid)

***

### getHistoricalSwaps()

```
getHistoricalSwaps(signer, startBlockheight?): Promise<{

  latestBlockheight?: number;

  swaps: {

   [escrowHash: string]: object;

  };

}>;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:446](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L446)

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`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`getHistoricalSwaps`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#gethistoricalswaps)

***

### getInitAuthorizationExpiry()

```
getInitAuthorizationExpiry(

   swapData, 

   signature, 

preFetchedData?): Promise<number>;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:184](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L184)

Returns the expiry timestamp (UNIX milliseconds) of the authorization

#### Parameters

| Parameter         | Type                                                                                                        | Description                                                 |
| ----------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------- |
| `swapData`        | [`EVMSwapData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSwapData.md) | Swap                                                        |
| `signature`       | `SignatureData`                                                                                             | Signature data                                              |
| `preFetchedData?` | `EVMPreFetchVerification`                                                                                   | Optional pre-fetched data required for signature validation |

#### Returns

`Promise`<`number`>

#### Implementation of

[`SwapContract`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`getInitAuthorizationExpiry`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#getinitauthorizationexpiry)

***

### getInitFeeRate()

```
getInitFeeRate(

   offerer?, 

   claimer?, 

   token?, 

paymentHash?): Promise<string>;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:917](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L917)

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

[`SwapContract`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`getInitFeeRate`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#getinitfeerate)

***

### getInitPayInFeeRate()

```
getInitPayInFeeRate(

   offerer?, 

   claimer?, 

   token?, 

paymentHash?): Promise<string>;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:910](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L910)

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`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`getInitPayInFeeRate`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#getinitpayinfeerate)

***

### getInitSignature()

```
getInitSignature(

   signer, 

   swapData, 

   authorizationTimeout, 

   preFetchedBlockData?, 

feeRate?): Promise<SignatureData>;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:170](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L170)

Generates the initialization signature

#### Parameters

| Parameter              | Type                                                                                                        | Description                                                   |
| ---------------------- | ----------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------- |
| `signer`               | [`EVMSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSigner.md)     | Signer to use for signing the message                         |
| `swapData`             | [`EVMSwapData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSwapData.md) | 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

[`SwapContract`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`getInitSignature`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#getinitsignature)

***

### getIntermediaryData()

```
getIntermediaryData(address, token): Promise<{

  balance: bigint;

  reputation: IntermediaryReputationType;

}>;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:680](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L680)

#### 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:690](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L690)

Returns intermediary's reputation for a given token swaps

#### Parameters

| Parameter | Type     | Description |
| --------- | -------- | ----------- |
| `address` | `string` |             |
| `token`   | `string` |             |

#### Returns

`Promise`<`IntermediaryReputationType`>

#### Implementation of

[`SwapContract`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`getIntermediaryReputation`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#getintermediaryreputation)

***

### getRefundFee()

```
getRefundFee(

   signer, 

   swapData, 

feeRate?): Promise<bigint>;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:952](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L952)

Returns the fee in native token base units to refund the swap

#### Parameters

| Parameter  | Type                                                                                                        | Description                                           |
| ---------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- |
| `signer`   | `string`                                                                                                    |                                                       |
| `swapData` | [`EVMSwapData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSwapData.md) | Swap to refund                                        |
| `feeRate?` | `string`                                                                                                    | Optional fee rate (fetched on-demand if not provided) |

#### Returns

`Promise`<`bigint`>

#### Implementation of

[`SwapContract`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`getRefundFee`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#getrefundfee)

***

### getRefundFeeRate()

```
getRefundFeeRate(swapData): Promise<string>;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:924](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L924)

Returns the fee rate for refunding a swap

#### Parameters

| Parameter  | Type                                                                                                        | Description    |
| ---------- | ----------------------------------------------------------------------------------------------------------- | -------------- |
| `swapData` | [`EVMSwapData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSwapData.md) | Swap to refund |

#### Returns

`Promise`<`string`>

#### Implementation of

[`SwapContract`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`getRefundFeeRate`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#getrefundfeerate)

***

### getRefundSignature()

```
getRefundSignature(

   signer, 

   swapData, 

authorizationTimeout): Promise<SignatureData>;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:198](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L198)

Generates the refund signature for a given swap allowing the offerer to refund before expiration

#### Parameters

| Parameter              | Type                                                                                                        | Description                                                                      |
| ---------------------- | ----------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
| `signer`               | [`EVMSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSigner.md)     | Signer to use for signing the message (must be the same as offerer in swap data) |
| `swapData`             | [`EVMSwapData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSwapData.md) | Swap to refund                                                                   |
| `authorizationTimeout` | `number`                                                                                                    | Timeout of the provided refund authorization                                     |

#### Returns

`Promise`<`SignatureData`>

#### Implementation of

[`SwapContract`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`getRefundSignature`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#getrefundsignature)

***

### init()

```
init(

   signer, 

   swapData, 

   signature, 

   skipChecks?, 

txOptions?): Promise<string>;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:857](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L857)

Signs & sends transactions for initializing a non-payIn swap (BTC -> SC)

#### Parameters

| Parameter     | Type                                                                                                        | Description                                                                               |
| ------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
| `signer`      | [`EVMSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSigner.md)     | Signer to use for the transaction (must match claimer in swap data)                       |
| `swapData`    | [`EVMSwapData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSwapData.md) | 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

[`SwapContract`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`init`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#init)

***

### isClaimable()

```
isClaimable(signer, data): Promise<boolean>;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:228](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L228)

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`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSwapData.md) |             |

#### Returns

`Promise`<`boolean`>

#### Implementation of

[`SwapContract`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`isClaimable`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#isclaimable)

***

### isCommited()

```
isCommited(swapData): Promise<boolean>;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:237](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L237)

Checks whether a given swap is committed on chain (initialized)

#### Parameters

| Parameter  | Type                                                                                                        | Description |
| ---------- | ----------------------------------------------------------------------------------------------------------- | ----------- |
| `swapData` | [`EVMSwapData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSwapData.md) |             |

#### Returns

`Promise`<`boolean`>

#### Implementation of

[`SwapContract`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`isCommited`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#iscommited)

***

### isExpired()

```
isExpired(signer, data): Promise<boolean>;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:245](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L245)

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`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSwapData.md) | Swap to check                         |

#### Returns

`Promise`<`boolean`>

#### Implementation of

[`SwapContract`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`isExpired`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#isexpired)

***

### isInitAuthorizationExpired()

```
isInitAuthorizationExpired(swapData, signature): Promise<boolean>;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:191](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L191)

Checks whether a given init signature is already expired

#### Parameters

| Parameter   | Type                                                                                                        | Description    |
| ----------- | ----------------------------------------------------------------------------------------------------------- | -------------- |
| `swapData`  | [`EVMSwapData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSwapData.md) | Swap           |
| `signature` | `SignatureData`                                                                                             | Signature data |

#### Returns

`Promise`<`boolean`>

#### Implementation of

[`SwapContract`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`isInitAuthorizationExpired`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#isinitauthorizationexpired)

***

### isRequestRefundable()

```
isRequestRefundable(signer, data): Promise<boolean>;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:255](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L255)

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`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSwapData.md) |             |

#### Returns

`Promise`<`boolean`>

#### Implementation of

[`SwapContract`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`isRequestRefundable`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#isrequestrefundable)

***

### isValidDataSignature()

```
isValidDataSignature(

   data, 

   signature, 

publicKey): Promise<boolean>;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:219](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L219)

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`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`isValidDataSignature`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#isvaliddatasignature)

***

### isValidInitAuthorization()

```
isValidInitAuthorization(

   sender, 

   swapData, 

   signature, 

   feeRate?, 

preFetchedData?): Promise<Buffer<ArrayBufferLike>>;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:177](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L177)

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`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSwapData.md) | 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`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`isValidInitAuthorization`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#isvalidinitauthorization)

***

### isValidRefundAuthorization()

```
isValidRefundAuthorization(swapData, signature): Promise<Buffer<ArrayBufferLike>>;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:205](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L205)

Checks whether a given refund signature is valid

#### Parameters

| Parameter   | Type                                                                                                        | Description                         |
| ----------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------- |
| `swapData`  | [`EVMSwapData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSwapData.md) | Swap to refund                      |
| `signature` | `SignatureData`                                                                                             | Signature received from the claimer |

#### Returns

`Promise`<`Buffer`<`ArrayBufferLike`>>

#### Implementation of

[`SwapContract`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`isValidRefundAuthorization`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#isvalidrefundauthorization)

***

### preFetchForInitSignatureVerification()

```
preFetchForInitSignatureVerification(): Promise<EVMPreFetchVerification>;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:163](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L163)

Pre-fetches data required for init signature verification

#### Returns

`Promise`<`EVMPreFetchVerification`>

#### Implementation of

[`SwapContract`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`preFetchForInitSignatureVerification`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#prefetchforinitsignatureverification)

***

### refund()

```
refund(

   signer, 

   swapData, 

   check?, 

   initAta?, 

txOptions?): Promise<string>;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:822](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L822)

Signs & sends transactions for refunding a timed out swap

#### Parameters

| Parameter    | Type                                                                                                        | Description                                                                                                  |
| ------------ | ----------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
| `signer`     | [`EVMSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSigner.md)     | Signer to use for the transaction (must match offerer in swap data)                                          |
| `swapData`   | [`EVMSwapData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSwapData.md) | 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

[`SwapContract`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`refund`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#refund)

***

### refundWithAuthorization()

```
refundWithAuthorization(

   signer, 

   swapData, 

   signature, 

   check?, 

   initAta?, 

txOptions?): Promise<string>;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:839](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L839)

Signs & sends transactions for refunding a swap with a valid refund signature from the claimer

#### Parameters

| Parameter    | Type                                                                                                        | Description                                                                                                  |
| ------------ | ----------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
| `signer`     | [`EVMSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSigner.md)     | Signer to use for the transaction (must match offerer in swap data)                                          |
| `swapData`   | [`EVMSwapData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSwapData.md) | 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`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`refundWithAuthorization`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#refundwithauthorization)

***

### start()

```
start(): Promise<void>;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:155](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L155)

Initializes the swap contract

#### Returns

`Promise`<`void`>

#### Implementation of

[`SwapContract`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`start`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#start)

***

### txsClaimWithSecret()

```
txsClaimWithSecret(

   signer, 

   swapData, 

   secret, 

   checkExpiry?, 

   initAta?, 

   feeRate?, 

skipAtaCheck?): Promise<TransactionRequest[]>;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:703](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L703)

Returns the unsigned transactions required for claiming an HTLC swap

#### Parameters

| Parameter       | Type                                                                                                                | Description                                                                                                  |
| --------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
| `signer`        | `string` \| [`EVMSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSigner.md) | Signer for which the transaction should be created (doesn't need to match the claimer)                       |
| `swapData`      | [`EVMSwapData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSwapData.md)         | 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`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`txsClaimWithSecret`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#txsclaimwithsecret)

***

### txsClaimWithTxData()

```
txsClaimWithTxData(

   signer, 

   swapData, 

   tx, 

   requiredConfirmations, 

   vout, 

   commitedHeader?, 

   synchronizer?, 

   initAta?, 

feeRate?): Promise<TransactionRequest[]>;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:718](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L718)

Returns the unsigned transactions required for claiming an on-chain PTLC (proof-time locked contract) swap

#### Parameters

| Parameter                | Type                                                                                                                                                                        | Description                                                                                                  |
| ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
| `signer`                 | `string` \| [`EVMSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSigner.md)                                                         | Signer for which the transaction should be created (doesn't need to match the claimer)                       |
| `swapData`               | [`EVMSwapData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSwapData.md)                                                                 | 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`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMBtcStoredHeader.md)                                                   | Optional already retrieved stored header to use for proving                                                  |
| `synchronizer?`          | `RelaySynchronizer`<[`EVMBtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMBtcStoredHeader.md), `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`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`txsClaimWithTxData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#txsclaimwithtxdata)

***

### txsDeposit()

```
txsDeposit(

   signer, 

   token, 

   amount, 

feeRate?): Promise<TransactionRequest[]>;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:772](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L772)

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

[`SwapContract`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`txsDeposit`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#txsdeposit)

***

### txsInit()

```
txsInit(

   signer, 

   swapData, 

   signature, 

   skipChecks?, 

feeRate?): Promise<TransactionRequest[]>;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:758](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L758)

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`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSwapData.md) | 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

[`SwapContract`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`txsInit`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#txsinit)

***

### txsRefund()

```
txsRefund(

   signer, 

   swapData, 

   check?, 

   initAta?, 

feeRate?): Promise<TransactionRequest[]>;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:744](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L744)

Returns the transactions for refunding a timed out swap

#### Parameters

| Parameter  | Type                                                                                                        | Description                                                                                                  |
| ---------- | ----------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
| `signer`   | `string`                                                                                                    | Signer of the refund transaction                                                                             |
| `swapData` | [`EVMSwapData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSwapData.md) | 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

[`SwapContract`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`txsRefund`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#txsrefund)

***

### txsRefundWithAuthorization()

```
txsRefundWithAuthorization(

   signer, 

   swapData, 

   signature, 

   check?, 

   initAta?, 

feeRate?): Promise<TransactionRequest[]>;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:751](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L751)

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`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSwapData.md) | 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`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`txsRefundWithAuthorization`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#txsrefundwithauthorization)

***

### txsWithdraw()

```
txsWithdraw(

   signer, 

   token, 

   amount, 

feeRate?): Promise<TransactionRequest[]>;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:765](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L765)

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

[`SwapContract`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`txsWithdraw`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#txswithdraw)

***

### withdraw()

```
withdraw(

   signer, 

   token, 

   amount, 

txOptions?): Promise<string>;
```

Defined in: [atomiq-chain-evm/src/evm/swaps/EVMSwapContract.ts:880](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/swaps/EVMSwapContract.ts#L880)

Withdraws funds from the trading LP vault

#### Parameters

| Parameter    | Type                                                                                                    | Description                        |
| ------------ | ------------------------------------------------------------------------------------------------------- | ---------------------------------- |
| `signer`     | [`EVMSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSigner.md) | 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`>

#### Implementation of

[`SwapContract`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md).[`withdraw`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md#withdraw)
